Samba를 통해 여러 ZFS 풀을 중첩하고 여러 사용자에게 공유하는 방법

Samba를 통해 여러 ZFS 풀을 중첩하고 여러 사용자에게 공유하는 방법

다음과 같은 ZFS 구조가 있습니다.

% sudo zfs list                                                            16:03:46
NAME                          USED  AVAIL     REFER  MOUNTPOINT
zpool1                       1.18T  5.86T      544K  legacy
zpool1/home                  1.18T  5.86T       96K  legacy
zpool1/home/alice            12.6G  5.86T     12.6G  /zshare/zpool1/home/alice
zpool1/home/bob              1.17T  5.86T     1.02T  /zshare/zpool1/home/bob
zpool2                       2.22T  4.82T      188K  legacy
zpool2/media                 1.13T  4.82T     1.13T  /zshare/zpool1/home/media_root

성능 및 저장상의 이유로 디스크를 공유하지 마십시오 zpool1. zpool2bob과 alice가 모두 액세스할 수 있기를 바랍니다 media_root. 하지만 Bob과 Alice는 서로의 파일에 액세스할 수 없습니다.

  1. /zshare/zpool1/home은 작은 루트 파티션에 속하기 때문에 폴더로 공유할 수 없습니다. alice 또는 bob이 60Gb보다 큰 항목을 폴더에 복사하려고 하면 "공간이 충분하지 않음"으로 인해 실패합니다. 홈 폴더에 있습니다(Windows는 SMB 공유 폴더를 호스팅하는 드라이브에서 공간을 계산합니다).
  2. Windows에서는 동일한 IP 주소에서 여러 네트워크 드라이브를 마운트하는 것을 허용하지 않기 때문에 두 사용자의 워크스테이션에 두 개의 폴더를 공유할 수 없습니다.
  3. Windows에서는 심볼릭 링크를 따르지 않기 때문에 심볼릭 링크를 media_root사용할 수 없으며 Z 파일 시스템에서 작동하는 하드링크를 얻을 수 없는 것 같습니다./alice/bob

나는 정말로 모든 파일을 media_rootalice와 bob의 하위 폴더에 복제하고 싶지 않으며 crontab 스타일 rsync를 사용하여 서로 및 zpool2에서 둘 다 업데이트된 상태를 유지하고 싶지만 다른 옵션이 있습니까?

Ubuntu 20.04에서 ZFS를 사용하여 이러한 일이 발생하도록 할 수 있는 방법이 있다고 확신합니다. 하지만 어떻게 해야 할까요?

편집: 문제의 네트워크에 DNS가 없습니다.

답변1

Windows에서는 동일한 IP 주소에서 여러 네트워크 드라이브를 마운트하는 것을 허용하지 않기 때문에 두 사용자의 워크스테이션에 두 개의 폴더를 공유할 수 없습니다.

이것은 사실이 아닙니다. 네트워크 드라이브를 원하는 만큼 마운트할 수 있습니다(그리고같은 기계에) 무료 편지가 있기 때문입니다. 일반 UNC 경로를 사용하거나 깊은 경로 이름(예: )을 마운트할 수도 있습니다. net use t: \\server\share\bobs\eyes\only필요한 공유를 생성하고 그에 따라 사용하면 됩니다.

하지만 Bob과 Alice는 서로의 파일에 액세스할 수 없습니다.

이는 파일/폴더 권한의 문제입니다.

답변2

내 생각에는... 이를 수행하는 한 가지 방법은 공유 폴더에 액세스할 수 있는 사용자를 위한 그룹을 설정한 다음 해당 그룹의 구성원만 공유 폴더에 액세스할 수 있도록 공유 폴더에 대한 권한을 설정하는 것입니다.

예를 들어 "media_access"라는 그룹을 만들고 이 그룹에 Alice와 Bob을 모두 추가할 수 있습니다. 그런 다음 media_access 그룹의 구성원만 액세스할 수 있도록 media_root 폴더에 대한 권한을 설정할 수 있습니다. 이렇게 하려면 다음 명령을 실행합니다.

chgrp media_access /zshare/zpool1/home/media_root
chmod g+rwx /zshare/zpool1/home/media_root

그러면 media_root 폴더의 그룹 소유권이 media_access 그룹으로 변경되고 해당 그룹의 구성원에게 폴더에 대한 읽기, 쓰기 및 실행 권한이 부여됩니다.

권한을 설정한 후에는 Alice와 Bob의 워크스테이션 모두에서 공유 폴더에 액세스할 수 있어야 합니다. 그러나 공유 폴더에 있는 파일에만 액세스할 수 있으며 자신의 홈 디렉터리에 있는 서로의 파일에는 액세스할 수 없습니다.

답변3

결국 네트워크가 작동하도록 하려면 DNS를 활성화하고 호스팅해야 했습니다.

예:
아래와 같이 Windows에서 두 개의 네트워크 드라이브를 매핑합니다.

\\192.168.11.1\share001
\\192.168.11.1\share002

실패하지만 DNS를 사용할 때

\\alice\share001
\\bob\share002

alice^ &가 둘 다 로 bob해결 되더라도 위의 내용은 작동합니다 192.168.11.1.

관련 정보