NAS再構築 〜iSCSIターゲットの設定

2016年6月29日

見事にぶっ壊れて頂いたNAS鯖ですが、実はESXiのデータストアも兼用しておりました・・・・。

ので、気を取り直して再構築です。

  1. iSCSI用バッキングストアについて
    今回はバッキングストアにイメージファイルを割り当てる事にしました。(以前はRAIDカードで作成したパーテーションでした)zfs上に作ったのでSnapshotとれるかなと。

    dd if=/dev/zero of=iscsi_datastore01.vmfs bs=1M count=2000000
    dd if=/dev/zero of=iscsi_datastore02.vmfs bs=1M count=1000000

    結構時間がかかりました。ウチの構成で約1時間くらいでしょうか。とにかくこんな感じでファイル2TBのファイルと1TBのファイルが出来上がります。

    [root@nas01 iscsi]# cd /tank/vmware/iscsi/
    [root@nas01 iscsi]# ls -l
    合計 3072420121
    -rw-r--r-- 1 root root 2097152000000  2月 13 16:03 iscsi_datastore01.vmfs
    -rw-r--r-- 1 root root 1048576000000  2月 13 16:03 iscsi_datastore02.vmfs
    

    なんか呆気ないですw
    ちなみに/tankは色々調べてるとチュートリアルで紹介されてるケースが多かったのでそうしましたが、もちろん何でもOKです。

  2. iSCSIターゲット設定
    どうやら、CentOS7から色々変わったみたいでして・・・・。
    メモメモさんのサイトを参考にしつつ、色々やっていきましょう。
    最初にiSCSI周りを面倒見てくれるデーモンをインストールします。

    yum -y install targetcli
    systemctl enable target.service
    systemctl start target.service

    次にイニシエーター(iSCSIのサーバ側)を面倒見てくれるデーモンをインストールします。

    # yum install iscsi-initiator-utils
    # systemctl enable iscsid.service
    # systemctl start iscsid.service
    

    さて、ここから各種設定を行いますが、各デーモンが起動して、何も設定が入っていない状態の確認から。

    [root@nas01 iscsi]# targetcli ls /
    o- / ........................................................................................... [...]
      o- backstores ................................................................................ [...]
      | o- block .................................................................... [Storage Objects: 0]
      | o- fileio ................................................................... [Storage Objects: 2]
      | | o- lun0 ............ [/tank/vmware/iscsi/iscsi_datastore01.vmfs (1.9TiB) write-back deactivated]
      | | o- lun1 .......... [/tank/vmware/iscsi/iscsi_datastore02.vmfs (976.6GiB) write-back deactivated]
      | o- pscsi .................................................................... [Storage Objects: 0]
      | o- ramdisk .................................................................. [Storage Objects: 0]
      o- iscsi .............................................................................. [Targets: 0]
      o- loopback ........................................................................... [Targets: 0]
    

     

  3. バックエンドデバイスの定義
    先ほど作成した巨大なフラットファイルをバックエンドデバイスとして設定しましょう。

    [root@nas01 iscsi]# targetcli /backstores/fileio create name=lun0 file_or_dev=/tank/vmware/iscsi/iscsi_datastore01.vmfs
    Created fileio lun0 with size 2097152000000
    
    [root@nas01 iscsi]# targetcli /backstores/fileio create name=lun1 file_or_dev=/tank/vmware/iscsi/iscsi_datastore02.vmfs
    Created fileio lun1 with size 1048576000000
    

    設定できたらこんな感じで表示されます。

    [root@nas01 iscsi]# targetcli ls /
    o- / ........................................................................................... [...]
      o- backstores ................................................................................ [...]
      | o- block .................................................................... [Storage Objects: 0]
      | o- fileio ................................................................... [Storage Objects: 2]
      | | o- lun0 ............ [/tank/vmware/iscsi/iscsi_datastore01.vmfs (1.9TiB) write-back deactivated]
      | | o- lun1 .......... [/tank/vmware/iscsi/iscsi_datastore02.vmfs (976.6GiB) write-back deactivated]
      | o- pscsi .................................................................... [Storage Objects: 0]
      | o- ramdisk .................................................................. [Storage Objects: 0]
      o- iscsi .............................................................................. [Targets: 1]
      | o- iqn.2016-02.org.admkazuya:nas01 ..................................................... [TPGs: 1]
      |   o- tpg1 ................................................................. [no-gen-acls, no-auth]
      |     o- acls ............................................................................ [ACLs: 0]
      |     o- luns ............................................................................ [LUNs: 0]
      |     o- portals ...................................................................... [Portals: 1]
      |       o- 0.0.0.0:3260 ....................................................................... [OK]
      o- loopback ........................................................................... [Targets: 0]
    
  4. iqnの定義
    こんな感じで。

    [root@nas01 iscsi]# cat /etc/iscsi/initiatorname.iscsi 
    InitiatorName=iqn.1994-05.com.redhat:eb84aa1acba6
    
    [root@nas01 iscsi]# targetcli /iscsi/iqn.2016-02.org.admkazuya:nas01/tpg1/acls create iqn.1994-05.com.redhat:eb84aa1acba6
    Created Node ACL for iqn.1994-05.com.redhat:eb84aa1acba6
    Created mapped LUN 1.
    Created mapped LUN 0.
    
  5. ポータルとバックエンドデバイスの紐付け
    iqnを定義するとデフォルトでポータルが定義されるので、すでに定義済みのバックエンドデバイスと紐付けます。

    [root@nas01 iscsi]# targetcli /iscsi/iqn.2016-02.org.admkazuya:nas01/tpg1/luns create /backstores/fileio/lun0
    Created LUN 0.
    
    [root@nas01 iscsi]# targetcli /iscsi/iqn.2016-02.org.admkazuya:nas01/tpg1/luns create /backstores/fileio/lun1
    Created LUN 1.
    
  6. 接続元(イニシエーター)の確認と設定
    予めvSphere Clientで確認したイニシエーター名をLUN単位で設定します。

    [root@nas01 iscsi]# targetcli /iscsi/iqn.2016-02.org.admkazuya:nas01/tpg1/acls create iqn.1998-01.com.vmware:esx01-49c14f22
    Created Node ACL for iqn.1998-01.com.vmware:esx01-49c14f22
    Created mapped LUN 1.
    Created mapped LUN 0.
    
    [root@nas01 iscsi]# targetcli /iscsi/iqn.2016-02.org.admkazuya:nas01/tpg1/acls create iqn.1998-01.com.vmware:esx02-7875bdef
    Created Node ACL for iqn.1998-01.com.vmware:esx02-7875bdef
    Created mapped LUN 1.
    Created mapped LUN 0.
    
  7. 設定内容の確認
    これまで設定してきた内容を確認します。
    この時点でVMware側でストレージとしてマウント可能な状態になっていますが、設定は保存されていないので注意しましょう。

    [root@nas01 iscsi]# targetcli ls /
    o- / ........................................................................................... [...]
      o- backstores ................................................................................ [...]
      | o- block .................................................................... [Storage Objects: 0]
      | o- fileio ................................................................... [Storage Objects: 2]
      | | o- lun0 .............. [/tank/vmware/iscsi/iscsi_datastore01.vmfs (1.9TiB) write-back activated]
      | | o- lun1 ............ [/tank/vmware/iscsi/iscsi_datastore02.vmfs (976.6GiB) write-back activated]
      | o- pscsi .................................................................... [Storage Objects: 0]
      | o- ramdisk .................................................................. [Storage Objects: 0]
      o- iscsi .............................................................................. [Targets: 1]
      | o- iqn.2016-02.org.admkazuya:nas01 ..................................................... [TPGs: 1]
      |   o- tpg1 ................................................................. [no-gen-acls, no-auth]
      |     o- acls ............................................................................ [ACLs: 3]
      |     | o- iqn.1994-05.com.redhat:eb84aa1acba6 .................................... [Mapped LUNs: 2]
      |     | | o- mapped_lun0 ................................................... [lun0 fileio/lun0 (rw)]
      |     | | o- mapped_lun1 ................................................... [lun1 fileio/lun1 (rw)]
      |     | o- iqn.1998-01.com.vmware:esx01-49c14f22 .................................. [Mapped LUNs: 2]
      |     | | o- mapped_lun0 ................................................... [lun0 fileio/lun0 (rw)]
      |     | | o- mapped_lun1 ................................................... [lun1 fileio/lun1 (rw)]
      |     | o- iqn.1998-01.com.vmware:esx02-7875bdef .................................. [Mapped LUNs: 2]
      |     |   o- mapped_lun0 ................................................... [lun0 fileio/lun0 (rw)]
      |     |   o- mapped_lun1 ................................................... [lun1 fileio/lun1 (rw)]
      |     o- luns ............................................................................ [LUNs: 2]
      |     | o- lun0 .......................... [fileio/lun0 (/tank/vmware/iscsi/iscsi_datastore01.vmfs)]
      |     | o- lun1 .......................... [fileio/lun1 (/tank/vmware/iscsi/iscsi_datastore02.vmfs)]
      |     o- portals ...................................................................... [Portals: 1]
      |       o- 0.0.0.0:3260 ....................................................................... [OK]
      o- loopback ........................................................................... [Targets: 0]
  8. 設定内容の保存
    # targetcli saveconfig
    Last 10 configs saved in /etc/target/backup.
    Configuration saved to /etc/target/saveconfig.json

はい。お疲れ様でした。