14.10. 仮想マシンの SCSI3 永続予約の設定


SCSI3-Persistent Reservation (S3-PR) を使用することで、複数の仮想マシン (VM) が共有ストレージデバイスへのアクセスを調整できます。これは、Pacemaker などの Linux クラスタリングソリューションや、Windows Server のフェイルオーバークラスタリングに必要です。

S3-PR を使用すると、仮想マシンはストレージデバイス上の永続的な予約を登録および管理し、複数の仮想マシンが同じストレージにアクセスする際に発生する競合を防ぐことができます。

RHEL ホスト上で動作する仮想マシンでは、XML 設定ファイルを変更することで、シングルパスデバイスとマルチパスデバイスの両方に対して S3-PR を設定できます。

前提条件

  • ホストは以下のいずれかの CPU アーキテクチャーを使用します。

    • Intel 64
    • AMD64
    • ARM 64
  • ホストはサポートされている RHEL およびカーネルバージョンを使用しています。詳細は、仮想マシンにおける SGIO サポートに必要な RHEL バージョン を参照してください。
  • ストレージバックエンドは S3-PR をサポートしています。
  • マルチパス仮想ディスク (vDisk) を使用している場合、ホスト上でマルチパス設定が正しく設定されている必要があります。詳細は、デバイスマッパーのマルチパス設定を 参照してください。

手順

  1. 仮想マシンの XML 設定を開きます。

    # virsh edit <vm_name>
  2. <devices> セクションに、VirtIO-SCSI コントローラーの行がまだ存在しない場合は追加してください。

    <controller type='scsi' model='virtio-scsi' index='0'/>
  3. 仮想マシンの設定を編集して、S3-PR のサポートを有効にしてください。設定は、シングルパス vDisk を使用しているかマルチパス vDisk を使用しているかによって異なります。

    • マルチパスデバイスの場合は、managed='yes' を指定した reservations 要素をマルチパスディスクデバイスに追加します。

      <disk type='block' device='lun'>
        <driver name='qemu' type='raw' cache='none'/>
        <source dev='/dev/mapper/mpatha'>
          <reservations managed='yes'/>
        </source>
        <target dev='sda' bus='scsi'/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>

      この例では、マルチパスデバイス /dev/mapper/mpatha は S3-PR サポート付きで設定されています。

      • device='lun': これは SCSI 論理ユニット番号 (LUN) デバイスであることを示します。これは、ブロックデバイスを使用した S3-PR サポートに必要です。
      • reservations managed='yes': S3-PR サポートを有効にし、libvirt が 永続的な予約ヘルパーを管理できるようにします。
    • シングルパスデバイスの場合、S3-PR サポートが必要なディスクデバイスに、managed='yes' を指定した reservations 要素を追加します。

      <disk type='block' device='lun'>
        <driver name='qemu' type='raw' cache='none'/>
        <source dev='/dev/sdb'>
          <reservations managed='yes'/>
        </source>
        <target dev='sda' bus='scsi'/>
        <address type='drive' controller='0' bus='0' target='0' unit='0'/>
      </disk>

      この例では、以下が適用されます。

      • type='block': デバイスがブロックデバイスであることを指定します。
      • device='lun': これは SCSI 論理ユニット番号 (LUN) デバイスであることを示します。これは、ブロックデバイスを使用した S3-PR サポートに必要です。
      • <source dev='/dev/sdb'/>: ホストブロックデバイスのパスを指定します。デバイスノード (例: /dev/sdb) を直接使用することも、再起動後もより安定した状態を維持するために /dev/disk/by-path/ エントリーを使用することもできます。
      • <driver name='qemu' type='raw' cache='none'/>: 直接デバイスにアクセスするための生フォーマットの QEMU ドライバーを指定します。
      • reservations managed='yes': S3-PR サポートを有効にし、libvirt が 永続的な予約ヘルパーを管理できるようにします。
      • このディスクは VirtIO-SCSI バスを使用しており、これは S3-PR のサポートに必要です。
  4. XML 設定を保存して、仮想マシンを起動します。

    # virsh start <vm_name>

検証

  • 実行中の仮想マシンの XML 設定を表示することで、ホスト側の設定を確認できます。

    # virsh dumpxml <vm_name>

    ディスクデバイス設定の中で、reservations managed='yes' という要素を探してください。

  • RHEL 仮想マシンでは、sg3_utils パッケージを使用して SCSI デバイスの永続予約機能をチェックすることもできます。

    1. RHEL 仮想マシンに sg3_utils パッケージをインストールします。

      # dnf install sg3_utils
    2. SCSI デバイスの永続予約機能を確認してください。

      # sg_persist --in --report-capabilities /dev/sda

      デバイスが S3-PR をサポートしている場合、出力は次のようになります。

      LBP-2: 0
      PTPL_C: 0
      TMC: 0
      [PTPL_A: 1]
      [PR_TYPE: 1, 3, 5]

      この例では、PTPL_A: 1 は デバイスが永続的な予約をサポートしていることを示し、PR_TYPE: 1、3、5 は サポートされている予約タイプを示しています。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る