Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

21.14. virt-sparsify: ディスクの空白領域の再利用

virt-sparsify コマンドラインツールを使用して、仮想マシンディスク(またはディスクイメージ)スパースを作成できます。これはシンプロビジョニングとしても知られています。ディスクイメージの空きディスク領域が、ホスト上の空き領域に変換されます。
virt-sparsify コマンドは、ext2、ext3、ext4、btrfs、NTFS などのほとんどのファイルシステムで機能します。また、LVM 物理ボリュームでも機能します。virt-sparsify は、仮想マシンのディスクイメージだけでなく、すべてのディスクイメージで動作します。
警告
ライブ仮想マシンで virt-sparsify を使用する場合、または他のディスク編集ツールと同時にディスクが破損する可能性があります。このコマンドを使用する前に、仮想マシンをシャットダウンする必要があります。また、ディスクイメージを同時に編集することはできません。
このコマンドは、一部のディスク形式間の変換にも使用できます。たとえば、virt-sparsify は、raw ディスクイメージをシンプロビジョニングの qcow2 イメージに変換できます。
注記
仮想マシンに複数のディスクがあり、ボリューム管理を使用する場合は、virt-sparsify は機能しませんが、これは非常に効果的ではありません。
入力が raw の場合、デフォルトの出力は raw sparse になります。出力イメージのサイズは、スパースを認識するツールを使用してチェックする必要があります。
$ ls -lh test1.img
-rw-rw-r--. 1 rjones rjones 100M Aug  8 08:08 test1.img
$ du -sh test1.img
3.6M   test1.img
ls コマンドでは、イメージサイズが 100M になっていることに注意してください。ただし、du コマンドは、3.6M のイメージサイズを正しく表示します。

重要な制限

以下は重要な制約の一覧です。
  • virt-sparsify を使用する前に、仮想マシンをシャットダウンする必要があります
  • 最悪のシナリオでは、virt-sparsify はソースディスクイメージの仮想サイズの 2 倍に必要になる場合があります。一時コピー用と宛先イメージ用 x 1
    --in-place オプションを使用する場合は、大量の一時領域は必要ありません。
  • virt-sparsify は、ディスクイメージのサイズ変更には使用できません。ディスクイメージのサイズを変更するには、virt-resize を使用します。virt-resize 「virt-resize: ゲスト仮想マシンのオフラインでのサイズ変更」
  • 暗号化されたディスクはスパース化できないため、virt-sparsify は暗号化されたディスクでは機能しません。
  • virt-sparsify は、パーティション間の領域をスパース化できません。この領域は、ブートローダーなどの重要な項目によく使用されているため、未使用の領域ではありません。
  • コピーモードでは、qcow2 内部スナップショットは宛先イメージにコピーされません。

virt-sparsify をインストールするには、以下のいずれかのコマンドを実行します。
# yum install /usr/bin/virt-sparsify
または
# yum install libguestfs-tools-c
ディスクをスパース化するには、以下を行います。
# virt-sparsify /dev/sda1 /dev/device
/dev/sda1 の内容を /dev /device にコピーし、出力スパースにします。/dev/device がすでに存在する場合は、上書きされます。/dev/sda1 の形式を検出し、/dev/device 形式として使用されます。
形式間で変換するには、以下を行います。
# virt-sparsify disk
.raw --convert qcow2 disk.qcow2
ソースディスクイメージ内の中から、ゼロに掛けて、すべてのファイルシステムで空き領域をスパース化しようとします。
特定のファイルシステムで空き領域がゼロで上書きされるのを防ぐには、以下を実行します。
# virt-sparsify --ignore /dev/device /dev/sda1 /dev/device
ファイルシステムの空き領域をゼロで上書きせずに、ディスクイメージのすべてのファイルシステムのスパース化されたディスクイメージを作成する。
一時コピーを作成せずにディスクイメージのスパースを行うには、以下を行います。
# virt-sparsify --in-place disk
.img
指定されたディスクイメージスパースを行い、イメージファイルを上書きします。

virt-sparsify オプション

virt-sparsify と併用するには、以下のコマンドオプションを使用することができます。

表21.4 virt-sparsify オプション

コマンド 説明
--help 特定のコマンドまたは virt-sparsify ユーティリティーに関する簡単なヘルプエントリーを表示します。詳細は、man ページの virt-sparsify を参照してください。 virt-sparsify --help
--check-tmpdir ignore|continue|warn|fail 操作を実行するのに十分なスペースがある場合にtmpdir が推定されます。指定したオプションにより、操作を完了するのに十分な領域がない場合に動作が決定されます。
  • Ignore: 問題は無視され、操作が続行されます。
  • : エラーを報告し、操作は継続します。
  • 警告: エラーを報告し、ユーザーが Enter を押すのを待機します。
  • 失敗: エラーを報告し、操作を中止します。
--in-place オプションではこのオプションを使用することはできません。
virt-sparsify --check-tmpdir ignore /dev/sda1 /dev/device
virt-sparsify --check-tmpdir continue /dev/sda1 /dev/device
virt-sparsify --check-tmpdir warn /dev/sda1 /dev/device
virt-sparsify --check-tmpdir fail /dev/sda1 /dev/device
--compress 出力ファイルを圧縮します。これは、出力形式が qcow2 の場合にのみ機能します。--in-place オプションではこのオプションを使用することはできません。 virt-sparsify --compress /dev/sda1 /dev/device
--convert
指定の形式を使用してスパースイメージを作成します。フォーマットを指定しないと、入力形式が使用されます。
以下の出力形式は、raw、qcow、vdi で動作することが分かっています。
QEMU エミュレーターでサポートされているすべての形式を使用できます。
--convert オプションを使用することが推奨されます。このため、virt-sparsify は入力形式を推測する必要はありません。
--in-place オプションではこのオプションを使用することはできません。
virt-sparsify --convert raw /dev/sda1 /dev/device
virt-sparsify --convert qcow2 /dev/sda1 /dev/device
virt-sparsify --convert other_format indisk outdisk
--format 入力ディスクイメージの形式を指定します。指定されていない場合、形式はイメージから検出されます。信頼できない未フォーマットのゲストディスクイメージを使用する場合には、必ず形式を指定してください。
virt-sparsify --format raw /dev/sda1 /dev/device
virt-sparsify --format qcow2 /dev/sda1 /dev/device
--ignore
指定したファイルシステムまたはボリュームグループを無視します。
ファイルシステムを指定し、--in-place オプションを指定しないと、ファイルシステムの空き領域はゼロになりません。ただし、ゼロの既存のブロックは sparsified です。--in-place オプションを指定すると、ファイルシステムは完全に無視されます。
ボリュームグループを指定すると、ボリュームグループは無視されます。ボリュームグループ名は、/dev/ 接頭辞なしで使用する必要があります。例: --ignore vg_foo
--ignore オプションは、コマンドを複数回追加できます。
virt-sparsify --ignore filesystem1 /dev/sda1 /dev/device
virt-sparsify --ignore volume_group/dev/sda1 /dev/device
--in-place
一時的なコピーを作成する代わりに、イメージスパースのインプレースを作成します。In-place スパース化は、スパース化をコピーするよりも効率的ですが、スケーションをコピーするのに非常に多くのディスク領域を回復することはできません。In-place sparsification は、Trimt(trim または unmap)サポートを使用して機能します。
In-place sparsification を使用するには、Sparsified in-place となるディスクイメージを指定します。
In-place sparsification を指定する場合には、以下のオプションを使用することはできません。
  • --convert および --compress するには、ディスク形式の全体の変更が必要になるためです。
    --check-tmpdir: 一時領域が大量に必要ないためです。
virt-sparsify --in-place disk.img
-x libguestfs API 呼び出しのトレースを有効にします。 virt-sparsify -x filesystem1 /dev/sda1 /dev/device

このページには機械翻訳が使用されている場合があります (詳細はこちら)。