CPFS支援通過NFS協議訪問。在建立CPFS檔案系統後,您需要開啟協議服務並建立匯出目錄產生掛載點,然後在ECS執行個體中安裝CPFS-NFS用戶端並執行mount命令掛載,從而實現訪問CPFS檔案系統。匯出目錄的掛載點不依賴POSIX掛載點,如果您只需要通過NFS協議訪問CPFS檔案系統,則無需建立POSIX掛載點。刪除原有POSIX掛載點不會影響通過匯出目錄訪問資料。
前提條件
使用說明
支援的作業系統
作業系統類型 | 作業系統版本 |
Alibaba Cloud Linux |
|
CentOS |
|
Ubuntu |
|
Debian |
|
SUSE |
|
IP地址和連接埠
CPFS-NFS用戶端會佔用一個本地IP地址127.0.1.255,以及該地址上30000~60000的TCP連接埠,用於掛載時的連接埠映射。
如果127.0.1.255 IP地址,或者該地址上的30000~60000連接埠段已被其他軟體使用,您需要修改CPFS-NFS用戶端配置。具體操作,請參見用戶端配置。
檔案目錄
安裝CPFS-NFS用戶端後,會在ECS上產生CPFS-NFS用戶端設定檔目錄(/etc/aliyun/cpfs)、運行目錄(/var/run/cpfs)、日誌目錄(/var/log/aliyun/cpfs/)。
進程
通過CPFS-NFS用戶端掛載CPFS後,會在ECS上啟動haproxy進程用於IO訪問,同時啟動watchdog進程用於監控CPFS-NFS用戶端的健康狀態。
用戶端日誌
您可以通過訪問/var/log/aliyun/cpfs/路徑下的CPFS-NFS用戶端日誌定位掛載報錯資訊。同時可以通過修改日誌設定檔/etc/aliyun/cpfs/cpfs-utils.conf中的參數,定製CPFS-NFS用戶端日誌內容。修改設定檔後,請您執行sudo service aliyun-cpfs-mount-watchdog restart命令,重啟後端watchdog進程。
步驟一:下載與安裝CPFS-NFS用戶端
本用戶端已開源。如需源碼或手動編譯,請訪問GitHub程式碼程式庫。
登入待掛載CPFS檔案系統的Elastic Compute Service。串連方式,請參見選擇ECS遠端連線方式。
下載並安裝CPFS-NFS用戶端。
Alibaba Cloud Linux
下載CPFS-NFS用戶端。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.al.noarch.rpm安裝CPFS-NFS用戶端。
sudo yum install aliyun-alinas-utils-*.rpm
CentOS
下載CPFS-NFS用戶端。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.el.noarch.rpm安裝CPFS-NFS用戶端。
sudo yum install aliyun-alinas-utils-*.rpm
Ubuntu
下載CPFS-NFS用戶端。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.deb安裝CPFS-NFS用戶端。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
Debian
下載CPFS-NFS用戶端。
sudo wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.deb -O /tmp/aliyun-alinas-utils-latest.deb安裝CPFS-NFS用戶端。
sudo apt-get update sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
SUSE
下載CPFS-NFS用戶端。
wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.lp15.x86_64.rpm安裝CPFS-NFS用戶端。
sudo zypper --no-gpg-checks install -y aliyun-alinas-utils-*.rpm
檢查CPFS-NFS用戶端安裝結果。
which mount.cpfs-nfs成功返回樣本如下:
/usr/sbin/mount.cpfs-nfs
步驟二:使用CPFS-NFS用戶端掛載檔案系統
掛載CPFS檔案系統。
sudo mount -t cpfs-nfs -o vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt掛載命令中的參數說明如下表所示。
參數
描述
file-system-id.region.cpfs.aliyuncs.com:/share/path /mnt
表示<掛載地址> <當前伺服器上待掛載的本地路徑>,請根據實際情況替換。
掛載地址:匯出目錄的掛載地址。您可以在Apsara File Storage NAS控制台檔案系統列表頁面,單擊目標檔案系統後的管理,進入協議服務頁面,在操作列,單擊匯出目錄,進入匯出目錄面板擷取掛載地址。
例如:
cpfs-196f91a8e58b****-195ceeac7b6ac****.cn-chengdu.cpfs.aliyuncs.com:/share/fileset當前伺服器上待掛載的本地路徑:Linux ECS執行個體的根目錄(/)或任意子目錄(例如:/mnt),如果是子目錄,請您確保子目錄已存在。
vers
檔案系統版本。CPFS僅支援NFSv3協議掛載檔案系統。
掛載選項
掛載檔案系統時,可選擇多種掛載選項,掛載選項使用半形逗號(,)分隔,說明如下:
rsize:定義資料區塊的大小,用於用戶端與檔案系統之間讀取資料。建議值:1048576。
wsize:定義資料區塊的大小,用於用戶端與檔案系統之間寫入資料。建議值:1048576。
說明如果您需要更改IO大小參數(rsize和wsize),建議您儘可能使用最大值(1048576),以避免效能下降。
hard:在檔案儲存體CPFS暫時停用情況下,使用檔案系統上某個檔案的本地應用程式時會停止並等待至該檔案系統恢複線上狀態。建議啟用該參數。
timeo:指定時間長度,單位為0.1秒,即CPFS-NFS用戶端在重試向檔案系統發送請求之前等待響應的時間。建議值:600(60秒)。
說明如果您必須更改逾時參數(timeo),建議您使用150或更大的值。該timeo參數的單位為0.1秒,因此150表示的時間為15秒。
retrans:CPFS-NFS用戶端重試請求的次數。建議值:2。
noresvport:在網路重連時使用新的TCP連接埠,保障在網路發生故障恢複時不會中斷串連。建議啟用該參數。
重要不建議使用soft選項,有資料一致性風險。如果您要使用soft選項,相關風險需由您自行承擔。
避免設定不同於預設值的任何其他掛載選項。如果更改讀或寫緩衝區大小或禁用屬性緩衝,可能會導致效能下降。
執行
mount -l命令,查看掛載結果。掛載成功後,您可以執行
df -h命令,查看當前檔案系統的容量資訊。可選:配置開機時自動掛載。
為避免已掛載檔案系統的Elastic Compute Service重啟後,掛載資訊丟失,您可以通過在Linux ECS執行個體中配置/etc/fstab檔案,實現在Elastic Compute Service設定重啟時CPFS檔案系統自動掛載。
開啟/etc/fstab設定檔,添加掛載配置。
file-system-id.region.nas.aliyuncs.com:/share/path /mnt cpfs-nfs vers=3,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0樣本中主要參數說明,請參見掛載命令參數說明。其餘參數說明如下。
參數
說明
_netdev
防止用戶端在網路就緒之前開始掛載檔案系統。
0(noresvport後第一項)
非零值表示檔案系統應由dump備份。對於CPFS檔案系統而言,此值預設為0。
0(noresvport後第二項)
該值表示fsck在啟動時檢查檔案系統的順序。對於CPFS檔案系統而言,此值預設為0,表示fsck不應在啟動時運行。
執行
reboot命令,重啟ECS執行個體。說明在重啟ECS執行個體前,請確認手動掛載成功,避免ECS執行個體重啟失敗。另外,如果自動掛載配置成功,在ECS執行個體重啟後,可以通過
df -h命令查看到掛載的CPFS檔案系統。
用戶端配置
設定檔
如果您需要修改CPFS-NFS用戶端配置,請聯絡CPFS支援人員團隊,並在團隊指導下修改設定檔,否則可能會影響IO訪問。設定檔路徑:/etc/aliyun/cpfs/cpfs-utils.conf。配置樣本如下:
[DEFAULT]
logging_level = INFO
logging_max_bytes = 1048576
logging_file_count = 10
[mount]
stunnel_debug_enabled = false
# Validate the certificate hostname on mount. This option is not supported by certain stunnel versions.
stunnel_check_cert_hostname = false
# Use OCSP to check certificate validity. This option is not supported by certain stunnel versions.
stunnel_check_cert_validity = false
proxy_port = 12049
cpfs_proxy_addr = 127.0.1.255
cpfs_proxy_port_min = 30000
cpfs_proxy_port_max = 60000
[mount-watchdog]
poll_interval_sec = 1
unmount_grace_period_sec = 30
dns_refresh_interval = 60
[client-tool]設定檔中的重要參數說明如下:
參數 | 說明 |
logging_level | 記錄層級。預設為INFO。 |
logging_max_bytes | 記錄檔的最大容量。預設為1048576位元組,即單個記錄檔最大為1 MiB。 |
logging_file_count | 記錄檔的最大保留數量。預設為10,即最多保留10個記錄檔。 |
cpfs_proxy_addr | CPFS用戶端proxy IP地址,預設為127.0.1.255。 |
cpfs_proxy_port_min | CPFS用戶端proxy連接埠範圍最小值,預設為30000。 |
cpfs_proxy_port_max | CPFS用戶端proxy連接埠範圍最大值,預設為60000。 |
poll_interval_sec | 後台watchdog服務檢測時間,預設為1s。 |
unmount_grace_period_sec | 執行umount CPFS-NFS掛載點後,清理對應的設定檔靜默時間,預設為30s。 |
dns_refresh_interval | 後台watchdog服務檢測DNS對應當前串連的主備節點是否可用,預設為60s。 |
haproxy配置
CPFS-NFS用戶端在掛載時自動產生haproxy設定檔,並啟動haproxy進程,請勿修改該設定檔,否則會影響IO訪問。您可通過查看/var/run/cpfs/haproxy-config.dns設定檔,樣本如下。
global
maxconn 4096
defaults
mode tcp
balance leastconn
timeout client 60s
timeout server 60s
timeout connect 3s
retries 3
frontend cpfs2049
bind 127.0.1.255:30000
default_backend bk2049
backend bk2049
server cpfs_primary 172.27.1.189:2049 maxconn 2048 check port 2049 inter 2s fall 5 rise 30 on-marked-up shutdown-backup-sessions
server cpfs_backup 172.27.0.214:2049 maxconn 2048 check port 2049 inter 2s fall 5 rise 30 backup重要參數說明如下:
參數 | 說明 |
defaults | 預設參數值不建議修改。 |
frontend | haproxy代理本地IP地址和連接埠。預設選擇127.0.1.255,連接埠選擇範圍為30000~60000。 |
backend | CPFS-NFS服務後端對應的IP地址,其中 |