3.11. シンプロビジョニングされた LVM-VDO ボリュームの管理
LVM-VDO ボリュームの物理領域の使用率が 100% に近づいている状況に対処するために、将来の物理領域の拡張に備えてシンプロビジョニングされた LVM-VDO ボリュームを設定できます。たとえば、lvcreate
操作で -l 100%FREE
を使用する代わりに、'95%FREE' を使用して、必要に応じて後で回復できるように予約領域を確保します。同じ方法を使用して、次の問題を解決できます。
- ボリュームの領域が不足している
- ファイルシステムが読み取り専用モードになる
- ボリュームにより ENOSPC が報告される
LVM-VDO ボリューム上の物理領域使用率が高い場合に対処する最善の方法は、未使用のファイルを削除し、オンライン破棄または fstrim
プログラムを使用して、これらの未使用のファイルによって使用されているブロックを破棄することです。LVM-VDO ボリュームの物理領域は、8192 スラブまでしか拡張できません。これは、デフォルトのスラブサイズが 2 GB の LVM-VDO ボリュームの場合は 16 TB、最大スラブサイズが 32 GB の LVM-VDO ボリュームの場合は 256 TB です。
以下のすべての手順で、myvg と myvdo を、それぞれボリュームグループ名および LVM-VDO 名に置き換えます。
前提条件
- VDO ソフトウェアをインストールしている。詳細は、VDO のインストール を参照してください。
- 空きストレージ容量を持つ LVM ボリュームグループがシステムに存在する。
-
lvcreate --type vdo --name myvdo myvg -l percentage-of-free-space-in-vg --virtualsize virtual-size-of-vdo
コマンドを使用した、シンプロビジョニングされた LVM-VDO ボリューム。詳細は、LVM-VDO ボリュームの作成とマウント を参照してください。
手順
シンプロビジョニングされた LVM-VDO ボリュームの最適な論理サイズを決定します。
vdostats myvg-vpool0-vpool
# vdostats myvg-vpool0-vpool Device 1K-blocks Used Available Use% Space saving% myvg-vpool0-vpool 104856576 29664088 75192488 28% 69%
Copy to Clipboard Copied! 領域の節約率を計算するには、以下の式を使用します。
Savings ratio = 1 / (1 - Space saving%)
Savings ratio = 1 / (1 - Space saving%)
Copy to Clipboard Copied! この例では、次のようになります。
-
約 80 GB のデータセットでは、約
3.22:1
の領域削減率が得られます。 - データセットのサイズにこの比率を乗算すると、潜在的な論理サイズが得られます。同じ領域節約率でより多くのデータが LVM-VDO ボリュームに書き込まれる場合、これは 256 GB になります。
- この数を 200 GB まで下げると、同じ領域節約率の場合、空き物理領域に安全なマージンを確保できる論理サイズになります。
-
約 80 GB のデータセットでは、約
LVM-VDO ボリューム内の空き物理領域を監視します。
vdostats myvg-vpool0-vpool
# vdostats myvg-vpool0-vpool
Copy to Clipboard Copied! このコマンドを定期的に実行すると、LVM-VDO ボリュームの使用済みおよび空き物理領域を監視できます。
オプション: 利用可能な
/usr/share/doc/vdo/examples/monitor/monitor_check_vdostats_physicalSpace.pl
スクリプトを使用して、LVM-VDO ボリュームの物理領域の使用状況に関する警告を表示します。/usr/share/doc/vdo/examples/monitor/monitor_check_vdostats_physicalSpace.pl myvg-vpool0-vpool
# /usr/share/doc/vdo/examples/monitor/monitor_check_vdostats_physicalSpace.pl myvg-vpool0-vpool
Copy to Clipboard Copied! LVM-VDO ボリュームを作成すると、
dmeventd
モニタリングサービスは、LVM-VDO ボリューム内の物理領域の使用状況を監視します。これは、LVM-VDO ボリュームが作成または起動されるとデフォルトで有効になります。LVM-VDO ボリュームのモニタリング中に、
journalctl
コマンドを使用して、ログ内のdmeventd
の出力を表示します。lvm[8331]: Monitoring VDO pool myvg-vpool0-vpool. ... lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 84.63% full. lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 91.01% full. lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 97.34% full.
lvm[8331]: Monitoring VDO pool myvg-vpool0-vpool. ... lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 84.63% full. lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 91.01% full. lvm[8331]: WARNING: VDO pool myvg-vpool0-vpool is now 97.34% full.
Copy to Clipboard Copied! 利用可能な物理領域がほとんどない LVM-VDO ボリュームを修復します。LVM-VDO ボリュームに物理領域を追加できても、ボリュームを拡張する前に領域がいっぱいになった場合は、そのボリュームへの I/O を一時的に停止する必要があるかもしれません。
ボリュームへの I/O を一時的に停止するには、以下の手順を実行します。LVM-VDO ボリューム myvdo には、/users/homeDir パスにマウントされたファイルシステムが含まれています。
ファイルシステムをフリーズします。
xfs_freeze -f /users/homeDir vgextend myvg /dev/vdc2 lvextend -L new-size myvg/vpool0 xfs_freeze -u /users/homeDir
# xfs_freeze -f /users/homeDir # vgextend myvg /dev/vdc2 # lvextend -L new-size myvg/vpool0 # xfs_freeze -u /users/homeDir
Copy to Clipboard Copied! ファイルシステムをアンマウントします。
umount /users/homeDir vgextend myvg /dev/vdc2 lvextend -L new-size myvg/vpool0 mount -o discard /dev/myvg/myvdo /users/homeDir
# umount /users/homeDir # vgextend myvg /dev/vdc2 # lvextend -L new-size myvg/vpool0 # mount -o discard /dev/myvg/myvdo /users/homeDir
Copy to Clipboard Copied! 注記キャッシュされたデータを含むファイルシステムをアンマウントまたはフリーズすると、キャッシュされたデータの書き込みが発生し、LVM-VDO ボリュームの物理領域がいっぱいになる可能性があります。LVM-VDO ボリュームの空き物理領域の監視しきい値を設定する場合は、キャッシュされたファイルシステムデータの最大量を考慮してください。
ファイルシステムが使用しなくなったブロックは、
fstrim
ユーティリティーを使用してクリーンアップできます。VDO ボリュームにマウントしたファイルシステムに対してfstrim
を実行すると、そのボリュームの空き物理領域が増える可能性があります。fstrim
ユーティリティーは、LVM-VDO ボリュームに破棄を送信します。これは、以前使用したブロックへの参照を削除するために使用されます。これらのブロックのいずれかが単一参照されている場合は、物理領域が使用可能になります。VDO の統計情報を確認して、現在の空き領域の量を確認します。
vdostats --human-readable myvg-vpool0-vpool
# vdostats --human-readable myvg-vpool0-vpool Device Size Used Available Use% Space saving% myvg-vpool0-vpool 100.0G 95.0G 5.0G 95% 73%
Copy to Clipboard Copied! 未使用のブロックを破棄します。
fstrim /users/homeDir
# fstrim /users/homeDir
Copy to Clipboard Copied! LVM-VDO ボリュームの空き物理領域を表示します。
vdostats --human-readable myvg-vpool0-vpool
# vdostats --human-readable myvg-vpool0-vpool Device Size Used Available Use% Space saving% myvg-vpool0-vpool 100.0G 30.0G 70.0G 30% 43%
Copy to Clipboard Copied! この例では、ファイルシステムで
fstrim
を実行した後、LVM-VDO ボリュームで使用する物理領域 65 G が破棄によって回収されました。注記重複排除と圧縮のレベルが低いボリュームを破棄すると、重複排除と圧縮のレベルが高いボリュームを破棄するよりも、物理領域を回収できます。重複排除と圧縮のレベルが高いボリュームでは、物理領域を回収するために、未使用のブロックを破棄するだけでなく、より詳細なクリーンアップが必要になる可能性があります。