각 클라이언트 컴퓨터에 공유 데이터 디렉토리가 있고 이를 모두 내 서버에 마운트하고 싶습니다. 가장 간단하고 표준적인 방법은 무엇입니까? NFS는 서버의 디렉토리를 많은 클라이언트와 공유하는 데 더 적합해 보입니다. 그렇죠? 서버에 대해 NFS를 구성했습니다. 모든 운영 체제는 데비안입니다. 감사해요.
답변1
파일 시스템이 공유될 때 공유 파일 시스템에 대한 물리적 스토리지를 실제로 소유하는 시스템을 종종 호출합니다.섬기는 사람, 공유 저장소를 원격으로 사용하는 모든 시스템은고객.
따라서 귀하의 경우 "클라이언트 컴퓨터"도 모두 NFS 또는 CIFS 서버여야 하며, 서버 시스템도 NFS 클라이언트여야 합니다.
NFS는 일대일 및 일대다 공유에서도 동일하게 잘 작동합니다. 그러나 "클라이언트 컴퓨터"가 항상 실행될 것이라고 보장할 수 없거나 사용자가 마음대로 종료하거나 다시 시작할 수 있는 경우 autofs
터미널 컴퓨터로 인해 발생한 문제를 기반으로 한 솔루션이 필요할 수 있습니다.
이 방법으로 /shared_data/<hostname>/
서버의 모든 클라이언트에 대한 공유 데이터 디렉터리에 액세스할 수 있습니다.
/shared_data
먼저 디렉터리를 서버와 공유 하도록 모든 클라이언트 컴퓨터를 구성합니다 . 여기서는 NFS를 가정하고 있지만 autofs
CIFS에도 동일하게 적용됩니다.
/etc/auto.shared_data
그런 다음 다음 내용을 사용하여 서버 시스템에 NFS 자동 마운트 매핑 파일을 만듭니다 .
client1 -rw,soft client1.domain.example:/shared_data
client2 -rw,soft client2.domain.example:/shared_data
...
서버 시스템에서 NFS 클라이언트 서비스를 시작하고 클라이언트 디렉토리를 수동으로 마운트하여 공유 디렉토리가 실제로 마운트 가능한지 확인하십시오.
그런 다음 서버 시스템에 마운트 지점 디렉터리를 생성하고 /shared_data
다음과 같이 기본 맵에서 맵 파일을 참조합니다.autofs
/etc/auto.master
/shared_data /etc/auto.shared_data
autofs
그런 다음 서버 시스템에서 서비스를 시작합니다 .
/shared_data/<client hostname>
이제 서버 시스템의 디렉토리에 액세스하려고 할 때마다 자동으로 설치되며 autofs
, 아무도 파일을 열지 않거나 한동안 액세스하지 않으면 제거됩니다.
soft
NFS 마운트 옵션을 사용하면 클라이언트 시스템의 갑작스러운 종료로 인해 서버 시스템의 프로세스와 shared_data
클라이언트 공유의 열린 파일이 무기한 중단되는 일이 발생하지 않도록 할 수 있습니다.경고하다:어떤 경우에는 이로 인해 파일이 손상될 수 있습니다. 독을 선택하세요.
클라이언트를 추가하거나 제거하는 경우 편집 /etc/auto.shared_data
하고 변경 사항을 즉시 적용할 수 있어야 합니다. 변경 사항을 적용 /etc/auto.master
하려면 구성을 다시 로드해야 합니다 autofs
.
답변2
서버의 단일 폴더를 원하는 수의 클라이언트 컴퓨터와 공유하려면:
- 네트워크 파일 시스템:
- 패키지 관리자를 사용하여 NFS 서비스를 설치합니다.
- IP 범위/IP 또는 클라이언트를 나열
/path/to/share IP1(root_squash,rw,async,fsid=1) IP2(root_squash,rw,async,fsid=1) ...
하려면 에 추가하세요 ./etc/exports
exportfs -ra
내보내기를 업데이트하려면 실행하세요 .- 사용자 권한은 유지되므로 클라이언트의 사용자 1000은 서버의 사용자 1000으로 처리됩니다.
hostname:/path/to/share nfs4 /mount/path timeo=60,intr 0 0
각 고객의 항목에 추가됨/etc/fstab
- CIFS:
- 패키지 관리자를 사용하여 Samba 서비스를 설치합니다.
- 폴더 추가
/etc/samba/smb.conf
- 서비스를 실행
systemctl restart smb
하거나 다시 시작하십시오.smbd
- 승인된 사용자 추가(서버에 존재해야 함)
sudo smbpasswd -a USER
- 정말로 원한다면 모든 사용자가 단일 사용자 이름과 비밀번호를 사용하여 연결할 수 있습니다.
//hostname/sharename /mount/path/ cifs uid=local_user,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm,username=remote_user,password=remote_pass 0 0
클라이언트에 추가/etc/fstab