CPFS-NFS客戶端掛載文件系統(推薦)
CPFS支持通過NFS協議訪問。在創建CPFS文件系統后,您需要開啟協議服務并創建導出目錄生成掛載點,然后在ECS實例中安裝CPFS-NFS客戶端并執行mount命令掛載,從而實現訪問CPFS文件系統。導出目錄的掛載點不依賴POSIX掛載點,如果您只需要通過NFS協議訪問CPFS文件系統,則無需創建POSIX掛載點。刪除原有POSIX掛載點不會影響通過導出目錄訪問數據。
前提條件
CPFS-NFS客戶端說明
支持的操作系統
操作系統類型 | 操作系統版本 |
Alibaba Cloud Linux |
|
CentOS |
|
Ubuntu |
|
Debian |
|
IP地址和端口
CPFS-NFS客戶端會占用一個本地IP地址127.0.1.255,以及該地址上30000~60000的TCP端口,用于掛載時的端口映射。
如果127.0.1.255 IP地址,或者該地址上的30000~60000端口段已被其他軟件使用,您需要修改CPFS-NFS客戶端配置。具體操作,請參見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客戶端的健康狀態。
步驟一:下載與安裝CPFS-NFS客戶端
登錄待掛載CPFS文件系統的云服務器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
檢查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
表示<掛載地址> <當前服務器上待掛載的本地路徑>,請根據實際情況替換。
掛載地址:導出目錄的掛載地址。您可以在文件存儲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
命令,查看當前文件系統的容量信息。可選:配置開機時自動掛載。
為避免已掛載文件系統的云服務器ECS重啟后,掛載信息丟失,您可以通過在Linux ECS實例中配置/etc/fstab文件,實現在云服務器ECS設置重啟時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-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地址,其中 |
客戶端日志
您可以通過訪問/var/log/aliyun/cpfs/路徑下的CPFS-NFS客戶端日志定位掛載報錯信息。同時可以通過修改日志配置文件/etc/aliyun/cpfs/cpfs-utils.conf中的參數,定制CPFS-NFS客戶端日志內容。修改配置文件后,請您執行sudo service aliyun-cpfs-mount-watchdog restart
命令,重啟后端watchdog進程。