【解決策】VMware ESXiアップデート時の「Errno 28:デバイスに空き領域がありません」エラーの対処法
現象:ESXiアップデート中に「Errno 28」エラーが発生
スタンドアロン構成のVMware ESXiホストを手動でアップデートしようとしたところ、Errno 28 “No space left on device”(デバイスに空き領域がありません)というエラーが発生しました。本記事では、このエラーの原因と具体的な解決手順を解説します。
実行したコマンドは以下のとおりです。
# esxcli software profile update -p ESXi-7.0.0-xxxx-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
[InstallationError] [Errno 28] No space left on device vibs = VMware_bootbank_esx-base_7.0.0-xxxx Please refer to the log file for more details.
確認ポイント1:iノード数の枯渇
エラーメッセージ自体は空き容量不足を示していますが、df -hでストレージの空き容量を確認したところ、十分な空き領域が残っていました。
VMwareのナレッジベースKB 1007638「ESXi/ESX error: No free space left on device」によると、ファイルシステムのiノード(inode)数が上限に達すると、空き容量があっても新規ファイルを作成できなくなる場合があるとのことです。以下のコマンドで確認できます。
stat -f / | grep Inodes | awk '{ print $NF }'
筆者の環境ではFreeの値が十分に大きかったため、iノード枯渇が原因ではありませんでした。
なお、df -hの代わりにvdf -hコマンドを使うと、bootbankなどのシステムパーティションの使用状況も含めて確認できるため、Errno 28の切り分けに役立ちます。
確認ポイント2:スワップファイルの設定
もう一つの有力な原因は、アップグレード処理に必要なホスト側の空きメモリ不足です。ESXiホストがスワップファイルを、利用可能なVMFSデータストアのいずれかに配置できるよう設定しておく必要があります。
vSphere ClientのGUIからは、以下の手順でスワップファイルの配置先を変更できます。
ホスト → 構成 → システムスワップ → 編集 → データストアを使用可能(利用可能なデータストアを選択)
また、次のオプションが有効になっていることも確認してください。
- ホストキャッシュを使用可能(Can use host cache)
- ホストが指定したデータストアをスワップファイルに使用可能(Can use datastore specified by host)
ESXi CLIからVMFSデータストアをスワップファイルとして使用することも可能です。
# esxcli sched swap system set -n VMFSDataStoreName1 -d y
設定を保存したら、ホストのアップデートを再度実行してみてください。
tools-light VIBの手動インストール
スワップファイルの設定を追加した後、今度はvmware tools lightをアップデートできないという別のエラーが発生しました。
[InstallationError] [Errno 28] No space left on device vibs = VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx
この場合は、VIBファイルを手動でダウンロードしてインストールします。
cd /tmp
wget https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib
esxcli software vib install -f -v /tmp/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib
rm /tmp/VMware_locker_tools_light_11.2.5.xxxxxxxxxxxx.vib
コマンド内のVIBファイル名は、実際のエラーメッセージに表示されたVMware_locker_tools_lightのバージョンに置き換えてください。利用可能なバージョンの一覧は、次のコマンドで確認できます。
# esxcli software sources vib list --depot=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml | grep tools-light | sort
その後、改めてESXiビルドのアップデートを実行します。
# esxcli software profile update ...
toolsのアップデートをスキップしてESXi本体を更新する
手動でのVMware Tools Lightアップデートが失敗する場合は、vmtools VIBのアップデートをスキップしてESXiイメージだけを更新する方法もあります。
# esxcli software profile update -p ESXi-version-build --no-tools -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
ホストを再起動した後、改めてVMware_locker_toolsをアップデートします。
# esxcli software vib install -v https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/esx/vmw/vib20/tools-light/VMware_locker_tools-light-version-build.vib
最終手段:ローカルのZIPファイルからアップデート
これらの方法でも解決しない場合は、新しいESXiバージョンのZIPファイル(オフラインバンドル)をダウンロードし、接続済みの任意のデータストアにアップロードしてください。
その後、ローカルのZIPファイルを指定してホストをアップデートします。
# esxcli software vib update -d /vmfs/volumes/YourVMFSDatastore/ESXi700-xxxxxx.zip
オフラインバンドルを使ったアップデートは、オンラインリポジトリへの依存がないため、ネットワークやリポジトリ側の問題を切り分ける手段としても有効です。
-
Windows 10でデバイスドライバーを更新する2つの方法|手動手順と自動ツールの使い方
パソコンのハードウェアに不具合が発生する原因はさまざまですが、その多くはデバイスドライバーが正常に動作していないことに起因します。ドライバーが破損していたり古くなっていたりすると、ハードウェアが異常な挙動を示し、デバイス全体のパフォーマンスに悪影響を及ぼします。本記事では、Windows 10でデバイスドライバーを更新する方法を詳しく解説します。 デバイスドライバーとは? デバイスドライバーとは、OSとハードウェア周辺機器との間で通信を行うためのソフトウェアです。PCに接続されるすべての周辺機器は、パソコンとやり取りするための仲介役を必要とし、その役割を担っているのがドライバーです。ドライバ
-
VMware ESXiで仮想マシンのクローンを作成する手順を徹底解説
本チュートリアルは、一般の家庭ユーザーにはあまり馴染みがないかもしれません。しかし、何らかの理由で環境にVMware ESXiを採用している方にとっては、きっと役立つ内容となるはずです。VMware ESXiは無料で提供されているベアメタル型ハイパーバイザーです。より多機能な有償製品「ESX Server」への購入を促すための、いわば導入版的な位置づけにあります。ESX Serverはあらゆる機能を備えている一方、価格も桁違いに高額です。ESXiは、ベアメタル仮想化における「低コストな選択肢」と言えるでしょう。そのため、上位製品にはある当たり前の機能がいくつか欠けており、クローン作成機能もその