# 设置极速文件存储挂载参数
本章节主要介绍如何设置极速文件存储的挂载参数。极速文件存储仅支持在PV中设置挂载参数，然后通过创建PVC绑定PV。
#### 前提条件
[CCE容器存储（Everest）](https://support.huaweicloud.com/usermanual-cce/cce_10_0066.html)版本要求**1.2.8及以上**版本。插件主要负责将挂载参数识别并传递给底层存储，指定参数是否有效依赖于底层存储是否支持。
#### 约束与限制
- 挂载参数暂不支持安全容器。
- 由于NFS协议限制，默认情况下，对于某个节点多次挂载同一文件存储的场景，涉及链路的挂载参数（如timeo）仅在第一次挂载时生效。例如，节点上运行的多个Pod同时挂载同一文件存储，后设置的挂载参数不会覆盖已有参数值。针对上述场景希望设置不同的挂载参数，可以同时设置nosharecache挂载参数。
 
 #### 极速文件存储挂载参数
CCE的存储插件everest在挂载极速文件存储时默认设置了如[表1]所示的参数。
 表1极速文件存储挂载参数 
| 参数                       | 参数值  | 描述                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| keep-original-ownership   | 无需填写  | 表示是否保留文件挂载点的ownership，使用该参数时，要求everest插件版本为1.2.63或2.1.2以上。 - 默认为不添加该参数，此时挂载极速文件存储时将会默认把挂载点的ownership修改为root:root。    - 如添加该参数，挂载极速文件存储时将保持文件系统原有的ownership。   |
| vers                     | 3     | 文件系统版本，目前只支持NFSv3。取值：3                                                                                                                                                                                                                                                                                                                                     |
| nolock                   | 无需填写 | 选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时，锁对于同一主机的应用有效，对不同主机不受锁的影响。                                                                                                                                                                                                                                                                                                |
| timeo                   | 600  | NFS客户端重传请求前的等待时间(单位为0.1秒)。建议值：600。                                                                                                                                                                                                                                                                                                                            |
| hard/soft              | 无需填写  | 挂载方式类型。 - 取值为hard，即使用硬连接方式，若NFS请求超时，则客户端一直重新请求直至成功。  - 取值为soft，即软挂载方式挂载系统，若NFS请求超时，则客户端向调用程序返回错误。   默认为hard。                                                          |
| sharecache/nosharecache | 无需填写  | 设置客户端并发挂载同一文件系统时数据缓存和属性缓存的共享方式。设置为sharecache时，多个挂载共享同一缓存。设为nosharecache时，每个挂载各有一个缓存。默认为sharecache。 说明： 设置nosharecache禁用共享缓存会对性能产生一定影响。每次挂载都会重新获取挂载信息，会增加与NFS服务器的通信开销和NFS客户端的内存消耗，同时同客户端设置nosharecache存在cache不一致的风险。因此，应该根据具体情况进行权衡，以确定是否需要使用nosharecache选项。                                                                |
   
除了以上参数外，您还可以设置其他的文件存储挂载参数，具体请参见[挂载SFS Turbo文件系统到云服务器（Linux）](https://support.huaweicloud.com/usermanual-sfsturbo/sfsturbo_01_0361.html)。
#### 在PV中设置挂载参数
在PV中设置挂载参数可以通过mountOptions字段实现，如下所示，mountOptions支持挂载的字段请参见[极速文件存储挂载参数]。
1. 使用kubectl连接集群，详情请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)。
2. 在PV中设置挂载参数，示例如下： 
   ```
   apiVersion: v1
   kind: PersistentVolume
   metadata:
     annotations:
       pv.kubernetes.io/provisioned-by: everest-csi-provisioner
     name: pv-sfsturbo    # PV的名称
   spec:
     accessModes:
     - ReadWriteMany      # 访问模式，极速文件存储必须为ReadWriteMany
     capacity:
       storage: 500Gi       # 存储容量大小，此处仅为校验需要（不能为空和0），设置的大小不起作用
     csi:
       driver: sfsturbo.csi.everest.io    # 挂载依赖的存储驱动
       fsType: nfs
       volumeHandle: {your_volume_id}   # 极速文件存储的ID
       volumeAttributes:
         everest.io/share-export-location: {your_location}   # 极速文件存储的共享路径
         everest.io/enterprise-project-id: {your_enterprise_project_id}  # 极速文件存储的企业项目ID
         storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner
     persistentVolumeReclaimPolicy: Retain    # 回收策略
     storageClassName: csi-sfsturbo           # SFS Turbo存储类名称
     mountOptions:                            # 挂载参数
     - vers=3
     - nolock
     - timeo=600
     - hard
   ```
   
   
3. PV创建后，可以创建PVC关联PV，然后在工作负载的容器中挂载，具体操作步骤请参见[通过静态存储卷使用已有极速文件存储](https://support.huaweicloud.com/usermanual-cce/cce_10_0625.html)。
4. 验证挂载参数是否生效。 
   本例中将PVC挂载至使用nginx:latest镜像的工作负载，并通过**mount -l** 命令查看挂载参数是否生效。
   1. 查看已挂载文件存储的Pod，本文中的示例工作负载名称为"web-sfsturbo"，请以实际为准。
      ```
      kubectl get pod -n <namespace> | grep web-sfsturbo
      ```
      回显如下：
      ```
      web-sfsturbo-***   1/1     Running   0             23m
      ```
      
   
   2. 执行以下命令查看挂载参数，其中web-sfsturbo-\*\*\*为示例Pod。
      ```
      kubectl exec -it web-sfsturbo-*** -n <namespace> -- mount -l | grep nfs
      ```
      若回显中的挂载信息与设置的挂载参数一致，说明挂载参数设置成功。
      ```
      {您的挂载地址} on /data type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,nolock,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=**.**.**.**,mountvers=3,mountport=20048,mountproto=tcp,local_lock=all,addr=**.**.**.**)
      ```
      
    
   
   
 
