全部產品
Search
文件中心

File Storage NAS:掛載NFS協議檔案系統

更新時間:Dec 19, 2024

本文介紹如何通過阿里雲Linux ECS執行個體掛載NAS NFS協議檔案系統,以實現多個雲端服務器共用訪問檔案系統的目的。

前提條件

  • 已建立ECS(Linux)執行個體。具體操作,請參見建立ECS執行個體

  • 已在與ECS相同地區的同一個VPC下建立NAS,並擷取到NAS掛載點地址。具體操作,請參見建立檔案系統

步驟一:安裝NFS用戶端

在Linux系統掛載NFS協議檔案系統時,需要先安裝NFS用戶端。確保每台Linux伺服器執行一次配置即可,不需要在每次掛載時都執行。

  1. 串連ECS執行個體。具體串連方式,請參見串連ECS執行個體

  2. 安裝NFS用戶端。

    作業系統

    安裝命令

    Alibaba Cloud Linux

    sudo yum install nfs-utils

    CentOS

    Redhat

    Ubuntu

    依次執行以下安裝命令:

    1. sudo apt-get update
    2. sudo apt-get install nfs-common

    Debian

  3. (可選)設定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協議檔案系統

  1. 掛載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、wsizehardtimeoretransnoresvport這些參數都是非必選掛載參數,您可以根據實際情況進行選擇。在掛載時,請使用半形逗號進行分隔。

    重要
    • 不建議使用soft選項,有資料一致性風險。如果您要使用soft選項,相關風險需由您自行承擔。

    • 避免設定不同於預設值的任何其他掛載選項。如果更改讀或寫緩衝區大小或禁用屬性緩衝,可能會導致效能下降。

  2. 驗證掛載結果。

    • 執行命令

      mount -l
    • 返回樣本

      如果返回資訊包含如下類似資訊,說明掛載成功。查看掛載結果

      掛載成功後,您還可以執行df -h命令,查看當前檔案系統的容量資訊。df-h

    如果掛載失敗,請進行錯誤排查。具體操作,請參見掛載檔案系統失敗故障排查

  3. 掛載成功後,您可以在Linux ECS上訪問NAS檔案系統,執行讀取或寫入操作。

    您可以把NAS檔案系統當作一個普通的目錄來訪問和使用,樣本如下:讀寫操作

(可選)自動掛載NFS協議檔案系統

您可以通過配置Linux ECS執行個體的/etc/fstab檔案,實現ECS重啟時自動掛載NFS協議檔案系統。

說明

在配置自動掛載前,請先確認手動掛載成功,避免ECS啟動失敗。

  1. 如果您使用的是極速型NAS,請執行以下命令。

    如果您使用的是通用型NAS,請跳過此步驟,直接執行步驟2

    vi /etc/systemd/system/sockets.target.wants/rpcbind.socket

    開啟/etc/systemd/system/sockets.target.wants/rpcbind.socket檔案後,需要注釋IPv6相關的rpcbind參數(如下圖所示),否則NFS的rpcbind服務自動啟動會失敗。注釋rpcbind參數

    如果您是在CentOS 6.x系統中配置自動掛載,您還需執行以下操作。

    1. 執行chkconfig netfs on命令,確保netfs服務開機自啟動。

    2. 開啟/etc/netconfig設定檔,注釋掉inet6相關的內容(如下圖所示)。注釋inet6相關內容

  2. 開啟/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不應在啟動時運行。

  3. 執行以下命令,配置開機開機檔案/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
  4. 執行reboot命令,重啟Elastic Compute Service。

    重要

    重啟雲端服務器會中斷業務,建議您在業務低穀時期重啟雲端服務器。

  5. 驗證自動掛載配置成功。

    在ECS重啟後的一分鐘內,執行df -h命令,確認掛載的NAS檔案系統。

常見問題

相關文檔