我尝试了默认保留期,例如将保留日期设置为 2071。当我执行 WORMing 时,一切似乎都正常。从 FUSE 和 Brick-Level 开始,所有节点上的保留时间都设置为 2071。此外,我启用了该storage.ctime
选项,以便时间戳也存储在
mdata xattr
. 但过了一会儿我观察到,在 Brick-Level 上
atime
(存储保留)已切换到 1934:
stat /gluster/brick1/glusterbrick/data/file3.txt
File: /gluster/brick1/glusterbrick/data/file3.txt
Size: 5 Blocks: 16 IO Block: 4096 regular file
Device: 830h/2096d Inode: 115 Links: 2
Access: (0544/-r-xr--r--) Uid: ( 2000/ gluster) Gid: ( 2000/
gluster)
Access: 1934-12-13 20:45:51.000000000 +0000
Modify: 2019-04-10 09:50:09.000000000 +0000
Change: 2019-04-10 10:13:39.703623917 +0000
Birth: -
从保险丝我得到正确的时间:\
stat /gluster/volume1/data/file3.txt
File: /gluster/volume1/data/file3.txt
Size: 5 Blocks: 1 IO Block: 131072 regular file
Device: 2eh/46d Inode: 10812026387234582248 Links: 1
Access: (0544/-r-xr--r--) Uid: ( 2000/ gluster) Gid: ( 2000/
gluster)
Access: 2071-01-19 03:14:07.000000000 +0000
Modify: 2019-04-10 09:50:09.000000000 +0000
Change: 2019-04-10 10:13:39.705341476 +0000
Birth: -
我发现 XFS 仅支持 32 位时间戳值。因此,在我的预期中,应该不可能将其设置atime
为 2071。但起初它是 2071,后来由于 YEAR-2038 的问题,它被切换到了 1934。我在问自己:
1.为什么可以atime
在XFS上设置大于2038?
2. 为什么这atime
会在一段时间后切换到 1970 年更低的时间?
我在 SLES15 机器上完成了所有工作。xfsprogs 是 4.15 版,Gluster 是 v5.5