NetApp 파일러에서 CIFS 파일 시스템을 마운트하고 여기에 수 기가바이트의 파일을 복사할 때 복사 프로세스가 몇 분 동안 중단되는 경우가 많습니다. 커널은 다음과 같이 시스템 로그에 메시지를 씁니다.
Nov 15 14:03:15 myclient kernel: [173570.048387] CIFS VFS: sends on sock ffff88003a2d4000 stuck for 15 seconds
Nov 15 14:03:15 myclient kernel: [173570.049115] CIFS VFS: Error -11 sending data on socket to server
Nov 15 19:01:22 myclient kernel: [191466.594088] CIFS VFS: Server myfileserver has not responded in 120 seconds. Reconnecting...
실제로 쓰기를 계속하기 전에 마지막 메시지가 반복될 수 있습니다. 프로세스가 중단되면 종료될 수 없습니다. 시스템을 다시 시작하려고 해도 중단됩니다.
서버는 NetApp인데 아직 사양을 모르겠습니다. 클라이언트는 두 개의 Ubuntu 14.04 LTS 시스템이며 그 중 하나는 가상입니다(두 시스템 모두에서 발생함). 해당 커널은 버전 3.5.0-54-generic
과 3.13.0-68-generic
.
세 가지 질문이 있습니다.
- 어떤 Linux 버전에서 이 문제가 발생한 적이 있습니까?
- 이 문제는 처음에 어떻게 발생합니까? CIFS 파일 시스템 지원은 논스톱 끊김보다 더 똑똑해야 하지 않나요?
- 이 문제를 해결하기 위해 어떤 설치 옵션이 보장됩니까?
내 fstab 항목은 다음과 같습니다(익명).
//myfileserver/path/to/mydirectory /mnt/mydirectory cifs credentials=mycredentialsfile,rw,sec=ntlmv2,forceuid,forcegid,file_mode=0644,dir_mode=0755,noserverino,nounix,user,noauto 0 0
추가해도 cache=none
문제가 해결되지 않습니다. 추가 directio
도 작동하지 않습니다. man mount.cifs
지원되는 옵션이라고 주장하지만 그렇지 않습니다. 무엇하다트릭을 수행하는 것은 다음을 추가하는 것입니다 wsize=4096
. wsize=8192
지금까지 내 테스트에서는 이러한 옵션이 정체되지 않은 것으로 나타났습니다. (사용시에도 wsize=16384
일시 정지 현상이 발생합니다.)
시행착오를 겪는 것보다 무슨 일이 일어나고 있는지 이해하고 100% 확실하게 문제를 해결하고 싶습니다. 왜 이런 일이 발생하는지, 무엇을 해야 하는지 알려주실 수 있나요?
(Ask Ubuntu, Unix & Linux 및 ServerFault에 이 문제처럼 보이는 몇 가지 질문이 게시되었지만 대부분은 그렇지 않습니다.읽다파일 또는 파일 시스템에서게으른, 내 경우에는 이런 일이 발생하지 않지만 일시 중지는 다음과 같은 경우에만 발생합니다.글쓰기문서)
답변1
기본적으로 cifs 설치는 프로토콜 1.0을 사용합니다. 이 프로토콜은 오래되었을 뿐만 아니라 비효율적이며 여러 가지 이유로 절전 모드에서 잘 복구되지 않습니다.
서버 기술에 따라 vers=2.1
최소한 또는 를 사용할 수 있습니다 vers=3.0
.
어떤 버전의 SMB 프로토콜이 지원되는지 확인하려면 설명서나 공급업체를 확인하거나 최소한 3.0
명령 출력을 사용하고 참조하여 mount
어떤 버전이 협상되었는지 확인하는 것이 좋습니다.
최신 CIFS 버전의 프로토콜로 변경하면 지연 문제의 일부 또는 전부가 해결되고 보다 효율적인 전송 속도를 제공할 수 있습니다.
관련 질문을 참고해주세요CIFS는 Windows 공유에 대한 연결이 임의로 끊어집니다.자세한 내용은.
일시정지 참고하세요개선될 것이다, 그러나 대용량 파일을 복사할 때는 사라지지 않습니다. 이 동작은 예를 들어 파일이 버퍼에 들어가고 파일 시스템이 복사가 성공적으로 완료되었다는 서버의 알림을 기다리는 기능입니다.