tl;dr
まったく同じタイトルのものがあった
以下読まなくていいです。
nfsサーバ構築のログ
ウェブコンソールからインスタンスのローンチ
- Linux インスタンスでのデバイスの名前付け - Amazon Elastic Compute Cloud
- 周辺機器選びのチェックポイント | SSDとHDDはどう違うの? どうやって選べばいいの?
- Linux インスタンスでのデバイスの名前付け - Amazon Elastic Compute Cloud
- Linuxのファイルシステムについて勉強したメモ - Qiita
マウントされるためのデバイスを追加した。
# ログイン % ssh -i ~/Documents/otiai10.tokyo.pem ec2-user@18.182.13.38 [ec2-user@ip-172-31-30-22 ~]$ sudo su - [root@ip-172-31-30-22 ~]# uname -a Linux ip-172-31-30-22.ap-northeast-1.compute.internal 4.9.76-38.79.amzn2.x86_64 #1 SMP Mon Jan 15 23:35:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# パッケージ確認 [root@ip-172-31-30-22 ~]# yum list | grep nfs-utils nfs-utils.x86_64 1:1.3.0-0.48.amzn2.0.1 installed
# ブロックデバイス一覧を確認 [root@ip-172-31-30-22 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdb 202:16 0 16G 0 disk # xvdbを使っていく
lsblk
: 【 lsblk 】コマンド――ブロックデバイスを一覧表示する:Linux基本コマンドTips(180) - @IT
[root@ip-172-31-30-22 ~]# mkfs -t ext4 /dev/xvdb # 中略 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@ip-172-31-30-22 ~]#
mkfs
: Linux パーティションにmkfsでファイルシステムを作る
# ローカルのディレクトリの確認 [root@ip-172-31-30-22 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 484M 0 484M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 13M 484M 3% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/xvda1 8.0G 1017M 7.0G 13% / tmpfs 100M 0 100M 0% /run/user/1000 tmpfs 100M 0 100M 0% /run/user/0 # 上記のデバイスをローカルパスにマウントする設定を記述 [root@ip-172-31-30-22 ~]# cp /etc/fstab ~/fstab.backup [root@ip-172-31-30-22 ~]# vi /etc/fstab [root@ip-172-31-30-22 ~]# diff -u ~/fstab.backup /etc/fstab
diff ↓
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
+/dev/xvdb /export/nfs ext4 defaults,nofail 1 2
# マウント [root@ip-172-31-30-22 ~]# mkdir -p /export/nfs [root@ip-172-31-30-22 ~]# mount /export/nfs # 確認 [root@ip-172-31-30-22 ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 484M 0 484M 0% /dev tmpfs 497M 0 497M 0% /dev/shm tmpfs 497M 13M 484M 3% /run tmpfs 497M 0 497M 0% /sys/fs/cgroup /dev/xvda1 8.0G 1017M 7.0G 13% / tmpfs 100M 0 100M 0% /run/user/1000 tmpfs 100M 0 100M 0% /run/user/0 /dev/xvdb 16G 45M 15G 1% /export/nfs
/etc/fstab
# 外部ホストへの公開設定を記述 [root@ip-172-31-30-22 ~]# echo '/export/nfs *(rw,async,no_root_squash)' /export/nfs *(rw,async,no_root_squash) [root@ip-172-31-30-22 ~]# echo '/export/nfs *(rw,async,no_root_squash)' >> /etc/exports
- 21.7. The /etc/exports Configuration File - Red Hat Customer Portal
- Linuxサーバ実習
- /etc/exports の書き方 - 揮発性のメモ
# nfsサービスの開始 [root@ip-172-31-30-22 ~]# systemctl status nfs [root@ip-172-31-30-22 ~]# systemctl start nfs [root@ip-172-31-30-22 ~]# systemctl status nfs [root@ip-172-31-30-22 ~]# exportfs -ar
# 確認 [root@ip-172-31-30-22 ~]# exportfs -v /export/nfs <world>(rw,async,wdelay,hide,no_subtree_check,sec=sys,secure,no_root_squash,no_all_squash) [root@ip-172-31-30-22 ~]# showmount -e Export list for ip-172-31-30-22.ap-northeast-1.compute.internal: /export/nfs * [root@ip-172-31-30-22 ~]#
# ポートの確認 [root@ip-172-31-30-22 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 9137/rpc.mountd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3249/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3092/master tcp 0 0 0.0.0.0:60795 0.0.0.0:* LISTEN 358/rpc.statd tcp 0 0 0.0.0.0:37729 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN - tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::20048 :::* LISTEN 9137/rpc.mountd tcp6 0 0 :::22 :::* LISTEN 3249/sshd tcp6 0 0 :::37309 :::* LISTEN - tcp6 0 0 :::55325 :::* LISTEN 358/rpc.statd tcp6 0 0 :::2049 :::* LISTEN -
Program nameが-
なのが気になるけど、2049/tcpはLISTENになっている。
クライアント側からのmount確認
適当にクライアントとなるEC2インスタンスを同VPC内の同SecurityGroupで建てて、同SecurityGroup間でのNFSポート(2049)を開ける。
左がサーバ。右がクライアント。sample.txt
という名前のファイルがネットワーク越しに同期しているのが確認できた。
Macからのマウントで、Operation not permitted
- クライアントインスタンスから、Public IP Addressで、マウントしようとすると、tcpが疎通していないような挙動になる
- これは意味が分かる。Public IP Addressで参照しているということは、いったんVPCの外に出ているので、SecurityGroupに弾かれていると思われる。
- ためしに、当SGで一瞬すべてのSourceからのnfsを許してみると、クライアントインスタンスから Public IP Addressをもちいて nfs疎通が確認できた
- ローカルのMacから、Public IP Addressで、マウントしようとすると、
Operation not permitted
となる- SG的には、職場のIP AddressからAll protocol/trafficのinboundを許している
- 上記[2]より、ネットワーク的なエラーではないと思われる
- Macのクライアントの設定だった
解決
sudo mount_nfs \ -o resvport ${NFS_SERVER_PUBLIC_IP_ADDR}:/export/nfs \ ./mountpoint
DRYな備忘録として
- 作者: 一戸英男
- 出版社/メーカー: 日本実業出版社
- 発売日: 2005/04/07
- メディア: 単行本
- 購入: 22人 クリック: 524回
- この商品を含むブログ (29件) を見る
ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方
- 作者: 中島能和
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/06
- メディア: 大型本
- この商品を含むブログを見る
サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)
- 作者: 鶴長鎮一
- 出版社/メーカー: 技術評論社
- 発売日: 2012/03/23
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 109回
- この商品を含むブログ (14件) を見る