Linux/Command/qemu-img
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
ns-lab
nowsky system-lab
DigiLoog
Linux
Windows
開始行:
*qemu-img [#k2d7581e]
[[RedHat 仮想化ガイド>+https://access.redhat.com/document...
KVMディスクイメージ(仮想HDD)を操作する為のコマンド。
ディスクイメージの拡大・縮小、空HDDの追加などを行える。
~
*仮想HDDの拡張 [#caf8ee36]
仮想HDDの容量拡張をおこなっても、ゲストOS側のパーティショ...
その為、容量拡張を行った後にゲストOS側でもパーティション...
例えば、仮想HDDの容量を100GB増やす場合は以下の様になる。
# qemu-img info gest-os.img
image: gest-os.img
file format: qcow2
virtual size: 120G (128849018880 bytes)
disk size: 49G
cluster_size: 65536
# qemu-img resize gest-os.img +100G
~
*仮想HDDの追加 [#s9cac1b3]
仮想HDDを作成する場合は、ホストOSで仮想HDDを作成した後に...
ゲストOS側でフォーマットをする。
-100GBの仮想HDDを追加
-追加する仮想HDDは"/var/libvirt/images/hdd-2nd.img"
-ゲストOSの設定ファイルは"/etc/libvirt/qemu/gest.xml"
# cd /var/libvirt/images
# qemu-img create -f qcow2 hdd-2nd.img 100G
# vi /etc/libvirt/qemu/gest.xml
---
仮想HDDを追加マウントする為、
以下の内容をxmlファイルの<devices>ディレクティブ配下に追...
追加する時は<target dev='***'>や<address slot='***' fonc...
他のxml要素と被らない様にする。
下の記述方法では、追加する仮想HDDをゲストOSの/dev/vdb、
IDEコントローラをPCIスロット10(0x0A)に割り当てている。
===
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/libvirt/images/hdd-2nd.img'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0...
</disk>
仮想HDDを追加した後は、
ゲストOS側から仮想HDDをフォーマットする。
~
*仮想HDDの圧縮 [#t2d45c00]
ゲストOS内でファイルの書き込み削除を繰り替えすと、仮想HDD...
0を書き込まれた空領域に変換されてしまい、ホストOSから見た...
仮想HDDを圧縮する場合は、この0で埋められた箇所を切り詰め...
ただし、圧縮した後はゲストOSの書き込み(iowait)に負荷がか...
敢えて圧縮しないで運用するのも一つの手である。
-圧縮前後ともに、qcow2形式とする
-圧縮前の仮想HDDは"/var/libvirt/images/hdd.img"
-圧縮後の仮想HDDは"/var/libvirt/images/hdd.comp.img"
# qemu-img convert -c -f qcow2 -O qcow2 /var/libvirt/ima...
~
*仮想HDDの固定 [#j7b41ded]
qcow2形式で作成した仮想HDDは、シンプロビジョニング(容量増...
必要となる容量を常に確保しつつ、仮想HDDを拡張しながら書き...
書き込み速度を重視する場合、シックプロビジョニング(容量固...
0パディングされた状態となる為、書き込みオーバーヘッドが減...
qcow2をシックプロビジョニングにする場合、シンプロビジョニ...
-シンプロビジョニング・シックプロビジョニングともに、qcow...
-シンプロビジョニングの仮想HDDは"/var/libvirt/images/hdd....
-シックプロビジョニングの仮想HDDは"/var/libvirt/images/hd...
# qemu-img convert -p -f qcow2 -O qcow2 -o preallocation...
~
*仮想HDDの縮小 [#h0c35457]
仮想HDD領域の容量縮小をするには様々の方法が存在するのだが...
ただし、縮小前のゲストOSが、現在割り当てられている仮想HDD...
容量縮小をする事が出来ない場合もある。
大まかな手順は下記の通り
+縮小後容量で仮想HDDを作成
+GParted LiveCDを使って、ゲストOSを起動(GPartedを起動)
+GPartedを使って縮小前仮想HDDのパーティションを縮小後のパ...
+GPartedのコンソールから、ddコマンドで縮小前仮想HDDを縮小...
+GPartedから、縮小後仮想HDDのパーティションをリサイズ(容...
+ホストOSから縮小前仮想HDDと縮小後仮想HDDを入れ替える
+縮小後仮想HDDを圧縮する
他に前提として下記の通りとする
-縮小前の仮想HDDを150GB、縮小後の仮想HDDを100GBとする
-kvm-libvirtから読み込ませる為に、GPartedはPAE非採用版(gp...
-ゲストOSの設定ファイルは"/etc/libvirt/qemu/gest.xml"
-GPartedのLiveCDは"/var/libvirt/images/gparted.iso"
-縮小前の仮想HDD(150GB)は"/var/libvirt/images/hdd.img"、...
-縮小後の仮想HDD(100GB)は"/var/libvirt/images/hdd.dec.img...
~
----
&font(b){1). 縮小後の仮想HDD作成};
[[仮想HDDの追加>#s9cac1b3]]と同じ操作を行う。
# cd /var/libvirt/images/
# qemu-img create -f qcow2 hdd.dec.img 100G
&font(b){2). 仮想HDDのリサイズ};
後の作業でHDDのダンプをする為に、縮小前のHDDの使用領域を&...
例えば、150GBの仮想HDDから100GBの仮想HDDへ縮小する場合、...
あと、GPartedから仮想HDDを操作する為に、[[縮小後仮想HDDの...
下の設定をゲストOS設定ファイル(xml)の<devices>ディレクテ...
他のアドレス情報である<target>や<address>についても他と被...
さらに、<os>ディレクティブのbootデバイスもcdromに変更する。
# vi /etc/libvirt/qemu/gest.xml
---
<os>
<type arch='x86_64' machine='centos'>hvm</type>
<root>/dev/vda</root>
<boot dev='cdrom'/>
</os>
===
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/libvirt/images/gparted.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' target='0...
</disk>
&font(b){3). 仮想HDDのリサイズ};
GParted上から縮小前仮想HDD上のパーティションをリサイズす...
GUIを見れば使い方はわかるので詳細説明は割愛。
&font(b){4). 仮想HDDのダンプ};
GParted上のコンソールから、縮小前仮想HDDの内容を縮小後仮...
GPartedのrootへログインする為には、rootのパスワード変更を...
ちなみに、GPartedの初期ログインユーザは"user"、パスワード...
$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
$ su -
Password:
# dd if=/dev/vda of=/dev/vdb bs=4096
&font(b){5). 仮想HDDのリサイズ};
縮小後仮想HDD容量はダンプの都合でパーティションを少なくし...
縮小後仮想HDD容量の最大値まで利用出来るように、パーティシ...
パーティションを切り直した後はGPartedを終了する。
&font(b){6). ホストOSから縮小前仮想HDDと縮小後仮想HDDを入...
ゲストOSの起動HDDが縮小前仮想HDDになっている為、縮小後仮...
ひとまず、仮想HDDの入れ替えで対応し、縮小後仮想HDDの起動...
縮小前仮想HDDを削除する。
# cd /var/libvirt/images
# mv hdd.img hdd.original.img
# mv hdd.dec.img hdd.dec.img
&font(b){7). 縮小後仮想HDDの圧縮};
仮想HDDの中身をddした時に、仮想HDDの空領域にも0が書き込ま...
ホストOSから見た仮想HDDの容量が最大値まで増加している。
0パディングされか箇所が勿体ないので、[[仮想HDDの圧縮>#t2d...
&font(b){0). おまけ};
qemu-imgコマンドだけでリサイズする場合、
ゲストOS上でデフラグを掛けた上で以下のコマンドでも出来る。
この時、コマンドの仕様を回避する為に'-'を二回入力する必要...
# qemu-img resize hdd.img -- -50GB
終了行:
*qemu-img [#k2d7581e]
[[RedHat 仮想化ガイド>+https://access.redhat.com/document...
KVMディスクイメージ(仮想HDD)を操作する為のコマンド。
ディスクイメージの拡大・縮小、空HDDの追加などを行える。
~
*仮想HDDの拡張 [#caf8ee36]
仮想HDDの容量拡張をおこなっても、ゲストOS側のパーティショ...
その為、容量拡張を行った後にゲストOS側でもパーティション...
例えば、仮想HDDの容量を100GB増やす場合は以下の様になる。
# qemu-img info gest-os.img
image: gest-os.img
file format: qcow2
virtual size: 120G (128849018880 bytes)
disk size: 49G
cluster_size: 65536
# qemu-img resize gest-os.img +100G
~
*仮想HDDの追加 [#s9cac1b3]
仮想HDDを作成する場合は、ホストOSで仮想HDDを作成した後に...
ゲストOS側でフォーマットをする。
-100GBの仮想HDDを追加
-追加する仮想HDDは"/var/libvirt/images/hdd-2nd.img"
-ゲストOSの設定ファイルは"/etc/libvirt/qemu/gest.xml"
# cd /var/libvirt/images
# qemu-img create -f qcow2 hdd-2nd.img 100G
# vi /etc/libvirt/qemu/gest.xml
---
仮想HDDを追加マウントする為、
以下の内容をxmlファイルの<devices>ディレクティブ配下に追...
追加する時は<target dev='***'>や<address slot='***' fonc...
他のxml要素と被らない様にする。
下の記述方法では、追加する仮想HDDをゲストOSの/dev/vdb、
IDEコントローラをPCIスロット10(0x0A)に割り当てている。
===
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/libvirt/images/hdd-2nd.img'/>
<target dev='vdb' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0...
</disk>
仮想HDDを追加した後は、
ゲストOS側から仮想HDDをフォーマットする。
~
*仮想HDDの圧縮 [#t2d45c00]
ゲストOS内でファイルの書き込み削除を繰り替えすと、仮想HDD...
0を書き込まれた空領域に変換されてしまい、ホストOSから見た...
仮想HDDを圧縮する場合は、この0で埋められた箇所を切り詰め...
ただし、圧縮した後はゲストOSの書き込み(iowait)に負荷がか...
敢えて圧縮しないで運用するのも一つの手である。
-圧縮前後ともに、qcow2形式とする
-圧縮前の仮想HDDは"/var/libvirt/images/hdd.img"
-圧縮後の仮想HDDは"/var/libvirt/images/hdd.comp.img"
# qemu-img convert -c -f qcow2 -O qcow2 /var/libvirt/ima...
~
*仮想HDDの固定 [#j7b41ded]
qcow2形式で作成した仮想HDDは、シンプロビジョニング(容量増...
必要となる容量を常に確保しつつ、仮想HDDを拡張しながら書き...
書き込み速度を重視する場合、シックプロビジョニング(容量固...
0パディングされた状態となる為、書き込みオーバーヘッドが減...
qcow2をシックプロビジョニングにする場合、シンプロビジョニ...
-シンプロビジョニング・シックプロビジョニングともに、qcow...
-シンプロビジョニングの仮想HDDは"/var/libvirt/images/hdd....
-シックプロビジョニングの仮想HDDは"/var/libvirt/images/hd...
# qemu-img convert -p -f qcow2 -O qcow2 -o preallocation...
~
*仮想HDDの縮小 [#h0c35457]
仮想HDD領域の容量縮小をするには様々の方法が存在するのだが...
ただし、縮小前のゲストOSが、現在割り当てられている仮想HDD...
容量縮小をする事が出来ない場合もある。
大まかな手順は下記の通り
+縮小後容量で仮想HDDを作成
+GParted LiveCDを使って、ゲストOSを起動(GPartedを起動)
+GPartedを使って縮小前仮想HDDのパーティションを縮小後のパ...
+GPartedのコンソールから、ddコマンドで縮小前仮想HDDを縮小...
+GPartedから、縮小後仮想HDDのパーティションをリサイズ(容...
+ホストOSから縮小前仮想HDDと縮小後仮想HDDを入れ替える
+縮小後仮想HDDを圧縮する
他に前提として下記の通りとする
-縮小前の仮想HDDを150GB、縮小後の仮想HDDを100GBとする
-kvm-libvirtから読み込ませる為に、GPartedはPAE非採用版(gp...
-ゲストOSの設定ファイルは"/etc/libvirt/qemu/gest.xml"
-GPartedのLiveCDは"/var/libvirt/images/gparted.iso"
-縮小前の仮想HDD(150GB)は"/var/libvirt/images/hdd.img"、...
-縮小後の仮想HDD(100GB)は"/var/libvirt/images/hdd.dec.img...
~
----
&font(b){1). 縮小後の仮想HDD作成};
[[仮想HDDの追加>#s9cac1b3]]と同じ操作を行う。
# cd /var/libvirt/images/
# qemu-img create -f qcow2 hdd.dec.img 100G
&font(b){2). 仮想HDDのリサイズ};
後の作業でHDDのダンプをする為に、縮小前のHDDの使用領域を&...
例えば、150GBの仮想HDDから100GBの仮想HDDへ縮小する場合、...
あと、GPartedから仮想HDDを操作する為に、[[縮小後仮想HDDの...
下の設定をゲストOS設定ファイル(xml)の<devices>ディレクテ...
他のアドレス情報である<target>や<address>についても他と被...
さらに、<os>ディレクティブのbootデバイスもcdromに変更する。
# vi /etc/libvirt/qemu/gest.xml
---
<os>
<type arch='x86_64' machine='centos'>hvm</type>
<root>/dev/vda</root>
<boot dev='cdrom'/>
</os>
===
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/var/libvirt/images/gparted.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' target='0...
</disk>
&font(b){3). 仮想HDDのリサイズ};
GParted上から縮小前仮想HDD上のパーティションをリサイズす...
GUIを見れば使い方はわかるので詳細説明は割愛。
&font(b){4). 仮想HDDのダンプ};
GParted上のコンソールから、縮小前仮想HDDの内容を縮小後仮...
GPartedのrootへログインする為には、rootのパスワード変更を...
ちなみに、GPartedの初期ログインユーザは"user"、パスワード...
$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
$ su -
Password:
# dd if=/dev/vda of=/dev/vdb bs=4096
&font(b){5). 仮想HDDのリサイズ};
縮小後仮想HDD容量はダンプの都合でパーティションを少なくし...
縮小後仮想HDD容量の最大値まで利用出来るように、パーティシ...
パーティションを切り直した後はGPartedを終了する。
&font(b){6). ホストOSから縮小前仮想HDDと縮小後仮想HDDを入...
ゲストOSの起動HDDが縮小前仮想HDDになっている為、縮小後仮...
ひとまず、仮想HDDの入れ替えで対応し、縮小後仮想HDDの起動...
縮小前仮想HDDを削除する。
# cd /var/libvirt/images
# mv hdd.img hdd.original.img
# mv hdd.dec.img hdd.dec.img
&font(b){7). 縮小後仮想HDDの圧縮};
仮想HDDの中身をddした時に、仮想HDDの空領域にも0が書き込ま...
ホストOSから見た仮想HDDの容量が最大値まで増加している。
0パディングされか箇所が勿体ないので、[[仮想HDDの圧縮>#t2d...
&font(b){0). おまけ};
qemu-imgコマンドだけでリサイズする場合、
ゲストOS上でデフラグを掛けた上で以下のコマンドでも出来る。
この時、コマンドの仕様を回避する為に'-'を二回入力する必要...
# qemu-img resize hdd.img -- -50GB
ページ名: