在 CentOS 中裝載檔案共用

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

開始之前

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

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

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

  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