在本地计算机上,我可以执行mkdir
并相信此操作是原子的。因此,我可以将其用作锁。是否可以在附有EBS的EC2实例上类似地使用mkdir
并将其原子化?
出于进一步的考虑,我正在考虑这样一种情况:我在Kubernetes节点上运行了多个Kubernetes Pod,它们之间有一个persistentVolume
(AWS EBS)。如果其中一个Pod希望获得对该卷中某个文件夹的独占访问权,可以这样做吗? Pod正在共享只读数据,但是我每周仅触发一次aws s3 sync
,而不是每周一次触发npm install --save mdbvue
。
答案 0 :(得分:3)
由于EBS不是文件系统...
Amazon Elastic Block Store(Amazon EBS)提供用于EC2实例的块级存储卷。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html
...该问题没有直接答案,因为它不是正确的问题。 EBS作为一种块设备,不负责甚至不知道实际的文件系统操作或其保证。
tl; dr:如果mkdir()
在您正在使用的文件系统中是原子的,那么如果该文件系统在EBS卷上,它将仍然是原子的。
是否使用mkdir()
进行锁定是一种different question。