원격 폴더를 마운트하는 가장 좋은 방법


40

데비안 wheezy를 실행하는 두 개의 RasberryPi가 있으며 컴퓨터 B의 컴퓨터 A에서 폴더를 마운트하고 싶습니다.

가장 효율적인 방법은 무엇입니까?

SMB를 통해 할 수는 있지만 Windows 용이므로 Linux를 공유하는 더 좋은 방법이 있어야한다고 생각합니다.


답변:


31

많은 것을 사용할 수 있으며 그 중에서 인기있는 옵션은 다음과 같습니다.

  • NFS
  • 삼바 / CIFS
  • SSHFS

설치가 쉬워서 순서대로 배치해야한다고 생각합니다 (상단 : 가장 쉬운 방법)

SSHFS

FUSE를 통해 ssh를 통해 원격 파일 시스템을 마운트 할 수 있습니다. 크리스토퍼 (Cristopher)가 이미 잘 설명했듯이, 나는 어떻게 다루지 않을 것이다. 파일을 자동으로 마운트하려면 약간의 작업이 더 필요합니다 .

삼바

Windows 및 Unix 시스템을 사용하여 원격 폴더에 액세스 할 수 있습니다. 그것이 당신에게 큰 문제가 아니라면 아마 혜택을 얻지 못할 것입니다. 그러나 초기화시 자동 마운트가 쉽습니다 ( 옵션 열을 /etc/fstab포함하여 username=<your-samba-username>,password=<your-samba-password>에 적절한 값을 입력하십시오) .

NFS

그것은 IP를 통해 (사용자 이름이없는 것 = 더 빠르고, 적대적이지 않은 LAN 내부에서만 사용 ) 또는 Kerberos 티켓을 통해 인증 할 수있게합니다 (두 개의 라스베리에는 너무 고통 스럽지만 회사 환경에는 유용합니다).

커널 모드를 지원하므로 sshfs보다 빠르게 실행됩니다. 또한 암호화가 수행되지 않기 때문에 처리량이 향상되며 작은 Raspberry ARM의 경우 차이가 발생할 수 있습니다.

게다가 단순히 네트워크를 신뢰하도록 설정하는 것이 그리 어렵지 않습니다. 당신은에서 자동 마운트 지원이 /etc/fstab너무, 당신은 (예 : 사용자 이름 또는 암호와 같은) 민감한 데이터를 넣을 필요가 없습니다, 당신이 당신의 사용자 이름이 syncrhronized이 (같은 경우 /etc/passwd/etc/group파일) 당신은 일반적인 POSIX 권한 도구 세트를 사용 (수 chown, chgrpchmod).


Pi는 주로 영화와 다른 미디어가있는 디스크가있는 NFS 서버로 사용합니다 (예 : '/ home /'이 아닌 시스템에 중요한 것은 아님). NFS를 사용하면 영화를 로컬 드라이브에 복사하지 않고도 영화를 볼 수 있지만 NFS 디스크에 파일을 쓸 때 rsync를 사용하는 것이 좋습니다. 따라서 NFS 디스크를 읽기 전용으로 마운트하고 SSH를 통해 (rsync를 사용하여) 쓰기합니다. 또한 실수로 NFS 마운트 디스크로 재 동기화되는 것을 막습니다 (매우 비효율적입니다).
zrajm

@zrajm pi에 디스크를 마운트하는 방법?
FutuToad

arisu:/mnt/ytra /mnt/ytra nfs soft,ro,intr 0 2
zrajm

Samba는 권한 또는 stat()반환되는 항목 (예 : nlinkCIFS의 개념이없는 수에 의존하는 것)과 관련하여 일부 유닉스 응용 프로그램을 혼동 할 수 있습니다 . SSHFS 파일 서버에서 컨텍스트 스위치를 크게 실행했으며 사내 프로그램에 필요한 잠금을 지원하지 않았기 때문에 크게 감명받지 못했습니다. 그래서, NFS ...
thrig

38

SSHFS는 훌륭합니다. FUSE 로 로컬 디렉토리에 원격 디렉토리를 마운트 할 수 있습니다 . 아래 #명령은 명령이으로 실행 되었음을 나타내며 일반 사용자로서의 실행 root$나타냅니다. FUSE 소프트웨어가 필요하기 때문에 먼저 사용 가능하고 실행 중인지 확인하십시오.

아래 의 lsmodgrep명령 중 하나는 소프트웨어가로드되어 사용할 준비가되었는지 확인할 수 있습니다. 두 명령 중 하나의 결과 fuse는 사용 가능함을 나타냅니다 .

# lsmod | grep fuse
$ grep -i fuse /lib/modules/$(uname -r)/modules.builtin

두 명령 중 어느 결과도 나오지 않으면 다시 부팅하지 않고 커널 모듈을로드하고 modprobe다시 확인하십시오.

# modprobe fuse
# lsmod fuse

모듈로드에 실패하면로 소프트웨어를 설치하십시오 apt-get.

# apt-get install fuse

설치 후 다시 확인하십시오.

# modprobe fuse
# lsmod fuse

계속하기 전에 FUSE를 설치하고 실행해야합니다.


의 권한을 확인하십시오 /dev/fuse. 권한은 일반 사용자 계정에 읽기 및 쓰기 권한을 제공해야합니다. 일반 사용자 계정에 이미 읽기 및 쓰기 권한이 있다고 판단되면이 부분을 건너 뛰십시오 /dev/fuse.

# ls -l /dev/fuse

출력은 다음 중 하나 일 수 있습니다.

crw-rw-rw- 1 root root (all users can read/write)
crw------- 1 root fuse (only root can read/write)
crw-rw---- 1 root fuse (root and members of fuse group can read/write)

2013 년, 나의 데비안 /dev/fuse0600권한 owner root, group owner로 생성했습니다 fuse. 나는 수 있도록 필요한 퓨즈 그룹이 장치를 사용하여 다음과 같이 그룹 내 일반 사용자 계정을 추가 할 수 있습니다.

# usermod -aG fuse $your_regular_user_account
# chmod 0660 /dev/fuse

새 그룹 멤버십이 필요한 경우 로그 아웃했다가 다시 로그인하여 그룹의 멤버가 되십시오.


다음 ssh과 같이 양쪽에 설치하십시오 .

# apt-get install ssh

이 답변은 데비안 용으로 작성되었지만 최소한 우분투 18.x openssh-client에서는 fuse, 그리고 몇몇 다른 패키지는 우분투 sshfs패키지 의 일부입니다 . sshfs소프트웨어는 클라이언트 측에서 필요하지만 원하는 경우는 양쪽에 설치 될 수 있습니다. 패키지 종속성 중 하나는입니다 fuse. 그러나 설치 프로그램은 이미 설치된 소프트웨어를 건너 뜁니다.

# Ubuntu 18.x: 
# apt-get install sshfs

사용 가능 fuse하고 ssh사용 가능하며 디바이스 사용 권한이 있으면 /dev/fuse원격 파일 시스템의 마운트 지점을 작성하십시오. 원격 파일 시스템을 다음과 같이 로컬로 마운트하십시오.

# mkdir /mnt/$directory_name
# chown $your_user:$group /mnt/$directory_name/
$ sshfs $remote_username@$remote_server_name: /mnt/$directory_name/

home 이외의 디렉토리를 마운트하려면 콜론 뒤에 지정하십시오.

$ sshfs $remote_username@$remote_server_name:/remote/directory /mnt/$directory_name

마운트를 해제하려면을 사용하십시오 fusermount.

fusermount -u /mnt/$directory_name

Windows 시스템이 있으면 win-sshfs 와 함께 SSHFS를 사용할 수 있습니다 . 이 소프트웨어는 SSHFS로 "드라이브를 매핑"하므로 원격 디렉토리를 포함하는 Windows 드라이브 문자를 가질 수 있습니다.


1
추가 옵션을 사용하여 SSHFS의 성능 속도를 크게 향상시킬 수 있습니다. 이 NFS에 대한 추가 정보와 속도 비교를 위해 문서를 참조 admin-magazine.com/HPC/Articles/Sharing-Data-with-SSHFS
blendenzo

이봐-나는 당신의 지시 사항을 조정하려고했지만 (으로 조정 yum install fuse-sshfs.x86_64) modprobe fuse퓨즈 그룹을 만들지 않았습니다. 그래서 내가했을 때 usermod -a -G fuse [your-user], 나는 얻었다 usermod: group 'fuse' does not exist. 도와 줄 수 있습니까? 미리 감사드립니다
양서류

lsmod | grep fuse결과를 반환 /dev/fuse하고 루트가 소유 한, m을 가지고 있습니다 . 그래서 당신은 내가 그룹없이 괜찮다고 말하는거야?
수륙 양용 비행기

그렇습니다crw-rw-rw-. 1 root root 10, 229 Nov 21 15:32 /dev/fuse
양서류

# apt-get install fuse-utils sshfs 후에 "package-utils를 찾을 수 없습니다"라는 메시지가 나타납니다. 왜 그런지 알아? (우분투 18.04.01)
Kvothe

7

리눅스에서는 NFS를 선택할 것입니다 (또한 배포판에 적용 가능한 정보가있는 archwiki 기사 를 확인하십시오 ). 삼바보다 고급 기능이 있습니다. 파일을 잠글 필요가있는 경우 (즉, 동시 액세스) nfs는 상태 비 저장이므로 잠긴 상태도 확인해야합니다. 그러나 smb보다 구성하기가 어렵습니다. 삼바와 nfs를 모두 사용하여 어느 것이 귀하의 요구에 맞는지 확인하는 것이 좋습니다.


1

과거에 SFTP net drive와 ExpanDrive를 모두 사용했으며 sshfs가 두 가지 모두 성능이 뛰어납니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.