mount의 atime 옵션이 항상 파일 시간을 예상대로 업데이트하지 않는 이유는 무엇입니까?


5

특정 파일에 대한 읽기 액세스를 감지해야하므로 atime일반적인 방법으로 파일 속성 을 업데이트하기 위해 파일 시스템이 필요했습니다 .

기본 마운트 옵션

기본 상태 atime에서 noatime옵션을 사용하지 않았지만 파일 시스템이 예상대로 업데이트 되지 않았습니다 .

$ cat /etc/fstab | grep '/home '
# /home was on /dev/sda7 during installation
UUID=d7e67903-f24d-45a7-be90-6a134c9c1ae9 /home         ext4    defaults      0     2

$ mount | grep '/home '
/dev/sda7 on /home type ext4 (rw)

$ cat /etc/mtab | grep '/home '
/dev/sda7 /home ext4 rw 0 0

atime파일에 단지 때때로 업데이트되었습니다. 나중에 파일 시스템이 새로운 relatime옵션으로 마운트되었음을 ​​깨달았습니다 .

$ cat /proc/mounts | grep '/home '
/dev/sda7 /home ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0

명백한 해결책이 작동하지 않습니다

따라서 relatime옵션이 Ubuntu 12.04의 기본값 인 것 같습니다 . 해결책은 쉬운 것처럼 보였습니다-기본 atime옵션 이 아닌 옵션을 명시 적으로 설명하십시오 .

$ sudo mount -o remount,atime /home

실제 mount옵션은 옵션이 없는 것과 똑같아 보였습니다atime .

$ mount | grep '/home '
/dev/sda7 on /home type ext4 (rw)

$ cat /etc/mtab | grep '/home '
/dev/sda7 /home ext4 rw 0 0

$ cat /proc/mounts | grep '/home '
/dev/sda7 /home ext4 rw,relatime,user_xattr,barrier=1,data=ordered 0 0

실제로 시스템은atime 옵션이 없는 것과 정확히 동일하게 작동했습니다 .

질문

무슨 일이야? 왜 단순히 atime옵션을 사용할 수 없습니까? 일반 atime기능을 사용하려면 어떻게해야합니까?

답변:


8

실제로 Linux 에는 4 가지 5 가지 atime관련 옵션이 있습니다 mount.

  • noatime- atime속성 (파일 및 디렉토리 모두)은 쓰기 액세스 중에 만 업데이트됩니다.
  • nodiratime- atime의 디렉토리는 쓰기 액세스 중에 만 업데이트되며 관계와 결합 될 수 있습니다.
  • relatime/ atime- atime는 이제 별칭으로 보입니다 relatime. 이 옵션 은 이전이 또는 이전이거나 24 시간이 atime지난 경우에만 속성을 업데이트합니다 .atimemtimectimeatime
  • strictatime-이전에 호출 atime되었으며 기본 옵션이었습니다. 그것은 원인 atime모든 파일 액세스와 업데이트 속성을. (메타 데이터 / 속성뿐만 아니라 파일 데이터에 액세스)
  • lazytime-Linux 4.10은 메모리 in 파일 버전 inode에서 업데이트 시간 (atime, mtime, ctime) 만 새로운 옵션을 추가했습니다. 온 디스크 데이터가 느리게 업데이트됩니다 ( man 8 mount자세한 내용 참조).

Linux 커널 2.6.30부터 기본 옵션은 relatime입니다. 원래 atime기능을 사용하려면 strictatime옵션을 사용해야합니다 . 제시된 경우는 다음과 같습니다.

sudo mount -o remount,strictatime /home

출처

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.