fcntlまたはLockFileExを使用してONTAPファイルシステムに排他ロックが実装されていますか?
環境
ONTAP 9
回答
- いいえ、ONTAPファイルシステムは
fcntlやLockFileExを使用したファイルシステムレベルでの排他ロックは提供されません。 - NFSv3アクセスの場合、ファイルロックはNetwork Lock Manager(NLM)で管理されます。
- NLMはアドバイザリ ロックのみを提供します。
- アドバイザリ ロックでは、クライアント アプリケーションがロックをチェックして尊重する必要があります。
- アプリケーションがロックをチェックしないと、クライアントはロックされたファイルまたは領域にアクセスできます。
- NFSv4.xでは、共有予約ロックメカニズムによる強制ロックがサポートされます。
- 共有予約ロックはプロトコルレベルで適用されます。
- 共有予約ロックでファイルをロックすると、ロックの種類によって他のクライアントからのアクセスが遮断されます。
- NFSv4の強制ロックの詳細については、How is Mandatory Locking supported for NFSv4 on ONTAP 9を参照してください。
fcntlUNIX/Linux では、POSIX アドバイザリバイト範囲(レコード)ロックを使用します。- NFSv4.xでは、カーネルは
fcntlロックをNFSv4のロック処理にマッピングします。 - NFSv4共有予約ロックは
fcntlロックとは異なり、OPEN処理の一部であり、ファイルオープンモード(share_accessおよびshare_deny)を制御します。 - POSIXは
fcntlを介して共有拒否セマンティクスを公開しません。 - ほとんどのUNIX/Linux NFSv4クライアントは、デフォルトで
share_deny-noneを使用します。
- NFSv4.xでは、カーネルは
- Windowsクライアントの場合、
LockFileExはCIFS/SMB経由のアドバイザリロックに使用されます。
ロックの適用は、アプリケーションとプロトコルの動作によって異なります。
- NFSv3では、強制ロックはサポートされていません。
- NFSv4.xでは共有予約ロックによる強制ロックがサポートされていますが、POSIX API(
fcntl)には共有拒否のセマンティクスを要求する方法がありません
追加情報
追加情報