サーバ間ミラーリング機能を使用するすべてのノードで、以下の設定を行います。
以下の手順の「自ノード」は、ノード1で手順を実行する場合はノード1、ノード2で手順を実行する場合はノード2を表します。
設定手順は OS のバージョンによって異なります。
【RHEL6】
/etc/tgt/targets.conf ファイルに iSCSI ターゲットの設定を追記します。
以下の内容を追記してください。
<target targetname> initiator-address IPaddress1 initiator-address IPaddress2 write-cache off <backing-store by-id> lun LUN scsi_id SCSI-ID </backing-store> </target> |
ポイント
targetname には、自ノードのターゲット名を記述します。
クラスタシステム内で一意な文字列 (255 文字以内) を指定します。
IPaddress1 には、ノード1のサーバ間ミラーリング用の IP アドレスを記述します。IPv4アドレスまたはIPv6アドレスが設定できます。
IPaddress2 には、ノード2のサーバ間ミラーリング用の IP アドレスを記述します。IPv4アドレスまたはIPv6アドレスが設定できます。
サーバ間ミラーリングで使用する、すべての IP アドレスを initiator-address として設定します。
by-id には、サーバ間ミラーリングを行う自ノードのディスクまたはパーティションの by-id ファイルのパスを記述します。
LUN には、by-id で指定したディスクの iSCSI デバイスの LUN番号を記述します。
iSCSI ターゲット内 (<target targetname> ~ </target>内) で一意な番号を指定します。
SCSI-ID には、by-id で指定したディスクの iSCSI デバイスの SCSI ID を記述します。
クラスタシステム内で一意な番号を指定します。
サーバ間ミラーリングを行うディスクが自ノードに複数個ある場合、各ディスクについて <backing-store by-id> から </backing-store> までの4行を記述します。
記述例 (ノード1)
<target target-0101> initiator-address 192.168.56.20 initiator-address 192.168.56.10 write-cache off <backing-store /dev/disk/by-id/scsi-3500000e111c56610> lun 1 scsi_id SDX01 </backing-store> </target> |
記述例 (ノード2)
<target target-0201> initiator-address 192.168.56.20 initiator-address 192.168.56.10 write-cache off <backing-store /dev/disk/by-id/scsi-3500000e114784360> lun 1 scsi_id SDX02 </backing-store> </target> |
SCSI ターゲットデーモン (tgtd) を再起動します。
# service tgtd restart
Stopping SCSI target daemon: [ OK ]
Starting SCSI target daemon: [ OK ] |
SCSI ターゲットデーモン (tgtd) が未起動だった場合、以下のメッセージが出力されます。
Stopping SCSI target daemon: not running [FAILED] |
その後、以下のメッセージが出力されていれば問題ありません。
Starting SCSI target daemon: [ OK ] |
【RHEL7】
targetcli を実行し、対話モードに入ります。
# targetcli |
デフォルトのポータルが自動的に作成されないように設定します。
/> set global auto_add_default_portal=false |
サーバ間ミラーリングを行う自ノードのディスクまたはパーティションを登録します。
/> /backstores/block/ create ストレージ名 デバイスパス |
ポイント
ストレージ名には任意の文字列 (255 文字以内) を指定します。
デバイスパスにはサーバ間ミラーリングを行う自ノードのディスクまたはパーティションの by-id ファイルのパスを指定します。
サーバ間ミラーリングを行うディスクが自ノードに複数個ある場合、各ディスクについて本手順を繰り返します。
実行例
/> /backstores/block/ create storage1 /dev/disk/by-id/scsi-3500000e111c56611 |
デバイスの設定を確認します。
以下のコマンドを実行し、emulate_write_cache が 0 であることを確認します。
/> /backstores/block/ストレージ名 get attribute emulate_write_cache |
ポイント
ストレージ名には手順3. で設定したストレージ名を指定します。
実行例
/> /backstores/block/storage1 get attribute emulate_write_cache emulate_write_cache=0 |
iSCSI ターゲットを作成します。
/> /iscsi/ create |
作成された iSCSI ターゲットを確認します。
/> /iscsi/ ls |
実行例
/> /iscsi/ ls o- iscsi ..................................................................... [Targets: 1] o- iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98 .................... [TPGs: 1] o- tpg1 ........................................................ [no-gen-acls, no-auth] o- acls ................................................................... [ACLs: 0] o- luns ................................................................... [LUNs: 0] o- portals ............................................................. [Portals: 0] |
この例では、iqn 名「iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98」が生成され、/iscsi/ 配下にターゲットが作成されたことが分かります。
両ノードの iSCSI イニシエータを登録します。
/> /iscsi/iqn名/tpgX/acls create ノード1のイニシエータ名 /> /iscsi/iqn名/tpgX/acls create ノード2のイニシエータ名 |
ポイント
iqn 名には手順6. で確認した iqn 名を指定します。
tpgX には iqn 名ディレクトリに生成されたディレクトリ名(例では tpg1 )を指定します。
イニシエータ名は /etc/iscsi/initiatorname.iscsi ファイルで確認できます。
実行例
/> /iscsi/iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98/tpg1/acls create \ iqn.1994-05.com.redhat:dee92ff9979d /> /iscsi/iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98/tpg1/acls create \ iqn.1994-05.com.redhat:fa7eb9cf483c |
注意
iSCSI イニシエータ名はクラスタシステムの各ノードで異なる必要があります。
各ノードの iSCSI イニシエータ名が同一の場合、各ノードで別の iSCSI イニシエータ名になるように変更してください。
iSCSI イニシエータ名は以下の手順で変更できます。
新しい iSCSI イニシエータ名を決定します。
以下のコマンドを使用するとランダムな ID でイニシエータ名を生成できます。
(例)
# iscsi-iname
iqn.1994-05.com.redhat:5ea612eab618
設定ファイルを変更します。
/etc/iscsi/initiatorname.iscsi ファイル内の "InitiatorName=" に続く文字列を手順1の iSCSI イニシエータ名に書き換えます。
(例)
[変更前]
InitiatorName=iqn.1994-05.com.redhat:4539cd846026
[変更後]
InitiatorName=iqn.1994-05.com.redhat:5ea612eab618
設定を反映するため、iscsid を再起動します。
(例)
# systemctl restart iscsid.service
手順3. で登録したデバイスを接続します。
/> /iscsi/iqn名/tpgX/luns create /backstores/block/ストレージ名 |
ポイント
iqn 名には手順6. で確認した iqn 名を指定します。
tpgX にはiqn 名ディレクトリに生成されたディレクトリ名(例では tpg1 )を指定します。
ストレージ名には手順3. で設定したストレージ名を指定します。
サーバ間ミラーリングを行うディスクが自ノードに複数個ある場合、各ディスクについて本手順を繰り返します。
実行例
/> /iscsi/iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98/tpg1/luns create \ /backstores/block/storage1 |
ターゲットが使用する IP アドレスを登録します。
/> /iscsi/iqn名/tpgX/portals create IPaddress |
ポイント
iqn 名は手順6. で確認した iqn 名を指定します。
tpgX には iqn 名ディレクトリに生成されたディレクトリ名(例では tpg1 )を指定します。
IPaddress には、自ノードのサーバ間ミラーリング用の IP アドレスを記述します。
IPv4 アドレスまたは IPv6 アドレスが設定できます。
cip の IP アドレスは指定できません。NIC (eth0 など)に直接割り当てた IP アドレスを使用してください。
NIC や IP アドレスの条件については、「3.9.1 ネットワーク構成」を参照してください。
実行例
/> /iscsi/iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98/tpg1/portals create \ 192.168.125.123 |
targetcli の対話モードを終了します。本操作により設定が記録されます。
/> exit |
ターゲットの構成を確認します。
# targetcli ls |
ポイント
(*1) サーバ間ミラーリングで使用するデバイスの by-id ファイルのパスが出力されることを確認します。
(*2) 各クラスタノードの iSCSI イニシエータ名が出力されることを確認します。
(*3) (*1)で確認したストレージが各 iSCSI イニシエータに割り当てられていることを確認します。
(*4) サーバ間ミラーリングで使用する自ノードの IP アドレスが出力されることを確認します。
実行例
# targetcli ls o- / ................................................................................ [...] o- backstores ..................................................................... [...] | o- block ......................................................... [Storage Objects: 1] | | o- storage1 .. [/dev/disk/by-id/scsi-3500000e111c56611 (8.0GiB) write-thru activated] (*1) | o- fileio ........................................................ [Storage Objects: 0] | o- pscsi ......................................................... [Storage Objects: 0] | o- ramdisk ....................................................... [Storage Objects: 0] o- iscsi ................................................................... [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.node1.x8664:sn.2613f8620d98 .................. [TPGs: 1] | o- tpg1 ...................................................... [no-gen-acls, no-auth] | o- acls ................................................................. [ACLs: 2] | | o- iqn.1994-05.com.redhat:dee92ff9979d ......................... [Mapped LUNs: 1] (*2) | | | o- mapped_lun0 ..................................... [lun0 block/storage1 (rw)] (*3) | | o- iqn.1994-05.com.redhat:fa7eb9cf483c ......................... [Mapped LUNs: 1] (*2) | | o- mapped_lun0 ..................................... [lun0 block/storage1 (rw)] (*3) | o- luns ................................................................. [LUNs: 1] | | o- lun0 ............... [block/storage1 (/dev/disk/by-id/scsi-3500000e111c56611)] | o- portals ........................................................... [Portals: 1] | o- 192.168.125.123:3260 .................................................... [OK] (*4) o- loopback ................................................................ [Targets: 0] |