このトピックでは、Linux Elastic Compute Service (ECS) インスタンスにNetwork File System (NFS) ファイルシステムをマウントする方法について説明します。 NFSファイルシステムを複数のECSインスタンスにマウントして、ECSインスタンスがファイルシステムへのアクセスを共有できるようにすることができます。
前提条件
Linux ECSインスタンスが作成されました。 詳細は、「ECS インスタンスの作成」をご参照ください。
NFSファイルシステムは、ECSインスタンスと同じ仮想プライベートクラウド (VPC) およびリージョンに作成されます。 ファイルシステムのマウント対象を取得します。 詳細については、「ファイルシステムの作成」をご参照ください。
ステップ1: NFSクライアントのインストール
Linux ECSインスタンスにNFSファイルシステムをマウントする前に、NFSクライアントをインストールする必要があります。 各Linux ECSインスタンスにNFSクライアントを1回だけインストールする必要があります。 次回ECSインスタンスにファイルシステムをマウントするときに、NFSクライアントをインストールする必要はありません。
ECSインスタンスに接続します。 詳細については、「ECSインスタンスへの接続」をご参照ください。
NFSクライアントをインストールします。
オペレーティングシステム
インストールコマンド
Alibaba Cloud Linux
sudo yum install nfs-utils
CentOS
Redhat
Ubuntu
次のインストールコマンドを順番に実行します。
sudo apt-get update
sudo apt-get install nfs-common
Debian
必要に応じて、 NFSクライアントから送信できる同時NFSリクエストの最大数を増やします。
次のコマンドを実行して、同時NFSリクエストの最大数を128に設定します。詳細については、「NFSクライアントからの同時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ファイルシステムをマウントする
NFSファイルシステムは、Linux ECSインスタンスに手動または自動でマウントできます。 手動取り付けは一時的な取り付けに適しています。 ECSインスタンスにNASファイルシステムを手動でマウントする場合、ECSインスタンスが起動または再起動されるたびにファイルシステムを再マウントする必要があります。 自動取り付けは永続的な取り付けに適しています。 NASファイルシステムの自動マウントを有効にした場合、ECSインスタンスが起動または再起動されるたびにファイルシステムを再マウントする必要はありません。 ECSインスタンスの再起動後にマウント情報が失われるのを防ぐため、ファイルシステムを手動でマウントした後、NASファイルシステムの自動マウントを有効にすることを推奨します。
NFSファイルシステムを手動でマウントする
NFSファイルシステムのマウントターゲットを使用して、Linux ECSインスタンスにファイルシステムをマウントできます。
最適なアクセスパフォーマンスを確保するために、NFSv3を使用してファイルシステムをマウントすることを推奨します。
NFSv4.0は、範囲ロックを含むファイルロックをサポートします。 複数のLinux ECSインスタンスのファイルを同時に変更する必要がある場合は、NFSv4.0を使用してファイルシステムをマウントすることを推奨します。
NASコンソールでは、数回クリックするだけでECSインスタンスにファイルシステムをマウントできます。 NASコンソールを使用してファイルシステムをマウントすることを推奨します。 詳細については、「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:/ /mnt
NFSv4を使用したファイルシステムのマウント
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
Extreme 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
次の表に、mountコマンドで設定できるパラメーターを示します。
パラメーター
説明
汎用NASファイルシステム: file-system-id.region.nas.aliyuncs.com:/ /mnt
エクストリームNAS: file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt
形式は、< マウント対象のドメイン名 >:< 共有ディレクトリ名 > < マウントディレクトリのパス > です。 マウント対象のドメイン名、共有ディレクトリ名、およびマウントディレクトリのパスを実際の値に置き換えます。
マウントターゲットのドメイン名: ドメイン名を表示するには、次の手順を実行します。NASコンソールにログインします。 [ファイルシステムリスト] ページで、管理するファイルシステムを見つけ、[操作] 列の [管理] をクリックします。 [マウントターゲット] タブで、マウントターゲットのドメイン名を表示します。 詳細については、「マウントターゲットのドメイン名の表示」をご参照ください。
共有ディレクトリの名前:
汎用NASファイルシステム: ルートディレクトリ /またはサブディレクトリ (/shareなど) を入力できます。 サブディレクトリを指定する場合は, NASファイルシステムに存在することを確認してください。
Extreme NASファイルシステム: 共有ディレクトリは /shareで始まる必要があります。 例: /shareおよび /share/subdir サブディレクトリを指定する場合は, NASファイルシステムに存在することを確認してください。
マウントディレクトリのパス: Linux ECSインスタンスのサブディレクトリ (例: /mnt) 。 サブディレクトリが存在するか確認してください。
vers
ファイルシステムのプロトコルバージョン。
vers=3: NFSv3を使用してファイルシステムをマウントします。
vers=4: NFSv4を使用してファイルシステムをマウントします。
minorversion
は、プロトコルのマイナーバージョン番号を指定します。 NASファイルシステムはNFSv4.0をサポートします。 NFSv4を使用してNASファイルシステムをマウントする場合は、マイナーバージョン番号を0に設定する必要があります。
説明汎用NASファイルシステムは、NFSv3とNFSv4.0の両方をサポートします。
Extreme NASファイルシステムはNFSv3のみをサポートします。
rsize
クライアントがファイルシステムから読み取ることができるデータブロックのサイズ。
推奨値: 1048576。
wsize
クライアントがファイルシステムに書き込むことができるデータブロックのサイズ。
推奨値: 1048576。
ハード
このパラメーターが有効になっていない場合、File Storage NASが使用できない場合、クライアントは再試行せずにすぐにエラーを返すことがあります。これにより、データの不整合または損失が発生する可能性があります。
このパラメーターを有効にすることを推奨します。
timeo
NFSクライアントがリクエストの送信を再試行するまで待機する期間。 単位: 10秒 (10分の1秒) 。
推奨値: 600 (60秒) 。
retrans
NFSクライアントがリクエストの送信を再試行する回数。
推奨値: 2。
noresvport
ネットワークが障害から回復したときに、新しいTCPポートを使用して、ファイルシステムとECSインスタンス間のネットワークの連続性を確保することを指定します。
このパラメーターを有効にすることを推奨します。
説明timeoパラメーターを変更する必要がある場合は、150または大きい値を指定することを推奨します。 timeoパラメータは、10秒単位で測定されます。 例えば、値150は15秒を示します。
パフォーマンスの低下を防ぐため、rsizeパラメーターとwsizeパラメーターの両方を1048576に設定することを推奨します。
rsize、wsize、hard、timeo、retrans、およびnoresvportパラメーターはオプションです。 複数のパラメーターはコンマ (,) で区切ります。
重要データの不整合を防ぐため、soft mountオプションを使用しないことを推奨します。 ソフトマウントオプションを指定する場合は、潜在的なリスクを理解していることを確認してください。
デフォルトとは異なる他のマウントオプションは設定しないことを推奨します。 読み取りバッファサイズまたは書き込みバッファサイズを変更するか、属性キャッシュを無効にすると、パフォーマンスが低下する場合があります。
マウント結果を確認します。
コマンド
mount -l
サンプルコマンド出力
次の例に似たコマンド出力が表示された場合、マウントは成功です。
ファイルシステムがマウントされたら、
df -h
コマンドを実行して、ファイルシステムのストレージ容量を表示できます。
ファイルシステムのマウントに失敗した場合は、問題のトラブルシューティングを行います。 詳細については、「マウント障害のトラブルシューティングに関するFAQ」をご参照ください。
NASファイルシステムがマウントされた後、Linux ECSインスタンス上のNASファイルシステムからデータを読み書きできます。
ローカルディレクトリにアクセスするのと同じ方法で、ファイルシステムにアクセスできます。 次の図は例を示しています。
(オプション) NFSファイルシステムを自動的にマウントする
Linux ECSインスタンスの /etc/fstab
ファイルを設定して、ECSインスタンスの再起動時にNFSファイルシステムを自動的にマウントできます。
自動マウントを有効にする前に、上記の手動マウントが成功したことを確認してください。 これにより、ECSインスタンスの起動失敗が防止されます。
Extreme NASファイルシステムをマウントするには、次のコマンドを実行します。
汎用NASファイルシステムをマウントするには、この手順をスキップして手順2に進みます。
vi /etc/systemd/system/sockets.target.wants/rpcbind.socket
次の図に示すように、/etc/systemd/system/sockets.tar get.wants/rpcbind.socket設定ファイルを開き、IPv6に関連するrpcbindパラメーターをコメントアウトします。 それ以外の場合、起動時にrpcbindサービスの実行に失敗します。
CentOS 6.xの自動マウントを有効にする場合は、次の手順を実行します。
chkconfg netfs on
コマンドを実行して、起動時にnetfsサービスを有効にします。次の図に示すように、/etc/netconfig設定ファイルを開き、inet6-related情報をコメントアウトします。
/etc/fstab設定ファイルを開いてマウント設定を追加します。
汎用 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 0
NFSv4を使用してファイルシステムをマウントするには、次のコマンドを実行します。
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
Extreme NAS ファイルシステム
file-system-id.region.extreme.nas.aliyuncs.com:/share /mnt nfs vers=3,nolock,noacl,proto=tcp,noresvport,_netdev 0 0
説明CentOS 6.xの自動マウントを有効にする場合は、起動時に
chkconfg netfs on
コマンドを実行してnetfsサービスを有効にします。詳細については、「マウントパラメーター」をご参照ください。 次の表に、前の表に含まれていないパラメーターを示します。
パラメーター
説明
_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.local
reboot
コマンドを実行してECSインスタンスを再起動します。重要ECSインスタンスを再起動すると、サービスが中断されます。 オフピーク時に操作を実行することを推奨します。
自動マウントが有効になっていることを確認します。
df -h
コマンドを実行して、ECSインスタンスの再起動後1分以内にマウントされたNASファイルシステムを確認できます。