プロジェクト

全般

プロフィール

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から順に)----------+              |
組織内での識別子 ---------------------------------+


ほぼ9年前に更新