파일 타임스탬프 정밀도 - ext3의 경우 나노초, ext4의 경우 밀리초

파일 타임스탬프 정밀도 - ext3의 경우 나노초, ext4의 경우 밀리초

사람들은 ext3이 최대 초까지 파일 타임스탬프 정밀도를 지원하는 반면, ext4는 최대 나노초까지 파일 타임스탬프 정밀도를 지원한다고 말합니다.

Ubuntu 12.04를 실행하는 이전 VPS와 ext3 파일 시스템은 항상 (내가 기억하는 한) 다음과 같이 나노초를 잘 지원했습니다.

  File: `auth.log'
  Size: 147744      Blocks: 304        IO Block: 4096   regular file
Device: 800h/2048d  Inode: 32019       Links: 1
Access: (0640/-rw-r-----)  Uid: (  101/  syslog)   Gid: (    4/     adm)
Access: 2020-03-20 00:18:33.634687690 -0300
Modify: 2020-03-24 05:12:48.777610222 -0300
Change: 2020-03-24 05:12:48.777610222 -0300
 Birth: -

mount발췌:

/dev/sda on / type ext3 (rw,noatime,errors=remount-ro)

stat -f:

  File: "auth.log"
    ID: 5483af2794a91010 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 3870084    Free: 272230     Available: 75643
Inodes: Total: 923520     Free: 829980
root@mail:~# df -mT
Filesystem     Type     1M-blocks  Used Available Use% Mounted on
/dev/sda       ext3         15118 14055       296  98% /
devtmpfs       devtmpfs      1973     1      1973   1% /dev
none           tmpfs          395     1       395   1% /run
none           tmpfs            5     0         5   0% /run/lock
none           tmpfs         1973     0      1973   0% /run/shm

이제 새 VPS를 구입하여 Ubuntu 20.04(pre-beta)로 업데이트했고 파일 시스템이 ext4로 마운트되었습니다.

  File: auth.log
  Size: 723967      Blocks: 1424       IO Block: 4096   regular file
Device: ca03h/51715d    Inode: 398412      Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2020-03-24 00:00:05.676000000 -0300
Modify: 2020-03-24 05:14:56.644000000 -0300
Change: 2020-03-24 05:14:56.644000000 -0300
 Birth: -

mount발췌:

/dev/xvda3 on / type ext4 (rw,noatime,nobarrier,errors=remount-ro,stripe=32564)

하지만 이상한 점은 stat -fext3이라는 것입니다.

  File: "auth.log"
    ID: 7e8a03105e52b018 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 9857995    Free: 7434726    Available: 7007355
Inodes: Total: 2505120    Free: 2403794
root@mailnew:~# df -mT
Filesystem     Type     1M-blocks  Used Available Use% Mounted on
udev           devtmpfs       430     0       430   0% /dev
tmpfs          tmpfs           95     2        94   2% /run
/dev/xvda3     ext4         38508  9466     27373  26% /
tmpfs          tmpfs          473     0       473   0% /dev/shm
tmpfs          tmpfs            5     0         5   0% /run/lock
tmpfs          tmpfs          473     0       473   0% /sys/fs/cgroup
/dev/loop0     squashfs        54    54         0 100% /snap/lxd/11348
/dev/loop1     squashfs        92    92         0 100% /snap/core/8689
/dev/xvda1     ext4           727   183       502  27% /boot
tmpfs          tmpfs           95     0        95   0% /run/user/0

내 질문은 다음과 같습니다

  1. 기존 ext3 시스템이 나노초 정밀도를 지원하는 이유는 무엇입니까?

  2. 새로운 ext4가 밀리초로 제한되는 이유는 무엇입니까? 실제로 ext3으로 포맷되어 있습니까?

  3. 문제를 파악하고 새 질문에서 나노초를 활성화하려면 어떻게 해야 합니까?

답변1

나노초와 초 분해능에 대한 실제 지원은 포맷 시 선택한 inode의 크기에 따라 달라집니다. 128바이트 inode는 두 번째 해상도만 지원하고, 256바이트 inode는 나노초 해상도를 지원합니다. 커널의 ext3 파일 시스템 드라이버는 실제로 수년 동안 ext4 모듈을 실행해 왔기 때문에 나노초 타임스탬프를 지원합니다.

밀리초 해상도 타임스탬프의 경우 이는 아마도 가상화가 파일 시스템에 밀리초 해상도 클럭만 제공한 결과일 것입니다.

관련 정보