本文介紹如何通過阿里雲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協議掛載檔案系統。
Apsara File Storage 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檔案系統目錄> <當前伺服器上待掛載的本地路徑>,請根據實際情況替換。
掛載地址:您可以在Apsara File Storage NAS控制台檔案系統列表頁面,單擊目標檔案系統後的管理,進入掛載使用頁面擷取掛載地址。更多資訊,請參見管理掛載點。
NAS檔案系統目錄:
通用型的NAS:根目錄(/)或任意子目錄(例如:/share)。如果是子目錄,請您確保子目錄是NAS檔案系統中實際已存在的目錄。
極速型NAS:必須以/share開頭,例如:/share、/share/subdir。如果是子目錄,請您確保子目錄是NAS檔案系統中實際已存在的目錄。
當前伺服器上待掛載的本地路徑:Linux ECS執行個體的任意子目錄(例如:/mnt),如果是子目錄,請您確保子目錄已存在。
說明如果您掛載的本地路徑非空,掛載成功後該目錄將顯示NAS上的資料,本機資料將暫時不可見。建議您使用空目錄掛載。
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
如果參數未啟用,當Apsara File Storage 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
命令,重啟Elastic Compute Service。重要重啟雲端服務器會中斷業務,建議您在業務低穀時期重啟雲端服務器。
驗證自動掛載配置成功。
在ECS重啟後的一分鐘內,執行
df -h
命令,確認掛載的NAS檔案系統。