CPFS-NFS客户端挂载文件系统(推荐)

更新时间:

CPFS支持通过NFS协议访问。在创建CPFS文件系统后,您需要开启协议服务并创建导出目录生成挂载点,然后在ECS实例中安装CPFS-NFS客户端并执行mount命令挂载,从而实现访问CPFS文件系统。导出目录的挂载点不依赖POSIX挂载点,如果您只需要通过NFS协议访问CPFS文件系统,则无需创建POSIX挂载点。删除原有POSIX挂载点不会影响通过导出目录访问数据。

前提条件

CPFS-NFS客户端说明

支持的操作系统

操作系统类型

操作系统版本

Alibaba Cloud Linux

  • Alibaba Cloud Linux 3.2104 64位

  • Alibaba Cloud Linux 2.1903 64位

CentOS

  • CentOS 8.x 64位

  • CentOS 7.x 64位

Ubuntu

  • Ubuntu 20.04 64位

  • Ubuntu 18.04 64位

  • Ubuntu 16.04 64位

Debian

  • Debian 10.x 64位

  • Debian 9.x 64位

  • Debian 8.x 64位

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客户端

  1. 登录待挂载CPFS文件系统的云服务器ECS。连接方式,请参见连接方式概述

  2. 下载并安装CPFS-NFS客户端。

    Alibaba Cloud Linux

    1. 下载CPFS-NFS客户端。

      wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.al.noarch.rpm
    2. 安装CPFS-NFS客户端。

      sudo yum install aliyun-alinas-utils-*.rpm

    CentOS

    1. 下载CPFS-NFS客户端。

      wget https://cpfs-hangzhou-nfs-client.oss-cn-hangzhou.aliyuncs.com/aliyun-alinas-utils-latest.el.noarch.rpm
    2. 安装CPFS-NFS客户端。

      sudo yum install aliyun-alinas-utils-*.rpm

    Ubuntu

    1. 下载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
    2. 安装CPFS-NFS客户端。

      sudo apt-get update
      sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb

    Debian

    1. 下载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
    2. 安装CPFS-NFS客户端。

      sudo apt-get update
      sudo apt-get install /tmp/aliyun-alinas-utils-latest.deb
  3. 检查CPFS-NFS客户端安装结果。

    which mount.cpfs-nfs

    成功返回示例如下:

    /usr/sbin/mount.cpfs-nfs

步骤二:使用CPFS-NFS客户端挂载文件系统

  1. 挂载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选项,相关风险需由您自行承担。

      • 避免设置不同于默认值的任何其他挂载选项。如果更改读或写缓冲区大小或禁用属性缓存,可能会导致性能下降。

  2. 执行mount -l命令,查看挂载结果。

    挂载成功后,您可以执行df -h命令,查看当前文件系统的容量信息。

  3. 可选:配置开机时自动挂载。

    为避免已挂载文件系统的云服务器ECS重启后,挂载信息丢失,您可以通过在Linux ECS实例中配置/etc/fstab文件,实现在云服务器ECS设置重启时CPFS文件系统自动挂载。

    1. 打开/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不应在启动时运行。

    2. 执行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地址,其中cpfs_primary为主节点,cpfs_backup为备节点。

客户端日志

您可以通过访问/var/log/aliyun/cpfs/路径下的CPFS-NFS客户端日志定位挂载报错信息。同时可以通过修改日志配置文件/etc/aliyun/cpfs/cpfs-utils.conf中的参数,定制CPFS-NFS客户端日志内容。修改配置文件后,请您执行sudo service aliyun-cpfs-mount-watchdog restart命令,重启后端watchdog进程。

相关问题

相关文档