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进程。