mkdir() 与本地 POXIS 文件系统上的 AWS Elastic Block Storage 是原子的吗?
Is mkdir() atomic with AWS Elastic Block Storage as it is on local POXIS filesystems?
在我的本地计算机上,我可以执行 mkdir
并相信此操作是原子操作。因此我可以将它用作锁。我可以在附加了 EBS 的 EC2 实例上类似地使用 mkdir
并使其成为原子的吗?
对于进一步的上下文,我正在考虑这样一种情况:我在 Kubernetes 节点上有多个 Kubernetes Pods 运行,它们之间有一个 persistentVolume
(AWS EBS)。如果其中一个 pods 想要独占访问此卷中的文件夹,它可以这样做吗? pods 正在共享只读数据,但我每周只触发一次 aws s3 sync
,而不是每周每个 pod 一次。
因为 EBS 不是文件系统...
Amazon Elastic Block Store (Amazon EBS) provides block level storage volumes for use with EC2 instances.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html
...这个问题没有直接答案,因为它不是正确的问题。 EBS——作为块设备——不负责甚至不了解实际的文件系统操作或其保证。
tl;dr:如果 mkdir()
在您使用的文件系统中是原子的,那么如果该文件系统在 EBS 卷上,它仍然是原子的。
使用 mkdir()
进行锁定是否是一个好的做法是 different question。
在我的本地计算机上,我可以执行 mkdir
并相信此操作是原子操作。因此我可以将它用作锁。我可以在附加了 EBS 的 EC2 实例上类似地使用 mkdir
并使其成为原子的吗?
对于进一步的上下文,我正在考虑这样一种情况:我在 Kubernetes 节点上有多个 Kubernetes Pods 运行,它们之间有一个 persistentVolume
(AWS EBS)。如果其中一个 pods 想要独占访问此卷中的文件夹,它可以这样做吗? pods 正在共享只读数据,但我每周只触发一次 aws s3 sync
,而不是每周每个 pod 一次。
因为 EBS 不是文件系统...
Amazon Elastic Block Store (Amazon EBS) provides block level storage volumes for use with EC2 instances.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html
...这个问题没有直接答案,因为它不是正确的问题。 EBS——作为块设备——不负责甚至不了解实际的文件系统操作或其保证。
tl;dr:如果 mkdir()
在您使用的文件系统中是原子的,那么如果该文件系统在 EBS 卷上,它仍然是原子的。
使用 mkdir()
进行锁定是否是一个好的做法是 different question。