vSAN iSCSIターゲット(VIT)の仕組みについて
日々サポートをしていても、VITについての問い合わせが来ることは、ほとんどないのですが、万が一障害が発生した場合に備えて、内部の挙動について勉強しようと思ったので、そのまとめです。
まず、iSCSIターゲットサービスの機能を有効にすると、"/vmfs/volumes/vsanDatastore"の配下にiSCSIの設定などが保存されたホームオブジェクト(.iSCSI-Config)が作成されます。
このホームオブジェクトには以下のフォルダが含まれています。
1.)etc
2.)targets
etcには、VITの構成情報が記載されたvit.confがあります。
このvit.conf設定ファイルは、vSANクラスタ内のすべてのホストからアクセス可能である必要があります。たとえば、どのLUNがどのターゲットに関連付けられているかを判断するために使用されます。
targetsには、iSCSIターゲットネームスペースオブジェクトへのシンボリックリンクと各ターゲットに関連付けされているiSCSI LUN(vmdkオブジェクト)の情報があります。
以下の図が参考になります。
images: https://storagehub.vmware.com
検証機の出力結果
[root@esxi01:~] ls -l /vmfs/volumes/vsanDatastore/.iSCSI-CONFIG/
total 16
drwx------ 1 root root 420 Jun 18 17:15 etc
drwx------ 1 root root 420 Jun 16 08:19 targets
[root@esxi01:~] ls -l /vmfs/volumes/vsanDatastore/.iSCSI-CONFIG/etc/
total 0
-rw-rw---- 1 root root 1007 Jun 18 17:15 vit.conf
[root@esxi01:~] cat /vmfs/volumes/vsanDatastore/.iSCSI-CONFIG/etc/vit.conf
generation 17
initiator-group Win-iSCSI-GRP {
initiator iqn.1991-05.com.microsoft:win-53ggkq348ci
}
auth-group default {
auth-type none
}
auth-group 89fb055d-dc24-d742-9a22-0050568e1413 {
auth-type none
initiator-group Win-iSCSI-GRP
}
portal-group default {
discovery-auth-group no-authentication
listen vmk0:3260
}
portal-group pg-vmk0-3260 {
discovery-auth-group no-authentication
listen vmk0:3260
}
target iqn.1998-01.com.vmware:a985217e-de62-a4e7-671a-5f5c5b9b2e35 {
alias "vsantarget"
portal-group pg-vmk0-3260
auth-group 89fb055d-dc24-d742-9a22-0050568e1413
option uuid 89fb055d-dc24-d742-9a22-0050568e1413
option owner-id 89fb055d-dc24-d742-9a22-0050568e1413
lun 0 {
backend vmdk
path 89fb055d-dc24-d742-9a22-0050568e1413/90fb055d-ba4d-0420-d59d-0050568e042f.vmdk
size 6291456
option lun-alias "vsanluns"
}
lun 1 {
backend vmdk
path 89fb055d-dc24-d742-9a22-0050568e1413/391c095d-06a3-2cac-27b2-0050568e042f.vmdk
size 2097152
option lun-alias "vsanluns2"
}
}
[root@esxi01:~] ls -l /vmfs/volumes/vsanDatastore/.iSCSI-CONFIG/targets/
total 8
lrwxrwxrwx 1 root root 42 Jun 16 08:19 89fb055d-dc24-d742-9a22-0050568e1413 -> ../../89fb055d-dc24-d742-9a22-0050568e1413
[root@esxi01:~] ls -l /vmfs/volumes/vsanDatastore/.iSCSI-CONFIG/targets/89fb055d-dc24-d742-9a22-0050568e1413/
total 0
-rw------- 1 root root 519 Jun 18 17:15 391c095d-06a3-2cac-27b2-0050568e042f.vmdk
-rw------- 1 root root 519 Jun 16 08:19 90fb055d-ba4d-0420-d59d-0050568e042f.vmdk
- VITサービスを有効にすると、vSANクラスタのESXiホストはiSCSIのサービスを起動させる。
- iSCSIの操作/制御は、vitd(vSAN iSCSI Target Deamon)によって処理される。
- vitdはiSCSI Discovery protocolに応答/接続を待ち受ける。(CHAP認証もvitdが処理)
- ターゲット/ LUN作成などの管理操作は、vSphere UIまたはesxcliコマンドからのどちらかによって、vsanmgmtdもしくはhostdによって処理される。
- Initial Discovery Process中に、すべてのホストが全ターゲットLUNをイニシエータに提示する。これにより、イニシエータはクラスタ内の任意のホストに接続できる。
- 接続を受け付けると、vitdはvitsafehdと連携し、VMDKファイルをOpen/Closeする。
まず、VITで何かしらトラブル(ex.イニシエータからターゲットボリュームが見えないなど)が発生した場合は、以下の確認が必要そうです。
- vSAN DataStore配下に.iSCSI-Configが存在するか?
- vSANクラスタ内の各ESXiホストはアクセス可能か?
- vCenterから正しく検出されているか?
- vSAN Health TestはAll Passか?
- vitd,vitsafehdなどのiSCSIサービス、vsanmgmtd,hostdなどの管理用サービスが正しく起動しているか?
参考資料
https://storagehub.vmware.com/t/vmware-vsan/vmware-r-vsan-tm-network-design/vit-internals/