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ディスクzpool2を共有しないでください。ボブとアリスの両方がアクセスできるようにしたいのですmedia_rootが、ボブとアリスはお互いのファイルにアクセスすることはできません。

  1. /zshare/zpool1/home はルート パーティションに属しているため、フォルダーとして共有できません。ルート パーティションは小さく、アリスまたはボブが 60 GB を超えるものをフォルダーにコピーしようとすると、ホーム フォルダーに容量があっても「容量不足」で失敗します (Windows は SMB 共有フォルダーをホストしているドライブから容量を計算します)。
  2. Windows では同じ IP アドレスから複数のネットワーク ドライブをマウントできないため、2 つのフォルダーを両方のユーザーのワークステーションで共有することはできません...
  3. Windows ではシンボリックリンクが追跡されないため、シンボリックリンクmedia_rootを作成できません。/aliceまた、Z ファイルシステム間でハードリンクを機能させることができないようです。/bob

アリスとボブの両方のサブフォルダーにすべてのファイルを複製しmedia_root、crontab スタイルの rsync を使用して、両方を相互に更新し、zpool2 上で更新し続けることは本当に望んでいませんが、他にどのようなオプションがありますか?

Ubuntu 20.04 の ZFS でこれを実現する方法がいくつかあることは確かですが、どうやって実現するのでしょうか?

編集: 問題のネットワークには DNS がありません。

答え1

Windows では同じ IP アドレスから複数のネットワーク ドライブをマウントできないため、2 つのフォルダーを両方のユーザーのワークステーションで共有することはできません...

これは正しくありません。ネットワークドライブをいくつでもマウントできます(そして空き文字があるので、同じマシンに共有することもできます。プレーンな UNC パスを使用したり、深いパス名 ( などnet use t: \\server\share\bobs\eyes\only) をマウントしたりすることもできます。必要な共有を作成し、それに応じて使用してください。

ただし、ボブとアリスはお互いのファイルにアクセスすることはできません。

これはファイル/フォルダの権限の問題です。

答え2

これを行う 1 つの方法は、共有フォルダーへのアクセス権を持つユーザーのグループを設定し、そのグループのメンバーだけがアクセスできるように共有フォルダーの権限を設定することだと思います。

たとえば、「media_access」というグループを作成し、Alice と Bob の両方をそのグループに追加することができます。次に、media_root フォルダーの権限を設定して、media_access グループのメンバーだけがアクセスできるようにします。これを行うには、次のコマンドを実行します。

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 で 2 つのネットワーク ドライブを以下のようにマッピングする

\\192.168.11.1\share001
\\192.168.11.1\share002

ただし、DNSを使用する場合は失敗します

\\alice\share001
\\bob\share002

^ 上記は、alice&bobが に解決されても機能します192.168.11.1

関連情報