挂载NFS文件系统到云服务器(Linux)

at 2年前  ca Linux  pv 580  by touch  

当创建文件系统后,您需要使用云服务器来挂载该文件系统,以实现多个云服务器共享使用文件系统的目的。

CIFS类型的文件系统不支持使用Linux操作系统的云服务器进行挂载。

同一SFS容量型文件系统不能同时支持NFS协议和CIFS协议。

裸金属服务器、容器(CCE&CCI)操作与云服务器一致。

SFS 3.0容量型文件系统暂不支持挂载至32位的Linux系统云服务器。

前提条件

  • 确定云服务器操作系统类型,不同操作系统安装NFS客户端的命令不同。

  • 已完成创建文件系统,并获取到文件系统的挂载地址。

  • 存在至少一台与文件系统所属VPC相同的云服务器。

  • 云服务器(ECS)上已配置了用于内网解析文件系统域名的DNS服务器的IP地址。

  • 针对SFS Turbo HPC型和HPC缓存型文件系统,使用域名(DNS)挂载文件系统时,不支持跨区域(Region)挂载,但可以通过指定IP的方式跨区域(Region)挂载,网络互通方式具体参考云连接CC“跨区域VPC互通”。

操作步骤

  1. 以root用户登录弹性云服务器。


    挂载NFS文件系统到云服务器(Linux) Linux 第1张说明:

    若以非root用户登录弹性云服务器,具体操作请参考使用非root的普通用户挂载文件系统到Linux云服务器


  2. 安装NFS客户端。



    • CentOS、Red Hat、Euler OS、Fedora或Oracle Enterprise Linux系统下,执行如下命令:

    • sudo yum -y install nfs-utils
    • Debian或Ubuntu系统下,执行如下命令:

    • sudo apt-get install nfs-common
    • SUSE或OpenSUSE系统下,执行如下命令:

    • zypper install nfs-clien
    • CentOS、Red Hat、Oracle Enterprise Linux、SUSE、Euler OS、Fedora或OpenSUSE系统下,执行如下命令:

    • rpm -qa|grep nfs
    • Debian或Ubuntu系统下,执行如下命令:

    • dpkg -l nfs-commo
    • CentOS、Red Hat、Euler OS、Fedora或Oracle Enterprise Linux系统下,回显如下类似信息:

    libnfsidmap
    nfs-utils
    • SUSE或OpenSUSE系统下,回显如下类似信息:

    nfsidmap
    nfs-client
    • Debian或Ubuntu系统下,回显如下类似信息:

    nfs-common
    1. 查看系统是否安装NFS软件包。

      不同操作系统回显会有所不同,如果回显如下类似信息,说明已经成功安装NFS软件包,执行3。如未显示,执行2.b
    2. 如果查看到未安装,根据不同的操作系统,执行不同命令。

      挂载NFS文件系统到云服务器(Linux) Linux 第2张说明:

      执行以下命令前要求云服务器已连接到互联网,否则安装NFS客户端失败。

  3. 执行如下命令,查看是否能解析文件系统挂载地址中的域名。


    nslookup 文件系统域名

    挂载NFS文件系统到云服务器(Linux) Linux 第3张说明:


    • 解析成功,执行4

    • 解析失败,请先完成DNS服务器IP地址的配置再执行挂载文件系统的操作,具体配置操作请参见配置DNS

    • 文件系统域名仅为域名,如:sfs-nas1.xxxx.com。文件系统域名请从文件系统的挂载地址中获取,不需要输入整个挂载地址。

    • 无法使用nslookup命令时,需要先安装bind-utils软件包。(可通过执行yum install bind-utils命令安装)

  4. 执行如下命令,创建用于挂载文件系统的本地路径。


    mkdir 本地路径

    挂载NFS文件系统到云服务器(Linux) Linux 第4张说明:

    如果本地路径已挂载其他磁盘等资源,为被占用状态时,需要新建目录进行挂载。


  5. 执行如下命令,将文件系统挂载到与文件系统所属VPC相同的云服务器上。文件系统目前仅支持NFSv3协议挂载到Linux云服务器。


    其中变量说明见表1

    SFS容量型文件系统执行命令:mount -t nfs -o vers=3,timeo=600,noresvport,nolock 挂载地址 本地路径

    SFS Turbo文件系统执行命令:mount -t nfs -o vers=3,timeo=600,noresvport,nolock 挂载地址 本地路径

    SFS 3.0容量型文件系统执行命令:mount -t nfs -o vers=3,timeo=600,noresvport,nolock,proto=tcp 挂载地址 本地路径

    挂载NFS文件系统到云服务器(Linux) Linux 第5张须知:

    已挂载文件系统的云服务器重启后,该云服务器上的挂载信息将会丢失,您可以通过在fstab文件中配置自动挂载来保证云服务器重启时自动挂载文件系统,具体操作请参见自动挂载文件系统

    表1 参数说明

    参数

    说明

    vers

    文件系统版本,目前只支持NFSv3。取值:3。

    timeo

    NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值:600。

    resvport/noresvport

    设置连接服务器是否使用保密源端口。默认的resvport为设置保密端口;noresvport设置为非保密端口。内核2.6.28及以后版本支持。

    建议设置为noresvport,可指定网络在重新连接时使用新的TCP端口,以保障在网络发生故障恢复时连接不会中断。

    lock/nolock

    选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。建议值:nolock。如不加此参数,则默认为lock,就会发生其他服务器无法对此文件系统写入的情况。

    proto

    NFS客户端向服务器发起传输请求使用的协议,可以为UDP或者TCP。

    当前SFS 3.0容量型文件系统不支持UDP传输协议,需要设置为TCP传输协议,即proto=tcp。

    挂载地址

    SFS容量型文件系统的格式为:文件系统域名:/路径,例如:example.com:/share-xxx。

    SFS Turbo通用型文件系统的格式为:文件系统IP:/,例如192.168.0.0:/。

    SFS Turbo HPC型和HPC缓存型文件系统的格式为:域名地址:/,例如xxxx.region.xxxx:/。

    图1所示。

    挂载NFS文件系统到云服务器(Linux) Linux 第6张说明:

    本地路径

    云服务器上用于挂载文件系统的本地路径,例如“/local_path”。

    图1 挂载地址
    挂载NFS文件系统到云服务器(Linux) Linux 第7张

    挂载文件系统时,更多性能调优的挂载参数,可参考表2配置,各参数之间以逗号进行分隔。例如:

    mount -t nfs -o vers=3,timeo=600,nolock,rsize=1048576,wsize=1048576,hard,retrans=3,tcp,noresvport,ro,async,noatime,nodiratime 挂载地址 本地路径

    表2 挂载参数

    参数

    说明

    rsize

    每次向服务器读取文件的最大字节数。实际数据小于或等于此值。rsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户端进行协商后设置。

    建议设置为最大值1048576。

    wsize

    每次向服务器写入文件的最大字节数。实际数据小于或等于此值。wsize必须是1024倍数的正整数,小于1024时自动设为4096,大于1048576时自动设为1048576。默认时,服务器和客户端进行协商后设置。

    建议设置为最大值1048576。

    soft/hard

    取值为soft,即软挂载方式挂载系统,若NFS请求超时,则客户端向调用程序返回错误;取值为hard,即使用硬连接方式,若NFS请求超时,则客户端一直重新请求直至成功。

    默认为hard。

    retrans

    客户端返回错误前的重传次数。

    tcp/udp

    表示设置NFS客户端协议和mount挂载协议同时使用tcp或udp协议。

    当前mount挂载协议未开启udp协议,SFS Turbo文件系统使用默认挂载命令时会有几秒卡顿。需要将mount挂载协议设置为TCP传输协议,即mountproto=tcp。

    如果需要设置NFS客户端协议使用tcp协议,需要设置为proto=tcp。

    若需要同时设置NFS客户端协议和mount挂载协议,可以直接使用tcp/udp参数即可。

    ro/rw

    默认为rw。未写明ro/rw时,则默认为采用rw读写的方式挂载。

    resvport/noresvport

    设置连接服务器是否使用保密源端口。默认的resvport为设置保密端口;noresvport设置为非保密端口。内核2.6.28及以后版本支持。

    建议设置为noresvport,可指定网络在重新连接时使用新的TCP端口,以保障在网络发生故障恢复时连接不会中断。

    sync/async

    sync为同步写入,表示将写入文件的数据立即写入服务端;async为异步写入,表示将数据先写入缓存,再写入服务端。

    同步写入要求NFS服务器必须将每个数据都刷入服务端后,才可以返回成功,时延较高。建议设置为async。

    noatime

    如果不需要记录文件的访问时间,可以设置该参数。避免频繁访问时,修改访问时间带来的开销。

    nodiratime

    如果不需要记录目录的访问时间,可以设置该参数。避免频繁访问时,修改访问时间带来的开销。

    挂载NFS文件系统到云服务器(Linux) Linux 第8张说明:

    没有“使用建议”的参数推荐使用默认参数。


    • ro:表示采用只读的方式挂载。

    • rw:表示采用读写的方式挂载。

    • x是数字或字母。

    • 由于挂载地址名称较长,需要拉宽该栏以便完整显示。

    • 将鼠标悬停在挂载地址上可显示完整的挂载命令。

  6. 挂载完成后,执行如下命令,查看已挂载的文件系统。


    mount -l

    如果回显包含如下类似信息,说明挂载成功。
挂载地址 on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=)

  1. 挂载成功后,用户可以在云服务器上访问文件系统,执行读取或写入操作。


    若挂载失败或超时,请参考故障排除处理。

    挂载NFS文件系统到云服务器(Linux) Linux 第9张说明:

    SFS容量型支持写入的单个文件最大容量为240TB。


版权声明

本文仅代表作者观点,不代表码农殇立场。
本文系作者授权码农殇发表,未经许可,不得转载。

 

扫一扫在手机阅读、分享本文

已有0条评论
您是本站第12177名访客 今日有0篇新文章 当前在线 23 人