
최종 사용자 관점에서 sync
설치 옵션과 설치 옵션의 차이점은 무엇입니까? async
이러한 옵션 중 하나를 사용하여 설치된 파일 시스템이 다른 옵션을 사용하여 설치된 파일 시스템보다 더 빠릅니까? 설정하지 않은 경우 어떤 옵션이 기본값인가요?
man mount
이 sync
옵션을 사용하면 플래시 메모리의 수명이 단축될 수 있다는 것은 시대에 뒤떨어진 통념일 수 있습니다. 어쨌든, 내 메인 하드 드라이브(파티션 /
및 /home
)가 SSD 드라이브이기 때문에 이것이 조금 걱정됩니다 .
Ubuntu 설치 프로그램(14.04)은 파티셔닝 옵션을 지정하지 않지만 sync
옵션을 통해 설정됩니다. 여기에 내 것이 있습니다. 몇 줄을 추가했지만(주석 참조) 설치 프로그램이 수행한 줄에서는 아무것도 변경하지 않았습니다.async
/
async
/home
defaults
/etc/fstab
# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4 defaults 0 2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none swap sw 0 0
# here goes part written by me:
# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults 0 2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9 /mnt/win_c ntfs auto,umask=0222,ro 0 0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2 /mnt/win_d ntfs auto,umask=0222,ro 0 0
그렇다면 내 /dev/sda
SSD가 async
마모를 줄이기 위해 파일 시스템 옵션을 추가해야 합니까? 내가 정의하는 추가 파티션에 대해 있어야 하는 설정이나 옵션이 있습니까? SSD 및 HDD 드라이브에 권장되는 방법은 무엇입니까?/
/home
sync
async
/etc/fstab
답변1
async
반대로 sync
거의 사용되지 않습니다. async
은 기본값이므로 nfs-utils
버전 1.0.0 이하에서는 명시적으로 지정할 필요가 없습니다. 1.0.0 이후의 모든 버전에서는 sync
이것이 기본값이며 async
필요한 경우 명시적으로 요청해야 합니다.
이 옵션은 sync
해당 파일 시스템에 대한 모든 변경 사항이 즉시 디스크로 플러시됨을 의미합니다. 기계식 드라이브의 경우 이는 시스템이 디스크 헤드를 올바른 위치로 이동해야 하기 때문에 상당한 속도 저하를 의미합니다. 사용자 sync
공간 프로세스는 작업이 완료될 때까지 기다려야 합니다. 이와 대조적으로 async
시스템은 쓰기 작업을 버퍼링하고 동시에 실제 쓰기를 최적화하며 사용자 공간의 프로세스는 차단되지 않고 계속 실행됩니다. ( 뭔가 잘못되면 close()
반품하세요 -1
. errno = EIO
)
SSD: SSD 메모리가 RAM 메모리에 비해 얼마나 빠른지는 모르겠지만 확실히 빠르지는 않기 때문에 sync
기계식 디스크 드라이브만큼 나쁘지는 않지만 성능 저하가 있을 수 있습니다. SSD에 쓰기를 하면 SSD가 "마모"되기 때문에 수명 측면에서 이러한 지혜는 여전히 유효합니다. 최악의 시나리오는 동일한 위치에 많은 변경을 수행하는 프로세스입니다. sync
모든 변경 사항이 SSD에 영향을 미치고 async
(기본) SSD는 커널 버퍼링으로 인해 대부분의 변경 사항을 볼 수 없습니다.
결국 이를 무시하면 sync
만족할 가능성이 높습니다 async
.
답변2
경고: 설치 내용이 지속적으로 기록되고(예: 귀중한 로그, 보안 카메라 녹화 등) 갑작스러운 정전을 피할 수 없다면 "비동기" 설치 옵션을 사용하는 것이 최선의 방법이 아닐 수 있습니다. 기록이 손실되거나 불완전한(쓸모없는) 데이터가 발생할 수 있습니다. 별로 영리하지 않은 예: 도둑이 상점에 들어와 즉시 카메라 코드를 자르는 것을 상상해 보십시오. 침입에 대한 비디오 녹화가 녹화되었지만 해당 비디오(또는 그 일부)가 메모리에 버퍼링되어 카메라 전원이 꺼지면 손실될 수 있으므로 디스크에 플러시/동기화되지 않았을 수 있습니다.
답변3
2022년 및 RHEL 7.9 기준으로 가격 대비 좋은 가치
자체 암호화 SSD를 사용하는 서버 또는 Dell BOSS M.2를 사용하는 일부 Linux 운영 체제는 100gbps HDR 인피니밴드 이상의 속도를 제공합니다. 기본적으로 NFS 연결은 다음과 같습니다.동기화버전 4.1 및 프로토콜=tcp에서. nfs v4.2가 /cat proc/fs/nfsd/versions
표시 되어도 작동하도록 할 수 없지만 +4.2
nfs 4.2가 4.1보다 얼마나 나은지 모르겠습니다.
/etc/exports
나는 본질적으로 /scratch *(rw)
이것을 시도했습니다동기화5GB tar 파일의 단일 nfs 파일 복사본(평균 460MB/초(최대 버스트 480))에서는 /scratch *(rw,async)
차이가 나타나지 않았습니다 . rsync --progress <source> <dest>
동일한 파일을 네트워크를 통하지 않고 동일한 서버의 다른 폴더에 로컬로 복사하는 데 평균 435MB/초가 소요되었습니다. 참고로 저는 항상 기존 1gbps 구리보다 일관된 112MB/초 SSH scp 속도를 얻습니다.
/etc/exports on rhel-7.9 nfs-server
/scratch *(rw,no_root_squash)
exportfs -v on rhel-7.9 nfs-server
/scratch <world>(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
mount on rhel 7.9 nfs-client
server:/scratch on /scratch type nfs4 (rw,nosuid,noexec,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.2,local_lock=none,addr=192.168.1.1,_netdev)
/etc/fstab on rhel 7.9 nfs-client
192.168.1.1:/scratch /scratch nfs4 _netdev,defaults,nosuid,noexec 0 0
반품:https://www.admin-magazine.com/HPC/Articles/Useful-NFS-Options-for-Tuning-and-Management (이 기사에는 날짜가 기재되어 있지 않으며 nfs v3 및 v4에 대해서는 언급되지 않습니다.)
대부분의 사람들은 NFS 서버에서 동기화 옵션을 사용합니다. 동기 쓰기의 경우 서버는 데이터가 안정적인 저장소에 기록될 때만 NFS 클라이언트에 응답합니다. 많은 사람들이 NFS 서버에 장애가 발생하거나 네트워크 연결이 끊어지면 데이터가 손실될 가능성이 적기 때문에 이 옵션을 선호합니다.
비동기 모드에서는 서버가 I/O 요청을 처리하고 이를 로컬 파일 시스템으로 전송하자마자 NFS 클라이언트에 응답할 수 있습니다. 즉, 응답하기 전에 데이터가 안정적인 저장소에 기록될 때까지 기다리지 않습니다. NFS 클라이언트. 이렇게 하면 I/O 요청 시간이 절약되고 성능이 향상됩니다. 그러나 I/O 요청이 디스크에 도달하기 전에 NFS 서버가 충돌하면 데이터가 손실될 수 있습니다.
파일 시스템이 클라이언트에 마운트되면 동기 또는 비동기 모드를 간단히 마운트 명령줄이나 NFS 파일 시스템의 /etc/fstab 파일에 배치하여 설정할 수 있습니다. 옵션을 변경하려면 먼저 NFS 파일 시스템을 마운트 해제하고 옵션을 변경한 다음 파일 시스템을 다시 마운트해야 합니다.
비동기 NFS 모드를 사용하기로 선택한 경우 NFS 서버가 먼저 I/O 요청을 메모리에 저장하고 NFS 클라이언트에 응답한 다음 파일을 허용하여 I/O를 종료하므로 비동기를 활용하려면 더 많은 메모리가 필요합니다. system 안정적인 저장소에 기록됩니다. 따라서 최상의 성능을 얻으려면 가능한 한 많은 메모리가 필요합니다.
두 가지 작동 모드 중에서 선택하는 것은 귀하에게 달려 있습니다. 어딘가에 데이터 복사본이 있는 경우 더 나은 성능을 위해 비동기적으로 실행할 수 있습니다. 복제본이 없거나 데이터를 쉽고 빠르게 복사할 수 없는 경우 동기화 모드가 더 나은 선택일 수 있습니다. 당신 외에는 누구도 이 결정을 내릴 수 없습니다.