Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

13.2. ストレージプールの使用

13.2.1. ストレージプールの概念

ストレージプールは、仮想マシンにストレージを提供するために、libvirt が管理するファイル、ディレクトリー、またはストレージデバイスです。ストレージプールは、仮想マシンイメージを格納するストレージボリュームに分割されるか、追加のストレージとして仮想マシンに割り当てられます。複数のゲストで同じストレージプールを共有できるため、ストレージリソースの割り当てを改善できます。
ストレージプールは、ローカルまたはネットワークベース(共有)にできます。
ローカルストレージのプール
ローカルストレージプールは、ホストサーバーに直接割り当てられます。これには、ローカルデバイスのローカルディレクトリー、直接接続したディスク、物理パーティション、および論理ボリューム管理(LVM)ボリュームグループが含まれます。ローカルストレージプールは、移行や多数の仮想マシンを必要としない開発、テスト、および小規模なデプロイメントに便利です。ライブマイグレーションに使用できないため、ローカルストレージプールは、多くの実稼働環境に適さない場合があります。
ネットワーク(共有)ストレージプール
ネットワークストレージプールには、標準プロトコルを使用してネットワーク経由で共有されるストレージデバイスが含まれます。virt-manager のホスト間で仮想マシンを移行する場合は、ネットワーク化されたストレージが必要ですが、virsh で移行する場合はオプションになります。
以下は、Red Hat Enterprise Linux で対応しているストレージプールタイプの一覧です。
  • ディレクトリベースのストレージプール
  • ディスクベースのストレージプール
  • パーティションベースのストレージプール
  • GlusterFS ストレージプール
  • iSCSI ベースのストレージプール
  • LVM ベースのストレージプール
  • NFS ベースのストレージプール
  • SCSI デバイスを使用した vHBA ベースのストレージプール
以下は、Red Hat Enterprise Linux で対応していない libvirt ストレージプールタイプの一覧です。
  • マルチパスベースのストレージプール
  • RBD ベースのストレージプール
  • Sheepdog ベースのストレージプール
  • Vstorage ベースのストレージプール
  • ZFS ベースのストレージプール
注記
サポートされていないストレージプールタイプの一部は、仮想マシンマネージャーインターフェースに表示されます。ただし、使用しないでください。

13.2.2. ストレージプールの作成

本セクションでは、virsh およびVirtual Machine Manager を使用してストレージプールを作成する一般的な手順を説明します。virsh を使用すると、すべてのパラメーターを指定できますが、Virtual Machine Manager を使用すると、簡単なストレージプールを作成するための図的な方法が提供されます。

13.2.2.1. virsh でストレージプールの作成

注記
このセクションでは、パーティションベースのストレージプールの作成を例として示しています。

手順13.2 virsh でストレージプールの作成

  1. 推奨事項を読み、すべての前提条件を満たしていることを確認します。

    一部のストレージプールでは、本書では特定の方法に従うことを推奨します。また、一部のストレージプールには、前提条件があります。「ストレージプールの詳細」
  2. ストレージプールの定義

    ストレージプールは永続的または一時的なものにできます。永続ストレージプールは、ホストマシンのシステムを再起動しても維持します。一時的なストレージプールは、ホストが再起動すると削除されます。
    以下のいずれかを行います。
    • XML ファイルを使用してストレージプールを定義します。
      a.新しいデバイスに必要なストレージプール情報が含まれる一時的な XML ファイルを作成します。
      XML ファイルには、ストレージプールのタイプに基づく特定のフィールドが含まれている必要があります。「ストレージプールの詳細」
      以下は、ストレージプール定義の XML ファイルの例です。この例では、ファイルは ~/guest_images.xmlに保存されます。
      <pool type='fs'>
        <name>guest_images_fs</name>
        <source>
          <device path='/dev/sdc1'/>
        </source>
        <target>
          <path>/guest_images</path>
        </target>
      </pool>
      b.virsh pool-define コマンドを使用して、永続ストレージプールまたは virsh pool-create コマンドを実行して一時的なストレージプールを作成して起動します。
      # virsh pool-define ~/guest_images.xml
      Pool defined from guest_images_fs
      
      または
      # virsh pool-create ~/guest_images.xml
      Pool created from guest_images_fs
      c.で作成した XML ファイルを削除します。
    • virsh pool-define-as コマンドを使用して、永続ストレージプールまたは virsh pool-create-as コマンドを実行して一時的なストレージプールを作成します。
      以下の例では、/guest_images ディレクトリーから /dev/sdc1 にマッピングされた一時ファイルシステムベースのストレージプールを作成しています。
      # virsh pool-define-as guest_images_fs fs - - /dev/sdc1 - "/guest_images"
      Pool guest_images_fs defined
      または
      # virsh pool-create-as guest_images_fs fs - - /dev/sdc1 - "/guest_images"
      Pool guest_images_fs created
      注記
      virsh インターフェースを使用する場合は、コマンドのオプション名は任意です。オプション名を使用しない場合は、指定する必要がないフィールドにダッシュを使用します。
  3. プールが作成されたことを確認します。

    virsh pool-list --all を使用して、既存のストレージプールの一覧を表示します。
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      inactive   no
    
  4. ストレージプールのターゲットパスの定義

    virsh pool-build コマンドを使用して、フォーマット済みファイルシステムのストレージプール用のストレージプールターゲットパスを作成し、ストレージソースデバイスを初期化し、データのフォーマットを定義します。virsh pool-list コマンドを使用して、ストレージプールが一覧表示されていることを確認します。
    # virsh pool-build guest_images_fs
    Pool guest_images_fs built
    # ls -la /guest_images
    total 8
    drwx------.  2 root root 4096 May 31 19:38 .
    dr-xr-xr-x. 25 root root 4096 May 31 19:38 ..
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      inactive   no
    
    注記
    ターゲットパスの構築は、ディスクベース、ファイルシステムベース、論理ストレージプールにのみ必要です。libvirt が、overwrite オプションが指定されている場合を除き、ソースストレージデバイスのデータフォーマットが、選択したストレージプールタイプと異なることを検出すると、ビルドは失敗します。
  5. ストレージプールを起動します。

    virsh pool-start コマンドを使用して、使用するソースデバイスを準備します。
    実行するアクションは、ストレージプールの種類によって異なります。たとえば、ファイルシステムベースのストレージプールでは、virsh pool-start コマンドはファイルシステムをマウントします。LVM ベースのストレージプールの場合は、virsh pool-start コマンドは、vgchange コマンドで、ボリュームグループ usng をアクティブにします
    virsh pool-list コマンドを使用して、ストレージプールがアクティブであることを確認します。
    # virsh pool-start guest_images_fs
    Pool guest_images_fs started
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      active     no
    
    注記
    virsh pool-start コマンドは、永続ストレージプールにのみ必要です。一時的なストレージプールは、作成時に自動的に起動します。
  6. 自動起動をオンにします(オプション)。

    デフォルトでは、virsh で定義されたストレージプールは、libvirtd が起動するたびに自動的に起動するようには設定されていません。virsh pool-autostart コマンドを使用すると、ストレージプールを自動的に起動するように設定できます。
    # virsh pool-autostart guest_images_fs
    Pool guest_images_fs marked as autostarted
    
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_fs      active     yes
    
    ストレージプールは、libvirtd が起動するたびに自動的に起動するようになりました。
  7. ストレージプールを確認します。

    ストレージプールが正しく作成され、報告されたサイズが期待どおりで、状態が 実行中 と報告されたことを確認します。ファイルシステムのターゲットパスに「lost+found」ディレクトリーがあり、デバイスがマウントされていることを示します。
    # virsh pool-info guest_images_fs
    Name:           guest_images_fs
    UUID:           c7466869-e82a-a66c-2187-dc9d6f0877d0
    State:          running
    Persistent:     yes
    Autostart:      yes
    Capacity:       458.39 GB
    Allocation:     197.91 MB
    Available:      458.20 GB
    # mount | grep /guest_images
    /dev/sdc1 on /guest_images type ext4 (rw)
    # ls -la /guest_images
    total 24
    drwxr-xr-x.  3 root root  4096 May 31 19:47 .
    dr-xr-xr-x. 25 root root  4096 May 31 19:38 ..
    drwx------.  2 root root 16384 May 31 14:18 lost+found
    

13.2.2.2. 仮想マシンマネージャーでのストレージプールの作成

注記
ここでは、例としてディスクベースのストレージプールを作成します。

手順13.3 仮想マシンマネージャーでのストレージプールの作成

  1. ストレージプールが作成されるメディアを準備します。

    これは、異なるタイプのストレージプールによって異なります。詳細はを参照してください 「ストレージプールの詳細」
    この例では、GUID パーティションテーブルでディスクを再ラベルする必要がある場合があります
  2. ストレージ設定を開きます。

    1. 仮想マシンマネージャーで、設定するホスト接続を選択します。
      Edit メニューを開き、Connection Details を選択します。
    2. Connection Details ウィンドウの Storage タブをクリックします。

      図13.1 ストレージタブ

      ストレージタブ
  3. 新しいストレージプールの作成

    注記
    Virtual Machine Manager を使用すると、永続ストレージプールのみを作成できます。一時的なストレージプールは、virsh を使用してしか作成できません。
    1. 新しいストレージプールの追加(範囲 1)

      ウィンドウの下部にある ボタンをクリックします。Add a New Storage Pool ウィザードが表示されます。
      ストレージプールの 名前 を入力します。この例では、guest_images_fs という名前を使用します
      タイプ ドロップダウンリストから作成するストレージプールタイプを選択します。この例では、fs: Pre-Formatted ブロックデバイス を使用します。

      図13.2 ストレージプール名とタイプ

      ストレージプール名とタイプ
      Forward ボタンをクリックして続行します。
    2. 新しいプールを追加します(部分 2)

      図13.3 ストレージプールのパス

      ストレージプールのパス
      関連するパラメーターを使用してストレージプールを設定します。「ストレージプールの詳細」
      一部のストレージプールでは、Build Pool チェックボックスがダイアログに表示されます。ストレージからストレージプールを構築する場合は、Build Pool チェックボックスにチェックを入れます。
      詳細を確認し、Finish ボタンをクリックしてストレージプールを作成します。

13.2.3. ストレージプールの詳細

このセクションでは、前提条件、パラメーター、追加情報などの各ストレージプールに固有の情報を提供します。これには、以下のトピックが含まれます。

13.2.3.1. ディレクトリーベースのストレージプール

パラメーター
以下の表は、ディレクトリーベースのストレージプールを作成するために XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.1 ディレクトリーベースのストレージプールのパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='dir'> [type] ディレクトリー dir: ファイルシステムディレクトリー
ストレージプールの名前 <name>name</name> [name] name 名前
ターゲットを指定するパス。ストレージプールに使用されるパスになります。

<target>
  <path>target_path</path>
</target>

target path_to_pool ターゲットパス
以下は、/guest_images ディレクトリーに基づいたストレージプールの XML ファイルの例です。
<pool type='dir'>
  <name>dirpool</name>
  <target>
    <path>/guest_images</path>
  </target>
</pool>
以下は、/guest_images ディレクトリーに基づいてストレージプールを作成するコマンドの例です。
# virsh pool-define-as dirpool dir --target "/guest_images"
Pool FS_directory defined
以下の図は、仮想マシンマネージャーの /guest_images ディレクトリーに基づいてストレージプールを作成するための新規ストレージプールの追加 ダイアログボックスを示しています。

図13.4 新しいディレクトリーベースのストレージプールの例を追加します。

新しいディレクトリーベースのストレージプールの例を追加します。

13.2.3.2. ディスクベースのストレージプール

推奨情報
ディスクベースのストレージプールを作成する前に、以下の点に注意してください。
  • 使用されている libvirt のバージョンによっては、ディスクをストレージプール専用にすると、現在ディスクデバイスに保存されているすべてのデータが再フォーマットされて消去される可能性があります。ストレージプールを作成する前に、ストレージデバイスのデータのバックアップを作成することを強く推奨します。
  • ゲストには、ディスク全体またはブロックデバイス (/dev/sdbなど)への書き込みアクセス権を付与しないでください。パーティション( /dev/sdb1など)または LVM ボリュームを使用します。
    ブロックデバイス全体をゲストに渡すと、ゲストがパーティションに分割するか、独自の LVM グループを作成します。これにより、ホストの物理マシンがこれらのパーティションまたは LVM グループを検出し、エラーが発生する可能性があります。
前提条件
注記
本セクションの手順は、virsh pool-build コマンドを実行しなかった場合にのみ必要です。
ホストディスクにディスクベースのストレージプールを作成する前に、ディスクを GUID パーティションテーブル(GPT )のディスクラベルで再ラベル付けする必要があります。GPT ディスクラベルは、各デバイスに最大 128 個のパーティションを作成できます。
# parted /dev/sdb
GNU Parted 2.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type? gpt
(parted) quit
Information: You may need to update /etc/fstab.
#
ディスクの再ラベル後、ストレージプールを 定義してストレージプールの作成を継続します。
パラメーター
以下の表は、ディスクベースのストレージプールを作成するために XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.2 ディスクベースのストレージプールのパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='disk'> [type] ディスク ディスク: 物理ディスクデバイス
ストレージプールの名前 <name>name</name> [name] name 名前
ストレージデバイスを指定するパス。たとえば、/dev/sdb です。

<source>
  <device path=/dev/sdb/>
<source>

source-dev path_to_disk ソースパス
ターゲットを指定するパス。ストレージプールに使用されるパスになります。

<target>
  <path>/path_to_pool</path>
</target>

target path_to_pool ターゲットパス
以下は、ディスクベースのストレージプールの XML ファイルの例です。
<pool type='disk'>
  <name>phy_disk</name>
  <source>
    <device path='/dev/sdb'/>
    <format type='gpt'/>
  </source>
  <target>
    <path>/dev</path>
  </target>
</pool>
以下は、ディスクベースのストレージプールを作成するコマンドの例です。
# virsh pool-define-as phy_disk disk gpt --source-dev=/dev/sdb --target /dev
Pool phy_disk defined
以下のイメージには、ディスクベースのストレージプールを作成する、仮想マシンの XML設定の仮想マシンマネージャーの新規ストレージプールの追加 ダイアログボックスの例を示しています。

図13.5 新しいディスクベースのストレージプールの例の追加

新しいディスクベースのストレージプールの例の追加

13.2.3.3. ファイルシステムベースのストレージプール

推奨情報
このセクションの手順に従って、ディスク全体をストレージプール(例: /dev/sdb)として割り当てないでください。ゲストには、ディスク全体またはブロックデバイスへの書き込みアクセス権を付与しないでください。この方法は、パーティション( /dev/sdb1など)をストレージプールに割り当てる場合に限り使用してください。
前提条件
注記
これは、virsh pool-build コマンドを実行しなかった場合にのみ必要です。
パーティションからストレージプールを作成するには、ファイルシステムを ext4 にフォーマットします。
# mkfs.ext4 /dev/sdc1
ファイルシステムをフォーマットすると、ストレージプールを 定義してストレージプールの作成を続行します。
パラメーター
以下の表は、パーティションからファイルシステムベースのストレージプールを作成するために、XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーター一覧を示しています。

表13.3 ファイルシステムベースのストレージプールのパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='fs'> [type] fs fs: 事前定義のブロックデバイス
ストレージプールの名前 <name>name</name> [name] name 名前
パーティションを指定するパス。たとえば、/dev/sdc1 です。

<source>
  <device path='source_path' />

[source] path_to_partition ソースパス
ファイルシステムの種類(ext4 など)。

  <format type='fs_type' />
</source>

[source format] FS-format 該当なし
ターゲットを指定するパス。ストレージプールに使用されるパスになります。

<target>
  <path>/path_to_pool</path>
</target>

[target] path_to_pool ターゲットパス
以下は、ファイルシステムベースのストレージプールに対する XML ファイルの例です。
<pool type='fs'>
  <name>guest_images_fs</name>
  <source>
    <device path='/dev/sdc1'/>
    <format type='auto'/>
  </source>
  <target>
    <path>/guest_images</path>
  </target>
</pool>
パーティションベースのストレージプールを作成するコマンドの例を以下に示します。
# virsh pool-define-as guest_images_fs fs --source-dev /dev/sdc1 --target /guest_images
Pool guest_images_fs defined
以下のイメージには、仮想マシン XML設定の仮想マシンマネージャーで、ファイルシステムベースのストレージプールを作成する新規ストレージプールの追加 ダイアログボックスの例を示しています。

図13.6 ファイルシステムベースのストレージプールの新規例の追加

ファイルシステムベースのストレージプールの新規例の追加

13.2.3.4. GlusterFS ベースのストレージプール

推奨情報
GlusterFS は、ユーザー空間のファイルシステム(FUSE)を使用するユーザー空間のファイルシステムです。
前提条件
GlusterFS ベースのストレージプールをホストに作成する前に、Gluster サーバーを準備する必要があります。

手順13.4 Gluster サーバーの準備

  1. 以下のコマンドを使用してそのステータスを一覧表示して、Gluster サーバーの IP アドレスを取得します。
    # gluster volume status
    Status of volume: gluster-vol1
    Gluster process						Port	Online	Pid
    ------------------------------------------------------------------------------
    Brick 222.111.222.111:/gluster-vol1 			49155	Y	18634
    
    Task Status of Volume gluster-vol1
    ------------------------------------------------------------------------------
    There are no active volume tasks
    
  2. glusterfs-fuse パッケージがインストールされていない場合はインストールします。
  3. 有効でない場合は、virt_use_fusefs ブール値を有効にします。有効になっていることを確認します。
    # setsebool virt_use_fusefs on
    # getsebool virt_use_fusefs
    virt_use_fusefs --> on
    
必要なパッケージがインストールされ、有効になっていることを確認したら、ストレージプールの作成を継続し、ストレージプールを 定義してストレージプールを 作成します。
パラメーター
以下の表は、GlusterFS ベースのストレージプールを作成するために XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.4 GlusterFS ベースのストレージプールパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='gluster'> [type] gluster Gluster: Gluster ファイルシステム
ストレージプールの名前 <name>name</name> [name] name 名前
Gluster サーバーのホスト名または IP アドレス

<source>
  <hostname='hostname' />

source-host hostname ホスト名
Gluster サーバーの名前   <name='Gluster-name' /> source-name gluster-name ソース名
ストレージプールに使用される Gluster サーバーのパス

  <dir path='Gluster-path' />
</source>

source-path gluster-path ソースパス
以下は、GlusterFS ベースのストレージプールの XML ファイルの例です。
<pool type='gluster'>
  <name>Gluster_pool</name>
  <source>
    <host name='111.222.111.222'/>
    <dir path='/'/>
    <name>gluster-vol1</name>
  </source>
</pool>
GlusterFS ベースのストレージプールを作成するコマンドの例を以下に示します。
# pool-define-as --name Gluster_pool --type gluster --source-host 111.222.111.222 --source-name gluster-vol1 --source-path /
Pool Gluster_pool defined
以下のイメージには、GlusterFSベースのストレージプールを作成するための新規ストレージプールの追加 ダイアログボックスの仮想マシンの XML 設定マネージャーの例を紹介します。

図13.7 GlusterFS ベースのストレージプール新しい例の追加

GlusterFS ベースのストレージプール新しい例の追加

13.2.3.5. iSCSI ベースのストレージプール

推奨情報
iSCSI(Internet Small Computer System Interface)は、ストレージデバイスを共有するネットワークプロトコルです。iSCSI は、IP 層で SCSI 命令を使用してイニシエーター(ストレージクライアント)をターゲット(ストレージサーバー)に接続します。
iSCSI ベースのデバイスを使用してゲスト仮想マシンを保存すると、iSCSI をブロックストレージデバイスとして使用するなど、より柔軟なストレージオプションが可能になります。iSCSI デバイスは、Linux-IO(LIO)ターゲットを使用します。これは、Linux 用のマルチプロトコル SCSI ターゲットです。LIO は、iSCSI に加えて、FCoE(Fibre Channel and Fibre Channel over Ethernet)にも対応します。
前提条件
iSCSI ベースのストレージプールを作成する前に、iSCSI ターゲットを作成する必要があります。iSCSI ターゲットは targetcli パッケージを使用して作成されます。これは、ソフトウェアで対応している iSCSI ターゲットを作成するためのコマンドセットを提供します。

手順13.5 iSCSI ターゲットの作成

  1. targetcli パッケージをインストールします。

    # yum install targetcli
  2. targetcli コマンドセットの起動

    # targetcli
  3. ストレージオブジェクトの作成

    ストレージプールを使用して、3 つのストレージオブジェクトを作成します。
    1. ブロックストレージオブジェクトを作成します。
      1. /backstores/block ディレクトリーに移動します。
      2. create コマンドを実行します。
        # create [block-name][filepath]
        以下に例を示します。
        # create block1 dev=/dev/sdb1
    2. fileio オブジェクトを作成します。
      1. /fileio ディレクトリーに移動します。
      2. create コマンドを実行します。
        # create [fileio-name][image-name] [image-size]
        以下に例を示します。
        # create fileio1 /foo.img 50M
    3. ramdisk オブジェクトを作成します。
      1. /ramdisk ディレクトリーに移動します。
      2. create コマンドを実行します。
        # create [ramdisk-name] [ramdisk-size]
        以下に例を示します。
        # create ramdisk1 1M
    4. この手順で作成したディスクの名前を書き留めておきます。これらは後で使用されます。
  4. iSCSI ターゲットの作成

    1. /iscsi ディレクトリーに移動します。
    2. ターゲットを 2 つの方法のいずれかで作成します。
      • パラメーターを指定せずに create コマンドを実行します。
        iSCSI 修飾名 (IQN)が自動的に生成されます。
      • IQN およびサーバーを指定して create コマンドを実行します。以下に例を示します。
        # create iqn.2010-05.com.example.server1:iscsirhel7guest
  5. ポータルの IP アドレスの定義

    iSCSI でブロックストレージをエクスポートするには、ポータル、LUN、およびアクセス制御リストの ACL を先に設定する必要があります。
    ポータルには、ターゲットモニターする IP アドレスと TCP と、接続するイニシエーターが含まれます。iSCSI は、ポート 3260 を使用します。このポートは、デフォルトで設定されます。
    ポート 3260 に接続するには、以下を実行します。
    1. /tpg ディレクトリーに移動します。
    2. 以下のコマンドを実行します。
      # portals/ create
      このコマンドは、ポート 3260 をリッスンするすべての IP アドレスを有効にします。
      1 つの IP アドレスだけがポート 3260 をリッスンするようにするには、コマンドの最後に IP アドレスを追加します。以下に例を示します。
      # portals/ create 143.22.16.33
  6. LUN を設定し、ストレージオブジェクトをファブリックに割り当てます。

    この手順では、ストレージオブジェクトの 作成で作成されたストレージオブジェクト を使用します。
    1. # iscsi>iqn.iqn.2010-05.com.example.server1:iscsirhel7guest
    2. 最初の LUN を ramdisk に割り当てます。以下に例を示します。
      # create /backstores/ramdisk/ramdisk1
    3. 2 番目の LUN をブロックディスクに割り当てます。以下に例を示します。
      # create /backstores/block/block1
    4. 3 番目の LUN を fileio ディスクに割り当てます。以下に例を示します。
      # create /backstores/fileio/fileio1
    5. 作成された LUN を一覧表示します。
      /iscsi/iqn.20...csirhel7guest ls
      
      o- tgp1 ............................................................[enabled, auth]
        o- acls...................................................................[0 ACL]
        o- luns..................................................................[3 LUNs]
        | o- lun0......................................................[ramdisk/ramdisk1]
        | o- lun1...............................................[block/block1 (dev/vdb1)]
        | o- lun2................................................[fileio/file1 (foo.img)]
        o- portals.............................................................[1 Portal]
          o- IP-ADDRESS:3260.........................................................[OK]
      
  7. 各イニシエーターの ACL の作成

    イニシエーターの接続時に認証を有効にします。指定された LUN はtiator で指定されるように変更することもできます。ターゲットとイニシエーターには一意の名前があります。iSCSI イニシエーターは IQN を使用します。
    1. イニシエーター名を使用して、iSCSI イニシエーターの IQN を検索します。以下に例を示します。
      # cat /etc/iscsi/initiator2.iscsi
      InitiatorName=create iqn.2010-05.com.example.server1:iscsirhel7guest
      この IQN を使用して ACL を作成します。
    2. acls ディレクトリーに移動します。
    3. 以下のいずれかを実行して ACL を作成します。
      • パラメーターのない create コマンドを実行して、すべての LUN およびイニシエーター用に ACL を作成します。
        # create
      • 特定の LUN とイニシエーター用に ACL を作成し、iSCSI のインチュレーターの IQN を指定して create コマンドを実行します。以下に例を示します。
        # create iqn.2010-05.com.example.server1:888
      • すべてのイニシエーターに単一のユーザー ID とパスワードを使用するようにカーネルターゲットを設定します。
        # set auth userid=user_ID
        # set auth password=password
        # set attribute authentication=1
        # set attribute generate_node_acls=1
    この手順を完了したら、ストレージプールのセキュリティー保護に 進みます。
  8. 設定の保存

    以前のブート設定を上書きして、設定を永続化します。
    # saveconfig
  9. サービスの有効化

    保存した設定を次回の起動時に適用するには、サービスを有効にします。
    # systemctl enable target.service
任意の手順
iSCSI ベースのストレージプールを作成する前に、iSCSI ターゲットを使用して実行できる任意の手順が複数あります。

手順13.7 検出性のテスト

  • 新しい iSCSI デバイスを検出可能であることを確認します。

    # iscsiadm --mode discovery --type sendtargets --portal server1.example.com
    143.22.16.33:3260,1 iqn.2010-05.com.example.server1:iscsirhel7guest

手順13.8 デバイス割り当てのテスト

  1. 新しい iSCSI デバイスをアタッチ

    新しいデバイス(iqn.2010-05.com.example.server1:iscsirhel7guest)をアタッチし、デバイスを接続できるかどうかを判別します。
    # iscsiadm -d2 -m node --login
    scsiadm: Max file limits 1024 1024
    
    Logging in to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260]
    Login to [iface: default, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260] successful.
    
  2. デバイスの割り当て解除

    # iscsiadm -d2 -m node --logout
    scsiadm: Max file limits 1024 1024
    
    Logging out of session [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260
    Logout of [sid: 2, target: iqn.2010-05.com.example.server1:iscsirhel7guest, portal: 143.22.16.33,3260] successful.

手順13.9 iSCSI ストレージプールの libvirt シークレットの使用

ユーザー名とパスワードパラメーターは、iSCSI ストレージプールを保護するため、virsh で設定できます。これは、プールを定義する前または後に設定できますが、認証設定を有効にするにはプールを起動する必要があります。
  1. libvirt シークレットファイルを作成します。

    チャレンジハンドシェイク認証プロトコル(CHAP)のユーザー名を使用して、libvirt シークレットファイルを作成します。以下に例を示します。
    <secret ephemeral='no' private='yes'>
        <description>Passphrase for the iSCSI example.com server</description>
        <usage type='iscsi'>
            <target>iscsirhel7secret</target>
        </usage>
    </secret>
  2. シークレットの定義

    # virsh secret-define secret.xml
  3. UUID の確認

    # virsh secret-list
    UUID                                  Usage
    --------------------------------------------------------------------------------
    2d7891af-20be-4e5e-af83-190e8a922360  iscsi iscsirhel7secret
  4. UID へのシークレットの割り当て

    以下のコマンドを使用して、直前の手順の出力で、シークレットを UUID に割り当てます。これにより、CHAP ユーザー名とパスワードが、libvirt が制御するシークレット一覧にあることが保証されます。
    # MYSECRET=`printf %s "password123" | base64`
    # virsh secret-set-value 2d7891af-20be-4e5e-af83-190e8a922360 $MYSECRET
  5. ストレージプールへの認証エントリーの追加

    virsh edit を使用してストレージプールの XML ファイルの <source> エントリーを変更し、authentication typeusernamesecret usage を指定し、<auth> 要素を追加します。
    以下に例を示します。
    <pool type='iscsi'>
      <name>iscsirhel7pool</name>
        <source>
           <host name='192.168.122.1'/>
           <device path='iqn.2010-05.com.example.server1:iscsirhel7guest'/>
           <auth type='chap' username='redhat'>
              <secret usage='iscsirhel7secret'/>
           </auth>
        </source>
      <target>
        <path>/dev/disk/by-path</path>
      </target>
    </pool>
    注記
    <auth> サブ要素は、ゲスト XML の <pool> および <disk> 要素内の異なる場所に存在します。認証は一部のプールソース(iSCSI および RBD)のプロパティーであるため、<pool> では <auth><source> 要素内で指定されます。ドメインのサブ要素である <disk> の場合、iSCSI ディスクまたは RBD ディスクに対する認証は、ディスクのプロパティーです。
    また、ディスクの <auth> サブ要素は、ストレージプールとは異なります。
    <auth username='redhat'>
      <secret type='iscsi' usage='iscsirhel7secret'/>
    </auth>
  6. 変更を有効にします。

    ストレージプールを有効にして、これらの変更をアクティベートする必要があります。
    • ストレージプールがまだ起動していない場合は、「 virsh を使用したストレージプールの作成 」の手順に従い、ストレージプールを定義して起動します。
    • プールがすでに起動している場合は、以下のコマンドを実行してストレージプールを停止して再起動します。
      # virsh pool-destroy iscsirhel7pool
      # virsh pool-start iscsirhel7pool
パラメーター
以下の表は、iSCSI ベースのストレージプールを作成するために XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.5 iSCSI ベースのストレージプールパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='iscsi'> [type] iscsi iscsi: iSCSI ターゲット
ストレージプールの名前 <name>name</name> [name] name 名前
ホストの名前。

<source>
  <host name='hostname' />

source-host hostname ホスト名
iSCSI IQN。

  device path="iSCSI_IQN" />
</source>

source-dev iSCSI_IQN ソース IQN
ターゲットを指定するパス。ストレージプールに使用されるパスになります。

<target>
  <path>/dev/disk/by-path</path>
</target>

target path_to_pool ターゲットパス
(オプション)iSCSI イニシエーターの IQN。これは、ACL が LUN を特定のイニシエーターに制限する場合にのみ必要です。

<initiator>
  <iqn name='initiator0' />
</initiator>

以下の注記を参照してください。 イニシエーター IQN
注記
iSCSI イニシエーターの IQN は、iscsi コマンドの virsh find-storage-pool-sources-as を使用して指定できます。
以下は、iSCSI ベースのストレージプールの XML ファイルの例です。
<pool type='iscsi'>
  <name>iSCSI_pool</name>
  <source>
    <host name='server1.example.com'/>
    <device path='iqn.2010-05.com.example.server1:iscsirhel7guest'/>
  </source>
  <target>
    <path>/dev/disk/by-path</path>
  </target>
</pool>
以下は、iSCSI ベースのストレージプールを作成するコマンドの例です。
# virsh pool-define-as --name iSCSI_pool --type iscsi --source-host server1.example.com --source-dev iqn.2010-05.com.example.server1:iscsirhel7guest --target /dev/disk/by-path
Pool iSCSI_pool defined
以下のイメージには、iSCSI ベースのストレージプールを作成する、仮想マシンの XML 設定のVirtual Machine Manager Add a New Storage Pool ダイアログボックスの例を示しています。

図13.8 新しい iSCSI ベースのストレージプール例の追加

新しい iSCSI ベースのストレージプール例の追加

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

推奨情報
LVM ベースのストレージプールを作成する前に、以下の点に注意してください。
  • LVM ベースのストレージプールは、LVM の柔軟性を完全には提供しません。
  • libvirt シン論理ボリュームをサポートしますが、シンストレージプールの機能は提供しません。
  • LVM ベースのストレージプールは、ボリュームグループです。Logical Volume Manager コマンド、または virsh コマンドを使用して、ボリュームグループを作成できます。virsh インターフェースを使用してボリュームグループを管理するには、virsh コマンドを使用してボリュームグループを作成します。
  • LVM ベースのストレージプールには、完全なディスクパーティションが必要です。この手順で新しいパーティションまたはデバイスをアクティベートすると、パーティションはフォーマットされ、すべてのデータが削除されます。ホストの既存のボリュームグループ(VG)を使用すると、何も消去されません。以下の手順を開始する前に、ストレージデバイスをバックアップすることが推奨されます。
  • 既存の VG に LVM ベースのストレージプールを作成する場合は、pool-build コマンドは実行しないでください。
ボリュームグループの準備が整ったら、ストレージプールを 定義してストレージプールの作成を継続します。
パラメーター
以下の表は、LVM ベースのストレージプールを作成するために XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.6 LVM ベースのストレージプールパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='logical'> [type] 論理 論理: LVM ボリュームグループ
ストレージプールの名前 <name>name</name> [name] name 名前
ストレージプールのデバイスのパス

<source>
  <device path='device_path' />

source-dev device_path ソースパス
ボリュームグループの名前   <name='VG-name' /> source-name VG-name ソースパス
仮想グループの形式

  <format type='lvm2' />
</source>

source-format lvm2 該当なし
ターゲットパス

<target>
  <path='target-path' />
</target>

target target-path ターゲットパス
注記
論理ボリュームグループが複数のディスクパーティションで作成されている場合は、複数のソースデバイスが一覧表示されている可能性があります。以下に例を示します。
<source>
  <device path='/dev/sda1'/>
  <device path='/dev/sdb3'/>
  <device path='/dev/sdc2'/>
  ...
  </source>
virsh を使用してストレージプールを作成する場合は、ストレージプールが作成されていることを確認します
以下は、LVM ベースのストレージプールの XML ファイルの例です。
<pool type='logical'>
  <name>guest_images_lvm</name>
  <source>
    <device path='/dev/sdc'/>
    <name>libvirt_lvm</name>
    <format type='lvm2'/>
  </source>
  <target>
    <path>/dev/libvirt_lvm</path>
  </target>
</pool>
以下は、LVM ベースのストレージプールを作成するコマンドの例です。
# virsh pool-define-as guest_images_lvm logical --source-dev=/dev/sdc --source-name libvirt_lvm --target /dev/libvirt_lvm
Pool guest_images_lvm defined
以下のイメージには、仮想マシン XML 設定マネージャーの、LVMベースのストレージプールを作成する新規ストレージプールの追加ダイアログボックスの例を、以下に示します。

図13.9 新しい LVM ベースのストレージプール例の追加

新しい LVM ベースのストレージプール例の追加

13.2.3.7. NFS ベースのストレージプール

前提条件
NFS(Network File System)ベースのストレージプールを作成するには、ホストマシンで NFS サーバーを使用するように設定しておく必要があります。NFS の詳細は、『Red Hat Enterprise Linux ストレージ管理ガイド』を参照してください
NFS サーバーが適切に設定されていることを確認すると、ストレージプールを 定義してストレージプールの作成を継続します。
パラメーター
以下の表は、NFS ベースのストレージプールを作成する XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.7 NFS ベースのストレージプールパラメーター

説明XMLpool-define-as仮想マシンマネージャー
ストレージプールの種類 <pool type='netfs'> [type] netfs NETFS: ネットワークのエクスポートディレクトリー
ストレージプールの名前 <name>name</name> [name] name 名前
マウントポイントがある NFS サーバーのホスト名。これは、ホスト名または IP アドレスになります。

<source>
  <host name='host_name' />

source-host host_name ホスト名
NFS サーバーで使用されるディレクトリー

  <dir path='source_path' />
</source>

source-path source_path ソースパス
ターゲットを指定するパス。ストレージプールに使用されるパスになります。

<target>
  <path>/target_path</path>
</target>

target target_path ターゲットパス
以下は、NFS ベースのストレージプールの XML ファイルの例です。
<pool type='netfs'>
  <name>nfspool</name>
  <source>
    <host name='localhost'/>
    <dir path='/home/net_mount'/>
  </source>
  <target>
    <path>/var/lib/libvirt/images/nfspool</path>
  </target>
</pool>
以下は、NFS ベースのストレージプールを作成するコマンドの例です。
# virsh pool-define-as nfspool netfs --source-host localhost --source-path /home/net_mount --target /var/lib/libvirt/images/nfspool
Pool nfspool defined
以下のイメージには、NFS ベースのストレージプールを作成する新しいStorage Pool ダイアログボックスの仮想マシン XML 設定マネージャーの例を紹介します。

図13.10 新しい NFS ベースのストレージプール例の追加

新しい NFS ベースのストレージプール例の追加

13.2.3.8. SCSI デバイスを使用した vHBA ベースのストレージプール

注記
仮想マシンマネージャーを使用して、SCSI デバイスを使用して vHBA ベースのストレージプールを作成することはできません。
推奨情報
NPIV(N_Port ID Virtualization)は、1 つの物理ファイバーチャンネルのホストバスアダプター(HBA)の共有を可能にするソフトウェアテクノロジーです。これにより、複数のゲストが複数の物理ホストから同じストレージを認識できるため、ストレージの移行パスが容易になります。そのため、正しいストレージパスが指定されていれば、移行を使用してストレージを作成またはコピーする必要はありません。
仮想化では、仮想ホストバスアダプター (vHBA)が、仮想マシンの論理ユニット番号 (LUN)を制御します。複数の KVM ゲスト間でファイバーチャネルデバイスパスを共有するホストには、仮想マシンごとに vHBA を作成する必要があります。1 つの vHBA を、複数の KVM ゲストで使用することはできません。
NPIV の各 vHBA は、その親 HBA と、独自の World Wide Node Name (WWNN) および World Wide Port Name (WWPN) で識別されます。ストレージへのパスは、WWNN および WWPN の値で決定します。親 HBA は、scsi_host# または WWNN/WWPN ペアとして定義できます。
注記
親 HBA が scsi_host# として定義され、ハードウェアがホストマシンに追加されている場合、scsi_host# の割り当ては変更される可能性があります。したがって、WWNN/WWPN のペアを使用して親 HBA を定義することが推奨されます。
これは、vHBA 設定を保持するため、vHBA に基づいて libvirt ストレージを定義することが推奨されます。
libvirt ストレージプールを使用することには 2 つの主な利点があります。
  • libvirt コードは、virsh コマンド出力を使用して LUN のパスを簡単に見つけることができます。
  • 仮想マシンの移行には、ターゲットマシンで同じ vHBA 名を持つストレージプールの定義と起動のみが必要です。これを行うには、仮想マシンの XML 設定で、vHBA LUN、libvirt ストレージプール、およびボリューム名を指定する必要があります。「SCSI デバイスを使用した vHBA ベースのストレージプール」 を参照してください。
注記
vHBA を作成する前に、ホストの LUN でストレージアレイ(SAN)側のゾーンを設定して、ゲスト間の分離を提供し、データの破損を防ぐことが推奨されます。
永続的な vHBA 構成を作成するには、まず次の形式を使用して libvirt 'scsi' ストレージプール XML ファイルを作成します。同じ物理 HBA 上でストレージプールを使用する 1 つの vHBA を作成する場合は、システムの /dev/disk/by-{path|id|uuid|label} の場所など、<path> 値に安定した場所を使用することが推奨されます。
同じ物理 HBA 上でストレージプールを使用する複数の vHBA を作成する場合は、<path> フィールドの値は /dev/ のみにする必要があります。それ以外の場合は、ストレージプールボリュームが 1 つの vHBA からしか確認できず、NPIV 構成で、ホストのデバイスを複数のゲストに公開することができません。
前提条件
SCSI デバイスを使用して vHBA ベースのストレージプールを作成する前に、vHBA を作成します。

手順13.10 vHBA の作成

  1. ホストシステムで HBA を見つけます。

    ホストシステムで HBA を見つけるには、virsh nodedev-list --cap vports コマンドを使用します。
    以下の例は、vHBA に対応する HBA が 2 つ搭載されているホストを示しています。
    # virsh nodedev-list --cap vports
    scsi_host3
    scsi_host4
    
  2. HBA の詳細の確認

    virsh nodedev-dumpxml HBA_device コマンドを使用して、HBA の詳細を表示します。
    # virsh nodedev-dumpxml scsi_host3
    コマンドからの出力には、vHBA の作成に使用される <name><wwnn>、および <wwpn> フィールドが一覧表示されます。<max_vports> は、対応している vHBA の最大数を示しています。以下に例を示します。
    <device>
      <name>scsi_host3</name>
      <path>/sys/devices/pci0000:00/0000:00:04.0/0000:10:00.0/host3</path>
      <parent>pci_0000_10_00_0</parent>
      <capability type='scsi_host'>
        <host>3</host>
        <unique_id>0</unique_id>
        <capability type='fc_host'>
          <wwnn>20000000c9848140</wwnn>
          <wwpn>10000000c9848140</wwpn>
          <fabric_wwn>2002000573de9a81</fabric_wwn>
        </capability>
        <capability type='vport_ops'>
          <max_vports>127</max_vports>
          <vports>0</vports>
        </capability>
      </capability>
    </device>
    この例では、<max_vports> の値には、HBA 設定で使用できる 127 個の仮想ポートの合計が表示されます。<vports> の値は、現在使用中の仮想ポートの数を示します。この値は、vHBA の作成後に更新されます。
  3. vHBA ホストデバイスの作成

    vHBA ホスト用に、以下のいずれかの XML ファイルを作成します。この例では、ファイルの名前は vhba_host3.xml です。
    この例では、scsi_host3 を使用して親 vHBA を説明します。
    # cat vhba_host3.xml
    <device>
      <parent>scsi_host3</parent>
      <capability type='scsi_host'>
        <capability type='fc_host'>
        </capability>
      </capability>
    </device>
    この例では、WWNN/WWPN のペアを使用して親 vHBA を説明します。
    # cat vhba_host3.xml
    <device>
      <name>vhba</name>
      <parent wwnn='20000000c9848140' wwpn='10000000c9848140'/>
      <capability type='scsi_host'>
        <capability type='fc_host'>
        </capability>
      </capability>
    </device>
    注記
    WWNN および WWPN の値は、表示されている HBA 手順13.10「vHBA の作成」
    <parent> フィールドは、この vHBA デバイスに関連付ける HBA デバイスを指定します。<device> タグの詳細は、ホストの新しい vHBA デバイスを作成するために、次の手順で使用されます。nodedev XML 形式の詳細は、libvirt アップストリームページ を参照してください。
  4. vHBA ホストデバイスに新しい vHBA を作成する

    vhba_host3 をベースとして vHBA を作成するには、virsh nodedev-create コマンドを使用します。
    # virsh nodedev-create vhba_host3.xml
    Node device scsi_host5 created from vhba_host3.xml
  5. vHBA の確認

    virsh nodedev-dumpxml コマンドで、新しい vHBA の詳細(scsi_host5)を確認します。
    # virsh nodedev-dumpxml scsi_host5
    <device>
      <name>scsi_host5</name>
      <path>/sys/devices/pci0000:00/0000:00:04.0/0000:10:00.0/host3/vport-3:0-0/host5</path>
      <parent>scsi_host3</parent>
      <capability type='scsi_host'>
        <host>5</host>
        <unique_id>2</unique_id>
        <capability type='fc_host'>
          <wwnn>5001a4a93526d0a1</wwnn>
          <wwpn>5001a4ace3ee047d</wwpn>
          <fabric_wwn>2002000573de9a81</fabric_wwn>
        </capability>
      </capability>
    </device>
vHBA の確認後に、引き続きストレージプールを 定義してストレージプールを作成します。
パラメーター
以下の表は、vHBA ベースのストレージプールを作成するために XML ファイル、virsh pool-define-as コマンド、および Virtual Machine Manager アプリケーションに必要なパラメーターの一覧です。

表13.8 vHBA ベースのストレージプールパラメーター

説明XMLpool-define-as
ストレージプールの種類 <pool type='scsi'> scsi
ストレージプールの名前 <name>name</name> --adapter-name name
vHBA の識別子。parent 属性はオプションです。

<source>
  <adapter type='fc_host'
  [parent=parent_scsi_device]
  wwnn='WWNN'
  wwpn='WWPN' />
</source>

[--adapter-parent parent]
--adapter-wwnn wwnn
--adapter-wpnn wwpn

ターゲットを指定するパス。ストレージプールに使用されるパスになります。

<target>
  <path>target_path</path>
</target>

target path_to_pool
重要
<path> フィールドが /dev/ の場合、libvirt はボリュームデバイスパスの一意の短いデバイスパスを生成します。たとえば、/dev/sdc です。それ以外の場合は、物理ホストパスが使用されます。For example, /dev/disk/by-path/pci-0000:10:00.0-fc-0x5006016044602198-lun-0.一意の短いデバイスパスを使用すると、複数のストレージプールで、同じボリュームを複数のゲストに一覧表示できます。物理ホストのパスを複数のゲストで使用すると、デバイスタイプが重複していることを示す警告が発生することがあります。
注記
parent 属性は、パスを変更して、NPIV LUN の使用元となる物理 HBA の親を識別するには <adapter> フィールドで使用できます。このフィールド scsi_hostN は、親 ID を完了するために、vports 属性および max_vports 属性と組み合わされます。parentparent_wwnnparent_wwpn、または parent_fabric_wwn 属性は、ホストの再起動後に同じ HBA が使用されることを保証するさまざまなレベルを提供します。
  • parent を指定しないと、libvirt は NPIV に対応する最初の scsi_hostN アダプターを使用します。
  • parent のみを指定すると、設定に SCSI ホストアダプターを追加すると、問題が発生する可能性があります。
  • parent_wwnn または parent_wwpn を指定すると、ホストの再起動後に同じ HBA が使用されます。
  • parent_fabric_wwn を使用する場合、ホストの再起動後に、使用されている scsi_hostN に関係なく、同じファブリックで HBA が選択されます。
以下は、vHBA ベースのストレージプールの XML ファイルの例です。最初の例は、HBA にある唯一のストレージプールの例です。2 つ目の例は、vHBA を 1 つ使用し、parent 属性を使用して SCSI ホストデバイスを識別する複数のストレージプールの 1 つです。
<pool type='scsi'>
  <name>vhbapool_host3</name>
  <source>
    <adapter type='fc_host' wwnn='5001a4a93526d0a1' wwpn='5001a4ace3ee047d'/>
  </source>
  <target>
    <path>/dev/disk/by-path</path>
  </target>
</pool>
<pool type='scsi'>
  <name>vhbapool_host3</name>
  <source>
    <adapter type='fc_host' parent='scsi_host3' wwnn='5001a4a93526d0a1' wwpn='5001a4ace3ee047d'/>
  </source>
  <target>
    <path>/dev/disk/by-path</path>
  </target>
</pool>
以下は、vHBA ベースのストレージプールを作成するコマンドの例です。
# virsh pool-define-as vhbapool_host3 scsi --adapter-parent scsi_host3 --adapter-wwnn 5001a4a93526d0a1 --adapter-wwpn 5001a4ace3ee047d --target /dev/disk/by-path
Pool vhbapool_host3 defined
注記
virsh コマンドは、parent_wwnnparent_wwpn、または parent_fabric_wwn 属性を定義する方法を提供しません。
vHBA LUN を使用するように仮想マシンを設定する手順
vHBA のストレージプールを作成した後、vHBA LUN を仮想マシンの設定に追加する必要があります。
  1. 仮想マシンの XML で、仮想マシン上にディスクボリュームを作成します。
  2. <source> パラメーターで storage pool および storage volume を指定します。
以下は例になります。
<disk type='volume' device='disk'>
  <driver name='qemu' type='raw'/>
  <source pool='vhbapool_host3' volume='unit:0:4:0'/>
  <target dev='hda' bus='ide'/>
</disk>
disk の代わりに lun デバイスを指定するには、以下の例を参照してください。
<disk type='volume' device='lun' sgio='unfiltered'>
  <driver name='qemu' type='raw'/>
  <source pool='vhbapool_host3' volume='unit:0:4:0' mode='host'/>
  <target dev='sda' bus='scsi'/>
  <shareable />
</disk>
SCSI LUN ベースのストレージをゲストに追加する XML 設定例は、「SCSI LUN ベースのストレージをゲストに追加」
ハードウェアで障害が発生した場合に LUN への再接続を成功させるには、fast_io_fail_tmo オプションおよび dev_loss_tmo オプションを編集することが推奨されます。詳細は、「 ハードウェア障害後の公開される LUN への接続」を 参照してください。

13.2.4. ストレージプールの削除

virsh または Virtual Machine Manager を使用してストレージプールを削除できます。

13.2.4.1. ストレージプールの削除の前提条件

削除するストレージプールを使用するその他のゲスト仮想マシンへの影響を避けるため、ストレージプールを停止し、そのストレージプールが使用するリソースを解放することが推奨されます。

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

  1. 定義されたストレージプールを一覧表示します。
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    guest_images_pool    active     yes
    
  2. 削除するストレージプールを停止します。
    # virsh pool-destroy guest_images_disk
  3. (必要に応じて) ストレージプールの種類によっては、ストレージプールが含まれるディレクトリーを削除することもできます。
    # virsh pool-delete guest_images_disk
  4. ストレージプールの定義を削除します。
    # virsh pool-undefine guest_images_disk
  5. プールが定義されていません。
    # virsh pool-list --all
    Name                 State      Autostart
    -----------------------------------------
    default              active     yes
    
    

13.2.4.3. 仮想マシンマネージャーでストレージプールの削除

  1. Connection Details ウィンドウ の Storage タブのストレージプール一覧で、削除するストレージプールを選択します。
  2. Storage ウィンドウの下部にある をクリックします。これにより、ストレージプールが停止し、使用中のリソースをすべて解放します。
  3. をクリックします。
    注記
    アイコンは、ストレージプールが停止した場合にのみ有効になります。
    ストレージプールが削除されます。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。