iSCSIはInternetSmallComputer Systems Interfaceの略で、IPベースのストレージであり、IPネットワークを介してSCSIコマンドを実行することにより、インターネットプロトコル上で機能します。 iSCSIは、クライアントマシンのiSCSIイニシエーターとストレージデバイス(サーバー)のiSCSIターゲットの間でブロックレベルのデータを転送します。
iSCSIストレージはRedhatクラスターの共有ストレージとして使用されます 、VMware vSphere、Redhat Enterprise Virtualization Manager、Ovirtなど。
環境
サーバー: server.itzgeek.local
IPアドレス: 192.168.12.20
OS: CentOS Linuxリリース7.4.1708(コア)
クライアント: node1.itzgeek.local
IPアドレス: 192.168.12.11
OS: CentOS Linuxリリース7.4.1708(コア)
ストレージ構成
ここでは、クライアントの共有ストレージとして使用するために、ターゲットサーバー上に5GBのLVMディスクを作成します。以下のコマンドを使用して、ターゲットサーバーに接続されている使用可能なディスクを一覧表示しましょう。 ディスク全体をLVMに使用する場合は、ディスクのパーティション分割手順をスキップしてください 。
[root @ server〜]#fdisk -l | grep -i sd
出力:
ディスク/dev/ sda:107.4 GB、107374182400バイト、209715200セクター/ dev / sda1 * 2048 1026047 512000 83 Linux / dev / sda2 1026048 209715199 104344576 8e LinuxLVMディスク/dev/ sdb:10.7 GB、10737418240バイト、20971520セクター
上記の出力から、私のシステムには10GBのディスク( / dev / sdb )があることがわかります。 )。上記のディスクに5GBのパーティションを作成し、LVMに使用します。
[root @ server〜]#fdisk / dev / sdb fdisk(util-linux 2.23.2)へようこそ。変更は、書き込むことを決定するまで、メモリにのみ残ります。 writeコマンドを使用する前に注意してください。デバイスに認識されたパーティションテーブルが含まれていませんディスク識別子0x173dfa4dで新しいDOSディスクラベルを作成しています。コマンド(ヘルプはm):n->新しいパーティション パーティションタイプ:pプライマリ(0プライマリ、0拡張、4フリー)e拡張選択(デフォルトp):p->プライマリパーティション パーティション番号(1-4、デフォルト1):1-->パーティション番号 最初のセクター(2048-20971519、デフォルトは2048):->入力するだけです デフォルト値2048の使用最後のセクター、+セクターまたは+ size {K、M、G}(2048-20971519、デフォルト20971519):+5G->サイズを入力 Linuxタイプでサイズ5GiBのパーティション1が設定されていますコマンド(ヘルプはm):t->ラベルの変更選択したパーティション1の16進コード(すべてのコードを一覧表示するにはLを入力):8e->LVMとして変更ラベル パーティションのタイプを「Linux」から「LinuxLVM」コマンドに変更しました(ヘルプはm):w->保存 パーティションテーブルが変更されました! ioctl()を呼び出してパーティションテーブルを再読み取りします。ディスクを同期しています。
/ dev / sdb1パーティションを使用してLVMを作成します( / dev/sdb1をディスク名に置き換えます )
[root @ server〜]#pvcreate / dev / sdb1 [root @ server〜]#vgcreate vg_iscsi / dev / sdb1 [root @ server〜]#lvcreate -l 100%FREE -n lv_iscsi vg_iscsi
iSCSIターゲットを構成する
これで、認証の有無にかかわらずターゲットを作成するオプションがあります。この記事では、両方のシナリオの手順を見つけることができます。どちらが環境に適しているかを判断するのはあなた次第です。
ここでは、CHAP認証なしでiSCSIターゲットを構成します。
targetcliパッケージをサーバーにインストールします。
[root @ server〜]#yum install targetcli -y
パッケージをインストールしたら、以下のコマンドを入力して、対話型プロンプトのiSCSICLIを取得します。
[root @ server〜]#targetcliWarning:設定ファイル/root/.targetcli/prefs.bin.targetcliシェルバージョン2.1.fb41Copyright 2011-2013 by Datera、Incなどを読み込めませんでした。コマンドのヘルプについては、「」と入力してください。ヘルプ'。>
次に、既存の論理ボリューム( / dev / vg_iscsi / lv_iscsi )を使用します )ストレージオブジェクト scsi_disk1_serverのブロックタイプのバッキングストアとして 「。
/>cdバックストア/ブロック / backstores / block> create scsi_disk1_server / dev / vg_iscsi / lv_iscsi / dev / vg_iscsi/lv_iscsiを使用してブロックストレージオブジェクトscsi_disk1_serverを作成しました。
ターゲットを作成します。
/ backstores / block> cd / iscsi / iscsi> create iqn.2016-02.local.itzgeek.server:disk1 作成されたターゲットiqn.2016-02.local.itzgeek.server:disk1.Created TPG 1.Global pref auto_add_default_portal =trueすべてのIP(0.0.0.0)、ポート3260./iscsi>でリッスンするデフォルトポータルを作成しました
クライアントマシンのACLを作成します(クライアントが接続に使用するのはIQNです)。
/ iscsi> cd /iscsi/iqn.2016-02.local.itzgeek.server:disk1/tpg1/acls /iscsi/iqn.20...sk1/tpg1/acls> create iqn.2016-02.local.itzgeek.server:node1node2 iqn.2016-02.local.itzgeek.server:node1node2のノードACLを作成しました
ターゲットの下にLUNを作成します。 LUNは、「 scsi_disk1_server」という名前の前述のバッキングストレージオブジェクトを使用する必要があります 「。
/iscsi/iqn.20...er:disk1/tpg1> cd /iscsi/iqn.2016-02.local.itzgeek.server:disk1/tpg1/luns /iscsi/iqn.20...sk1/tpg1/luns> create / backstores / block / scsi_disk1_server LUN0を作成しました。ノードACLにLUN0->0マッピングを作成しました。iqn.2016-02.local.itzgeek.server:node1node2
ターゲットサーバーの構成を確認します。
/iscsi/iqn.20.../tpg1/portals> cd / /> ls o-/..............................................。 .................................................。 ........................[...]o-バックストア.................。 .................................................。 .......................................... [...] | o-ブロック..............................................。 .................................................。 。[ストレージオブジェクト:1] | | o-scsi_disk1_server..............................................。 ... [/ dev / vg_iscsi / lv_iscsi(5.0GiB)ライトスルーがアクティブ化] | o-fileio..............................................。 .................................................。 [ストレージオブジェクト:0] | o- pscsi..............................................。 .................................................。 。[ストレージオブジェクト:0] | o-ramdisk..............................................。 ................................................. [ストレージオブジェクト:0] o- iscsi ........................................... .. .................................................。 ................ [ターゲット:1] | o- iqn.2016-02.local.itzgeek.server:disk1..................................。 ......................................... [TPG:1] | o-tpg1..............................................。 .................................................。 。[gen-acls、no-auth] | o-acls..............................................。 .................................................。 ......... [ACL:1] | | o- iqn.2016-02.local.itzgeek.server:node1node2..................................。 ....................... [マップされたLUN:1] | | o-mapped_lun0..............................................。 ......................[lun0ブロック/scsi_disk1_server(rw)] | o-luns..............................................。 .................................................。 ......... [LUN:1] | | o-lun0..............................................。 ................ [block / scsi_disk1_server(/ dev / vg_iscsi / lv_iscsi)] | o-ポータル..............................................。 .................................................。 ... [ポータル:1] | o-0.0.0.0:3260..........................................。 .................................................。 ........[OK]o-ループバック...................................。 .................................................。 ................... [ターゲット:0]ターゲットCLIを保存して終了します。
/> saveconfig /etc/target/backupに保存された最後の10個の構成。/etc/target/saveconfig.json/>に保存された構成exit グローバル設定auto_save_on_exit=true最後の10個の構成が/etc/target/backupに保存されました。構成が/etc/target/saveconfig.jsonに保存されました
ターゲットサービスを有効にして再起動します。
[root @ server〜]#systemctl enable target.service [root @ server〜]#systemctl restart target.service
iSCSIトラフィックを許可するようにファイアウォールを構成します。
[root @ server〜]#firewall-cmd --permanent --add-port =3260 / tcp [root @ server〜]#firewall-cmd --reload
イニシエーターの構成
次に、作成したターゲットをストレージとして使用するようにクライアントマシンを構成します。以下のパッケージをクライアントマシン( node1 )にインストールします 。
[root @ node1〜]#yum install iscsi-initiator-utils -y
イニシエーター名.iscsiファイルを編集します。
[root @ node1〜]#vi /etc/iscsi/initiatorname.iscsi
iSCSIイニシエーター名を追加します。
InitialatorName =iqn.2016-02.local.itzgeek.server:node1node2
以下のコマンドを使用してターゲットを発見します。
[root @ node1〜]#iscsiadm -m Discovery -t st -p 192.168.12.20
出力:
192.168.12.20:3260,1 iqn.2016-02.local.itzgeek.server:disk1
イニシエーターサービスを再起動して有効にします。
[root @ node1〜]#systemctl restart iscsid.service [root @ node1〜]#systemctl enable iscsid.service
検出されたターゲットにログインします。
[root @ node1〜]#iscsiadm -m node -T iqn.2016-02.local.itzgeek.server:disk1 -p 192.168.12.20 -l </ pre>出力:
[iface:デフォルト、ターゲット:iqn.2016-02.local.itzgeek.server:disk1、ポータル:192.168.12.20,3260]にログイン(複数)[iface:デフォルト、ターゲット:iqn.2016にログイン-02.local.itzgeek.server:disk1、portal:192.168.12.20,3260]成功しました。ISCSIディスク上にファイルシステムを作成 検出されたターゲットにログイン(接続)した後、メッセージファイルを確認します。以下のような同様の出力があり、そこからディスクの名前を見つけることができます。
[root @ node1〜]#cat / var / log / messagesFeb 23 14:54:47 node2 kernel:sd 34:0:0:0:[sdb] 10477568 512バイトの論理ブロック:(5.36 GB / 4.99 GiB)Feb 23 14:54:47 node2カーネル:sd 34:0:0:0:[sdb]書き込み保護がオフですFeb 23 14:54:47 node2カーネル:sd 34:0:0:0:[sdb]書き込みキャッシュ:無効、読み取りキャッシュ:有効、DPOまたはFUAFebをサポートしていません23 14:54:48 node2カーネル:sdb:不明なパーティションテーブル2月23日14:54:48node2カーネル:sd 34:0:0: 0:[sdb]接続されたSCSIディスク出力:
Feb 23 14:54:48 node2 iscsid:session2の優先度を設定できませんでした。全体の読み取り/書き込みと遅延が影響を受ける可能性があります。2月23日14:54:48node2iscsid:Connection2:0 to [target:iqn.2016-02.local.itzgeek.server:disk1、portal:192.168.12.20,3260] [iface:デフォルト]が機能するようになりました接続されているディスクを一覧表示します。
[root @ node1〜]#cat / proc / partition出力:
major minor #blocks name 8 0 104857600 sda 8 1 512000 sda1 8 2 104344576 sda2 11 0 1048575 sr0 253 0 2113536 dm-0 253 1 52428800 dm-1 253 2 49799168 dm-2 8 16 5238784 sdb新しいディスクをフォーマットします(記事のために、パーティションを作成する代わりにディスク全体をフォーマットしました)
root @ node1〜]#mkfs.xfs / dev / sdb出力:
meta-data =/ dev / sdb isize =256 agcount =8、agsize =163712 blks =sectsz =512 attr =2、projid32bit =1 =crc =0data =bsize =4096ブロック=1309696、imaxpct =25 =sunit =0 swidth =0 blksnaming =version 2 bsize =4096 ascii-ci =0 ftype =0log =internal log bsize =4096blocks =2560、version =2 =sectsz =512 sunit =0 blks、lazy-count =1realtime =none extsz =4096ブロック=0、rtextents =0ディスクをマウントします。
[root @ node1〜]#mount / dev / sdb / mnt以下のコマンドを使用して、ディスクがマウントされていることを確認します。
[root @ node1〜]#df -hT出力:
使用されるファイルシステムタイプサイズ使用率使用率/dev/ mapper / centos-root xfs 50G 955M 50G 2%/ devtmpfs devtmpfs 908M 0 908M 0%/ devtmpfs tmpfs 914M 54M 861M 6%/ dev / shmtmpfs tmpfs 914M 8.5M 905M 1%/ runtmpfs tmpfs 914M 0 914M 0%/ sys / fs / cgroup / dev / mapper / centos-home xfs 48G 33M 48G 1%/ home / dev / sda1 xfs 497M 97M 401M 20%/ boot / dev / sdb xfs 5.0G 33M 5.0G 1%/ mntiSCSIストレージの自動マウント
再起動のたびにiSCSIストレージを自動マウントするには、/ etc/fstabファイルにエントリを作成する必要があります。
/ etc / fstabファイルを更新する前に、次のコマンドを使用してiSCSIディスクのUUIDを取得します。 / dev/sdbをiSCSIディスク名に置き換えます。
blkid / dev / sdb出力:
/ dev / sdb:LABEL ="/" UUID =" 9df472f4-1b0f-41c0-a6eb-89574d2caee3 "TYPE =" xfs "次に、/ etc/fstabファイルを編集します。
vi / etc / fstab以下のようなエントリを作成します。
## / etc / fstab#2018年1月30日火曜日02:14:21にanacondaによって作成##アクセス可能なファイルシステムは、参照により、「/ dev / disk」の下に維持されます#manページfstab(5)、findfsを参照してください(8)、mount(8)および/またはblkid(8)で詳細を確認#UUID =9df472f4-1b0f-41c0-a6eb-89574d2caee3 / xfs defaults 0 0 UUID =c7469f92-75ec-48ac-b42d-d5b89ab75b39 / mnt xfs _netdev 0 0iSCSIストレージを削除する
追加したディスクを取り外したい場合は、手順(アンマウントしてログアウト)に従ってください。
[root @ node1〜]#umount / mnt / [root @ node1〜]#iscsiadm -m node -T iqn.2016-02.local.itzgeek.server:disk1 -p 192.168.12.20 -u>出力:
セッションからのログアウト[sid:1、target:iqn.2016-02.local.itzgeek.server:disk1、portal:192.168.12.20,3260] Logout of [sid:1、target:iqn.2016-02 .local.itzgeek.server:disk1、portal:192.168.12.20,3260]成功しました。以上です。
Cent OS