CoreOS クラスター上で NFS を介してディスクを共有しますか?

CoreOS クラスター上で NFS を介してディスクを共有しますか?

CoreOS クラスターで、たとえば NFS を使用してディスク領域を共有することは可能ですか? 可能であれば、どのように実行しますか? (たとえば、1 つのノードに大量のディスク領域がある場合)。これは、たとえば各ノードが独自の Docker イメージ ライブラリをダウンロードして保存する必要を回避したり、ノード間でホーム ディレクトリ領域を共有したりするのに役立ちます。

nfs-kernel-serverCoreOS には追加のソフトウェアを直接インストールできないため、NFS をインストールするためだけのコンテナ (たとえば、Ubuntu ベースのコンテナ)を作成する必要があると思います。

これが可能かどうかは分かりませんが、CoreOS クラスター全体でディスク領域を共有する確立された方法があることを期待しています (結局のところ、クラスターではこれが一般的な期待のようですし、以下の私の提案は必要以上に複雑かもしれません)。フィードバックの材料として、これまでのところ私が考えていることをここに示します。

NFS のホスト側を提供することは、合理的な docker タスクのように思えます。たとえば、次のような Dockerfile を想像します。

FROM ubuntu:14.04
ENV CLIENT_IP 11.111.111.111          
RUN apt-get update && apt-get install -y nfs-kernel-server supervisor
RUN mkdir /var/nfs && chown nobody:nogroup /var/nfs
RUN echo "/home       ${CLIENT_IP}(rw,sync,no_root_squash,no_subtree_check)" >> /etc/exports
RUN echo "/var/nfs    ${CLIENT_IP}(rw,sync,no_subtree_check)" >> /etc/exports
RUN exportfs -a
CMD service nfs-kernel-server start

適切に記入された場所CLIENT_IP(そしておそらくこれを永続化するには CMD を呼び出しなどに置き換える必要があるかもしれませsupervisordんが、その考えは理解できます)

では、このコンテナを実行するときにボリュームを適切にリンクするにはどうすればよいでしょうか? CoreOS ホストからどのボリュームをリンクすればよいでしょうか? または、--net="host"クライアントを使用できるようにするために何かを追加する必要がありますか?

docker run -v /home:/home nfs-server

クライアント側をどのように実装すればよいのか、私にはまったくわかりません。 を提供するためのコンテナが必要でnfs-common、他のコンテナがそのリソースを共有する方法 (おそらく の適切な使用法--volumes-from) を何らかの方法で見つけ出す必要があるからです。 これをどのように進めるか、なぜそれが不可能なのか、このユースケースに対処するためのより良い代替手段があるかどうかの概要を知りたいです。 よろしくお願いします!

答え1

CoreOS ホストに NFS ボリュームをマウントできるはずです。CoreOS からファイルシステムをエクスポートするためのユーザーランド ツールがない場合は、コマンドによって提供される Fedora ツールボックス コンテナーを使用できますtoolbox

答え2

rpc-mountdsystemd サービスを開始し、ファイルnfsdで nfs エクスポートを定義する必要があります。/etc/exports

の例cloud-config.yml

coreos:
  units:
    - name: rpc-mountd.service
      command: start
      enable: true
    - name: nfsd.service
      command: start
      enable: truestrong text
write_files:
  - path: /etc/exports
    permissions: '0644'
    # Change /network-raid with the dir you want to export over nfs
    content: /network-raid/ 192.168.1.0/24(rw,async,no_subtree_check,no_root_squash,fsid=0)

私はCoreOSでこのセットアップを動作させていますv723.3.0

CentOS 上の NFS を介したディスク共有の詳細については、次のリンクを参照してください。

関連情報