CentOS 7.2 클라이언트에서 Netapp CIFS 파일 공유에 연결하고 있습니다. 30% 공간이 부족하여 NFS에서 교체해야 했습니다."교련".
CIFS로 인해 약간의 성능 저하가 있으며 이를 더 빠르게 만들기 위해 노력하고 있습니다.
rsize와 wsize를 늘리려고 합니다.
크기=매개변수
127K(원래 cifs 프로토콜 최대값)보다 큰 rsize를 사용하려면 서버가 새로운 Unix 기능 플래그(매우 큰 읽기의 경우)를 지원해야 하며 일부 최신 서버(예: Samba 3.0.26 이상)에서는 이를 지원합니다. rsize의 설정 범위는 최소값 2048부터 최대값 130048(127K 또는 CIFSMaxBufSize 중 작은 값)입니다.
wsize=바이트
RHEL6.2부터 기본값은 클라이언트와 서버가 POSIX 확장을 통해 대규모 쓰기를 협상하는지 여부에 따라 달라집니다. 이렇게 하면 기본값은 1M이고 허용되는 최대값은 16M입니다. 이렇게 하지 않으면 기본값은 65536이고 허용되는 최대 값은 131007입니다. 이 값은 협상의 시작점일 뿐입니다. 클라이언트와 서버는 서버 성능에 따라 이 크기를 하향 조정할 수 있습니다.
Netapp 측에서 Unix 확장(POSIX)을 활성화했습니다.
Y::*> vserver cifs options show -vserver X
Is UNIX Extensions Enabled: true
[-is-unix-extensions-enabled {true|false}] - UNIX 확장 활성화 여부(권한: 고급) true로 설정하면 이 선택적 매개변수가 CIFS 서버에서 UNIX 확장을 활성화합니다. false로 설정하면 UNIX 확장 기능이 비활성화됩니다. 이 매개변수의 기본값은 false입니다. UNIX 확장을 사용하면 CIFS 프로토콜을 통해 POSIX/UNIX 스타일 보안을 노출할 수 있습니다.
다음을 추가해야 하는 대규모 읽기/쓰기를 활성화하는 것 같습니다 /etc/samba/smb.conf
. (전역 섹션)
min receivefile size = 16384 (set to a non-zero value)
"최소 수신 파일 크기(G) POSIX 대규모 쓰기 지원(SMB/CIFS는 최대 16Mb 쓰기)을 활성화하려면 이 옵션이 0이 아니어야 합니다."
그런데 크기 옵션을 지정하지 않고 마운트하면 rsize=65536,wsize=65536
더 큰 1M~16M 값 대신 SMB가 협상되는 것을 볼 수 있습니다.
//IP/MOUNT on /opt/DIR type cifs (rw,relatime,vers=3.0,sec=ntlmssp,cache=none,username=BLAH,domain=DOMAIN,uid=0,noforceuid,gid=0,noforcegid,addr=IP,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=65536,wsize=65536,actimeo=1)
그런 다음 65k보다 큰 값으로 설정하려고 시도했지만 효과가 없었습니다.
[X ~]# cat /etc/modprobe.d/cifs.conf
options cifs CIFSMaxBufSize=130048
내가 무엇을 놓치고 있나요? 올바른 netapp Unix 플래그를 활성화하지 않았습니까? CentOS 어딘가에서 대용량 버퍼 CIFS 플래그를 활성화해야 합니까? 2개 계층 사이에 9k 점보 프레임이 있고 클라이언트에 RAM(32GB) 로드가 있으므로 상당한 크기 성능 향상을 얻을 수 있습니다.
답변1
기본적으로 cifs 설치는 프로토콜 1.0을 사용합니다. 이 프로토콜은 오래되었을 뿐만 아니라 비효율적이며 여러 가지 이유로 절전 모드에서 잘 복구되지 않습니다.
서버 기술에 따라 vers=2.1
최소한 또는 를 사용할 수 있습니다 vers=3.0
.
지원되는 CIFS 프로토콜은 공급업체에 문의하거나 협상 버전 확인을 vers=3.0
사용해 보십시오.mount
관련 질문을 참고해주세요CIFS는 Windows 공유에 대한 연결이 임의로 끊어집니다.자세한 내용은.