本文介紹如何通過阿里云Linux ECS實例掛載NAS NFS協議文件系統,以實現多個云服務器共享訪問文件系統的目的。
前提條件
步驟一:安裝NFS客戶端
在Linux系統掛載NFS協議文件系統時,需要先安裝NFS客戶端。確保每臺Linux服務器執行一次配置即可,不需要在每次掛載時都執行。
連接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客戶端請求的并發能力。
請執行以下命令,將客戶端的并發請求數量修改為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
步驟二:掛載NFS協議文件系統
在Linux操作系統中,NAS NFS協議文件系統支持通過手動掛載和自動掛載兩種方式進行掛載。手動掛載適用于臨時掛載,每次服務器啟動或重啟后都需要重新掛載。自動掛載適用于持久掛載,每次服務器啟動或重啟后都無需重新掛載。為避免服務器重啟后,掛載信息丟失,導致無法查看已掛載的文件系統,建議您手動掛載成功后,配置自動掛載文件系統。
手動掛載NFS協議文件系統
您需要使用文件系統的掛載點地址,將NAS NFS協議文件系統掛載至Linux ECS實例。
推薦您通過NFS v3協議掛載文件系統,以獲得最佳訪問性能。
NFS v4.0支持文件鎖(包括range lock),如果您需要使用多臺Linux ECS實例同時修改一個文件,請使用NFS v4.0協議掛載文件系統。
文件存儲NAS支持控制臺一鍵掛載文件系統,提供更加方便、快捷的使用體驗。推薦您使用控制臺一鍵掛載功能。具體操作,請參見一鍵掛載NAS NFS協議文件系統。
掛載NFS協議文件系統。
如果您使用的是通用型NAS,請執行以下命令。
使用NFS v3協議掛載文件系統
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
使用NFS v4協議掛載文件系統
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文件系統目錄> <當前服務器上待掛載的本地路徑>,請根據實際情況替換。
掛載地址:您可以在文件存儲NAS控制臺文件系統列表頁面,單擊目標文件系統后的管理,進入掛載使用頁面獲取掛載地址。更多信息,請參見查看掛載點地址。
NAS文件系統目錄:
通用型的NAS:根目錄(/)或任意子目錄(例如:/share)。如果是子目錄,請您確保子目錄是NAS文件系統中實際已存在的目錄。
極速型NAS:必須以/share開頭,例如:/share、/share/subdir。如果是子目錄,請您確保子目錄是NAS文件系統中實際已存在的目錄。
當前服務器上待掛載的本地路徑:Linux ECS實例的任意子目錄(例如:/mnt),如果是子目錄,請您確保子目錄已存在。
vers
文件系統版本。
vers=3:使用NFS v3協議掛載文件系統。
vers=4:使用NFS v4協議掛載文件系統。
其中,
minorversion
為協議次版本號,例如:NAS支持的NFS v4協議版本為4.0,因此使用NFS v4協議掛載文件系統時,次版本號為0。
說明通用型NAS:支持NFS v3和NFS v4.0。
極速型NAS:只支持NFS v3,不支持NFS v4。
rsize
定義數據塊的大小,用于客戶端與文件系統之間讀取數據。
建議值:1048576。
wsize
定義數據塊的大小,用于客戶端與文件系統之間寫入數據。
建議值:1048576。
hard
如果參數未啟用,當文件存儲NAS不可用時,客戶端可能會立即返回錯誤,而不進行重試,這可能會導致數據的不一致性或丟失。
建議啟用該參數。
timeo
指定時長,單位為0.1秒,即NFS客戶端在重試向文件系統發送請求之前等待響應的時間。
建議值:600(60秒)。
retrans
NFS客戶端重試請求的次數。
建議值:2。
noresvport
在網絡重連時使用新的TCP端口,保障在網絡發生故障恢復時不會中斷連接。
建議啟用該參數。
說明如果您必須更改超時參數(timeo),建議您使用150或更大的值。該timeo參數的單位為0.1秒,因此150表示的時間為15秒。
如果您需要更改IO大小參數(rsize和wsize),建議您盡可能使用最大值(1048576),以避免性能下降。
rsize、wsize、hard、timeo、retrans、noresvport這些參數都是非必選掛載參數,您可以根據實際情況進行選擇。在掛載時,請使用半角逗號進行分隔。
重要不建議使用soft選項,有數據一致性風險。如果您要使用soft選項,相關風險需由您自行承擔。
避免設置不同于默認值的任何其他掛載選項。如果更改讀或寫緩沖區大小或禁用屬性緩存,可能會導致性能下降。
驗證掛載結果。
執行命令
mount -l
返回示例
如果返回信息包含如下類似信息,說明掛載成功。
掛載成功后,您還可以執行
df -h
命令,查看當前文件系統的容量信息。
如果掛載失敗,請進行錯誤排查。具體操作,請參見掛載文件系統失敗故障排查。
掛載成功后,您可以在Linux ECS上訪問NAS文件系統,執行讀取或寫入操作。
您可以把NAS文件系統當作一個普通的目錄來訪問和使用,示例如下:
(可選)自動掛載NFS協議文件系統
您可以通過配置Linux ECS實例的/etc/fstab
文件,實現ECS重啟時自動掛載NFS協議文件系統。
在配置自動掛載前,請先確認手動掛載成功,避免ECS啟動失敗。
如果您使用的是極速型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配置文件,添加掛載配置。
通用型NAS
使用NFS v3協議掛載文件系統:
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
使用NFS v4協議掛載文件系統:
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
說明如果您是在CentOS 6.x系統中配置自動掛載,您需先執行
chkconfig netfs on
命令,確保netfs服務開機自啟動。示例中主要參數說明,請參見掛載命令參數說明表。其余參數說明如下。
參數
說明
_netdev
防止客戶端在網絡就緒之前開始掛載文件系統。
0(noresvport后第一項)
非零值表示文件系統應由dump備份。對于NAS文件系統而言,此值默認為0。
0(noresvport后第二項)
該值表示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
命令,確認掛載的NAS文件系統。