CIFS는 디렉터리 수신 상태를 유지합니다.

CIFS는 디렉터리 수신 상태를 유지합니다.

설치한 파일 공유에 문제가 있습니다(원격 서버는 SMB v3 Windows Srv 2012 파일 서버입니다). 여러 개의 폴더가 있으며 각 폴더에는 약 200~1500개의 하위 디렉터리가 있습니다.

가장 큰 폴더(ls /du */autocomplete)의 내용을 표시하려고 하면 명령이 영원히 중단됩니다(최소 4시간). -9 옵션을 사용해야만 명령을 종료할 수 있습니다.

전반적인 성능은 꽤 좋아 보입니다.

time dd if=/media/Data/BigFile.tmp  of=/dev/null bs=8k
593639+1 records in
593639+1 records out
4863092573 bytes (4.9 GB, 4.5 GiB) copied, 55.9581 s, 86.9 MB/s

시스템: Ubuntu 16.04 LTS | CPU: Xeon 2.4Ghz 메모리: 8GB

시스템 테이블

//server.example.local/Data /media/Data cifs credentials=/etc/samba/ad-usr,noexec,ro,sec=ntlmsspi,vers=3.0 0 0

폴더 내용이 분할되는 것을 방지하고 싶습니다. 폴더 검색은 Windows 클라이언트에서도 잘 작동합니다.

답변1

문제는 Linux 커널의 SMBv2/3에 대한 잘못된 CIFS 헤더 크기로 인해 발생합니다(SMBv2는 어떤 이유로든 여전히 작동함).

이 문제는 커널 v4.12.11에서 수정되었지만 지원되는 커널 버전이 아니므로 설치 여부에 대한 책임은 사용자에게 있습니다 .

확인하다https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.11, 커밋 9e37b1784f2be9397a903307574ee565bbadfd75를 찾고 있습니다.

이 커널 버전을 설치하려면(Ubuntu 16.04를 사용하고 있는 것으로 확인됩니다):

  1. 콘솔 등에서 SSH를 통해 Linux 시스템에 연결합니다.
  2. 루트 권한을 얻으세요:

    sudo -i
    CD /tmp/

  3. /tmp/ 디렉터리에 다른 .deb 패키지가 없는지 확인하세요.

    rm -f *.deb

  4. 커널 패키지를 다운로드합니다:

    얻다http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-headers-4.12.11-041211_4.12.11-041211.201709070418_all.deb && wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-headers-4.12.11-041211-generic_4.12.11-041211.201709070418_amd64.deb && wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-image-4.12.11-041211-generic_4.12.11-041211.201709070418_amd64.deb

  5. 커널 패키지를 설치합니다:

    dpkg -i linux-*.deb

  6. 서버를 다시 시작하여 새 커널을 로드합니다.

관련 정보