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