13.4. LVM ベースのストレージプール

このセクションでは、LVM ボリュームグループをストレージプールとして使う方法について説明します。LVM ベースのストレージグループでは、LVM の柔軟性を十分に利用することができます。LVM の詳細については、Red Hat Enterprise Linux 7 論理ボリュームマネージャーの管理を参照してください。

注記

以下の点に注意してください。
  • 現在、シンプロビジョニングは LVM ベースのストレージプールでは利用できません。
  • ホストがゲストによって使われる LVM の内容を不必要にスキャンするのを防ぐには、/etc/lvm/lvm.confglobal_filter オプションを設定する必要があります。詳細については、Red Hat Enterprise Linux 7 論理ボリュームマネージャーの管理を参照してください。

警告

LVM ベースのストレージプールは全面的なディスクパーティションを必要とします。この手順を使用して新しいパーティションおよびデバイスをアクティブ化する場合、パーティションはフォーマットされ、すべてのデータは消去されます。ホストの既存ボリュームグループ (VG) を使用する場合は、いずれのデータも消去されません。以下の手順を開始する前に、ストレージデバイスのバックアップを取っておくことが推奨されます。

13.4.1. virt-manager を使用した LVM ベースのストレージプールの作成

LVM ベースのストレージプールには、既存の LVM ボリュームグループを使用するか、または新規の LVM ボリュームグループを空のパーティションに作成することができます。
LVM ボリュームグループ作成の詳細については、Red Hat Enterprise Linux 7 論理ボリュームマネージャーの管理を参照してください。
  1. ストレージプールの設定を開きます。

    1. virt-manager グラフィカルインターフェースで、メインウィンドウからホストを選択します。
      編集 メニューを開き 接続の詳細 を選択します。
    2. ストレージ タブをクリックします。
      「ストレージ」タブ

      図13.9 「ストレージ」タブ

  2. 新規ストレージプールを作成します。

    1. ウィザードを開始します。

      + ボタン (プールの追加ボタン) を押します。新規ストレージプールを追加 ウィザードが表示されます。
      ストレージプールの 名前 を選択します。この例では、guest_images_lvm を使用しています。種類logical: LVM ボリュームグループ に変更します。
      LVM ストレージプールの追加

      図13.10 LVM ストレージプールの追加

      進む を押して次に進みます。
    2. 新規プールの追加 (パート2)

      ターゲットパス フィールドと ソースパス フィールドに入力してから、プールを構築 チェックボックスにチェックマークを付けます。
      • ターゲットパス フィールドを使用して、既存の LVM ボリュームグループか、または新規ボリュームグループの名前の いずれか を選択します。デフォルト形式は、storage_pool_name/lvm_Volume_Group_name になります。
        この例では、/dev/guest_images_lvm という名前の新しいボリュームグループを使用しています。
      • 既存の LVM ボリュームグループが ターゲットパス で使用されている場合は、ソースパス フィールドはオプションになります。
        新規の LVM ボリュームグループの場合には、ストレージデバイスの場所を ソースパス フィールドに入力します。この例では、空のパーティション /dev/sdc を使用しています。
      • プールを構築 チェックボックスにチェックマークを付けて、virt-manager に新規の LVM ボリュームグループを作成するよう指示します。既存のボリュームグループを使用する場合は、プールを構築 チェックボックスは選択しないでください。
        この例では、空のパーティションを使用して新規のボリュームグループを作成しているため、プールを構築 チェックボックスを選択しておく必要があります。
      ターゲットとソースの追加

      図13.11 ターゲットとソースの追加

      詳細を確認して 完了 ボタンを押すと、LVM ボリュームグループがフォーマットされ、ストレージプールが作成されます。
    3. フォーマットするデバイスを確認します。

      警告メッセージが表示されます。
      警告メッセージ

      図13.12 警告メッセージ

      はい ボタンを押すと、ストレージデバイス上のすべてのデータが消去され、ストレージプールが作成されます。
  3. 新規ストレージプールを確認します。

    数秒後に新しいストレージプールが左側の一覧に表示されます。詳細が予想通りであることを確認します。この例では、75.15 GiB 空き です。また、状態フィールドで新規ストレージプールが 動作中 と報告されていることを確認します。
    通常は 自動起動 チェックボックスにチェックマークを付けて有効にし、libvirtd でストレージプールが自動的に起動されるようにしておくと便利です。
    LVM ストレージプールの詳細確認

    図13.13 LVM ストレージプールの詳細確認

    これで作業は完了です。接続の詳細 ダイアログを閉じます。

13.4.2. virt-manager を使用したストレージプールの削除

以下の手順は、ストレージプールを削除する方法を説明します。
  1. 同じプールを使用する他のゲスト仮想マシンに関連した問題を避けるには、ストレージプールを停止し、そのストレージプールで使用中のリソースをすべて解放するのが最良の方法です。これを実行するには、停止するストレージプールを選択して、 をクリックします。
    停止アイコン

    図13.14 停止アイコン

  2. ストレージプールを削除するには、 をクリックします。このアイコンが使用できるのは、ストレージプールが停止している場合のみです。

13.4.3. virsh を使用した LVM ベースのストレージプールの作成

このセクションでは、virsh コマンドを使用して LVM ベースのストレージプールを作成する場合に必要な手順について簡単に説明します。ここでは、単一ドライブ (/dev/sdc) からの guest_images_lvm という名前のプールを使用しています。これは、説明を行うための単なる例ですので、実際の設定を行う場合には適した値に置き換えてください。

手順13.3 virsh を使用した LVM ベースのストレージプールの作成

  1. プール名 guest_images_lvm を定義します。
    # virsh pool-define-as guest_images_lvm logical - - /dev/sdc libvirt_lvm \ /dev/libvirt_lvm
    Pool guest_images_lvm defined
  2. 指定した名前に基づいてプールを構築します。既存のボリュームグループをすでに使用している場合は、このステップを省略します。
    # virsh pool-build guest_images_lvm
    
    Pool guest_images_lvm built
  3. 新規のプールを初期化します。
    # virsh pool-start guest_images_lvm
    
    Pool guest_images_lvm started
  4. vgs コマンドを使用して、ボリュームグループ情報を表示します。
    # vgs
    VG          #PV #LV #SN Attr   VSize   VFree
    libvirt_lvm   1   0   0 wz--n- 465.76g 465.76g
  5. プールが自動的に起動するように設定します。
    # virsh pool-autostart guest_images_lvm
    Pool guest_images_lvm marked as autostarted
  6. virsh コマンドを使用して、利用可能なプールを一覧表示します。
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_lvm     active     yes
  7. 以下の一連のコマンドでは、このプール内に 3 つのボリュームを作成します (volume1volume2、および volume3)。
    # virsh vol-create-as guest_images_lvm volume1 8G
    Vol volume1 created
    
    # virsh vol-create-as guest_images_lvm volume2 8G
    Vol volume2 created
    
    # virsh vol-create-as guest_images_lvm volume3 8G
    Vol volume3 created
  8. virsh コマンドを使用して、このプール内の利用可能なボリュームを一覧表示します。
    # virsh vol-list guest_images_lvm
    Name                 Path
    -----------------------------------------
    volume1              /dev/libvirt_lvm/volume1
    volume2              /dev/libvirt_lvm/volume2
    volume3              /dev/libvirt_lvm/volume3
  9. 以下の 2 つのコマンド (lvscanlvs) を使用して、新たに作成されたボリュームに関する詳細情報を表示します。
    # lvscan
    ACTIVE            '/dev/libvirt_lvm/volume1' [8.00 GiB] inherit
    ACTIVE            '/dev/libvirt_lvm/volume2' [8.00 GiB] inherit
    ACTIVE            '/dev/libvirt_lvm/volume3' [8.00 GiB] inherit
    
    # lvs
    LV       VG            Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
    volume1  libvirt_lvm   -wi-a-   8.00g
    volume2  libvirt_lvm   -wi-a-   8.00g
    volume3  libvirt_lvm   -wi-a-   8.00g

13.4.4. virsh を使用したストレージプールの削除

以下は、virsh を使ってストレージプールを削除する方法を説明しています。
  1. 同じプールを使用する他のゲストとの問題を避けるには、ストレージプールを停止してから使用中のリソースをすべて解放するのが最良の方法です。
    # virsh pool-destroy guest_images_disk
  2. また、ストレージプールがあるディレクトリーを削除したい場合は、次のコマンドを使用します。
    # virsh pool-delete guest_images_disk
  3. ストレージプールの定義を削除します。
    # virsh pool-undefine guest_images_disk