12.4. 仮想マシンへのストレージの接続
仮想マシン (VM) にストレージを追加するには、ストレージリソースを仮想ディスクとして仮想マシンに接続します。仮想ディスクは、物理ストレージデバイスと同様に、接続されている仮想マシンから独立しており、他の仮想マシンに移動できます。
複数の種類のストレージリソースを使用して、仮想ディスクを仮想マシンに追加できます。
12.4.1. コマンドラインを使用してファイルベースの仮想ディスクを仮想マシンに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。
コマンドラインでこれを行うには、次のいずれかの方法を使用できます。
libvirtによって管理されるディレクトリーベースのストレージプールに、ファイルベースのストレージボリュームを作成します。これには複数のステップが必要ですが、ハイパーバイザーとの統合が強化されます。RHEL 10 ホストで最初の仮想マシンを作成するときに、デフォルトのディレクトリーベースのストレージボリュームが自動的に作成されることに注意してください。このストレージプールの名前は、ディスクイメージを保存するディレクトリーの名前に基づいています。たとえば、
libvirtのsystemセッションでは、デフォルトでディスクイメージが/var/lib/libvirt/images/ディレクトリーに保存され、ストレージプールの名前がimagesになります。qemu-imgコマンドを使用して、ホストファイルシステム上のファイルとして仮想ディスクを作成します。これはより高速な方法ですが、libvirtとの統合は提供されません。そのため、
qemu-imgを使用して仮想ディスクを作成すると、作成後にディスクを管理するのが難しくなります。
コマンドラインで新しい仮想マシンを作成するときに、ファイルベースの仮想ディスクを作成して接続することもできます。これを行うには、virt-install ユーティリティーで --disk オプションを使用します。詳細な手順は、仮想マシンの作成 を参照してください。
手順
オプション: 仮想ディスクをストレージボリュームとして作成するが、ホスト上のデフォルトの
imagesストレージプールまたは別の既存のストレージプールを使用しない場合は、新しいディレクトリーベースのストレージプールを作成して設定します。ディレクトリータイプのストレージプールを設定します。たとえば、
/guest_imagesディレクトリーを使用するguest_images_dirという名前のストレージプールを作成するには、次のコマンドを実行します。virsh pool-define-as guest_images_dir dir --target "/guest_images" Pool guest_images_dir defined
# virsh pool-define-as guest_images_dir dir --target "/guest_images" Pool guest_images_dir definedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以前に定義した設定に基づいて、ストレージプールのターゲットパスを作成します。
virsh pool-build guest_images_dir Pool guest_images_dir built
# virsh pool-build guest_images_dir Pool guest_images_dir builtCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージプールを起動します。
virsh pool-start guest_images_dir Pool guest_images_dir started
# virsh pool-start guest_images_dir Pool guest_images_dir startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ホストの起動時にストレージプールが起動するように設定します。
virsh pool-autostart guest_images_dir Pool guest_images_dir marked as autostarted
# virsh pool-autostart guest_images_dir Pool guest_images_dir marked as autostartedCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: ストレージプールが
running状態であることを確認します。報告されるサイズが期待どおりであるか、また、自動開始が正しく設定されているかを確認してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ファイルベースの仮想ディスクを作成します。これを行うには、以下のいずれかの方法を使用します。
libvirtによって管理されないファイルベースの仮想マシンディスクをすばやく作成するには、qemu-imgユーティリティーを使用します。たとえば、次のコマンドは、サイズが 30 ギガバイトの test-image という名前の
qcow2ディスクイメージを作成します。qemu-img create -f qcow2 test-image 30G Formatting 'test-image', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16
# qemu-img create -f qcow2 test-image 30G Formatting 'test-image', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=32212254720 lazy_refcounts=off refcount_bits=16Copy to Clipboard Copied! Toggle word wrap Toggle overflow libvirtによって管理されるファイルベースの仮想マシンディスクを作成するには、既存のディレクトリーベースのストレージプールに基づいてディスクをストレージボリュームとして定義します。たとえば、次のコマンドは、
guest_images_dirストレージプールに基づいて、vm-disk1という名前の 20 GB のqcow2ボリュームを作成します。virsh vol-create-as --pool guest_images_dir --name vm-disk1 --capacity 20GB --format qcow2 Vol vm-disk1 created
# virsh vol-create-as --pool guest_images_dir --name vm-disk1 --capacity 20GB --format qcow2 Vol vm-disk1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow
作成した仮想ディスクの場所を確認します。
-
qemu-imgで作成した仮想マシンディスクの場合、これは通常カレントディレクトリーです。 ストレージボリュームの場合は、ボリュームが属するストレージプールを調べます。
virsh vol-list --pool guest_images_dir --details Name Path Type Capacity Allocation -------------------------------------------------------------------------- vm-disk1 /guest-images/vm-disk1 file 20.00 GiB 196.00 KiB
# virsh vol-list --pool guest_images_dir --details Name Path Type Capacity Allocation -------------------------------------------------------------------------- vm-disk1 /guest-images/vm-disk1 file 20.00 GiB 196.00 KiBCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。
virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -
# virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
virsh attach-diskコマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。たとえば、次のコマンドは、以前に作成した
test-disk1をvdcデバイスとしてtestguest1仮想マシンに接続します。virsh attach-disk testguest1 /guest-images/vm-disk1 vdc --persistent
# virsh attach-disk testguest1 /guest-images/vm-disk1 vdc --persistentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.2. Web コンソールを使用してファイルベースの仮想ディスクを仮想マシンに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。
これを行うには、libvirt によって管理されるディレクトリーベースのストレージプールに、ファイルベースのストレージボリュームを作成します。RHEL 10 ホストで最初の仮想マシンを作成するときに、デフォルトのディレクトリーベースのストレージボリュームが自動的に作成されます。このストレージプールの名前は、ディスクイメージを保存するディレクトリーの名前に基づいています。たとえば、libvirt の system セッションでは、デフォルトでディスクイメージが /var/lib/libvirt/images/ ディレクトリーに保存され、ストレージプールの名前が images になります。
Web コンソールで新しい仮想マシンを作成するときに、ファイルベースの仮想ディスクを作成して接続することもできます。これを行うには、Create virtual machine ダイアログの Storage オプションを使用します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。
前提条件
RHEL 10 Web コンソールがインストールされている。
手順は、Web コンソールのインストールおよび有効化 を参照してください。
- Web コンソールの仮想マシンプラグインが システムにインストールされている。
手順
- RHEL 10 Web コンソールにログインします。
オプション: デフォルトの
imagesストレージプールを使用して新しい仮想ディスクを作成しない場合は、新しいストレージプールを作成します。-
Virtual Machines インターフェイスの上部にある
Storage PoolsCreate storage poolをクリックします。 - Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
- Type ドロップダウンメニューで、Filesystem directory を選択します。
以下の情報を入力します。
- Target path - ストレージプールの場所です。
- 起動 - ホストの起動時にストレージプールが起動するかどうか
をクリックします。
ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。
-
Virtual Machines インターフェイスの上部にある
既存のストレージプールに基づいて新しいストレージボリュームを作成します。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
Storage VolumesCreate volumeを選択します。 Create Storage Volume ダイアログに次の情報を入力します。
- Name - ストレージボリュームの名前。
- サイズ - ストレージボリュームのサイズ (MiB または GiB)。
-
フォーマット - ストレージボリュームの形式。サポートされているタイプは
qcow2およびrawです。
- をクリックします。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
- オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
作成したストレージボリュームをディスクとして仮想マシンに追加します。
インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。
新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。
- までスクロールします。
- Disks セクションで、 をクリックします。
- Add disks ダイアログで、 を選択します。
- ディスクに使用するストレージプールとストレージボリュームを選択します。
ディスクを永続化するかどうかを選択します。
注記一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。
- オプション: をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
- をクリックします。
検証
- 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.3. コマンドラインを使用してディスクベースのストレージを仮想マシンに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) にローカルストレージを提供する場合、ディスクベースのディスクイメージを使用できます。このタイプのディスクイメージは、ホスト上のディスクパーティションに基づいており、.qcow2 または .raw 形式を使用します。
コマンドラインを使用してディスクベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。
-
新しい仮想マシンを作成する場合は、
--diskオプションを使用して、virt-installコマンドによる操作の一部として新しいディスクを作成して接続します。詳細な手順は、仮想マシンの作成 を参照してください。 - 既存の仮想マシンの場合は、ディスクベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
前提条件
ハイパーバイザーがディスクベースのストレージプールをサポートしていることを確認します。
virsh pool-capabilities | grep "'disk' supported='yes'"
# virsh pool-capabilities | grep "'disk' supported='yes'"Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力が表示される場合には、ディスクベースのプールはサポートの対象です。
ストレージプールのベースとなるデバイスを準備します。この目的のために、パーティション (
/dev/sdb1など) または LVM ボリュームを優先します。ディスク全体またはブロックデバイス (/dev/sdbなど) への書き込みアクセスを仮想マシンに提供すると、その仮想マシンはそれをパーティション分割するか、その上に独自の LVM グループを作成する可能性があります。これにより、ホストでシステムエラーが発生する可能性があります。ただし、ストレージプールにブロックデバイス全体を使用する必要がある場合、Red Hat は、デバイス上の重要なパーティションを GRUB の
os-prober機能から保護することを推奨します。これを行うには、/etc/default/grubファイルを編集して、次のいずれかの設定を適用します。os-proberを無効にします。GRUB_DISABLE_OS_PROBER=true
GRUB_DISABLE_OS_PROBER=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用するパーティションが
os-proberによって検出されないようにします。以下に例を示します。GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"
GRUB_OS_PROBER_SKIP_LIST="5ef6313a-257c-4d43@/dev/sdb1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
ストレージプールを作成する前に、選択したストレージデバイス上のデータをバックアップします。使用されている
libvirtのバージョンによっては、ディスクをストレージプール専用にすると、ディスクデバイスに現在保存されているすべてのデータが再フォーマットされ、消去される可能性があります。
手順
ディスクベースのストレージプールがまだない場合は、新しいディスクベースのストレージプールを作成して設定します。
ディスクタイプのストレージプールを定義および作成します。次の例では、/dev/sdb デバイスを使用し、/dev ディレクトリーにマウントされる
guest_images_diskという名前のストレージプールを作成します。virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev Pool guest_images_disk defined
# virsh pool-define-as guest_images_disk disk --source-format=gpt --source-dev=/dev/sdb --target /dev Pool guest_images_disk definedCopy to Clipboard Copied! Toggle word wrap Toggle overflow フォーマット済みのファイルシステムストレージプールのストレージプールターゲットパスを作成し、ストレージソースデバイスを初期化して、データのフォーマットを定義します。
virsh pool-build guest_images_disk Pool guest_images_disk built
# virsh pool-build guest_images_disk Pool guest_images_disk builtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: プールが作成されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージプールを起動します。
virsh pool-start guest_images_disk Pool guest_images_disk started
# virsh pool-start guest_images_disk Pool guest_images_disk startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記virsh pool-startコマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。オプション: 自動起動をオンにします。
デフォルトでは、
virshで定義したストレージプールは、仮想化サービスが起動するたびに自動的に起動するように設定されません。virsh pool-autostartコマンドを使用して、ストレージプールを自動的に起動するように設定します。virsh pool-autostart guest_images_disk Pool guest_images_disk marked as autostarted
# virsh pool-autostart guest_images_disk Pool guest_images_disk marked as autostartedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ディスクベースのストレージボリュームを作成します。たとえば、次のコマンドは、
guest_images_diskストレージプールに基づいて、vm-disk1という名前の 20 GB のqcow2ボリュームを作成します。virsh vol-create-as --pool guest_images_disk --name sdb1 --capacity 20GB --format extended Vol vm-disk1 created
# virsh vol-create-as --pool guest_images_disk --name sdb1 --capacity 20GB --format extended Vol vm-disk1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージボリュームを仮想ディスクとして仮想マシンに接続します。
作成したストレージボリュームの場所を確認します。これを行うには、ボリュームが属するストレージプールを調べます。
virsh vol-list --pool guest_images_disk --details Name Path Type Capacity Allocation --------------------------------------------------------------------- sdb1 /dev/sdb1 block 20.00 GiB 20.00 GiB
# virsh vol-list --pool guest_images_disk --details Name Path Type Capacity Allocation --------------------------------------------------------------------- sdb1 /dev/sdb1 block 20.00 GiB 20.00 GiBCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。
virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -
# virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
virsh attach-diskコマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。たとえば、次のコマンドは、以前に作成した
vm-disk1をvdcデバイスとしてtestguest1仮想マシンに接続します。virsh attach-disk testguest1 /dev/sdb1 vdc --persistent
# virsh attach-disk testguest1 /dev/sdb1 vdc --persistentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.4. Web コンソールを使用してディスクベースのストレージを仮想マシンに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。
Web コンソールを使用してディスクベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。
-
新しい仮想マシンを作成する場合は、
Create virtual machineダイアログのStorageオプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。 - 既存の仮想マシンの場合は、ディスクベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
前提条件
RHEL 10 Web コンソールがインストールされている。
手順は、Web コンソールのインストールおよび有効化 を参照してください。
- Web コンソールの仮想マシンプラグインが システムにインストールされている。
手順
- RHEL 10 Web コンソールにログインします。
ディスクベースのストレージプールがまだない場合は、新しいディスクベースのストレージプールを作成して設定します。
-
Virtual Machines インターフェイスの上部にある
Storage PoolsCreate storage poolをクリックします。 - Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
Type ドロップダウンメニューで、Physical disk device を選択します。
注記ドロップダウンメニューに Physical disk device オプションが表示されない場合、ハイパーバイザーによってディスクベースのストレージプールがサポートされていません。
以下の情報を入力します。
- Target Path - ターゲットデバイスを指定するパス。ストレージプールに使用されるパスになります。
-
Source path - ストレージデバイスを指定するパス。たとえば、
/dev/sdbです。 - Format - パーティションテーブルのタイプ。
- 起動 - ホストの起動時にストレージプールが起動するかどうか
をクリックします。
ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。
-
Virtual Machines インターフェイスの上部にある
既存のストレージプールに基づいて新しいストレージボリュームを作成します。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
Storage VolumesCreate volumeを選択します。 Create Storage Volume ダイアログに次の情報を入力します。
- Name - ストレージボリュームの名前。
- サイズ - ストレージボリュームのサイズ (MiB または GiB)。
- フォーマット - ストレージボリュームの形式。
- をクリックします。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
- オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
作成したストレージボリュームをディスクとして仮想マシンに追加します。
インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。
新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。
- までスクロールします。
- Disks セクションで、 をクリックします。
- Add disks ダイアログで、 を選択します。
- ディスクに使用するストレージプールとストレージボリュームを選択します。
ディスクを永続化するかどうかを選択します。
注記一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。
- オプション: をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
- をクリックします。
検証
- 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.5. コマンドラインを使用して LVM ベースのストレージを仮想マシンに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) にローカルストレージを提供する場合、LVM ベースのストレージボリュームを使用できます。このタイプのディスクイメージは LVM ボリュームグループに基づいており、.qcow2 または .raw 形式を使用します。
コマンドラインを使用して LVM ベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。
-
新しい仮想マシンを作成する場合は、
Create virtual machineダイアログのStorageオプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。 - 既存の仮想マシンの場合は、LVM ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
LVM ベースのストレージボリュームには次の制限があることに注意してください。
- LVM ベースのストレージプールは、LVM の柔軟性を完全には提供しません。
-
LVM ベースのストレージプールは、ボリュームグループです。
virshユーティリティーを使用してボリュームグループを作成できますが、この方法では、作成したボリュームグループには 1 つのデバイスしか作成できません。複数のデバイスを持つボリュームグループを作成する場合は、代わりに LVM ユーティリティーを使用します。詳細は、How to create a volume group in Linux with LVM を参照してください。 -
LVM ベースのストレージプールには、完全なディスクパーティションが必要です。
virshコマンドを使用して新しいパーティションまたはデバイスをアクティブにすると、パーティションがフォーマットされ、すべてのデータが消去されます。次の手順で説明しているように、ホストの既存のボリュームグループを使用している場合は、何も消去されません。
前提条件
ハイパーバイザーが LVM ベースのストレージプールをサポートしていることを確認します。
virsh pool-capabilities | grep "'logical' supported='yes'"
# virsh pool-capabilities | grep "'logical' supported='yes'"Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力が表示される場合には、LVM ベースのストレージプールはサポートの対象です。
- ホスト上に LVM ボリュームグループが存在することを確認します。作成手順は、LVM ボリュームグループの作成 を参照してください。
- ストレージプールを作成する前に、選択したストレージデバイス上のデータをバックアップします。ディスクパーティションをストレージプール専用にすると、ディスクデバイスに現在保存されているすべてのデータが再フォーマットされ、消去されます。
手順
LVM ベースのストレージプールがまだない場合は、新しい LVM ベースのストレージプールを作成して設定します。
LVM タイプのストレージプールを定義します。たとえば、次のコマンドは、
lvm_vgボリュームグループを使用し、/dev/lvm_vgディレクトリーにマウントされるguest_images_lvmという名前のストレージプールを定義します。virsh pool-define-as guest_images_lvm logical --source-dev /dev/sdb --target /dev/lvm_vg Pool guest_images_lvm defined
# virsh pool-define-as guest_images_lvm logical --source-dev /dev/sdb --target /dev/lvm_vg Pool guest_images_lvm definedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以前に定義した設定に基づいてストレージプールを作成します。
virsh pool-build guest_images_lvm Pool guest_images_lvm built
# virsh pool-build guest_images_lvm Pool guest_images_lvm builtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: プールが作成されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージプールを起動します。
virsh pool-start guest_images_lvm Pool guest_images_lvm started
# virsh pool-start guest_images_lvm Pool guest_images_lvm startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記virsh pool-startコマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。オプション: 自動起動をオンにします。
デフォルトでは、
virshで定義したストレージプールは、仮想化サービスが起動するたびに自動的に起動するように設定されません。virsh pool-autostartコマンドを使用して、ストレージプールを自動的に起動するように設定します。virsh pool-autostart guest_images_lvm Pool guest_images_lvm marked as autostarted
# virsh pool-autostart guest_images_lvm Pool guest_images_lvm marked as autostartedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
LVM ベースのストレージボリュームを作成します。たとえば、次のコマンドは、
guest_images_lvmストレージプールに基づいて、vm-disk1という名前の 20 GB のqcow2ボリュームを作成します。virsh vol-create-as --pool guest_images_lvm --name vm-disk1 --capacity 20GB --format qcow2 Vol vm-disk1 created
# virsh vol-create-as --pool guest_images_lvm --name vm-disk1 --capacity 20GB --format qcow2 Vol vm-disk1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージボリュームを仮想ディスクとして仮想マシンに接続します。
作成したストレージボリュームの場所を確認します。これを行うには、ボリュームが属するストレージプールを調べます。
virsh vol-list --pool guest_images_lvm --details Name Path Type Capacity Allocation ----------------------------------------------------------------------------- vm-disk1 /dev/guest_images_lvm/vm-disk1 block 20.00 GiB 196.00 KiB
# virsh vol-list --pool guest_images_lvm --details Name Path Type Capacity Allocation ----------------------------------------------------------------------------- vm-disk1 /dev/guest_images_lvm/vm-disk1 block 20.00 GiB 196.00 KiBCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。
virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -
# virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
virsh attach-diskコマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。たとえば、次のコマンドは、以前に作成した
vm-disk1をvdcデバイスとしてtestguest1仮想マシンに接続します。virsh attach-disk testguest1 /dev/guest_images_lvm/vm-disk1 vdc --persistent
# virsh attach-disk testguest1 /dev/guest_images_lvm/vm-disk1 vdc --persistentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.6. Web コンソールを使用して LVM ベースのストレージを仮想マシンに接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) にローカルストレージを提供する場合、LVM ベースのストレージボリュームを使用できます。このタイプのディスクイメージは LVM ボリュームグループに基づいており、.qcow2 または .raw 形式を使用します。
Web コンソールを使用してディスクベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。
-
新しい仮想マシンを作成する場合は、
Create virtual machineダイアログのStorageオプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。 - 既存の仮想マシンの場合は、LVM ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
LVM ベースのストレージボリュームには次の制限があることに注意してください。
- LVM ベースのストレージプールは、LVM の柔軟性を完全には提供しません。
-
LVM ベースのストレージプールは、ボリュームグループです。
virshユーティリティーを使用してボリュームグループを作成できますが、この方法では、作成したボリュームグループには 1 つのデバイスしか作成できません。複数のデバイスを持つボリュームグループを作成する場合は、代わりに LVM ユーティリティーを使用します。詳細は、How to create a volume group in Linux with LVM を参照してください。 -
LVM ベースのストレージプールには、完全なディスクパーティションが必要です。
virshコマンドを使用して新しいパーティションまたはデバイスをアクティブにすると、パーティションがフォーマットされ、すべてのデータが消去されます。次の手順で説明しているように、ホストの既存のボリュームグループを使用している場合は、何も消去されません。
前提条件
RHEL 10 Web コンソールがインストールされている。
手順は、Web コンソールのインストールおよび有効化 を参照してください。
- Web コンソールの仮想マシンプラグインが システムにインストールされている。
- ホスト上に LVM ボリュームグループが存在する。作成手順は、LVM ボリュームグループの作成 を参照してください。
手順
- RHEL 10 Web コンソールにログインします。
ディレクトリーベースのストレージプールがまだない場合は、新しいディレクトリーベースのストレージプールを作成して設定します。
-
Virtual Machines インターフェイスの上部にある
Storage PoolsCreate storage poolをクリックします。 - Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
Type ドロップダウンメニューで、LVM volume group を選択します。
注記ドロップダウンメニューに LVM volume group オプションが表示されない場合、ハイパーバイザーによってディスクベースのストレージプールがサポートされていません。
以下の情報を入力します。
- Source volume group - 使用する LVM ボリュームグループの名前。
- 起動 - ホストの起動時にストレージプールが起動するかどうか
をクリックします。
ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。
-
Virtual Machines インターフェイスの上部にある
既存のストレージプールに基づいて新しいストレージボリュームを作成します。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
Storage VolumesCreate volumeを選択します。 Create Storage Volume ダイアログに次の情報を入力します。
- Name - ストレージボリュームの名前。
- サイズ - ストレージボリュームのサイズ (MiB または GiB)。
-
フォーマット - ストレージボリュームの形式。サポートされているタイプは
qcow2およびrawです。
- をクリックします。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
- オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
作成したストレージボリュームをディスクとして仮想マシンに追加します。
インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。
新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。
- までスクロールします。
- Disks セクションで、 をクリックします。
- Add disks ダイアログで、 を選択します。
- ディスクに使用するストレージプールとストレージボリュームを選択します。
ディスクを永続化するかどうかを選択します。
注記一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。
- オプション: をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
- をクリックします。
検証
- 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.7. コマンドラインを使用して仮想マシンに NFS ベースのストレージを接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) にネットワークストレージを提供する場合、ネットワークファイルシステム (NFS) サーバーに基づくストレージボリュームを使用できます。
コマンドラインを使用して NFS ベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。
-
新しい仮想マシンを作成する場合は、
Create virtual machineダイアログのStorageオプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。 - 既存の仮想マシンの場合は、NFS ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
前提条件
ハイパーバイザーが NFS ベースのストレージプールに対応していることを確認します。
virsh pool-capabilities | grep "<value>nfs</value>"
# virsh pool-capabilities | grep "<value>nfs</value>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力が表示される場合には、NFS ベースのストレージプールはサポートの対象です。
- 使用できる NFS が必要です。詳細は、NFS 共有のマウント を参照してください。
手順
NFS ベースのストレージプールがまだない場合は、新しい NFS ベースのストレージプールを作成して設定します。
NFS タイプのストレージプールを定義および作成します。たとえば、ターゲットディレクトリー
/var/lib/libvirt/images/nfspoolを使用してサーバーディレクトリー/home/net_mountにマウントされ、IP が111.222.111.222の NFS サーバーを使用するストレージプールを、guest_images_netfsという名前で作成するには、以下を実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以前に定義した設定に基づいてストレージプールを作成します。
virsh pool-build guest_images_netfs Pool guest_images_netfs built
# virsh pool-build guest_images_netfs Pool guest_images_netfs builtCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: プールが作成されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージプールを起動します。
virsh pool-start guest_images_netfs Pool guest_images_netfs started
# virsh pool-start guest_images_netfs Pool guest_images_netfs startedCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 自動起動をオンにします。
デフォルトでは、
virshで定義したストレージプールは、仮想化サービスが起動するたびに自動的に起動するように設定されません。virsh pool-autostartコマンドを使用して、ストレージプールを自動的に起動するように設定します。virsh pool-autostart guest_images_netfs Pool guest_images_netfs marked as autostarted
# virsh pool-autostart guest_images_netfs Pool guest_images_netfs marked as autostartedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
NFS ベースのストレージボリュームを作成します。たとえば、次のコマンドは、
guest_images_netfsストレージプールに基づいて、vm-disk1という名前の 20 GB のqcow2ボリュームを作成します。virsh vol-create-as --pool guest_images_netfs --name vm-disk1 --capacity 20GB --format qcow2 Vol vm-disk1 created
# virsh vol-create-as --pool guest_images_netfs --name vm-disk1 --capacity 20GB --format qcow2 Vol vm-disk1 createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージボリュームを仮想ディスクとして仮想マシンに接続します。
作成したストレージボリュームの場所を確認します。これを行うには、ボリュームが属するストレージプールを調べます。
virsh vol-list --pool guest_images_netfs --details Name Path Type Capacity Allocation ------------------------------------------------------------------------------------- vm-disk1 /var/lib/libvirt/images/nfspool/vm-disk1 file 20.00 GiB 196.00 KiB
# virsh vol-list --pool guest_images_netfs --details Name Path Type Capacity Allocation ------------------------------------------------------------------------------------- vm-disk1 /var/lib/libvirt/images/nfspool/vm-disk1 file 20.00 GiB 196.00 KiBCopy to Clipboard Copied! Toggle word wrap Toggle overflow ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。
virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -
# virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda /home/VirtualMachines/vm-name.qcow2 file cdrom vdb -Copy to Clipboard Copied! Toggle word wrap Toggle overflow - オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
virsh attach-diskコマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。たとえば、次のコマンドは、以前に作成した
vm-disk1をvdcデバイスとしてtestguest1仮想マシンに接続します。virsh attach-disk testguest1 /var/lib/libvirt/images/nfspool/vm-disk1 vdc --persistent
# virsh attach-disk testguest1 /var/lib/libvirt/images/nfspool/vm-disk1 vdc --persistentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
12.4.8. Web コンソールを使用して仮想マシンに NFS ベースのストレージを接続する リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) にネットワークストレージを提供する場合、ネットワークファイルシステム (NFS) サーバーに基づくストレージボリュームを使用できます。
Web コンソールを使用して NFS ベースのストレージを仮想マシンに接続するには、次のいずれかの方法を使用します。
-
新しい仮想マシンを作成する場合は、
Create virtual machineダイアログのStorageオプションを使用して新しいディスクを作成し、接続します。詳細な手順は、Web コンソールを使用した仮想マシンの作成 を参照してください。 - 既存の仮想マシンの場合は、NFS ベースのストレージボリュームを作成し、それを仮想マシンに接続します。次の手順を参照してください。
前提条件
RHEL 10 Web コンソールがインストールされている。
手順は、Web コンソールのインストールおよび有効化 を参照してください。
- Web コンソールの仮想マシンプラグインが システムにインストールされている。
手順
- RHEL 10 Web コンソールにログインします。
NFS ベースのストレージプールがまだない場合は、新しい NFS ベースのストレージプールを作成して設定します。
-
Virtual Machines インターフェイスの上部にある
Storage PoolsCreate storage poolをクリックします。 - Create Storage Pool ダイアログで、ストレージプールの名前を入力します。
Type ドロップダウンメニューで、Network file system を選択します。
注記ドロップダウンメニューに Network file system オプションが表示されない場合、ハイパーバイザーによって NFS ベースのストレージプールがサポートされていません。
以下の情報を入力します。
- Target path - ターゲットを指定するパス。ストレージプールに使用されるパスになります。
- Host - マウントポイントがあるネットワークサーバーのホスト名。これは、ホスト名または IP アドレスになります。
- Source path - ネットワークサーバーで使用されるディレクトリー。
- 起動 - ホストの起動時にストレージプールが起動するかどうか
をクリックします。
ストレージプールが作成され、Create Storage Pool ダイアログが閉じて、新しいストレージプールがストレージプールのリストに表示されます。
-
Virtual Machines インターフェイスの上部にある
既存のストレージプールに基づいて新しいストレージボリュームを作成します。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
Storage VolumesCreate volumeを選択します。 Create Storage Volume ダイアログに次の情報を入力します。
- Name - ストレージボリュームの名前。
- サイズ - ストレージボリュームのサイズ (MiB または GiB)。
-
フォーマット - ストレージボリュームの形式。サポートされているタイプは
qcow2およびrawです。
- をクリックします。
-
Storage Pools ウィンドウで、ストレージボリュームの作成元とするストレージプールをクリックし、
- オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
作成したストレージボリュームをディスクとして仮想マシンに追加します。
インターフェイスで、新しいディスクを作成して接続する仮想マシンをクリックします。
新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、仮想マシンのグラフィカルインターフェイスにアクセスするための Console セクションが表示されます。
- までスクロールします。
- Disks セクションで、 をクリックします。
- Add disks ダイアログで、 を選択します。
- ディスクに使用するストレージプールとストレージボリュームを選択します。
ディスクを永続化するかどうかを選択します。
注記一時的なデバイスは、稼働中の仮想マシンにのみ追加できます。
- オプション: をクリックし、ストレージボリュームのキャッシュタイプ、バスタイプ、ディスク識別子を調整します。
- をクリックします。
検証
- 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。