IT 주제, 특히 리눅스를 다룹니다.

Posted
Filed under Linux/Gentoo
Gentoo에 Samba 3.6.25 설치 후 문제가 발견되었다.
Samba를 통해 서버의 NFS mount를 share 하는 경우, 디렉토리/파일을 브라우징하는 것은 문제가 없으나, 파일을 read, write 할 때 file corruption이 발생한다.(checksum 맞지 않음) 꽤 심각한 문제다.

Samba log 를 들여다 본 결과 아래와 같은 메시지가 발견되었다.
[2015/04/27 12:37:53.782287,  0] smbd/dfree.c:156(sys_disk_free)
  WARNING: dfree is broken on this system
Redhat Customer Portal에서 정보를 찾을 수 있었다.
Can an NFS mount be shared out via Samba under Red Hat Enterprise Linux?

이는 NFS 클라이언트가 필수적인 file-locking mechanism 없이 파일을 액세스 하기 때문이다. 따라서 해당 클라언트들은 서버로부터 해당 파일을 캐시한 다른 SMB 클라이언트로의 oplock break 요청을 초기화하지 못한다.
그러므로 NFS 파일 접근은 Samba 클라이언트에 의해 캐시된 파일로 write 할 수 있고, 이는 data corruption을 일으킨다.
해당 이슈는 2009년 samba.org 메일링 리스트에서 논의 되었다: [Samba] NFS mounted samba share

근본 해결책은 이러한 방법을 쓰지 않는 것이지만, 필요한 경우 workaround가 존재한다. (Redhat에서는 권고하지 않는다.)
  • /etc/samba/smb.conf 파일에 다음 내용을 추가한다:
posix locking = no
  • 또는, NFS mount 옵션에 nolock을 추가한다.
2015/04/29 16:36 2015/04/29 16:36