Red Hat Training

A Red Hat training course is available for RHEL 8

11.2.2.2. CLI を使用して仮想マシンにディスクベースのストレージを作成して割り当てる方法

以下は、ディスクベースのストレージプールおよびストレージボリュームの作成と、仮想マシンのボリュームの割り当てに関する情報を提供します。

11.2.2.2.1. CLI でディスクベースのストレージプールの作成

ここでは、ディスクベースのストレージプールを作成する手順を説明します。

推奨情報

ディスクベースのストレージプールを作成する前に、以下の点に注意してください。

  • 使用されている libvirt のバージョンに応じて、ディスクをストレージプール専用にすると、現在ディスクデバイスに格納されているすべてのデータが再フォーマットされて消去される可能性があります。ストレージプールを作成する前に、ストレージデバイスのデータのバックアップを作成することを強く推奨します。
  • 仮想マシンには、ディスク全体またはブロックデバイス (/dev/sdb など) への書き込みアクセス権を付与しないでください。パーティション (/dev/sdb1 など) または LVM ボリュームを使用します。

    ブロックデバイス全体を仮想マシンに渡すと、仮想マシンはブロックデバイスをパーティションに分割するか、ブロックデバイスに独自の LVM グループを作成します。これにより、ホストマシンがこのようなパーティションまたは LVM グループを検出し、エラーが発生する可能性があります。

前提条件

  • ハイパーバイザーがディスクベースのストレージプールをサポートしていることを確認します。

    # virsh pool-capabilities | grep "'disk' supported='yes'"

    コマンドの出力が表示される場合には、ディスクベースのプールはサポートの対象です。

手順

  1. ストレージプールを作成します。

    virsh pool-define-as コマンドを使用し、ディスクタイプのストレージプールを定義して作成します。たとえば、/dev/sdb1 パーティションを使用し、/dev ディレクトリーにマウントされるストレージプールに guest_images_disk という名前を指定して作成するには以下を実行します。

    # virsh pool-define-as guest_images_disk disk gpt --source-dev=/dev/sdb1 --target /dev
    Pool guest_images_disk defined

    作成するストレージプールの XML 構成がすでにある場合は、XML を基にプールを定義することもできます。詳細は、「ディスクベースのストレージプールのパラメーター」 を参照してください。

  2. ストレージプールのターゲットパスの定義

    virsh pool-build コマンドを使用して、フォーマット済みファイルシステムのストレージプール用のストレージプールターゲットパスを作成し、ストレージソースデバイスを初期化し、データのフォーマットを定義します。

    # virsh pool-build guest_images_disk
      Pool guest_images_disk built
    注記

    ターゲットパスの構築は、ディスクベース、ファイルシステムベース、論理ストレージプールにのみ必要です。libvirt は、overwrite オプションが指定されている場合を除き、ソースストレージデバイスのデータフォーマットが、選択したストレージプールタイプと異なることを検出すると、ビルドに失敗します。

  3. プールが作成されたことを確認します。

    virsh pool-list コマンドを使用して、プールが作成されたことを確認します。

    # virsh pool-list --all
    
      Name                 State      Autostart
      -----------------------------------------
      default              active     yes
      guest_images_disk    inactive   no
  4. ストレージプールを起動します。

    virsh pool-start コマンドを使用して、ストレージプールをマウントします。

    # virsh pool-start guest_images_disk
      Pool guest_images_disk started
    注記

    virsh pool-start コマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。

  5. (必要に応じて) 自動起動をオンにします。

    デフォルトでは、virsh コマンドを使用して定義したストレージプールは、libvirtd が起動するたびに自動的に起動するようには設定されていません。virsh pool-autostart コマンドを使用して、ストレージプールが自動的に起動するように設定します。

    # virsh pool-autostart guest_images_disk
      Pool guest_images_disk marked as autostarted

検証

  1. virsh pool-list コマンドを使用して、自動起動 の状態を確認します。

    # virsh pool-list --all
    
      Name                 State      Autostart
      -----------------------------------------
      default              active     yes
      guest_images_disk    inactive   yes
  2. ストレージプールが正しく作成され、報告されたサイズが期待どおりで、状態が 実行中 と報告されたことを確認します。

    # virsh pool-info guest_images_disk
      Name:           guest_images_disk
      UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
      State:          running
      Persistent:     yes
      Autostart:      yes
      Capacity:       458.39 GB
      Allocation:     197.91 MB
      Available:      458.20 GB