13.4. 仮想マシンへのストレージの接続


仮想マシン (VM) にストレージを追加するには、ストレージリソースを仮想ディスクとして仮想マシンに接続します。

仮想ディスクは、物理ストレージデバイスと同様に、接続されている仮想マシンから独立しており、他の仮想マシンに移動できます。

複数の種類のストレージリソースを使用して、仮想ディスクを仮想マシンに追加できます。

13.4.1. コマンドラインを使用してファイルベースの仮想ディスクを仮想マシンに接続する

仮想マシンにローカルストレージを提供する最も簡単な方法は、通常、.qcow2 または .raw 形式のファイルベースの仮想ディスクを接続することです。

コマンドラインでこれを行うには、次のいずれかの方法を使用できます。

  • libvirt によって管理されるディレクトリーベースのストレージプールに、ファイルベースのストレージボリュームを作成します。これには複数のステップが必要ですが、ハイパーバイザーとの統合が強化されます。

    RHEL 10 ホストで最初の仮想マシンを作成するときに、デフォルトのディレクトリーベースのストレージボリュームが自動的に作成されることに注意してください。このストレージプールの名前は、ディスクイメージを保存するディレクトリーの名前に基づいています。たとえば、libvirtsystem セッションでは、デフォルトでディスクイメージが /var/lib/libvirt/images/ ディレクトリーに保存され、ストレージプールの名前が images になります。

  • qemu-img コマンドを使用して、ホストファイルシステム上のファイルとして仮想ディスクを作成します。これはより高速な方法ですが、libvirt との統合は提供されません。

    そのため、qemu-img を使用して仮想ディスクを作成すると、作成後にディスクを管理するのが難しくなります。

注記

コマンドラインで新しい仮想マシンを作成するときに、ファイルベースの仮想ディスクを作成して接続することもできます。これを行うには、virt-install ユーティリティーで --disk オプションを使用します。詳細な手順は、仮想マシンの作成 を参照してください。

手順

  1. オプション: 仮想ディスクをストレージボリュームとして作成するが、ホスト上のデフォルトの images ストレージプールまたは別の既存のストレージプールを使用しない場合は、新しいディレクトリーベースのストレージプールを作成して設定します。

    1. ディレクトリータイプのストレージプールを設定します。たとえば、/guest_images ディレクトリーを使用する guest_images_dir という名前のストレージプールを作成するには、次のコマンドを実行します。

      # virsh pool-define-as guest_images_dir dir --target "/guest_images"
      Pool guest_images_dir defined
    2. 以前に定義した設定に基づいて、ストレージプールのターゲットパスを作成します。

      # virsh pool-build guest_images_dir
        Pool guest_images_dir built
    3. ストレージプールを起動します。

      # virsh pool-start guest_images_dir
        Pool guest_images_dir started
    4. オプション: ホストの起動時にストレージプールが起動するように設定します。

      # virsh pool-autostart guest_images_dir
        Pool guest_images_dir marked as autostarted
    5. オプション: ストレージプールが running 状態であることを確認します。報告されるサイズが期待どおりであるか、また、自動開始が正しく設定されているかを確認してください。

      # virsh pool-info guest_images_dir
        Name:           guest_images_dir
        UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
        State:          running
        Persistent:     yes
        Autostart:      yes
        Capacity:       458.39 GB
        Allocation:     197.91 MB
        Available:      458.20 GB
  2. ファイルベースの仮想ディスクを作成します。これを行うには、以下のいずれかの方法を使用します。

    • 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
    • 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
  3. 作成した仮想ディスクの場所を確認します。

    • 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
  4. ディスクを接続する仮想マシンですでに使用されているターゲットデバイスを確認します。

    # virsh domblklist --details <vm-name> Type Device Target Source ---------------------------------------------------------------- file disk *vda      /home/VirtualMachines/vm-name.qcow2
     file   cdrom    vdb      -
  5. オプション: データの破損やディスクの断片化の問題を回避するために、ディスクの整合性を確認します。手順は、仮想ディスクの整合性のチェック を参照してください。
  6. virsh attach-disk コマンドを使用してディスクを仮想マシンに接続します。仮想マシンで使用されていないターゲットデバイスを指定します。

    たとえば、次のコマンドは、以前に作成した test-disk1vdc デバイスとして testguest1 仮想マシンに接続します。

    # virsh attach-disk testguest1 /guest-images/vm-disk1 vdc --persistent

検証

  1. ディスクを接続した仮想マシンの XML 設定を調べて、設定が正しいかどうかを確認します。

    # virsh dumpxml testguest1
    
    ...
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' discard='unmap'/>
          <source file='/guest-images/vm-disk1' index='1'/>
          <backingStore/>
          <target dev='vdc' bus='virtio'/>
          <alias name='virtio-disk2'/>
          <address type='drive' controller='0' bus='0' target='0' unit='0'/>
        </disk>
    ...
  2. 仮想マシンのゲストオペレーティングシステムで、ディスクイメージが未フォーマットかつ未割り当てのディスクとして利用できるようになっていることを確認します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る