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を参照してください。
fcntl
UNIX/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
)には共有拒否のセマンティクスを要求する方法がありません
追加情報
追加情報