저는 NFSServer1(RHEL)과 NFSClient1(Ubuntu)이라는 두 개의 Linux 시스템을 가지고 있습니다.
ntfs-3g
드라이버는 NFSServer1 에 설치됩니다 . 다음 명령을 실행하여 장치 파티션을 마운트합니다
ldmtool
.NTFS
mount -t ntfs-3g -o ro,noatime $devPath $mountPath
참고: 이 두 파티션은 Windows 동적 디스크 파티션을 사용하여 파생 /dev/mapper/ldm_vol_VishalWDD-Dg0_Volume1
됩니다 ./dev/mapper/ldm_vol_VishalWDD-Dg0_Volume2
LDM 도구
[root@ROADQAScaleNFS2 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sdc4 fuseblk 127G 11G 117G 9% /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc4
/dev/sdc2 fuseblk 450M 13M 438M 3% /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc2
/dev/mapper/ldm_vol_VishalWDD-Dg0_Volume1 fuseblk 10G 5.8G 4.3G 58% /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume1
/dev/mapper/ldm_vol_VishalWDD-Dg0_Volume2 fuseblk 10G 6.0G 4.1G 60% /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume2
[root@ROADQAScaleNFS2 ~]# mount
/dev/sdc4 on /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc4 type fuseblk (ro,noatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/sdc2 on /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc2 type fuseblk (ro,noatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/mapper/ldm_vol_VishalWDD-Dg0_Volume1 on /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume1 type fuseblk (ro,noatime,user_id=0,group_id=0,allow_other,blksize=4096)
/dev/mapper/ldm_vol_VishalWDD-Dg0_Volume2 on /monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume2 type fuseblk (ro,noatime,user_id=0,group_id=0,allow_other,blksize=4096)
이 모든 파티션에는 약 1천만 개의 파일이 있습니다.
마운트된 이러한 파티션은 NFSClient1에서 NFS 공유로 액세스할 수 있습니다.
[root@NFSClient ~]# mount
10.4.0.5:/monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc4 on /monitor1/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc4 type nfs4 (ro,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.148.66.49,local_lock=none,addr=10.4.0.5)
10.4.0.5:/monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc2 on /monitor1/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/sdc2 type nfs4 (ro,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.148.66.49,local_lock=none,addr=10.4.0.5)
10.4.0.5:/monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume1 on /monitor1/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume1 type nfs4 (ro,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.148.66.49,local_lock=none,addr=10.4.0.5)
10.4.0.5:/monitor/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume2 on /monitor1/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume2 type nfs4 (ro,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.148.66.49,local_lock=none,addr=10.4.0.5)
NFS 서버의 NFS 데몬 스레드 수는 64로 설정됩니다.
fuseblk
다음으로 NFS 클라이언트에서 다음 명령을 사용하여 stat 파티션을 실행합니다 find
.
find -H /monitor1/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume2 -printf '%p|' | xargs -d '|' stat --printf="%F, %i:\t%n\t%.19x\t%.19y\t%.19z\t%.19w\t%s\t%u\t%g\n" \ |$SED -e "s|/monitor1/6f5bd42-e548-4e60-8c5d-4c52360b8dc4/mapper/ldm_vol_VishalWDD-Dg0_Volume2/||g" -e "s|directory,|d/d|g" -e "s|symbolic link,|l/l|g" -e "s|regular file,|r/r|g" -e "s|socket,|h/h|g" \ -e "s|regular empty file,|r/r|g" -e "s|fifo,|p/p|g"
매우 느리게 수행됩니다. 5~6분 동안 휴식한 후 몇 초 동안 회복해야 합니다. 다른 모든 장착 지점에서도 마찬가지입니다. 12시간이 지나도 실행이 완료되지 않습니다.
ext4
xfs
이러한 느린 동작은 장치 유형 에서는 관찰되지 않습니다.
테스트로 NFSServer1에서 동일한 find 명령을 실행해 보았는데 꽤 빨랐습니다. 전체 실행 프로세스는 약 40분 내에 완료됩니다. 하지만 NFS 서버에 액세스할 수 없습니다. NFS 서버 팀에 다음과 같은 다른 설치 옵션을 사용해 보도록 요청했습니다.ntfs-3g 매뉴얼 페이지, 하지만 그건 도움이 되지 않습니다.
NFS 파티션의 읽기 성능을 향상시킬 수 있는 방법이 있다면 fuseblk
정말 감사하겠습니다.
매우 감사합니다!
답변1
FUSE는 사용자 공간의 파일 시스템입니다. 컨텍스트 전환 오버헤드로 인해 커널의 파일 시스템만큼 빠르지는 않습니다. find
위와 같이 파일 시스템 집약적인 작업을 수행해야 하는 경우인 것 같습니다.
그래서.
- NTFS3 커널 드라이버(제 기억이 맞다면 Linux 5.15 이상에서 사용 가능)를 사용하거나
- 모든 데이터를 다른 파일 시스템으로 이동한 번(다시 필요한 경우 NTFS로 동기화) 또는
- 반가상화된 Windows Server VM을 실행하여 NFS를 통해 파일 시스템 제공
개인적으로 나는 두 번째 옵션을 강력히 선호합니다. 해당 파일 시스템에 전혀 적합하지 않은 파일 시스템의 항목에 영구적으로 액세스하는 이유는 무엇입니까? 우리는 실제 데이터가 40GB 미만이라는 것을 이야기하고 있습니다. 그것은 아무것도 아닙니다.
내 말은, 당신은니드포스피드 팀. 누군가 NFS를 통해 귀하의 데이터에 액세스하기 위해 누군가를 고용했습니다. NTFS로의 직접 내보내기를 지원하는 이유는 저와는 조금 다릅니다.