目次

Synology DS918+ にリプレースしたらESXiがiSCSIマウントに失敗していた


[

Synology DS918+を購入した
DropboxやiCloud, Google Driveなど、クラウドストレージサービスの利用が当たり前な今、Synology DS918+を家庭用NASとして導入することにしました。長年利用していたDS411jを買い替え、Synology製品間での新旧モデルでデータの移設をしました。
][1]{.blogcard-wrap.internal-blogcard-wrap.a-wrap.cf}

前回からの続き。

Synology DS918+ に無事移行が終わったと思って数日後、メインで利用しているWindows機の特定のディスクにアクセスできていないことに気がついた。

esxiでATSの初期化に失敗

リプレース直後、NFS周りのR/Wは確認していたのだが、(使っていること自体を忘れていた)特定のディスクだけiSCSIを利用してマウントしていたことに数日間気がつかなかった上、普段利用しないtmp領域だったこともあり、発覚が遅れた。

iSCSIのディスクがおかしそうだとようやく気がつき、ESXiにログインしたところ、
ATSのみのVMFSボミューム がマウントされていません。ホストがATSをサポートしていないか、ATSの初期化が失敗しています。」との警告がずっと出ていた…orz。
「ATS云々とはなんぞや」と思いながらぐぐるとESXi5.2以降で実装された Atomic Test and Setという機能だとのこと
Diskstationとしては7年以上新しくなっていることもあり、旧製品では対応していなかったが、DS918+では対応した機能なのか、旧製品でも対応していてリプレースしたことによるトラブルなのか判断がつき難いところ。
そもそものATSとは、
VMFS は ATS アルゴリズム (Hardware Assisted Locking とも呼ばれる) を使用します。SCSI 予約とは異なり、ATS では、ディスク セクタ単位での異なるロックに対応します。
 つまりは、これまで、SCSIはLUN単位で排他制御をかけて、R/Wをしていたが、それだと複数のVMからアクセスした場合、同じLUNを利用しているVMのR/Wに影響するため、ディスクセクタ単位でファイルの排他制御をするようにした機能。ということかな?

Diskstationをリプレースする=その上で稼働していたVMはホストも含めてきちんと停止させていたはずなので、排他制御が残っているとは考え難い・・・。となると原因として考えられるのは、ATSの初期化に失敗の可能性があるのだろうか。
とにかくまずはiSCSIのディスクのサルベージさえできれば良いし、そのためにはマウントさえできればよい。ATSの初期化に失敗しているということなので、iSCSI(ディスク)に問題があるわけではなく、ESXiの設定に問題があるため、ATS機能をOFFにしつつ、iSCSIをマウントする方法がないかを検討した。

ATS機能をOFFにするには

そもそものATS機能はVAAI( vStorage API for Array Integration )の一部になるらしい。
VAAIとは結局のところ、ストレージ側にホスト(ESXi)の機能をオフロードして、「ストレージのことはストレージ側で処理をしてね。」という機能。自宅鯖では、ホストにしろストレージにしろそこまでスペックを求めていないため、ATS機能どころかVAAI機能も必要ない。そこでATS機能のOFFではなくVAAI機能のOFFができないかを探すことにした。
そうしたところ、ATS機能単独の無効化はわからなかったが、少なくともVAAI機能をオフにするには、
HardwareAcceleratedMove
HardwareAcceleratedInit
HardwareAcceleratedLocking
の3つの設定値をいじれば良さそうである
powerCLIで行ってもいいが、エラー確認のため、HTML版とクライアント版のvSphereCLIを立ち上げていたので、そちらから設定することにした。片方で設定して、片方で反映されたかを念のために確認した。
<p class="wp-caption-text">
  ESXIでATS初期化に失敗_VAAI設定編集画面
</p>
<p class="wp-caption-text">
  ESXIでATS初期化に失敗_VAAI設定編集画面
</p>
<p class="wp-caption-text">
  ESXIでATS初期化に失敗_VAAI設定編集画面
</p>
設定後、念のためESXiホストをシャットダウン後にDiskStationを再起動。DiskStationが起動しきった後にホストを起動。
無事にiSCSIへのアクセスができました!(`・ω・´)