13.3. ストレージボリュームの使用
13.3.1. ストレージボリュームの概念 リンクのコピーリンクがクリップボードにコピーされました!
--pool
storage_pool volume_name の形式を取ります。
virsh vol-info --pool guest_images firstimage
# virsh vol-info --pool guest_images firstimage
Name: firstimage
Type: block
Capacity: 20.00 GB
Allocation: 20.00 GB
13.3.2. ストレージボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
13.3.2.1. virsh を使用したストレージボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
- XML ファイルを使用してストレージボリュームを定義します。a.新規デバイスに必要なストレージボリューム情報を含む一時 XML ファイルを作成します。XML ファイルには、以下を含む特定のフィールドが含まれている必要があります。
名前
- ストレージボリュームの名前。割り当て
- ストレージボリュームのストレージ割り当ての合計数。容量
- ストレージボリュームの論理容量。ボリュームがスパースの場合、この値はallocation
の値とは異なります。ターゲット
- ホストシステムのストレージボリュームのパス、さらに任意でそのパーミッションとラベル。
以下は、ストレージボリューム定義の XML ファイルの例です。この例では、ファイルは~/guest_volume.xml
に保存されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow b.virsh vol-create コマンドを使用して、XML ファイルに基づいてストレージボリュームを作成します。virsh vol-create guest_images_dir ~/guest_volume.xml
# virsh vol-create guest_images_dir ~/guest_volume.xml Vol volume1 created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow c.手順 a で作成した XML ファイルを削除します。 - virsh vol-create-as を実行して、ストレージボリュームを作成します。
virsh vol-create-as guest_images_dir volume1 20GB --allocation 0
# virsh vol-create-as guest_images_dir volume1 20GB --allocation 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - virsh vol-clone コマンドを使用して、既存のストレージボリュームのクローンを作成します。virsh vol-clone コマンドは、クローンを作成するストレージボリュームを含むストレージプールと、新しく作成したストレージボリュームの名前を指定する必要があります。
virsh vol-clone --pool guest_images_dir volume1 clone1
# virsh vol-clone --pool guest_images_dir volume1 clone1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
13.3.2.2. Virtual Machine Manager を使用したストレージボリュームの作成 リンクのコピーリンクがクリップボードにコピーされました!
手順13.11 Virtual Machine Manager を使用したストレージボリュームの作成
ストレージ設定を開く
- Virtual Machine Manager で Edit メニューを開き、Connection Details を選択します。
- Connection Details ウィンドウの Storage タブをクリックします。
図13.11 ストレージタブ
Connection Details ウィンドウの左側のペインには、ストレージプールのリストが表示されます。
ストレージボリュームを作成するストレージプールを選択します。
ストレージプールのリストで、ストレージボリュームを作成するストレージプールをクリックします。選択したストレージプールに設定したストレージボリュームは、画面下部の Volumes ペインに表示されます。新しいストレージボリュームの追加
Volumes リストの上にあるボタンをクリックします。Add a Storage Volume のダイアログが表示されます。
図13.12 ストレージボリュームの作成
ストレージボリュームの設定
以下のパラメーターを使用して、ストレージボリュームを設定します。- Name フィールドにストレージプールの名前を入力します。
- Format リストからストレージボリュームの形式を選択します。
- Max Capacity フィールドに、ストレージボリュームの最大サイズを入力します。
作成を終了します。
Add a Storage Volume のダイアログが閉じ、ストレージボリュームが Volumes リストに表示されます。をクリックします。
13.3.3. ストレージボリュームの表示 リンクのコピーリンクがクリップボードにコピーされました!
13.3.4. データの管理 リンクのコピーリンクがクリップボードにコピーされました!
13.3.4.1. ストレージボリュームのワイプ リンクのコピーリンクがクリップボードにコピーされました!
virsh vol-wipe new-vol vdisk
# virsh vol-wipe new-vol vdisk
13.3.4.2. ストレージボリュームへのデータのアップロード リンクのコピーリンクがクリップボードにコピーされました!
virsh vol-upload --pool pool-or-uuid --offset bytes --length bytes vol-name-or-key-or-path local-file
# virsh vol-upload --pool pool-or-uuid --offset bytes --length bytes vol-name-or-key-or-path local-file
--pool pool-or-uuid
- ボリュームが存在するストレージプールの名前または UUID です。vol-name-or-key-or-path
- アップロードするボリュームの名前または鍵またはパスです。--offset bytes
データの書き込みを開始するストレージボリュームの位置。--length length
- アップロードするデータ量の上限です。注記local-file が指定した--length
よりも大きい場合は、エラーが発生します。
例13.1 ストレージボリュームへのデータのアップロード
virsh vol-upload sde1 /tmp/data500m.empty disk-pool
# virsh vol-upload sde1 /tmp/data500m.empty disk-pool
sde1
は、disk-pool
ストレージプールのボリュームです。/tmp/data500m.empty
のデータが sde1
にコピーされます。
13.3.4.3. ストレージボリュームへのデータのダウンロード リンクのコピーリンクがクリップボードにコピーされました!
vol-download --pool pool-or-uuid --offset bytes --length bytes vol-name-or-key-or-path local-file
# vol-download --pool pool-or-uuid --offset bytes --length bytes vol-name-or-key-or-path local-file
--pool pool-or-uuid
- ボリュームが存在するストレージプールの名前または UUID です。vol-name-or-key-or-path
- ダウンロードするボリュームの名前、鍵、またはパスを指定します。--offset
- データの読み込みを開始するストレージボリュームの位置です。--length length
- ダウンロードするデータ量の上限です。
例13.2 ストレージボリュームからのデータのダウンロード
virsh vol-download sde1 /tmp/data-sde1.tmp disk-pool
# virsh vol-download sde1 /tmp/data-sde1.tmp disk-pool
sde1
は、disk-pool
ストレージプールのボリュームです。sde1
のデータは、/tmp/data-sde1.tmp
にダウンロードされます。
13.3.4.4. ストレージボリュームのサイズ変更 リンクのコピーリンクがクリップボードにコピーされました!
virsh vol-resize --pool pool-or-uuid vol-name-or-path pool-or-uuid capacity --allocate --delta --shrink
# virsh vol-resize --pool pool-or-uuid vol-name-or-path pool-or-uuid capacity --allocate --delta --shrink
--pool pool-or-uuid
が必要です。また、このコマンドでサイズを変更するには、ボリュームのvol-name-or-key-or-path、名前、鍵、またはパスが必要です。
--allocate
が指定されていない限り、新しい容量はスパースである可能性があります。通常、容量は新しいサイズになりますが、--delta
が存在する場合は、既存のサイズに追加されます。--shrink
が存在しない限り、ボリュームを縮小しようとすると失敗します。
--shrink
が指定されていない限り、容量 を負にすることはできず、負の符号は必要ないことに注意してください。capacity はスケーリングされた整数であり、接尾辞がない場合はデフォルトでバイトになります。さらに、このコマンドは、アクティブなゲストが使用していないストレージボリュームに対してのみ安全であることに注意してください。ライブサイズの変更については、「ゲスト仮想マシンのブロックデバイスのサイズの変更」 を参照してください。
例13.3 ストレージボリュームのサイズを変更
virsh vol-resize --pool disk-pool sde1 100M
# virsh vol-resize --pool disk-pool sde1 100M
13.3.5. ストレージボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
13.3.5.1. virsh を使用したストレージボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
virsh vol-delete volume_name --pool guest_images_dir
# virsh vol-delete volume_name --pool guest_images_dir
vol volume_name deleted
13.3.5.2. Virtual Machine Manager を使用したストレージボリュームの削除 リンクのコピーリンクがクリップボードにコピーされました!
手順13.12 Virtual Machine Manager を使用したストレージボリュームの削除
ストレージ設定を開く
- Virtual Machine Manager で Edit メニューを開き、Connection Details を選択します。
- Connection Details ウィンドウの Storage タブをクリックします。
図13.13 ストレージタブ
Connection Details ウィンドウの左側のペインには、ストレージプールのリストが表示されます。
削除するストレージボリュームを選択します。
- ストレージプールのリストで、ストレージボリュームが抽象化されたストレージプールをクリックします。選択したストレージプールに設定されているストレージボリュームのリストが、画面下部の Volumes ペインに表示されます。
- 削除するストレージボリュームを選択します。
ストレージボリュームを削除します。
ボタン (Volumes リストの上) をクリックします。確認ダイアログが表示されます。
13.3.6. ゲストへのストレージデバイスの追加 リンクのコピーリンクがクリップボードにコピーされました!
13.3.6.1. virsh を使用したゲストへのストレージデバイスの追加 リンクのコピーリンクがクリップボードにコピーされました!
NewStorage.xml
と呼ばれる XML ファイルを使用して、ディスクを Guest1 に割り当てます。
virsh attach-disk --config Guest1 ~/NewStorage.xml
# virsh attach-disk --config Guest1 ~/NewStorage.xml
virsh attach-disk --config Guest1 --source /var/lib/libvirt/images/FileName.img --target vdb
# virsh attach-disk --config Guest1 --source /var/lib/libvirt/images/FileName.img --target vdb
13.3.6.2. Virtual Machine Manager を使用したゲストへのストレージデバイスの追加 リンクのコピーリンクがクリップボードにコピーされました!
13.3.6.2.1. ゲストへのストレージボリュームの追加 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンのハードウェアの詳細ウィンドウで Virtual Machine Manager を開きます。
root で virt-manager コマンドを実行するか、ApplicationsSystem Tools Virtual Machine Manager を開き、virt-manager を開きます。 図13.14 Virtual Machine Manager ウィンドウ
ストレージボリュームを追加するゲスト仮想マシンを選択します。をクリックします。ハードウェアの詳細ウィンドウが表示されます。
図13.15 Hardware Details ウィンドウ
Add New Virtual Hardware ウィンドウが開きます。
ハードウェアタイプペインで Storage が選択されていることを確認します。図13.16 Add New Virtual Hardware ウィンドウ
ストレージボリュームのリストを表示します。
Select or create custom storage オプションのボタンを選択します。図13.17 Select Storage Volume ウィンドウ
ストレージボリュームを選択します。
Select Storage Volume ウィンドウの左側にあるリストからストレージプールを選択します。選択したストレージプールのストレージボリュームのリストが、Volumes リストに表示されます。注記ストレージプールは、Select Storage Volume ウィンドウから作成できます。詳細は、「Virtual Machine Manager を使用したストレージプールの作成」 を参照してください。Volumes リストからストレージボリュームを選択します。注記Select Storage Volume ウィンドウから、ストレージボリュームを作成できます。詳細は、「Virtual Machine Manager を使用したストレージボリュームの作成」 を参照してください。ストレージボリュームの設定
Device type リストからデバイスタイプを選択します。利用可能なタイプは、ディスクデバイス、フロッピーデバイス、および LUN パススルーです。Bus type リストからバスの種類を選択します。利用可能なバスの種類は、選択したデバイスタイプによって異なります。Cache modeリストからキャッシュモードを選択します。利用可能なキャッシュモードは次のとおりです: Hypervisor default、none、writethrough、writeback、directsync、unsafe
13.3.6.2.2. ゲストへのデフォルトストレージの追加 リンクのコピーリンクがクリップボードにコピーされました!
/var/lib/libvirt/images/
ディレクトリーのファイルベースのイメージです。
仮想マシンのハードウェアの詳細ウィンドウで Virtual Machine Manager を開きます。
root で virt-manager コマンドを実行するか、ApplicationsSystem Tools Virtual Machine Manager を開き、virt-manager を開きます。 図13.18 Virtual Machine Manager ウィンドウ
ストレージボリュームを追加するゲスト仮想マシンを選択します。をクリックします。ハードウェアの詳細ウィンドウが表示されます。
図13.19 Hardware Details ウィンドウ
Add New Virtual Hardware ウィンドウが開きます。
ハードウェアタイプペインで Storage が選択されていることを確認します。図13.20 Add New Virtual Hardware ウィンドウ
ゲスト用のディスクの作成
Create a disk image for the virtual machine が選択できることを確認します。Create a disk image for the virtual machine オプションボタンの下にあるテキストボックスに、作成するディスクのサイズを入力します。
13.3.6.3. ゲスト仮想マシンでのストレージコントローラーの管理 リンクのコピーリンクがクリップボードにコピーされました!
手順13.13 仮想 SCSI コントローラーの作成
- ゲスト仮想マシン (
Guest1
) の設定を表示し、以前から存在している SCSI コントローラーを検索します。virsh dumpxml Guest1 | grep controller.*scsi
# virsh dumpxml Guest1 | grep controller.*scsi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow デバイスコントローラーが存在する場合は、このコマンドにより、次のような行が 1 つ以上出力されます。<controller type='scsi' model='virtio-scsi' index='0'/>
<controller type='scsi' model='virtio-scsi' index='0'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 前の手順でデバイスコントローラーが表示されなかった場合は、以下の手順に従って、新しいファイルにデバイスコントローラーの説明を作成し、仮想マシンに追加します。
- 新しいファイルに
<controller>
要素を書き込んでデバイスコントローラーを作成し、このファイルを XML 拡張子で保存します。たとえば、virtio-scsi-controller.xml
となります。<controller type='scsi' model='virtio-scsi'/>
<controller type='scsi' model='virtio-scsi'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virtio-scsi-controller.xml
で作成したデバイスコントローラーをゲスト仮想マシン (例: Guest1) に関連付けます。virsh attach-device --config Guest1 ~/virtio-scsi-controller.xml
# virsh attach-device --config Guest1 ~/virtio-scsi-controller.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、--config
オプションはディスクと同じように動作します。詳細は、「ゲストへのストレージデバイスの追加」 を参照してください。
- 新しい SCSI ディスクまたは CD-ROM を追加します。新規ディスクは、「ゲストへのストレージデバイスの追加」 の方法を使用して追加できます。SCSI ディスクを作成する場合は、sd で始まるターゲットデバイス名を指定します。注記各コントローラーでサポートされる制限は 1024 virtio-scsi ディスクですが、ホストで利用可能なその他のリソース (ファイル記述子など) が使い切られ、ディスクが少なくなる可能性があります。詳細は、次の Red Hat Enterprise Linux 6 ホワイトペーパーを参照してください: The next-generation storage interface for the Red Hat Enterprise Linux Kernel Virtual Machine: virtio-scsi
virsh attach-disk Guest1 /var/lib/libvirt/images/FileName.img sdb --cache none
# virsh attach-disk Guest1 /var/lib/libvirt/images/FileName.img sdb --cache none
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ゲスト仮想マシンのドライバーのバージョンによっては、実行中のゲスト仮想マシンで新しいディスクがすぐに検出されない場合があります。『Red Hat Enterprise Linux Storage Administration Guide』 の手順に従います。
13.3.7. ゲストからのストレージデバイスの削除 リンクのコピーリンクがクリップボードにコピーされました!
13.3.7.1. virsh を使用した仮想マシンからのストレージの削除 リンクのコピーリンクがクリップボードにコピーされました!
virsh detach-disk Guest1 vdb
# virsh detach-disk Guest1 vdb
13.3.7.2. Virtual Machine Manager を使用した仮想マシンからのストレージの削除 リンクのコピーリンクがクリップボードにコピーされました!
手順13.14 Virtual Machine Manager を使用した仮想マシンからのストレージの削除
仮想マシンのハードウェアの詳細ウィンドウで Virtual Machine Manager を開きます。
root で virt-manager コマンドを実行するか、ApplicationsSystem Tools Virtual Machine Manager を開き、virt-manager を開きます。 ストレージデバイスを削除するゲスト仮想マシンを選択します。をクリックします。ハードウェアの詳細ウィンドウが表示されます。
ゲスト仮想マシンからストレージを削除します。
ハードウェアの詳細ペインの左側にあるハードウェアのリストから、ストレージデバイスを選択します。