File Storage NAS の Network File System (NFS) ファイルシステムを Linux ECS インスタンスにマウントすると、複数の ECS インスタンスでデータを共有し、アクセスできるようになります。
前提条件
Linux ECS インスタンスが作成されていること。詳細については、「ECS インスタンスの作成」をご参照ください。
ECS インスタンスと同じリージョンおよび VPC 内に NAS ファイルシステムを作成し、そのマウントターゲットアドレスを取得していること。詳細については、「ファイルシステムの作成」をご参照ください。
ステップ1:NFS クライアントのインストール
Linux ECS インスタンスに NFS ファイルシステムをマウントする前に、NFS クライアントをインストールする必要があります。クライアントのインストールは、サーバーごとに 1 回のみ行います。
ECS インスタンスに接続します。詳細については、「ECS インスタンスへの接続」をご参照ください。
NFS クライアントをインストールします。
オペレーティングシステム
インストールコマンド
Alibaba Cloud Linux
sudo yum install nfs-utilsCentOS
Red Hat
Ubuntu
次のコマンドを順番に実行します。
sudo apt-get updatesudo apt-get install nfs-common
Debian
(オプション) NFS の同時リクエストの最大数を設定します。
次のコマンドを実行して、クライアントの同時リクエストの最大数を 128 に変更します。詳細については、「NFS の同時リクエストの最大数を変更する方法」をご参照ください。
if (lsmod | grep sunrpc); then (modinfo sunrpc | grep tcp_max_slot_table_entries) && sysctl -w sunrpc.tcp_max_slot_table_entries=128 (modinfo sunrpc | grep tcp_slot_table_entries) && sysctl -w sunrpc.tcp_slot_table_entries=128 fi (modinfo sunrpc | grep tcp_max_slot_table_entries) && echo "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf (modinfo sunrpc | grep tcp_slot_table_entries) && echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf
ステップ2:NFS ファイルシステムのマウント
Linux では、File Storage NAS NFS ファイルシステムを手動または自動でマウントできます。手動マウントは一時的なものであり、サーバーの再起動後に再度マウントする必要があります。一方、自動マウントは永続的です。再起動後もマウントを維持するため、手動マウントが成功した後に自動マウントを設定することを推奨します。
NFS ファイルシステムの手動マウント
マウントターゲットのドメイン名を使用して、Linux ECS インスタンスに NFS ファイルシステムをマウントします。
最適なパフォーマンスを得るため、NFSv3 プロトコルを使用してファイルシステムをマウントすることを推奨します。
NFSv4.0 は、範囲ロックを含むファイルロックをサポートしています。複数の Linux ECS インスタンスから同時に 1 つのファイルを変更する必要がある場合は、NFSv4.0 プロトコルを使用してファイルシステムをマウントしてください。
File Storage NAS は、コンソールでのファイルシステムのワンクリックマウント機能をサポートしており、便利で迅速な操作が可能です。ワンクリックマウント機能の使用を推奨します。詳細については、「NFS ファイルシステムのワンクリックマウント」をご参照ください。
NFS ファイルシステムをマウントします。
汎用 NAS ファイルシステムを使用している場合は、次のいずれかのコマンドを実行します。
NFSv3 プロトコル
sudo mount -t nfs -o vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mntNFSv4.0 プロトコル
sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.nas.aliyuncs.com:/ /mntエクストリーム NAS ファイルシステムを使用している場合は、次のコマンドを実行します。
sudo mount -t nfs -o vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt
次の表に、マウントコマンドのオプションを示します。
パラメーター
説明
汎用 NAS: file-system-id.region.nas.aliyuncs.com:/ /mnt
エクストリーム NAS: file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt
形式は マウントターゲットのドメイン名>:<NASファイルシステムディレクトリ> <現在のサーバー上のローカルマウントパス> です。プレースホルダーを実際の環境に合わせた値に置き換えてください。
マウントターゲットのドメイン名:File Storage NAS コンソールでマウントターゲットのドメイン名を確認するには、ファイルシステムリスト ページに移動し、対象のファイルシステムの横にある 管理 をクリックしてから、マウント使用 ページに移動します。詳細については、「マウントターゲットの管理」をご参照ください。
NAS ファイルシステムディレクトリ:
汎用 NAS:ルートディレクトリ (/) または任意のサブディレクトリ (/share など)。サブディレクトリを使用する場合は、NAS ファイルシステム内に既に存在していることを確認してください。
エクストリーム NAS:パスは /share で始まる必要があります。例:/share または /share/subdir。サブディレクトリを指定する場合は、NAS ファイルシステム内に既に存在していることを確認してください。
現在のサーバー上のローカルマウントパス:Linux ECS インスタンス上の任意のサブディレクトリ (例:/mnt)。サブディレクトリを指定する場合は、そのディレクトリが存在することを確認してください。
説明ローカルマウントパスが空でない場合、マウントが成功すると、その内容は非表示になり、ディレクトリには NAS ファイルシステムのデータが表示されます。空のディレクトリをマウントに使用することを推奨します。
vers
ファイルシステムのマウントに使用するプロトコルバージョンです。
vers=3:NFSv3 プロトコルを使用してファイルシステムをマウントします。
vers=4:NFSv4 プロトコルを使用してファイルシステムをマウントします。
vers=4 の場合、
minorversionがプロトコルのマイナーバージョン番号を指定します。例えば、NAS は NFS v4 プロトコルのバージョン 4.0 をサポートしています。したがって、NFS v4 プロトコルを使用してファイルシステムをマウントする場合、マイナーバージョン番号は 0 です。
説明汎用 NAS ファイルシステムは NFSv3 と NFSv4.0 をサポートしています。
エクストリーム NAS ファイルシステムは NFSv3 のみをサポートし、NFSv4 はサポートしていません。
rsize
クライアントがファイルシステムから読み取ることができるデータブロックの最大サイズを定義します。
推奨値:1048576
wsize
クライアントがファイルシステムに書き込むことができるデータブロックの最大サイズを定義します。
推奨値:1048576
hard
このオプションを指定しない場合、File Storage NAS が利用できなくなったときに、クライアントが直ちにエラーを返し、操作を再試行しない可能性があります。これにより、データの不整合や損失が発生する可能性があります。
このオプションを有効にすることを推奨します。
timeo
NFS クライアントがリクエストを再試行する前に、レスポンスを待つ時間 (0.1 秒単位)。
推奨値:600 (60秒)
retrans
NFS クライアントがリクエストを再試行する回数。
推奨値:2
noresvport
ネットワーク接続が再確立されたときに、NFS クライアントに新しい TCP ポートを使用するように指示します。これにより、ネットワーク障害と復旧の後も接続が中断されないことが保証されます。
このオプションを有効にすることを推奨します。
説明タイムアウトパラメーター (timeo) を変更する必要がある場合は、150 以上の値を使用することを推奨します。timeo パラメーターの単位は 0.1 秒であるため、値 150 は 15 秒を表します。
I/O サイズパラメーター (rsize および wsize) を変更する必要がある場合は、パフォーマンスの低下を避けるため、最大値 (1048576) を使用することを推奨します。
これらのパラメーターはオプションです。使用する場合は、カンマで区切ってください。
重要soft オプションの使用は推奨しません。データの不整合のリスクがあるためです。
パフォーマンスの低下を避けるため、推奨されるデフォルト以外のマウントオプションは使用しないでください。
マウントを確認します。
次のコマンドを実行します。
mount -l出力例:
次のような出力が表示されれば、マウントは成功しています。
mqueue on /dev/mqueue type mqueue (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=786256k,mode=700) 29xxxxx.nas.aliyuncs.com:/ on / type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.63.232,local_lock=none,addr=192.168.63.228) [root@iz0jlxxx ~]#マウントが成功した後、
df -hコマンドを実行して、ファイルシステムの容量情報を確認することもできます。[root@iZ0jl0xxx ~]# df -h Filesystem Size Used Avail Use% Mounted on 29cxxx.nas.aliyuncs.com:/ 40G 2.1G 36G 6% / devtmpfs 3.8G 0 3.8G 0% /dev tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs 3.8G 424K 3.8G 1% /run tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup tmpfs 768M 0 768M 0% /run/user/0
マウントに失敗した場合は、問題のトラブルシューティングを行ってください。詳細については、「ファイルシステムのマウント失敗のトラブルシューティング」をご参照ください。
マウントが成功したら、Linux ECS インスタンス上で NAS ファイルシステムの読み書きができます。
通常のディレクトリと同様に、NAS ファイルシステムにアクセスして使用できます。例:
[root@ixxx ~]# mkdir /mnt/dir1 [root@ixxx ~]# mkdir /mnt/dir2 [root@ixxx ~]# touch /mnt/file1 [root@ixxx ~]# echo 'some file conent' > /mnt/file2 [root@ixxx ~]# ls /mnt dir1 dir2 file1 file2 tmp
(オプション) NFS ファイルシステムの自動マウント
Linux ECS インスタンスの /etc/fstab ファイルを設定すると、インスタンスの再起動時に NFS ファイルシステムを自動的にマウントできます。
自動マウントを設定する前に、手動マウントが成功していることを確認してください。これにより、ECS の起動失敗を防ぐことができます。
エクストリーム NAS ファイルシステムを使用している場合は、このステップの操作を実行してください。
汎用 NAS ファイルシステムを使用している場合は、このステップをスキップして ステップ 2 に進んでください。
vi /etc/systemd/system/sockets.target.wants/rpcbind.socket/etc/systemd/system/sockets.target.wants/rpcbind.socket ファイルを開きます。IPv6 関連の rpcbind パラメーター (
BindIPv6Only=ipv6-only、ListenStream=[::]:111、ListenDatagram=[::]:111) をコメントアウトし、IPv4 リスニングアドレスのみを残す必要があります。そうしないと、NFS のrpcbindサービスが自動的に起動できなくなります。Description=RPCbind Server Activation Socket [Socket] ListenStream=/var/run/rpcbind.sock # RPC netconfig can't handle ipv6/ipv4 dual sockets #BindIPv6Only=ipv6-only ListenStream=0.0.0.0:111 ListenDatagram=0.0.0.0:111 #ListenStream=[::]:111 #ListenDatagram=[::]:111 [Install] WantedBy=sockets.targetCentOS 6.x システムで自動マウントを設定する場合は、次の操作も実行する必要があります。
chkconfig netfs onコマンドを実行して、netfs サービスが起動時に自動的に開始されるようにします。/etc/netconfig 設定ファイルを開き、以下に示すように inet6 関連のコンテンツをコメントアウトします。IPv6 プロトコルを無効にするには、
#記号をudp6およびtcp6エントリの行頭に追加します。# udp tpi_clts v inet udp - - tcp tpi_cots_ord v inet tcp - - #udp6 tpi_clts v inet6 udp - - #tcp6 tpi_cots_ord v inet6 tcp - - rawip tpi_raw - inet - - - local tpi_cots_ord - loopback - - - unix tpi_cots_ord - loopback - - -
/etc/fstab 設定ファイルを開き、マウント設定を追加します。
設定内の次の変数を置き換えてください。
<file-system-id.region.nas.aliyuncs.com>:NAS マウントターゲットアドレス (例:汎用 NAS:
237*******-*****.cn-hangzhou.nas.aliyuncs.com、エクストリーム NAS:00a*****-****.cn-hangzhou.extreme.nas.aliyuncs.com)。</mnt>:ローカルマウントパスに置き換えてください。例:
/mnt
汎用 NAS
NFSv3 プロトコルを使用してファイルシステムをマウントする場合:
file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0NFSv4.0 プロトコルを使用してファイルシステムをマウントする場合:
file-system-id.region.nas.aliyuncs.com:/ /mnt nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
エクストリーム NAS
file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt nfs vers=3,nolock,noacl,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport,_netdev 0 0例における主要なパラメーターの説明については、マウントコマンドのパラメーター説明表をご参照ください。その他のパラメーターについては、以下に説明します。
パラメーター
説明
_netdev
ネットワークの準備が整う前に、クライアントがファイルシステムのマウントを試みることを防ぎます。
0 (noresvport の後の 1 番目の項目)
0 以外の値は、
dumpユーティリティがファイルシステムをバックアップする必要があることを指定します。NAS ファイルシステムの場合、この値は 0 にする必要があります。0 (noresvport の後の 2 番目の項目)
起動時に
fsckユーティリティがファイルシステムをチェックする順序を指定します。NAS ファイルシステムの場合、この値は 0 にしてチェックを無効にする必要があります。次のコマンドを実行して、起動ファイル /etc/rc.local を設定します。
[ ! -f /etc/rc.local ] && echo '#!/bin/bash' > /etc/rc.local; echo "for ((i=1; i<=10; i++)); do if ping -c 1 -W 3 aliyuncs.com; then break; else sleep 1; fi; done" >> /etc/rc.local; echo "sleep 3; mount -a -t nfs" >> /etc/rc.local; chmod +x /etc/rc.localrebootコマンドを実行して、ECS インスタンスを再起動します。重要ECS インスタンスを再起動するとサービスが中断されます。中断を最小限に抑えるため、オフピーク時間にこの操作を実行することを推奨します。
自動マウント設定が成功したことを確認します。
ECS の再起動後 1 分以内に、
df -hコマンドを実行して、マウントされた NAS ファイルシステムを確認します。