在 CentOS 中裝載檔案共用

在 CentOS Linux® 運算實例上掛載 NFS 檔案共享,並可選擇啟用傳輸過程中的 IPsec 加密(需使用 dp2 設定檔,並設定安全群組的存取模式)。

開始之前

  1. 確認計算主機與共用屬於同一 安全群組。 如需詳細資訊,請參閱 粒狀授權

  2. 確認伺服器所在的 VPC 存在共用的掛載目標。 如果需要新的裝載目標,請遵循 建立檔案共用及裝載目標 中的指示。

  3. 從裝載目標取得檔案共用的裝載路徑。 掛載路徑資訊可從 主控台 的檔案共用詳細資訊頁面、CLIAPITerraform 取得。

  4. 如果要在傳輸中使用加密,您需要從元資料服務取得 IPsec 憑證。 請確定已針對裝載目標啟用傳輸中加密。 此外,使用安全連線來裝載檔案共用。 此特性僅適用於具有 dp2 設定檔及安全群組存取模式的檔案共用。 如需相關資訊,請參閱 傳輸中加密-保護檔案共用與主機之間的裝載連線安全

    安裝並執行 mount helper 公用程式,以使用傳輸中加密或沒有加密連線來裝載檔案共用。

File Storage for VPC 服務需要 NFS v4.1 或更高版本。

在 CentOS 上裝載檔案共用

遵循下列步驟,在 CentOS 主機上裝載檔案共用。 這些範例以 CentOS 8 為基礎。 這些步驟與 在 Red Hat Enterprise Linux®上裝載檔案共用 中說明的步驟類似。

透過 SSH 登入您要裝載檔案共用的 Compute 實例,然後繼續執行下列步驟:

  1. 安裝必要的工具。

    dnf install nfs-utils
    
  2. 在您的執行個體中建立一個目錄。

    mkdir /mnt/test
    
  3. 掛載遠端檔案共用。

    mount -t nfs4 -o <options> <host:/mount_target> /mnt
    

    請參閱下列範例。

    mount -t nfs4 -o sec=sys 10.240.64.11:/384f711c_0684_4643_b1c3_dc7acb36d04a /mnt/test
    
  4. 請使用磁碟檔案系統指令來驗證裝載是否順利完成。

    $ df -h
    Filesystem                                                                                    Size  Used Avail Use% Mounted on
    udev                                                                                          3.9G     0  3.9G   0% /dev
    tmpfs                                                                                         798M  660K  798M   1% /run
    /dev/vda2                                                                                      99G  1.6G   93G   2% /
    tmpfs                                                                                         3.9G     0  3.9G   0% /dev/shm
    tmpfs                                                                                         5.0M     0  5.0M   0% /run/lock
    tmpfs                                                                                         3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/vda1                                                                                     240M   73M  155M  33% /boot
    fsf-dal2433a-dz.adn.networklayer.com:/nxg_s_voll_246a9cb9-4679-4dc5-9522-4a7ed2575136  190G  384K  190G   1% /mnt/test
    tmpfs                                                                                         798M     0  798M   0% /run/user/0
    
  5. 跳至裝載點以建立測試檔案並列出所有檔案,以驗證共用已裝載為讀寫。

    touch /mnt/test/test.txt
    ls -al /mnt/test
    
    $ touch /mnt/test/test.txt
    ls -al /mnt/test
    total 12
    drwxr-xr-x   2 nobody nobody 4096 Apr 8 15:52 .
    dr-xr-xr-x. 22 root   root   4096 Apr 8 14:30 ..
    -rw-r--r--   1 nobody nobody    0 Apr 8 15:52 test.txt
    

    這些檔案是由 root 建立的,其所有權設定為 nobody:nobody。 若要正確顯示所有權,請使用正確的網域設定來更新 idmapd.conf。 如需更多資訊,請參閱 《 如何在 NFS 上實作 no_root_squash 》。

  6. 在啟動時掛載遠端檔案共用。 要完成設定,您必須編輯檔案系統表(/etc/fstab ),並將遠端檔案共用新增至開機時會自動掛載的項目清單中。 在 fstab 中建立項目之前,請執行下列步驟,將裝載路徑主機名稱新增至 /etc/hosts

    1. 取得裝載路徑的 hostname.com 部分,例如 fsf-dal2433a-dz.adn.networklayer.com,並取得 IP 位址。 從實例執行下列指令,以取得 IP 位址。

      host hostname.com
      

      請參閱下列範例。

      host fsf-dal2433a-dz.adn.networklayer.com
      fsf-dal2433a-dz.adn.networklayer.com has address 203.0.113.0
      

      如果您在執行 host 指令時收到找不到指令錯誤,請使用 dnf install bind-utils 來安裝它。

    2. 編輯 /etc/hosts,並將 IP 新增至主機名稱項目。

       <IP_Address> hostname.comhostname.com
      

      請參閱下列範例。

      198.51.100.0 fsf-dal2433a-dz.adn.networklayer.com
      
    3. 編輯檔案系統表格 /etc/fstab,並新增項目。

      (hostname):/(file_share_path) /mnt nfs_version options 0 0
      

      請參閱下列範例。

      fsf-dal2433a-dz.adn.networklayer.com:/nxg_s_voll_246a9cb9-4679-4dc5-9522-4a7ed2575136 /mnt/test nfs4 nfsvers=4.1,sec=sys,_netdev 0 0
      
  7. 驗證配置檔未發生錯誤。

    mount -fav
    

    如果該指令執行完畢且未出現錯誤,則表示您的設定已完成。

    對於 NFS 4.1,請在掛載指令中加入 sec=sys,以避免檔案所有權問題。 在所有網路元件啟動之前,請使用 _netdev 來等待裝載儲存體。

實作 NFS 的 no_root_squash(選用)

預設情況下,NFS 會將任何以 root 權限建立的檔案,其所有權降級至 nobody 使用者。 除非要求專用權,否則此安全特性會防止專用權共用。

透過配置 no_root_squash,root 用戶端可以保留遠端 NFS 檔案共用的 root 許可權。

對於 NFSv4.1,請將 nfsv4 網域設定為:slnfsv4.com,並啟動 rpcidmapd 或您作業系統所使用的類似服務。 請參閱下列範例。

  1. 請在主機端,於 /etc/idmapd.conf 中設定網域設定。

    $ vi /etc/idmapd.conf
    [General]
    #Verbosity = 0
    #The following should be set to the local NFSv4 domain name
    #The default is the host's DNS domain name.
    Domain = slnfsv4.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  2. 執行 nfsidmap -c

解除裝載檔案系統

若要在您的主機上解除裝載任何目前已裝載的檔案系統,請用磁碟名稱或裝載點名稱執行 umount 指令。

umount /dev/sdb
umount /mnt