9. MPIクラスターを作ろう! - NFSサーバーをたてよう
前回からのつづき。
8. MPIクラスターを作ろう! - ホスト設定ファイル - 電子計算記
実行バイナリを共有するためにNFSストレージサーバーを準備しましょう。
まずは、NFSストレージサーバー用に仮想マシンを作成します。
computeのマシンと同じリージョン/ゾーンに作成します。
マシンタイプはここでもLight.S1で作ります。
イメージはcomputeに合わせてUbuntu 16.04 の例とします。
ボリュームは、容量を必要に応じて増設できるように、データディスクを利用します。
ここでは10GBを追加します。
マシン名は、nfs-serverとしました。以降はこの名前を例にすすめます。
nfs-serverにSSHログイン後、最初にデータディスク上にパーティションを準備します。
将来的にオンラインで増設できるよう予めLVMで準備しておきます。
なお、上記の流れでマシンを作成すると、データディスクは/dev/sdbとして見えていると思います。
root@nfs-server:~# apt update root@nfs-server:~# apt install parted lvm2 -y root@nfs-server:~# parted /dev/sdb mklabel gpt Yes/No? yes root@nfs-server:~# parted /dev/sdb mkpart primary 1 100% root@nfs-server:~# parted /dev/sdb set 1 lvm on root@nfs-server:~# pvcreate /dev/sdb1 root@nfs-server:~# vgcreate VG01 /dev/sdb1 root@nfs-server:~# lvcreate -l 100%FREE -n LV01 VG01 root@nfs-server:~# mkfs.ext4 /dev/VG01/LV01
これで/deb/sdb1というパーティション上で、LVMを構成し、/dev/VG01/LV01というロジカルボリュームをext4でフォーマットしたものができあがりました。
このあと、NFSで共有に利用するディレクトリとして/nfsの例ですすめていきます。
root@nfs-server:~# mkdir /nfs root@nfs-server:~# chmod 777 /nfs root@nfs-server:~# echo "/dev/VG01/LV01 /nfs ext4 defaults 0 0" >> /etc/fstab root@nfs-server:~# mount -a root@nfs-server:~# df -h Filesystem Size Used Avail Use% Mounted on udev 470M 0 470M 0% /dev tmpfs 98M 4.4M 94M 5% /run /dev/sda1 15G 1.8G 13G 13% / tmpfs 488M 0 488M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 488M 0 488M 0% /sys/fs/cgroup /dev/mapper/VG01-LV01 9.8G 23M 9.2G 1% /nfs
/nfs がマウントできればOKです。
次に、NFSサーバーのインストールですがaptで一発です。
root@nfs-server:~# apt install nfs-kernel-server -y
設定箇所は2つあります。1つ目に、ドメインの設定です。idmapd.conf の6行目のDomainをコメントインしてドメインを記述してください。
root@nfs-server:~# vi /etc/idmapd.conf [General] Verbosity = 0 Pipefs-Directory = /run/rpc_pipefs # set your own domain here, if id differs from FQDN minus hostname Domain = cs30idcfcloud.internal [Mapping] Nobody-User = nobody Nobody-Group = nogroup
東日本リージョン2のfaradゾーンで作成しているのでcs30idcfcloud.internalとなります。
ゾーンで異なるので、ドメインがわからなければ以下のとおり確認してください。
root@nfs-server:~# hostname -f nfs-server.cs30idcfcloud.internal
2つ目の設定として、対象のディレクトリとアクセス制御の設定です。
ここでの設定例として、ファイアウォール配下にいるのでIPアドレスでの制御はしてません。
また、各ノードでアクセス時にデータが異なると困るので明示的にsyncを入れてます。(デフォルトなのでなくても大丈夫ですが)
root@nfs-server:~# echo "/nfs *(rw,sync,no_root_squash)" >> /etc/exports
最後にサービスをrestartしてうまくいけば完了です。
root@nfs-server:~# systemctl restart nfs-server
次回はNFSクライアント側の設定をしていきます。