8.10. NFS での pNFS SCSI レイアウトの有効化
データのアクセスに pNFS SCSI レイアウトを使用するように、NFS サーバーおよびクライアントを設定できます。pNFS SCSI は、ファイルへの長期接続のシングルクライアントアクセスに伴うユースケースで利点があります。
前提条件
- クライアントとサーバーの両方で、SCSI コマンドを同じブロックデバイスに送信する必要があります。つまり、ブロックデバイスは共有 SCSI バス上になければなりません。
- ブロックデバイスに XFS ファイルシステムが含まれている必要があります。
- SCSI デバイスは、 SCSI-3 Primary Commands 仕様で説明されているように、SCSI Persistent Reservation に対応している必要があります。
8.10.1. pNFS SCSI レイアウト リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SCSI レイアウトは、pNFS ブロックレイアウトの作業に基づいています。このレイアウトは、SCSI デバイス全体に定義されます。これには、SCSI 永続予約に対応する必要がある論理ユニット (lUS) として、固定サイズのブロックが連続的に含まれています。LU デバイスは、SCSI デバイスの識別子で識別されます。
pNFS SCSI は、ファイルへの長期接続のシングルクライアントアクセスのユースケースで適切に実行されます。例として、メールサーバーまたはクラスターを格納している仮想マシンなどが挙げられます。
クライアントとサーバーとの間の操作
NFS クライアントがファイルから読み取るか、またはファイルに書き込むと、クライアントは
LAYOUTGET
操作を実行します。サーバーは、SCSI デバイスのファイルの場所に反応します。クライアントは、使用する SCSI デバイスを判別するために GETDEVICEINFO
の追加操作が必要になる場合があります。これらの操作が正しく機能すると、クライアントは、READ
操作および WRITE
操作をサーバーに送信する代わりに、SCSI デバイスに直接 I/O 要求を発行することができます。
クライアント間のエラーまたは競合により、サーバーがレイアウトを再び呼び出したり、クライアントにレイアウトを発行しなくなることがあります。この場合、クライアントは SCSI デバイスに I/O 要求を直接送信するのではなく、サーバーへの
READ
操作および WRITE
操作を発行するようにフォールバックします。
操作を監視するには、「pNFS SCSI レイアウト機能の監視」 を参照してください。
デバイスの予約
pNFS SCSI は、予約の割り当てを通じてフェンシングを処理します。サーバーがレイアウトをクライアントに発行する前に、SCSI デバイスを予約して、登録したクライアントのみがデバイスにアクセスできるようにします。クライアントが、その SCSI デバイスに対してコマンドを実行できても、そのデバイスに登録されていない場合は、クライアントからの多くの操作が、そのデバイス上で失敗します。たとえば、サーバーが、そのデバイスのレイアウトをクライアントに送信していないと、クライアントの blkid コマンドは、XFS ファイルシステムの UUID を表示できません。
サーバーは、独自の永続予約を削除しません。これにより、クライアントやサーバーの再起動時に、デバイスのファイルシステム内のデータが保護されます。SCSI デバイスを他の目的で使用するには、NFS サーバーで、手動で永続予約を削除する必要があります。
8.10.2. pNFS と互換性がある SCSI デバイスの確認 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順では、SCSI デバイスが pNFS SCSI レイアウトに対応しているかどうかを確認します。
前提条件
- 以下のコマンドで、sg3-utils パッケージがインストールされている。
yum install sg3_utils
# yum install sg3_utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順8.4 pNFS と互換性がある SCSI デバイスの確認
- サーバーおよびクライアントの両方で、適切な SCSI デバイスサポートを確認します。
sg_persist --in --report-capabilities --verbose path-to-scsi-device
# sg_persist --in --report-capabilities --verbose path-to-scsi-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Persist Through Power Loss Active (PTPL_A
)ビットが設定されていることを確認します。例8.8 pNFS SCSI をサポートする SCSI デバイス
以下は、pNFS SCSI をサポートする SCSI デバイスに対するsg_persist
出力の例です。PTPL_A
ビットは1
を報告します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- sg_persist(8) の man ページ
8.10.3. サーバーでの pNFS SCSI の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順では、NFS サーバーが pNFS SCSI レイアウトをエクスポートするように設定します。
手順8.5 サーバーでの pNFS SCSI の設定
- サーバーで、SCSI デバイスで作成した XFS ファイルシステムをマウントします。
- NFS バージョン 4.1 以降をエクスポートするように NFS サーバーを設定します。
/etc/nfs.conf
ファイルの[nfsd]
セクションに以下のオプションを設定します。[nfsd] vers4.1=y
[nfsd] vers4.1=y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pnfs
オプションを使用して、NFS で XFS ファイルシステムをエクスポートするように NFS サーバーを設定します。例8.9 pNFS SCSI をエクスポートする /etc/exports のエントリー
/etc/exports
設定ファイルの以下のエントリーは、/exported/directory/
にマウントされているファイルシステムを、pNFS SCSI レイアウトとしてallowed.example.com
クライアントにエクスポートします。/exported/directory allowed.example.com(pnfs)
/exported/directory allowed.example.com(pnfs)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- NFS サーバーの設定に関する詳細は、「NFS サーバーの設定」 を参照してください。
8.10.4. クライアントでの pNFS SCSI の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順では、pNFS SCSI レイアウトをマウントするように NFS クライアントを設定します。
前提条件
- NFS サーバーは、pNFS SCSI で XFS ファイルシステムをエクスポートするように設定されています。「サーバーでの pNFS SCSI の設定」 を参照してください。
手順8.6 クライアントでの pNFS SCSI の設定
- クライアントで、NFS バージョン 4.1 以降を使用して、エクスポートした XFS ファイルシステムをマウントします。
mount -t nfs -o nfsvers=4.1 host:/remote/export /local/directory
# mount -t nfs -o nfsvers=4.1 host:/remote/export /local/directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NFS なしで XFS ファイルシステムを直接マウントしないでください。
関連情報
- NFS 共有のマウントの詳細は、「NFS クライアントの設定」 を参照してください。
8.10.5. サーバーでの pNFS SCSI 予約の解放 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順では、NFS サーバーが SCSI デバイスを維持している永続的な予約を解放します。これにより、pNFS SCSI をエクスポートする必要がなくなったら、SCSI デバイスを別の目的で使用できるようになります。
サーバーから予約を削除する必要があります。別の IT Nexus から削除することはできません。
前提条件
- 以下のコマンドで、sg3-utils パッケージがインストールされている。
yum install sg3_utils
# yum install sg3_utils
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順8.7 サーバーでの pNFS SCSI 予約の解放
- サーバーで、既存の予約をクエリーします。
sg_persist --read-reservation path-to-scsi-device
# sg_persist --read-reservation path-to-scsi-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例8.10 /dev/sda での予約のクエリー
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - サーバーにある既存の登録を削除します。
sg_persist --out \ --release \ --param-rk=reservation-key \ --prout-type=6 \ path-to-scsi-device
# sg_persist --out \ --release \ --param-rk=reservation-key \ --prout-type=6 \ path-to-scsi-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例8.11 /dev/sda にある予約の削除
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- sg_persist(8) の man ページ
8.10.6. pNFS SCSI レイアウト機能の監視 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
pNFS クライアントとサーバーで、pNFS SCSI 操作が適切に行われることを犠牲にしているかどうか、通常の NFS 操作にフォールバックするかどうかを監視できます。
前提条件
- pNFS SCSI クライアントとサーバーが設定されている。
8.10.6.1. nfsstat を使用したサーバーからの pNFS SCSI 操作のチェック リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順では、
nfsstat
ユーティリティーを使用して、サーバーからの pNFS SCSI 操作を監視します。
手順8.8 nfsstat を使用したサーバーからの pNFS SCSI 操作のチェック
- サーバーから操作サービスを監視します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - クライアントとサーバーは、以下の場合に pNFS SCSI 操作を使用します。
layoutget
カウンター、layoutreturn
カウンター、およびlayoutcommit
カウンターの増分値。これは、サーバーがレイアウトを提供することを意味します。- サーバーの
読み取り
および書き込み
カウンターはインクリメントしません。これは、クライアントが SCSI デバイスに直接 I/O 要求を実行していることを意味します。
8.10.6.2. mountstats を使用したクライアントからの pNFS SCSI 操作のチェック リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この手順では、
/proc/self/mountstats
ファイルを使用して、クライアントからの pNFS SCSI 操作を監視します。
手順8.9 mountstats を使用したクライアントからの pNFS SCSI 操作のチェック
- マウントごとの操作カウンターをリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 結果は以下のようになります。
LAYOUT
統計は、クライアントとサーバーが pNFS SCSI 操作を使用する要求を示します。READ
およびWRITE
統計は、クライアントとサーバーが NFS 操作にフォールバックする要求を示します。