VMwareでNFSストレージを使うのは簡単そうに聞こえますが、時々おかしなことが起こります。特に理由もなく、NFS共有をアンマウントまたは削除できなくなることがあります。vSphereがまだ使用中であることを示すエラーを表示したり、データストアが非アクティブ状態のままになったりすることもあります。これはよくあるイライラする問題です。もしあなたが同じ状況に遭遇したとしても、あなただけではありません。幸いなことに、頭を悩ませることなくこの問題を解決できる手順がいくつかあります。
問題はこうです。ESXi 上の NFS データストアは、実行中の仮想マシン、スナップショット、または設定ミスのために「使用中」とみなされ、アンマウントできないことがあります。場合によっては、残っている設定やストレージ制御設定(Storage I/O Control など)が原因で、システムがアンマウントできないことがあります。幸いなことに、いくつかのコマンドと注意深いチェックでこれを修正できます。仮想マシンをデータストアから移動したり、必要に応じてストレージ制御を無効化したり、SSH 経由でコマンドラインから何らかの魔法を実行したりする必要があるでしょう。場合によっては、状況が根本的に解決しきれず、最終的にクリーンアップするには少し手間取ることもあります。
VMware ESXi における NFS アンマウントの問題を修正する方法
方法1: GUIとvSphere Clientからクリーンアップする
まずはいつもの手順を試してみたいという場合は、これが最も簡単な方法です。通常は、 vSphere で「構成」>「ストレージ」に移動し、NFS データストアを右クリックして「アンマウント」を選択します。VM に関するエラーやリソースが使用中であるというメッセージが表示される場合は、何らかの方法でその NFS 共有にまだ接続されている VM が残っている可能性があります。そのため、以下の手順を実行する必要があります。
- Storage vMotionを使用してそのデータストア上のすべての VM の電源をオフにするか移行し、何も残っていないことを確認します。
- アンマウントをブロックしている可能性のある、マウントまたは登録されたスナップショット、ISO イメージ、または VMDK ファイルがないか確認します。
- Storage DRS がデータストアを管理していないこと、またはデータストア クラスターの一部ではないことを確認します。
- ESXi ホストの詳細なシステム設定
global.logDir(具体的にはやなどの設定) を確認して、ScratchConfig. CurrentScratchLocationログまたはスワップ ファイルがそのデータストアに直接保存されているかどうかを確認します。
設定によっては、これだけでうまくいくかもしれません。しかし、うまくいかず、「リソースは使用中です」などのエラーが表示される場合は、設定を変える必要があります。
方法2: SSHおよびESXCLIコマンドを使用して頑固なデータストアを削除する
この方法は少し手間がかかりますが、GUIが機能しない場合に必要になることがよくあります。まず、ESXiホストでSSHを有効にする必要があります(「ホスト」>「サービス」>「セキュアシェルを有効にする」)。SSHが有効になったら、ターミナルまたはPuTTYで接続し、以下のコマンドを実行します。
# esxcli storage nfs list
マウントされているすべてのNFS共有が表示されます。問題のある共有(例えば )を見つけてくださいdatastore_nfs02。詳細情報を取得するには、以下を実行してください。
# vim-cmd hostsvc/datastore/info datastore_nfs02
アンマウントするには、次のコマンドを使用します。
# esxcli storage nfs remove -v "datastore_nfs02"
ヒント: データストア名にスペースが含まれている場合は、引用符で囲んでください。このコマンドは、ESXi ホストから NFS 共有を切断します。環境内にあるすべてのホストでこの操作を行う必要があります。
データストアでStorage I/O Control (SIOC) が有効になっているためにエラーが発生する場合があります。「使用中」とみなされるものを削除するには、まずSIOCを無効にする必要があります。vSphere CLIまたはPowerCLIスクリプトで確認および変更できます。
注:削除コマンドを実行すると、切断に数秒かかる場合があります。すぐに何も表示されない場合は、少し待ってから、ホストの「構成」タブで「ストレージの更新」または「ストレージの再スキャン」をクリックしてください。完了するまで、データストアがグレー表示または非アクティブのままになる場合があります。
非アクティブまたは「デッド」なデータストアを扱う場合
アンマウント前に NFS 共有がサーバー側から切断された場合、または VM がまだそれを保持している場合は、次のようなエラーが表示されることがあります。
Error performing operation: NFS Error: Unable to Unmount filesystem: Busy
あるいは、データストアが既に削除されているか、完全に作成されていないというメッセージがWindowsに表示されることがあります。これは通常、システムがデータストアがまだ使用中であると認識しているか、何か問題が発生していることを示しています。このような場合は、NFSサーバーがボリュームを共有していないこと、そしてファイアウォールルールでポートTCP/2049が許可されていることを確認してください。ESXiが動作するには、Linux NFSサーバーにアクセスできる必要があるためです。
次のようなコマンドを使用すると、ファイアウォールがブロックされていないことを確認できます。
$ esxcli network firewall ruleset set --ruleset-id nfs41Client --enabled=true $ esxcli network firewall ruleset set --ruleset-id nfsClient --enabled=true
接続を確認した後、削除コマンドを再試行してください。データストアが依然として削除されない場合は、ストレージI/Oコントロールを無効にするか、システム設定で特定の機能をリセットする必要がある可能性があります。
また、データストアが非アクティブとして表示される場合、特にストレージにアクセスできなくなった場合には、vSphere GUI だけでなくコンソールからも削除を実行する必要があることに注意してください。
もちろん、削除する前に必ずすべてを再確認してください。重要なものを誤って削除したくないでしょう。
私の経験では、これらの手順でほとんどの頑固なアンマウント問題を解決できますが、VMの関連付けやネットワークルールの確認、場合によってはSSH経由でコマンドを実行するなど、かなり手間がかかります。面倒に感じるかもしれませんが、慣れてしまえば、あとは手順を追うだけです。
まとめ
- VM の電源をオフにするか、NFS データストアから移行します。
- 共有にスナップショットまたは ISO イメージが保存されていないことを確認します。
- GUI メソッドが失敗した場合は、SSH を使用して
esxcliデータストアを削除します。 - ファイアウォール ルールを確認し、ネットワークの問題から切断します。
- 必要に応じて、ストレージ I/O 制御が無効になっていることを確認します。
まとめ
頑固なNFSデータストアの削除は必ずしも簡単ではありませんが、以下の手順に従えば、たいていは慌てることなく完了します。辛抱強く、VMとスナップショットの状態を二重に確認し、ネットワーク設定も忘れずに行ってください。これで誰かの時間短縮になれば幸いです。頑張ってください!