
# 挂载通用文件系统到Linux云服务器
当创建通用文件系统后，您需要使用云服务器来挂载该通用文件系统，以实现多个云服务器共享使用通用文件系统的目的，本文将介绍如何挂载文件系统到ECS上。
![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
- 裸金属服务器、容器（CCE\&CCI）操作与弹性云服务器（ECS）挂载操作一致。挂载至CCE：请参考[存储\>存储概述](https://support.huaweicloud.com/usermanual-cce/cce_10_0307.html)或[存储\>文件存储（SFS）](https://support.huaweicloud.com/usermanual-cce/cce_10_0111.html)，并在CCE界面完成SFS部署至CCE的操作。
- 不同云服务器操作系统的挂载操作可能不同，请根据您的实际环境进行操作。
- 通用文件系统暂不支持挂载至32位的Linux系统云服务器。
 
#### 约束与限制
![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
该约束仅针对本地挂载路径（即挂载点），不影响其他文件或目录。
暂不支持修改本地挂载路径（即挂载点）的元数据，即不支持对挂载点的元数据做如下操作：
- touch：更新文件的访问时间和修改时间
- rm：删除文件或目录
- cp：复制文件或目录
- mv：移动文件或目录
- rename：重命名文件或目录
- chmod：修改文件或目录的权限
- chown：修改文件或目录的所有者
- chgrp：修改文件或目录的所属组
- ln：创建硬链接
- link：创建硬链接
- unlink：删除硬链接
本地挂载路径（即挂载点根目录）的atime、ctime和mtime属性是当前时间，每次查询根目录属性返回的都是服务端当时时间的值。
#### 前提条件
- 确定云服务器操作系统类型，不同操作系统安装NFS客户端的命令不同。
- 已完成创建通用文件系统，并获取到通用文件系统的挂载地址，挂载地址请从通用文件系统列表中获取。
- 存在至少一台与通用文件系统所属VPC相同的云服务器。
- 云服务器（ECS）上已配置了用于内网解析通用文件系统域名的DNS服务器的IP地址。详细操作参见[配置解析域名的DNS服务器](https://support.huaweicloud.com/usermanual-sfs/sfs_01_0038.html)。
- 挂载通用文件系统到Linux云服务器前需要创建VPC终端节点，手动创建VPC终端节点的详细操作请参阅[创建VPC终端节点](https://support.huaweicloud.com/usermanual-sfs/sfs_01_0134.html)，自动创建VPC终端节点的详细操作请参阅[创建通用文件系统](https://support.huaweicloud.com/usermanual-sfs/zh-cn_topic_0034428727.html)。
 
#### 挂载通用文件系统操作步骤
1. [登录弹性云服务器控制台](https://console.huaweicloud.com/ecm/#/ecs/manager/vmList)。
2. 以root用户[登录弹性云服务器](https://console.huaweicloud.com/ecm/#/ecs/manager/vmList)。可以通过管理控制台或跨平台远程访问工具（例如PuTTY）登录。
   
   
   ![](https://support.huaweicloud.com/usermanual-sfs/zh-cn_image_0000002312433214.png "点击放大")
   
   
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
   若以非root用户登录弹性云服务器，具体操作请参考"常见问题\>非root普通用户挂载文件系统"。
   
   
3. 安装NFS客户端。
   
   1. 查看系统是否安装NFS软件包。
      - CentOS、Red Hat、Oracle Enterprise Linux、SUSE、Euler OS、Fedora或OpenSUSE系统下，执行如下命令： **rpm -qa\|grep nfs**
        
      
      - Debian或Ubuntu系统下，执行如下命令： **dpkg -l nfs** **-common**
        
      
      
      不同操作系统回显会有所不同，如果回显如下类似信息，说明已经成功安装NFS软件包，执行[解析域名步骤]。如未显示，执行[安装命令]。
      - CentOS、Red Hat、Euler OS、Fedora或Oracle Enterprise Linux系统下，回显如下类似信息：
        ```
        libnfsidmap
        nfs-utils
        ```
        
      
      - SUSE或OpenSUSE系统下，回显如下类似信息：
        ```
        nfsidmap
        nfs-client
        ```
        
      
      - Debian或Ubuntu系统下，回显如下类似信息：
        ```
        nfs-common
        ```
        
        
   
   2. 如果查看到未安装，根据不同的操作系统，执行不同命令。
      ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
      执行以下命令前要求云服务器已连接到互联网，否则安装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-client
        ```
        
       
   
   
   
   
4. 执行如下命令，查看是否能解析通用文件系统挂载地址中的域名。
   
   ```
   nslookup 通用文件系统域名
   ```
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
   - 通用文件系统域名请从通用文件系统的挂载地址中获取。例如，通用文件系统的挂载地址为xxx:/sfs-name-001，xxx为通用文件系统的域名，sfs-name-001为通用文件系统的名称。
   
   - 无法使用**nslookup** 命令时，需要先安装**bind-utils** 软件包。（可通过执行**yum install bind-**utils****命令安装）
    
   - 解析成功，继续执行挂载通用文件系统的操作。
   
   - 解析失败，请先完成DNS服务器IP地址的配置再执行挂载通用文件系统的操作，具体配置操作请参见[配置解析域名的DNS服务器](https://support.huaweicloud.com/usermanual-sfs/sfs_01_0038.html)。
   
   
   
   
5. 挂载NFS文件系统。
   
   - 挂载到文件系统根目录，执行如下命令：
   
   
   ```
   mkdir 本地路径
   mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 挂载地址 本地路径
   ```
   - 挂载到文件系统子目录，执行如下命令：
   
   
   ```
   mkdir 本地路径/子目录
   mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 文件系统域名:/子目录 本地路径
   ```
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
   - 请从通用文件系统列表的挂载地址中获取文件系统域名。例如，通用文件系统的挂载地址为xxx:/sfs-name-001，xxx为通用文件系统的域名，sfs-name-001为通用文件系统的名称。
   
   - 如果本地路径已挂载其他磁盘等资源，为被占用状态时，需要新建其它目录进行挂载（NFS客户端不会对重复挂载进行拦截，当重复挂载时会表现为最后一次成功挂载的信息）。
   
   - 文件系统必须挂载到与文件系统所属VPC相同的云服务器上。
    
   挂载命令变量说明见[表1]。
    表1参数说明 
   | 参数          | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 本地路径        | 云服务器上用于挂载通用文件系统的本地路径，例如"/local_path"。                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 挂载地址        | 通用文件系统的格式为：通用文件系统域名:/通用文件系统名称，例如example.com:/xxx。 说明： - x是数字或字母。  - 由于挂载地址名称较长，需要拉宽该栏以便完整显示。  - 将鼠标悬停在挂载地址上可显示完整的挂载命令。   |
   | vers        | 文件系统版本，目前只支持NFSv3。取值：3。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | timeo       | NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值：600。                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | noresvport  | 指定NFS客户端向NFS服务端重新发起建立连接时使用新的TCP端口。 强烈建议使用 noresvport 参数，这可以保障网络发生故障恢复事件后文件系统服务不会中断。                                                                                                                                                                                                                                                                                                                                 |
   | lock/nolock | 选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时，锁对于同一主机的应用有效，对不同主机不受锁的影响。建议值：nolock。如不加此参数，则默认为lock，就会发生其他服务器无法对此通用文件系统写入的情况。 当前通用文件系统不支持非本地锁操作，需要显式添加nolock参数防止客户端调用非本地锁而导致抢锁失败的写入慢问题。                                                                                                                                                                                                                                           |
   | tcp/udp     | NFS客户端向服务器发起传输请求使用的协议，可以为UDP或者TCP。 当前通用文件系统不支持UDP传输协议，需要设置为TCP传输协议，即**proto=tcp**。                                                                                                                                                                                                                                                                                                                                   |
      
   图1挂载地址   
   ![](https://support.huaweicloud.com/usermanual-sfs/zh-cn_image_0000002312658258.png "点击放大")
   挂载文件系统时，您还可以增加一些性能调优的挂载参数，可参考[表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    | 客户端返回错误前的重传次数。建议值：1。                                                                                                                                                                                                                                                                        |
   | tcp/udp    | 不指定mountproto时，客户端默认先尝试使用udp协议挂载，如果udp网络不通则会在卡顿几秒后再尝试tcp协议挂载。 当前默认没有放通安全组入方向mount协议的udp端口号，需要将mount挂载协议设置为TCP传输协议，即**mountproto=tcp**。                                                                                                              |
   | ro/rw      | - ro：表示采用只读的方式挂载。  - rw：表示采用读写的方式挂载。   默认为rw。未写明ro/rw时，则默认为采用rw读写的方式挂载。 |
   | sync/async | sync为同步写入，表示将写入文件的数据立即写入服务端；async为异步写入，表示将数据先写入缓存，再写入服务端。 同步写入要求NFS服务器必须将每个数据都刷入服务端后，才可以返回成功，时延较高。建议设置为async。                                                                                                                                       |
   | noatime    | 如果不需要记录文件的访问时间，可以设置该参数。避免频繁访问时，修改访问时间带来的开销。                                                                                                                                                                                                                                                 |
   | nodiratime | 如果不需要记录目录的访问时间，可以设置该参数。避免频繁访问时，修改访问时间带来的开销。                                                                                                                                                                                                                                                 |
      
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
   没有"使用建议"的参数推荐使用默认参数。
   
   
6. 挂载完成后，执行如下命令，查看已挂载的通用文件系统。 
   ```
   mount -l
   ```
   如果回显包含如下类似信息，说明挂载成功，用户可以在云服务器上访问通用文件系统，执行读取或写入操作。
   ```
   挂载地址 on /local_path type nfs (rw,vers=3,timeo=600,nolock,addr=)
   ```
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
   通用文件系统支持写入的单个文件最大容量为240TB。
   
   
7. （可选）配置fstab文件开机自动挂载文件系统。 
   已挂载文件系统的云服务器重启后，该云服务器上的挂载信息将会丢失，您可以通过在fstab文件中配置自动挂载来保证云服务器重启时自动挂载文件系统。
   1. 执行以下命令编辑"/etc/fstab"文件。
   
   
   ```
   vi /etc/fstab
   ```
   在文件的最后新增要挂载的文件系统信息，配置样例如下：
   ```
   挂载地址 /local_path nfs vers=3,timeo=600,nolock,tcp 0 0
   ```
   其中，"挂载地址"和"/local_path"需根据实际情况进行修改。挂载地址可以从通用文件系统列表中获取。/etc/fstab文件中每条记录对应一个挂载信息，每条记录有6个字段，对应的字段说明请参见[表3]。
    表3字段说明 
   | 字段                          | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|
   | 挂载地址                        | 挂载对象，即要挂载的通用文件系统的挂载地址。设置为步骤[5]中mount命令中的挂载地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | /local_path                 | 挂载点，即云服务器上创建的挂载文件系统的目录。设置为步骤[5]中mount命令中的本地路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | nfs                         | 挂载类型，指文件系统或分区类型。本节描述的是挂载文件系统，设置为nfs。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | vers=3,timeo=600,nolock,tcp | 挂载选项，用于设置挂载的参数，多个选项之间以逗号进行分隔。 - vers：文件系统版本，取值为3代表NFSv3。  - timeo：NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值：600。  - nolock：选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时，锁对于同一主机的应用有效，对不同主机不受锁的影响。建议值：nolock。如不加此参数，则默认为lock，就会发生其他服务器无法对此通用文件系统写入的情况。  - tcp：TCP传输协议。   |
   | 0                           | 选择是否让备份程序dump备份文件系统。 - 0：不备份。  - 大于0的整数：备份；数字越小越先备份。                                                                                                                                                                                                                                                                                                                                                                                               |
   | 0                           | 选择是否在云服务器启动时用fsck程序检查文件系统以及以什么顺序检查。 - 0：不检查。  - 根目录分区默认设置为1，其他分区从2开始，数字越小越先检查。                                                                                                                                                                                                                                                                                                                                                                |
      
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/notice_3.0-zh-cn.png)
   为获得最优的系统性能，建议按照"配置样例"进行配置。如果业务需要，您也可以根据实际情况自定义部分挂载参数，但变更配置后将会在一定程度上影响系统性能。
   2. 单击"Esc"，并输入**:wq**，保存文件并退出。
   
   
   
   3. （可选）执行以下命令，查看修改后的fstab文件内容。
   
   
   ```
   cat /etc/fstab
   ```
   ![](https://support.huaweicloud.com/usermanual-sfs/public_sys-resources/note_3.0-zh-cn.png)
   如果出现由于网络等问题导致自动挂载不成功，可以在rc.local文件中挂载命令前添加sleep参数和时间参数，等待NFS服务完全启动后再进行挂载。
   ```
   sleep 10s && sudo mount -t nfs -o vers=3,timeo=600,noresvport,nolock,tcp 挂载地址 /local_path
   ```
   
   
 
#### 常见问题
[SFS挂载类问题](https://support.huaweicloud.com/sfs_faq/sfs_01_0092.html)
