ディスクとネットワークの入出力オペレーションに対して、Confidential VM は SWIOTLB(Software Input Output Translation Lookaside Buffer)というメモリ内の特定の領域を使用します(デフォルトのサイズは 64 MB)。SWIOTLB はゲストで使用可能な RAM の合計容量に含まれます。
Confidential VM インスタンスで swiotlb buffer is full
エラーが発生したかどうかを確認するには、インスタンスに接続し、次のコマンドを実行して dmesg
ログをクエリします。
dmesg | grep 'swiotlb buffer is full'
この問題を解決するには、SWIOTLB のサイズを増やします。サイズを増やす前に、SWIOTLB とオペレーティング システムに十分な RAM 容量がゲストに残っていることを確認してください。
SWIOTLB のサイズを増やす
SWIOTLB のサイズを増やすには、次の行を
/etc/default/grub
に追加します。GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=SIZE_IN_BYTES"
次の例は、SWIOTLB のサイズを 512 MB に増やす方法を示しています。
GRUB_CMDLINE_LINUX_DEFAULT=".... swiotlb=262144"
Ubuntu のバージョンに基づいて、
grub
ファイルの文字列を更新する必要があります。たとえば、Ubuntu 18.04 を使用している場合は、GRUB_CMDLINE_LINUX_DEFAULT
文字列ではなくGRUB_CMDLINE_LINUX
文字列を更新する必要があります。次のコマンドを実行して
grub.cfg
を再生成します。Ubuntu
sudo update-grub
その他のディストリビューション
grubcfg="/etc/grub2-efi.cfg" cp $grubcfg $grubcfg.bak grub2-mkconfig -o $grubcfg
VM を再起動します。
詳細については、SWIOTLB の上限を増やす方法をご覧ください。