FreeBSDの自動マウンターを小さな断片に切り刻み、油で煮ます


40

ホームディレクトリの階層をいくつかのFreeBSD刑務所にさらそうとしています。ホームディレクトリは、それぞれが一意のZFSデータセットになるように構成されます。刑務所は開発作業に使用されるため、定期的に作成および破棄されます。

私の最初の考えは、単純にnullfsを使用し/homeてjail内にマウントすることでしたが、nullfsは下位のファイルシステムにアクセスする方法を提供しません。

2番目の考えは、NFSを介してディレクトリをエクスポートしてから、各jail内でautomounterデーモン(amd)を実行することでした。刑務所内でNFSマウントを実行できる場合は、これでうまくいきます。しかし、そうではありません。

私の3番目の考えは、ホストでamdを実行し、jailにnullfsマウントをプロビジョニングすることでした...しかしnullfsの amdサポートは存在しません。

私の4番目の考えは、NFSを使用したディレクトリのエクスポートに戻ることでした。もちろん、amdはNFSで動作します。残念ながら、ターゲットのマウントポイントにディレクトリをマウントするのではなく、amdは一時的な場所(/.amd_mnt/...)にマウントしてから、もちろん、jail環境内では役に立たないシンボリックリンクを作成します。

だから、nullfsを使用してサブディレクトリを/.amd_mntjail に公開できますか?いや!これにより、nullfsを使用して下位ファイルシステムにアクセスする方法がないことがわかった最初の試みに戻ります。

そして、私の頭が爆発した。

私がやろうとしていることに対して良い解決策はありますか?悪いソリューションは複数作成することになり、刑務所起動後にスクリプトを実行することですNULLFSの各ホームディレクトリのマウントポイントを、これはかなり不格好である-それは、アカウントに新しいディレクトリまたは削除されたディレクトリを取るために定期的に実行する必要があります。したがって、基本的には、悪いオートマウンターを作成する必要があります。

より良い方法がなければなりません。Serverfault、私を助けてください、あなたは私の唯一の希望です!

更新1:で問題の一部を解決できるかもしれないと思いましたがpam_mount、これはせいぜい不完全です。また、ドキュメントからpam_mount、ターゲットマウントポイントを自動的に作成できるかどうかも明確ではありません。マウントポイントが先験的に存在する必要がある場合、この解決策は、私がすでに提案した悪い自動マウンターよりも優れていません。

更新2:以下の回答で説明したようVFCF_JAILに、NFSファイルシステムの設定により、刑務所はNFSマウントを実行できます。残念ながら、オートマウンタは役に立たない振る舞いを続けており、刑務所で実行すると、プロセスエントリを削除するためにシステムの再起動が必要になるような方法でくさびでくぐることに非常に優れているようです。


1
そして、もしこれらの機能をFreeBSDに移植しても構わないとしたら、それは素晴らしいことです。真剣に、標準のLinuxオートマウンタの動作もこれに最適です。シンボリックリンクを使用するのではなく、実際にターゲットマウントポイントにファイルシステムをマウントするからです。
ラースク

4
時間の深刻な不足を非難します。そしておそらくやる気の欠如のほんの少し...>。>
イグナシオバスケス-エイブラムス

15
+1素晴らしいタイトルのみ。:)
シャウナ

4
それは、実行のあなたの特定の方法がどのように特定の私を懸念
マーク・ヘンダーソン

2
ああ、@ウィルシャー、あなたは面白くない。
ラースク

回答:


26

こんにちは、ラース!それはあなたが尋ねた魅力的な質問であり、いくつかの調査の後、私はあなたのための答えを見つけたかもしれません。

この 記事や他の記事によると VFCF_JAIL 、NFSファイルシステムプロバイダーに属性を設定できる可能性があり、理論的にはjailがNFSマウントを実行できるようになります。これにより、jail内でamdを実行できるようになる可能性があります...これにより、この問題が適切に解決されます。

今夜、カーネルを再構築して、どのように機能するかを確認します。これは必ずしも最大の解決策ではありません(将来のカーネルの更新後もこの変更を維持する必要があることを意味するため)が、うまくいけば面白いでしょう。

そして覚える...

           ___________    ____                                           
    ______/   \__//   \__/____\                             
  _/   \_/  :           //____\\                             
 /|      :  :  ..      /        \                         
| |     ::     ::      \        /                             
| |     :|     ||     \ \______/     Don't try to rebuild the
| |     ||     ||      |\  /  |        kernel remotely because
 \|     ||     ||      |   / | \         you know you're just
  |     ||     ||      |  / /_\ \        going to hose the server.
  | ___ || ___ ||      | /  /    \    
   \_-_/  \_-_/ | ____ |/__/      \   
                _\_--_/    \      /   
               /____             /  
              /     \           /    
              \______\_________/     

6
ありがとう、ラース。サーバーにアクセスできなくなり、これを試すために家に帰るまで待たなければならないからです。
ラースク

10
LOLの場合は+1。また、これを通過の権利とみなします-深夜にサーバーに出かけてKERNEL.OLD(またはKERNEL.GENERIC-システムに最新のGENERICを保持しますか?そうでない場合は、開始する必要があります。)多くのレッスンを教えています
...-voretaq7

ネットブート可能なmfsbsdのコピーも手元に置いておくと、ブートローダーに関連する多くの問題から私を救うことができます。
ラースク

1
設定VFCF_JAILによりNFSマウントが機能しましたが、自動マウンターは引き続き私を悩ませます。
ラースク

1
ええ、私はさまざまな環境で10年以上にわたってホームディレクトリに自動マウントを使用してきましたが、満足しています。気を付けてください、これはLinux(およびSolaris)の自動マウンターであり、amdではありません。
ラースク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.