CentOS 6でiSCSI¶
概要¶
iSCSIは、ネットワーク経由でSCSIデバイスの通信を行うことで、ネットワーク間でディスクデバイスの提供と利用を実現します。
SCSI同様、デバイス側をターゲット、デバイスを利用する側をイニシエータと呼びます。
設定¶
iSCSIターゲット(ディスク提供側)¶
CentOS 6では、iSCSIのターゲットとしてディスクを提供することができます。
必要なパッケージをインストールします。
# yum install scsi-target-utils
以下、T.B.D.
iSCSIイニシエータ(ディスク利用側)¶
必要なパッケージをインストール¶
# yum install iscsi-initiator-utils
インストールすると、次のサービスが自動起動に設定されます。(サービスは停止のまま)
iscsi 0:off 1:off 2:off 3:on 4:on 5:on 6:off iscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off
iSCSIターゲットポータルを検索(キャッシュに登録)¶
iSCSIターゲットのIPアドレスが192.168.1.201の場合次となります。
# iscsiadm --mode discovery --type sendtargets --portal 192.168.1.201 iscsid を起動中: [ OK ] 192.168.1.201:3260,1 iqn.2016-03.com.example:tango-1.disk-2
- サービスiscsidが停止していると、コマンド実行時にサービスが起動されます。
- 検索結果はキャッシュされて後述のコマンドで確認できます。
iSCSIターゲットポータルの表示¶
# iscsiadm --mode node 192.168.1.201:3260,1 iqn.2016-03.com.example:tango-1.disk-2
- 検索して得たiSCSIターゲットポータル情報を表示します。
iSCSIターゲットへログイン(デバイスとして接続)¶
# iscsiadm --mode node -T iqn.2016-03.com.example:tango-1.disk-2 --portal 192.168.1.201 --login Logging in to [iface: default, target: iqn.2016-03.com.example:tango-1.disk-2, portal: 192.168.1.201,3260] Login to [iface: default, target: iqn.2016-03.com.example:tango-1.disk-2, portal: 192.168.1.201,3260] successful.
ログインしているターゲットの表示¶
# iscsiadm --mode session tcp: [1] 192.168.1.201,3260,1 iqn.2016-03.com.example:tango-1.disk-2 (non-flash)
ログインすると、iSCSIターゲットがデバイスとして認識されます。
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 32G 0 disk +-vda1 252:1 0 500M 0 part /boot +-vda2 252:2 0 31.5G 0 part +-vg_cisterna-lv_root (dm-0) 253:0 0 29.6G 0 lvm / +-vg_cisterna-lv_swap (dm-1) 253:1 0 2G 0 lvm [SWAP] sda 8:0 0 256G 0 disk +-sda1 8:1 0 256G 0 part
- ここでは、sdaがそうなのですが、iSCSIデバイスとは明記されないので、次のように詳しく調べるとよいかもしれません。
# ls -l /dev/disk/by-path 合計 0 lrwxrwxrwx. 1 root root 9 3月 12 21:46 2016 ip-192.168.1.201:3260-iscsi-iqn.2016-03.com.example:tango-1.disk-2-lun-0 -> ../../sda lrwxrwxrwx. 1 root root 10 3月 12 21:46 2016 ip-192.168.1.201:3260-iscsi-iqn.2016-03.com.example:tango-1.disk-2-lun-0-part1 -> ../../sda1 lrwxrwxrwx. 1 root root 9 3月 10 23:18 2016 pci-0000:00:01.1-scsi-1:0:0:0 -> ../../sr0 :
ログインしているターゲットの起動時マウント¶
/etc/fstabに記述するため、ブロックIDを調べます。
# blkid /dev/vda1: UUID="811462df-02a2-4b28-aa2f-94dc4c990816" TYPE="ext4" /dev/vda2: UUID="bf8HKJ-XgdR-fXve-8AsL-Jf07-MFH4-Chnbuf" TYPE="LVM2_member" /dev/mapper/vg_india1-lv_root: UUID="e9e37a0f-f2bf-40a5-a719-260f9c586caf" TYPE="ext4" /dev/mapper/vg_india1-lv_swap: UUID="179945bc-4548-42d3-9e28-963609ba76e6" TYPE="swap" /dev/sda1: UUID="db014c85-c90b-44ca-a6db-a3568298f961" TYPE="ext4"
/etc/fstabに設定を記述します。
UUID=db014c85-c90b-44ca-a6db-a3568298f961 /data ext4 _netdev 0 0
iSCSIはネットワークが稼動してからでないと有効にならないので、_netdevオプションを指定します。また、_netdevオプションが機能するにはnetfsサービスが必要ですので起動時に稼動するように設定します。
# chkconfig netfs on
トラブルシュート¶
ターゲットと通信できない場合¶
起動時(iscsiサービス起動時)に、ターゲットとの通信が出来ない場合、iscsiサービスは/etc/iscsi/iscsid.conf にあるタイムアウト時間をもってエラー終了します。
ターゲットとの通信が回復したら、再度iscsiサービスを起動してデバイスをマウントします。
iSCSI技術情報¶
IQN(iSCSI Qualified Name)の命名規則¶
RFC 3721¶
iqn.2001-04.com.example:diskarray-sn-a8675309 先頭は"iqn."固定----+ | | | 続くドメイン名の取得年月--+ | | ドメイン名(TLDから順に)----------+ | 組織内での識別子 ---------------------------------+