第6章 NFS での pNFS SCSI レイアウトの有効化
データのアクセスに pNFS SCSI レイアウトを使用するように、NFS サーバーおよびクライアントを設定できます。pNFS SCSI は、ファイルへの長期接続のシングルクライアントアクセスに伴うユースケースで利点があります。
前提条件
- クライアントとサーバーの両方で、SCSI コマンドを同じブロックデバイスに送信する必要があります。つまり、ブロックデバイスは共有 SCSI バス上になければなりません。
- ブロックデバイスに XFS ファイルシステムが含まれている必要があります。
- SCSI デバイスは、 SCSI-3 Primary Commands 仕様で説明されているように、SCSI Persistent Reservation に対応している必要があります。
6.1. pNFS テクノロジー
pNFS アーキテクチャーでは、NFS のスケーラビリティーが改善されます。サーバーに pNFS が実装されると、クライアントは複数のサーバーで同時にデータにアクセスできるようになります。これにより、パフォーマンスが向上します。
pNFS は、RHEL では以下のストレージプロトコルまたはレイアウトに対応しています。
- ファイル
- Flexfiles
- SCSI
6.2. 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 サーバーで、手動で永続予約を削除する必要があります。
6.3. pNFS と互換性がある SCSI デバイスの確認
この手順では、SCSI デバイスが pNFS SCSI レイアウトに対応しているかどうかを確認します。
前提条件
以下のコマンドで、
sg3-utils
パッケージがインストールされている。# yum install sg3_utils
手順
サーバーおよびクライアントの両方で、適切な SCSI デバイスサポートを確認します。
# sg_persist --in --report-capabilities --verbose path-to-scsi-device
Persist Through Power Loss Active (
PTPL_A
) ビットが設定されるようにします。例6.1 pNFS SCSI をサポートする SCSI デバイス
以下は、pNFS SCSI に対応する SCSI デバイスにおける
sg_persist
出力の例になります。PTPL_A
ビットが1
を報告します。inquiry cdb: 12 00 00 00 24 00 Persistent Reservation In cmd: 5e 02 00 00 00 00 00 20 00 00 LIO-ORG block11 4.0 Peripheral device type: disk Report capabilities response: Compatible Reservation Handling(CRH): 1 Specify Initiator Ports Capable(SIP_C): 1 All Target Ports Capable(ATP_C): 1 Persist Through Power Loss Capable(PTPL_C): 1 Type Mask Valid(TMV): 1 Allow Commands: 1 Persist Through Power Loss Active(PTPL_A): 1 Support indicated in Type mask: Write Exclusive, all registrants: 1 Exclusive Access, registrants only: 1 Write Exclusive, registrants only: 1 Exclusive Access: 1 Write Exclusive: 1 Exclusive Access, all registrants: 1
関連情報
-
man ページの
sg_persist(8)
6.4. サーバーで pNFS SCSI の設定
この手順では、NFS サーバーが pNFS SCSI レイアウトをエクスポートするように設定します。
手順
- サーバーで、SCSI デバイスで作成した XFS ファイルシステムをマウントします。
NFS バージョン 4.1 以降をエクスポートするように NFS サーバーを設定します。
/etc/nfs.conf
ファイルの[nfsd]
セクションに、以下のオプションを設定します。[nfsd] vers4.1=y
pnfs
オプションを指定して、NFS で XFS ファイルシステムをエクスポートするように NFS サーバーを設定します。例6.2 pNFS SCSI をエクスポートする /etc/exports のエントリー
/etc/exports
設定ファイルの以下のエントリーにより、/exported/directory/
にマウントされているファイルシステムを、pNFS SCSI レイアウトとしてallowed.example.com
クライアントにエクスポートします。/exported/directory allowed.example.com(pnfs)
関連情報
- NFS サーバーの設定方法は、4章NFS 共有のエクスポートを参照してください。
6.5. クライアントで pNFS SCSI の設定
この手順では、pNFS SCSI レイアウトをマウントするように NFS クライアントを設定します。
前提条件
- NFS サーバーは、pNFS SCSI で XFS ファイルシステムをエクスポートするように設定されています。「サーバーで pNFS SCSI の設定」を参照してください。
手順
クライアントで、NFS バージョン 4.1 以降を使用して、エクスポートした XFS ファイルシステムをマウントします。
# mount -t nfs -o nfsvers=4.1 host:/remote/export /local/directory
NFS なしで XFS ファイルシステムを直接マウントしないでください。
関連情報
- NFS 共有のマウントの詳細は、3章NFS 共有のマウントを参照してください。
6.6. サーバーでの pNFS SCSI 予約の解放
この手順では、NFS サーバーが SCSI デバイスを維持している永続的な予約を解放します。これにより、pNFS SCSI をエクスポートする必要がなくなったら、SCSI デバイスを別の目的で使用できるようになります。
サーバーから予約を削除する必要があります。別の IT Nexus から削除することはできません。
前提条件
以下のコマンドで、
sg3-utils
パッケージがインストールされている。# yum install sg3_utils
手順
サーバーで、既存の予約をクエリーします。
# sg_persist --read-reservation path-to-scsi-device
例6.3 /dev/sda での予約のクエリー
# sg_persist --read-reservation /dev/sda LIO-ORG block_1 4.0 Peripheral device type: disk PR generation=0x8, Reservation follows: Key=0x100000000000000 scope: LU_SCOPE, type: Exclusive Access, registrants only
サーバーにある既存の登録を削除します。
# sg_persist --out \ --release \ --param-rk=reservation-key \ --prout-type=6 \ path-to-scsi-device
例6.4 /dev/sda にある予約の削除
# sg_persist --out \ --release \ --param-rk=0x100000000000000 \ --prout-type=6 \ /dev/sda LIO-ORG block_1 4.0 Peripheral device type: disk
関連情報
-
man ページの
sg_persist(8)
6.7. pNFS SCSI レイアウト機能の監視
pNFS クライアントとサーバーで、pNFS SCSI 操作が適切に行われることを犠牲にしているかどうか、または通常の NFS 操作にフォールバックするかどうかを監視できます。
前提条件
- pNFS SCSI クライアントとサーバーが設定されている。
6.7.1. nfsstat でサーバーの pNFS SCSI 操作の確認
この手順では、nfsstat
ユーティティを使用して、サーバーから pNFS SCSI 操作を監視します。
手順
サーバーから操作サービスを監視します。
# watch --differences \ "nfsstat --server | egrep --after-context=1 read\|write\|layout" Every 2.0s: nfsstat --server | egrep --after-context=1 read\|write\|layout putrootfh read readdir readlink remove rename 2 0% 0 0% 1 0% 0 0% 0 0% 0 0% -- setcltidconf verify write rellockowner bc_ctl bind_conn 0 0% 0 0% 0 0% 0 0% 0 0% 0 0% -- getdevlist layoutcommit layoutget layoutreturn secinfononam sequence 0 0% 29 1% 49 1% 5 0% 0 0% 2435 86%
クライアントとサーバーは、以下の場合に pNFS SCSI 操作を使用します。
-
layoutget
カウンター、layoutreturn
カウンター、およびlayoutcommit
カウンターがインクリメントします。これは、サーバーがレイアウトを提供することを意味します。 -
サーバーの
read
カウンターおよびwrite
カウンターはインクリメントしません。これは、クライアントが SCSI デバイスに直接 I/O 要求を実行していることを意味します。
-
6.7.2. mountstats でクライアントからの pNFS SCSI 操作の確認
この手順では、/proc/self/mountstats
ファイルを使用して、クライアントから pNFS SCSI 操作を監視します。
手順
マウントごとの操作カウンターを一覧表示します。
# cat /proc/self/mountstats \ | awk /scsi_lun_0/,/^$/ \ | egrep device\|READ\|WRITE\|LAYOUT device 192.168.122.73:/exports/scsi_lun_0 mounted on /mnt/rhel7/scsi_lun_0 with fstype nfs4 statvers=1.1 nfsv4: bm0=0xfdffbfff,bm1=0x40f9be3e,bm2=0x803,acl=0x3,sessions,pnfs=LAYOUT_SCSI READ: 0 0 0 0 0 0 0 0 WRITE: 0 0 0 0 0 0 0 0 READLINK: 0 0 0 0 0 0 0 0 READDIR: 0 0 0 0 0 0 0 0 LAYOUTGET: 49 49 0 11172 9604 2 19448 19454 LAYOUTCOMMIT: 28 28 0 7776 4808 0 24719 24722 LAYOUTRETURN: 0 0 0 0 0 0 0 0 LAYOUTSTATS: 0 0 0 0 0 0 0 0
結果は以下のようになります。
-
LAYOUT
統計は、クライアントとサーバーが pNFS SCSI 操作を使用する要求を示します。 -
READ
およびWRITE
の統計は、クライアントとサーバーが NFS 操作にフォールバックする要求を示します。
-
このページには機械翻訳が使用されている場合があります (詳細はこちら)。