このトピックでは、Linux ECS インスタンスに NAS ネットワークファイルシステム (NFS) ファイルシステムをマウントする方法について説明します。これにより、複数の ECS インスタンスがファイルシステムへのアクセスを共有できます。
前提条件
Linux ECS インスタンスが作成されていること。詳細については、「ECS インスタンスの作成」をご参照ください。
ECS インスタンスと同じリージョンおよび VPC に NAS ファイルシステムが作成され、マウントポイントアドレスが取得されていること。 詳細については、「ファイルシステムの作成」をご参照ください。
手順 1:NFS クライアントをインストールする
Linux に NFS ファイルシステムをマウントする前に、NFS クライアントをインストールする必要があります。この設定は、各 Linux サーバーで 1 回だけ実行する必要があります。その後のマウントで繰り返す必要はありません。
ECS インスタンスに接続します。詳細については、「ECS インスタンスへの接続」をご参照ください。
NFS クライアントをインストールします。
オペレーティングシステム
インストールコマンド
Alibaba Cloud Linux
sudo yum install nfs-utilsCentOS
Redhat
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 では、NAS NFS ファイルシステムを手動または自動でマウントできます。手動マウントは一時的なもので、サーバーの起動または再起動後は維持されません。自動マウントは永続的です。サーバーの再起動後にマウント情報が失われないようにするには、ファイルシステムを手動で正常にマウントした後に自動マウントを設定します。
NFS ファイルシステムの手動マウント
ファイルシステムのマウントポイントアドレスを使用して、NAS NFS ファイルシステムを Linux ECS インスタンスにマウントできます。
最適なアクセスパフォーマンスを得るには、NFSv3 プロトコルを使用してファイルシステムをマウントします。
NFSv4.0 は、範囲ロックを含むファイルロックをサポートします。複数の Linux ECS インスタンスで同時にファイルを変更するには、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 プロトコルを使用したファイルシステムのマウント
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:/ /mntExtreme 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 ファイルシステムに存在することを確認してください。
Extreme NAS: /share で始まる必要があります (例: /share または /share/subdir)。サブディレクトリを指定する場合は、そのサブディレクトリが NAS ファイルシステムに存在することを確認してください。
サーバーにマウントするローカルパス: Linux ECS インスタンス上の任意のサブディレクトリ (例: /mnt)。サブディレクトリが存在することを確認してください。
説明ローカルパスが空でない場合、マウントが成功すると、ディレクトリには NAS のデータが表示されます。ローカルデータは一時的に非表示になります。空のディレクトリにマウントしてください。
vers
ファイルシステムプロトコルのバージョン。
vers=3: NFSv3 プロトコルを使用してファイルシステムをマウントします。
vers=4: NFSv4 プロトコルを使用してファイルシステムをマウントします。
minorversionはプロトコルのマイナーバージョンです。たとえば、NAS は NFSv4.0 をサポートします。したがって、NFSv4 プロトコルを使用してファイルシステムをマウントする場合、マイナーバージョンは 0 です。
説明汎用型 NAS ファイルシステムは NFSv3 と NFSv4.0 をサポートします。
Extreme NAS ファイルシステムは NFSv3 のみをサポートします。NFSv4 はサポートしていません。
rsize
クライアントがファイルシステムから読み取るデータブロックのサイズ。
推奨値: 1048576。
wsize
クライアントがファイルシステムに書き込むデータブロックのサイズ。
推奨値: 1048576。
hard
このパラメーターが有効になっていない場合、File Storage NAS が利用できないときにクライアントはリトライせずにすぐにエラーを返すことがあります。これにより、データの不整合や損失が発生する可能性があります。
このパラメーターを有効にしてください。
timeo
NFS クライアントがリクエストをリトライする前にレスポンスを待つ時間 (0.1 秒単位)。
推奨値: 600(60 秒)。
retrans
NFS クライアントがリクエストをリトライする回数。
推奨値: 2。
noresvport
ネットワークが再接続するときに新しい TCP ポートを使用します。これにより、ネットワークエラーからの回復中に接続が中断されないことが保証されます。
このパラメーターを有効にしてください。
説明タイムアウトパラメーター (timeo) を変更する必要がある場合は、150 以上の値を使用してください。timeo パラメーターの単位は 0.1 秒なので、150 は 15 秒を表します。
I/O サイズパラメーター (rsize および wsize) を変更するには、パフォーマンスの低下を避けるために最大値 (1048576) を使用してください。
rsize、wsize、hard、timeo、retrans、および noresvport パラメーターはオプションです。複数のパラメーターを使用する場合は、カンマで区切ります。
重要soft オプションは使用しないでください。データ整合性の脅威をもたらします。soft オプションを使用する場合、関連するリスクを負うことになります。
他のマウントオプションをデフォルトとは異なる値に設定しないでください。読み取りまたは書き込みバッファサイズを変更したり、属性キャッシュを無効にしたりすると、パフォーマンスが低下する可能性があります。
マウント結果を確認します。
次のコマンドを実行します:
mount -l出力例
次のような出力が返された場合、マウントは成功です。

マウントが成功した後、
df -hコマンドを実行してファイルシステムの容量を表示することもできます。
マウントに失敗した場合は、問題をトラブルシューティングしてください。 詳細については、「マウントの失敗のトラブルシューティング」をご参照ください。
マウントが成功した後、Linux ECS インスタンス上の NAS ファイルシステムにアクセスして、データを読み書きできます。
通常のディレクトリと同じように NAS ファイルシステムにアクセスして使用できます。次の図に例を示します:

(オプション) NFS ファイルシステムの自動マウント
Linux ECS インスタンスの /etc/fstab ファイルを設定して、インスタンスの再起動時に NFS ファイルシステムを自動的にマウントできます。
自動マウントを設定する前に、手動マウントが成功していることを確認してください。これにより、ECS インスタンスの起動に失敗するのを防ぐことができます。
Extreme NAS ファイルシステムを使用する場合は、このステップを実行します。
汎用型 NAS ファイルシステムを使用する場合は、このステップをスキップして ステップ 2 に進みます。
vi /etc/systemd/system/sockets.target.wants/rpcbind.socket/etc/systemd/system/sockets.target.wants/rpcbind.socket ファイルを開き、次の図に示すように IPv6 に関連する rpcbind パラメーターをコメントアウトします。そうしないと、NFS の rpcbind サービスが自動的に起動しなくなります。

CentOS 6.x で自動マウントを設定する場合は、次の操作も実行する必要があります。
chkconfig netfs onコマンドを実行して、netfs サービスが起動時に開始されることを確認します。/etc/netconfig 設定ファイルを開き、次の図に示すように inet6 に関連する内容をコメントアウトします。

/etc/fstab 設定ファイルを開き、マウント設定を追加します。
設定を追加する際に、次の内容を置き換えてください:
<file-system-id.region.nas.aliyuncs.com>: これを実際の NAS マウントポイントアドレスに置き換えます。たとえば、汎用型 NAS ファイルシステムの場合は
237*******-*****.cn-hangzhou.nas.aliyuncs.comを、Extreme 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 プロトコルを使用したファイルシステムのマウント:
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,noresvport,_netdev 0 0この例の主要なパラメーターの説明については、「マウントコマンドのパラメーターの表」をご参照ください。その他のパラメーターについては、次の表で説明します。
パラメータ
説明
_netdev
このパラメーターは、ネットワークの準備が整う前にクライアントがファイルシステムをマウントしようとするのを防ぎます。
0 (noresvport の後の最初の項目)
ゼロ以外の値は、ファイルシステムを dump コマンドでバックアップする必要があることを示します。NAS ファイルシステムの場合、この値はデフォルトで 0 です。
0 (noresvport の後の 2 番目の項目)
この値は、fsck コマンドが起動時にファイルシステムをチェックする順序を示します。NAS ファイルシステムの場合、この値はデフォルトで 0 であり、fsck が起動時に実行されないことを意味します。
次のコマンドを実行して、/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 ファイルシステムがマウントされていることを確認します。