安装IBM Cloud Object Storage集群附加组件

您可以通过 IBM Cloud 控制台或命令行界面(CLI)启用 IBM Cloud Object Storage 插件。

前置条件:

  • IBM Cloud Object Storage 附加组件至少需要 0.3 vCPU 和 360 MB 内存。
  • 该插件适用于 Red Hat CoreOS (RHCOS) 和 Ubuntu 工作节点。 如果集群中既有 RHEL 节点又有 RHCOS 节点,则只在 RHCOS 节点上部署附加组件。
  • 建立 IBM Cloud Object Storage 实例
  • 可选如果您计划使用存储桶版本控制,则您的服务凭证必须具有管理员写入者权限才能在存储桶上启用或禁用存储桶版本控制。 如需了解更多信息,请参阅“版本控制入门”。

了解水桶的创建和移除

  • 您可以通过在 PVC 中指定水桶名称来使用现有的水桶。
  • 如果您提供了一个水桶名称,而该水桶并不存在,那么就会创建一个具有该名称的水桶。
  • 如果不提供存储桶名称,则会创建一个命名为 temp-xxx 的存储桶。
  • 根据存储类中定义的回收策略删除存储桶。
    • 如果设置了 reclaimPolicy: Delete,则在删除 PVC 时删除水桶。
    • 如果设置了 reclaimPolicy: Retain,则即使删除了 PVC,也会保留水桶。

在控制台中启用“IBM Cloud Object Storage”插件

  1. Red Hat OpenShift on IBM Cloud 集群仪表盘中,选择您要为其启用该附加组件的集群。
  2. “附加组件”部分,找到 Cloud Object Storage 该扩展程序,然后点击 “安装”
  3. 在“安装附加组件:Cloud Object Storage”面板中,从“版本”下拉菜单中选择一个版本。
  4. 可选:配置以下参数。
maxVolumesPerNode
设置单个节点上可挂载的 IBM Cloud Object Storage 卷的最大数量。 默认值为 0,这意味着不设置任何限制。
restrictNodeServerScheduling
将其设置为 true,以限制nodeserver Pod仅在标记为 cos.csi.ibm.io/csi-node=true 的节点上运行。 默认值为 false,这意味着 nodeserver Pod 将被调度到所有节点上。
  1. 单击安装。 附加组件可能需要几分钟时间进行部署和准备以供使用。
  2. 验证安装。 在 “附加组件”部分,请确认该 Cloud Object Storage 该扩展程序显示为 “正常” 状态。

通过 CLI 启用 IBM Cloud Object Storage 附加组件

开始之前 访问你的Red Hat OpenShift集群

  1. container-service 插件更新至最新版本。
    ibmcloud update && ibmcloud plugin update container-service
    
  2. 列出附加组件并找到要安装的版本。
    ibmcloud oc cluster addon versions
    
  3. 查看附加选项。
    ibmcloud oc cluster addon options --addon ibm-object-csi-driver [--version VERSION]
    
  4. 安装插件。
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER [--version VERSION]
    
  5. 验证安装。
    ibmcloud oc cluster addon ls --cluster CLUSTER
    
    OK
    Name                    Version   Health State   Health Status
    ibm-object-csi-driver   1.0       normal         Addon Ready. For more info: http://ibm.biz/addon-state (H1500)
    
  6. 列出可用的存储类。 该驱动程序同时支持 s3fsrclone 挂载器的区域内和跨区域存储类。
    oc get sc | grep object
    
    ibm-object-storage-smart-cross-region-rclone             cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-cross-region-rclone-retain      cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-smart-cross-region-s3fs               cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-cross-region-s3fs-retain        cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-smart-rclone                          cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-rclone-retain                   cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-smart-s3fs                            cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-smart-s3fs-retain                     cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-rclone          cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-rclone-retain   cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-s3fs            cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-cross-region-s3fs-retain     cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-rclone                       cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-rclone-retain                cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    ibm-object-storage-standard-s3fs                         cos.s3.csi.ibm.io   Delete          Immediate           false                  17h
    ibm-object-storage-standard-s3fs-retain                  cos.s3.csi.ibm.io   Retain          Immediate           false                  17h
    

限制节点服务器 Pod 的调度

默认情况下,COS CSI 驱动程序的 nodeserver Pod 会调度到集群中的所有节点上。 您可以使用 restrictNodeServerScheduling 参数,将nodeserver的Pod调度限制在仅带有 cos.csi.ibm.io/csi-node=true 标签的节点上。

您可以在启用该插件时配置 restrictNodeServerScheduling,也可以稍后通过修补 ConfigMap 文件来更新它。

  • 若要在启用该附加组件时将 restrictNodeServerScheduling 设置为启用状态,请在启用命令中包含 --param 标志。
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "restrictNodeServerScheduling=true"
    
  • 若要在已启用该附加组件后更新“restrictNodeServerScheduling”,请按照以下步骤操作。
  1. 列出集群中的节点,并确定希望在哪些节点上运行 COS 驱动程序 Pod。
    oc get nodes
    
    示例输出
    NAME            STATUS   ROLES    AGE    VERSION
    10.241.0.11     Ready    <none>   5d2h   v1.35.5+IKS
    10.241.0.12     Ready    <none>   5d2h   v1.35.5+IKS
    10.241.0.13     Ready    <none>   5d2h   v1.35.5+IKS
    10.241.128.10   Ready    <none>   5d2h   v1.35.5+IKS
    10.241.128.11   Ready    <none>   5d2h   v1.35.5+IKS
    10.241.128.9    Ready    <none>   5d2h   v1.35.5+IKS
    10.241.65.12    Ready    <none>   5d2h   v1.35.5+IKS
    10.241.65.13    Ready    <none>   5d2h   v1.35.5+IKS
    10.241.65.14    Ready    <none>   5d2h   v1.35.5+IKS
    
  2. 请检查所有节点上是否都有节点服务器 Pod 正在运行。
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    示例输出
    NAME                        READY   STATUS    RESTARTS   AGE    IP              NODE            NOMINATED NODE   READINESS GATES
    ibm-object-csi-node-2pj2j   3/3     Running   0          145m   172.17.14.10    10.241.0.12     <none>           <none>
    ibm-object-csi-node-7bhwh   3/3     Running   0          145m   172.17.1.72     10.241.65.12    <none>           <none>
    ibm-object-csi-node-7l9hc   3/3     Running   0          145m   172.17.17.6     10.241.128.9    <none>           <none>
    ibm-object-csi-node-cxzt7   3/3     Running   0          145m   172.17.39.72    10.241.0.11     <none>           <none>
    ibm-object-csi-node-dw6qs   3/3     Running   0          145m   172.17.46.77    10.241.128.10   <none>           <none>
    ibm-object-csi-node-rpcvr   3/3     Running   0          145m   172.17.32.198   10.241.65.13    <none>           <none>
    ibm-object-csi-node-swqtg   3/3     Running   0          145m   172.17.16.69    10.241.0.13     <none>           <none>
    ibm-object-csi-node-sxbbs   3/3     Running   0          145m   172.17.26.7     10.241.65.14    <none>           <none>
    ibm-object-csi-node-xm8bt   3/3     Running   0          145m   172.17.20.200   10.241.128.11   <none>           <none>
    
  3. 为希望调度 nodeserver Pod 的节点添加标签。
    oc label nodes NODE-NAME-1 NODE-NAME-2 cos.csi.ibm.io/csi-node=true
    
    示例输出
    node/10.241.0.11 labeled
    node/10.241.0.12 labeled
    
  4. 通过更新 ConfigMap 来启用该限制。
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system \
      --type merge -p '{"data":{"restrictNodeServerScheduling":"true"}}'
    
    示例输出
    configmap/managed-addon-ibm-object-csi-driver patched
    
  5. 请确认节点服务器 Pod 仅被调度到带有标签的节点上。
    oc get pods -n ibm-object-csi-operator -l app.kubernetes.io/component=node -o wide
    
    示例输出
    NAME                        READY   STATUS    RESTARTS   AGE    IP             NODE           NOMINATED NODE   READINESS GATES
    ibm-object-csi-node-cxzt7   3/3     Running   0          145m   172.17.39.72   10.241.0.11    <none>           <none>
    ibm-object-csi-node-7bhwh   3/3     Running   0          145m   172.17.1.72    10.241.65.12   <none>           <none>
    
restrictNodeServerScheduling 选项
设置 行为
restrictNodeServerScheduling: "false" (缺省值) Nodeserver Pod 会被调度到所有节点上。
restrictNodeServerScheduling: "true" Nodeserver Pod 仅调度到标记为 cos.csi.ibm.io/csi-node=true 的节点上。

设置每个节点的最大卷数

默认情况下,COS CSI 驱动程序不会限制单个节点上可挂载的卷数量。 您可以使用 maxVolumesPerNode 参数来设置每个节点上的卷最大数量。

您可以在启用该插件时配置 maxVolumesPerNode,也可以稍后通过修补 ConfigMap 文件来更新它。

  • 若要在启用该附加组件时将 maxVolumesPerNode 设置为启用状态,请在启用命令中包含 --param 标志。
    ibmcloud oc cluster addon enable ibm-object-csi-driver --cluster CLUSTER --param "maxVolumesPerNode=VALUE"
    
  • 若要在已启用该附加组件后更新 maxVolumesPerNode,请修补受管附加组件 ConfigMap。
    oc patch cm managed-addon-ibm-object-csi-driver -n kube-system --type merge -p '{"data":{"maxVolumesPerNode":"VALUE"}}'
    
    示例输出
    configmap/managed-addon-ibm-object-csi-driver patched
    
maxVolumesPerNode 选项
设置 行为
maxVolumesPerNode: "0" (缺省值) 每个节点可挂载的卷数量没有限制。
maxVolumesPerNode: "VALUE" 将单个节点上可挂载的卷数量限制为指定值。

部署使用IBM Cloud Object Storage的应用程序

创建一个包含 COS 凭据的Kubernetes秘密。

  1. 访问您的Red Hat OpenShift集群

  2. 将以下配置保存为名为 secret.yaml. 提供 IAM 证书或 HMAC,但不能同时提供。

    • 对于 IAM 凭据,请使用 apiKeyserviceId 的组合,来自 Object Storage。
    • 对于 HMAC 凭据,请使用 accessKeysecretKey,来自 Object Storage。
    apiVersion: v1
    kind: Secret
    type: cos-s3-csi-driver
    metadata:
        name: cos-secret-1 # Name your secret. This same name is used for the PVC in the following steps.
        namespace: <namespace> # Specify the namespace where you want to create the secret.
    data:
        apiKey: <base64-encoded-COS-Service-Instance-apikey>
        serviceID: <base64-encoded-COS-resource_instance_id>
        accessKey: <base64-encoded-HMAC-access_key_id>
        secretKey: <base64-encoded-HMAC-secret_access_key>
        kp-root-key-crn: <CRN> # Key Protect or HPCS root key crn in base64 encoded format
    stringData:
        bucketName: <bucket-name> # Optional. If you don't provide a bucket name, a bucket with the naming convention s3fs-timestamp-xxx or rclone-timestamp-xxx is created.
        bucketVersioning: "false" # Bucket versioning is set to false by default. Set to "true" to enable bucket versioning. Set to "false" to disable versioning for a bucket where versioning is enabled. Must be a string value.
        # uid: "3000" # Optional: Provide a uid to run as non root user. This must match runAsUser in SecurityContext of pod spec.
        mountOptions: |
            # Review or update the following default s3fs mount options
            #multipart_size=52
            #multireq_max=20
            #max_dirty_data=5120
            #parallel_count=20
            #max_stat_cache_size=100000
            #retries=5
            #kernel_cache
            # Review or update the following default rclone mount options
            #acl=private
            #bucket_acl=private
            #upload_cutoff=100Mi
            #chunk_size=16Mi
            #max_upload_parts=1000
            #upload_concurrency=8
    
    mountOptions
    您可以通过编辑密文中的 mountOptions 来自定义 s3fsrclone 的挂载选项。 根据 PVC 使用的存储类别调整指定的选项。 要查看存储类的默认值,请运行 oc describe storageclass <storageclass_name>oc describe storageclass <storageclass_name>。 更多信息,请参阅 s3fs 挂载选项rclone 挂载选项

    目前,该附加组件已启用,以支持固定的挂载选项集,并对每个挂载选项进行适当的验证。 如果要使用验证列表中没有的其他安装选项,请联系支持部门启用这些选项。

  3. 将所有秘密数据参数编码为 base64。

    echo -n "<value>" | base64
    
  4. 用 base64 编码值更新 secret.yaml

  5. 创建私钥。

    oc apply -f secret.yaml
    

创建 PVC

您可以在多个 PVC 中使用一个密文,也可以在每个 PVC 中使用一个密文。

您可以在 PVC yaml 中使用以下注解来管理这种行为。 这些注释有助于驱动程序将 PVC 映射到正确的密文中。

cos.csi.driver/secret: "<custom-secret>"

请确保您的密钥、PVC 和 Pod 都位于同一个命名空间中

1-to-1 保密信息到 PVC 映射的 PVC 示例,为您的 PVC 赋予与您之前创建的保密信息相同的名称。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cos-secret-1 # Give your PVC the same name as the secret you created in the previous step.
  namespace: <namespace> # The namespace where you want to create the PVC.
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: <storage_class_name> # The storage class you want to use.

通过使用注释指定密文,将 1 个密文用于多个 PVC 的 PVC 示例。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: cos-csi-pvc1
  namespace: <namespace> # The namespace where you want to create the PVC.
  annotations:
    cos.csi.driver/secret: "<custom-secret>"
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 256Mi
  storageClassName: <storage_class_name> # The storage class you want to use.
  1. 从前面的示例中选择一个,并根据自己的使用情况进行定制。 有关存储类的列表,请参阅 存储类参考

  2. 创建 PVC。

    oc apply -f pvc.yaml
    

创建部署

  1. 将以下配置保存到名为 dep.yaml.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: <name>
      labels:
        app: <name>
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: <name>
      template:
        metadata:
          labels:
        app: <name>
        spec:
          containers:
          - name: app-frontend
            image: <image> # Enter your app image.
            imagePullPolicy: IfNotPresent
            volumeMounts:
            - mountPath: <path_you_want_to_mount_the_volume_on> # For example `/dev`
              name: cos-csi-volume
          volumes:
          - name: cos-csi-volume
            persistentVolumeClaim:
              claimName: <pvc_name> # Enter the name of the PVC you created earlier.
    
  2. 创建部署。

    oc apply -f dep.yaml
    

禁用IBM Cloud Object Storage附加组件

禁用插件或补丁更新不会删除现有的机密、PVC 和部署。 不会中断客户现有的工作负载。

  1. 运行以下命令以禁用该插件。
     ibmcloud oc cluster addon disable ibm-object-csi-driver --cluster CLUSTER
    
    示例输出
    Data and resources that you created for the add-on might be deleted when the add-on is disabled. Continue? [y/N]> y
    Disabling add-on ibm-object-csi-driver for cluster XXX...
    OK
    
  2. 验证是否已删除附加组件。
    ibmcloud oc cluster addon ls --cluster CLUSTER
    

从Helm插件迁移到群集插件

  1. 访问您的Red Hat OpenShift集群

  2. 获取 PVC 的详细信息并选择一个进行迁移。

    oc get pvc --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name' | tail -n +2 | while read namespace pvc; do kubectl describe pvc "$pvc" -n "$namespace" | grep 'volume.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs' > /dev/null ; if [ $? -eq 0 ]; then echo "PVC: $pvc in Namespace: $namespace uses ibm.io/ibmc-s3fs storage provisioner"; fi; done
    

    示例输出

    PVC: pvc-test in Namespace: default uses ibm.io/ibmc-s3fs storage provisioner
    
  3. 描述 PVC 并获取水桶名称。

    oc describe pvc <pvc_name> | grep ibm.io/bucket:
    

    示例输出

    ibm.io/bucket: test-s3
    
  4. 重新创建包含水桶名称的秘密。

    apiVersion: v1
    kind: Secret
    type: cos-s3-csi-driver
    metadata:
        name: cos-secret-1 # Name your secret.
        namespace: <namespace> # Specify the namespace where you want to create the secret.
    data:
        accessKey: <base64-encoded-HMAC-access-key>
        secretKey: <base64-encoded-HMAC-secret-key>
    stringData:
        bucketName: <bucket-name>
        # uid: "3000" # Optional: Provide a uid to run as non root user. This must match runAsUser in SecurityContext of pod spec.
        mountOptions: |
            key1=value1
            key2=value2
    
  5. 查找 PVC 中使用的存储类。

    oc describe pvc <pvc_name> | grep StorageClass:
    

    名为 test-s3 的 PVC 的命令示例。

    oc describe pvc test-s3 | grep StorageClass:
    

    示例输出

    StorageClass:  ibmc-s3fs-smart-perf-regional
    
  6. 查看新的存储类别 that are available with the add-on and select a replacement class.

    • 如果您使用的是 flex 类,请选择一个新的 smart 类。
    • 如果您使用的是 standard 类,请选择一个新的 standard 类。
    • 附加组件不再提供 coldvault 类,请选择 smartstandard 类。
  7. 查看 PVC 的详细信息。

    oc describe pvc test-s3
    

    示例输出

    Name:          pvc-test
    Namespace:     default
    StorageClass:  ibmc-s3fs-smart-perf-regional
    Status:        Bound
    Volume:        pvc-c625474d-31f0-4929-bc3e-feace1fb42fb
    Labels:        <none>
    Annotations:   ibm.io/auto-create-bucket: true
                ibm.io/auto-delete-bucket: true
                ibm.io/bucket: bha-test-s23
                ibm.io/secret-name: satstoragesecret
                pv.kubernetes.io/bind-completed: yes
                pv.kubernetes.io/bound-by-controller: yes
                volume.kubernetes.io/storage-provisioner: ibm.io/ibmc-s3fs
    Finalizers:    [kubernetes.io/pvc-protection]
    Capacity:      3Gi
    Access Modes:  RWO
    VolumeMode:    Filesystem
    Used By:       test-pod
    Events:        <none>
    
  8. 创建一个替代 PVC,使用新的存储类并引用你之前创建的秘密。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: cos-csi-pvc1
    namespace: <namespace> # The namespace where you want to create the PVC.
    annotations:
        cos.csi.driver/secret: "cos-secret-1"  # Secret created in step 4
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
        requests:
        storage: 256Mi
    storageClassName: <storage_class_name> # The storage class you picked based on old storage class mapping.
    
  9. 确认 PVC 为 Bound

    oc get pvc
    
  10. 获取应用程序的详细信息。

    oc get pods
    
  11. 将应用程序的规模缩小到零。

    kubectl scale deployment --replicas=0 my-app
    
  12. 创建一个替换部署,引用上一步中创建的 PVC。

  13. 新部署运行后,可以删除旧部署。

  14. 对于每个需要迁移的 PVC,请重复上述步骤。

IBM Cloud Object Storage集群附加存储类

IBM Cloud Object Storage 群集附加组件为 s3fsrclone 安装程序提供存储类。 选择符合您的数据访问需求的存储类。 存储类别决定了为工作负载创建的存储桶类别、回收策略和默认挂载行为。

标准
用于您经常访问的热数据,如网络或移动应用程序的数据。
智能
适用于没有特定使用模式的工作负载和数据,或使用模式难以预测的情况。
COS 集群附加存储类
名称 水桶类 弹性 安装机 回收策略 绑定方式
ibm-object-storage-smart-cross-region-rclone 智能 跨区域 rclone 删除(T) 立即
ibm-对象存储-智能跨区域-rclone-保留 智能 跨区域 rclone Retain 立即
ibm-object-storage-smart-cross-region-s3fs 智能 跨区域 s3fs 删除(T) 立即
ibm-object-storage-smart-cross-region-s3fs-retain 智能 跨区域 s3fs Retain 立即
ibm-object-storage-smart-rclone 智能 区域 rclone 删除(T) 立即
ibm-object-storage-smart-rclone-retain 智能 区域 rclone Retain 立即
ibm-object-storage-smart-s3fs 智能 区域 s3fs 删除(T) 立即
ibm-object-storage-smart-s3fs-retain 智能 区域 s3fs Retain 立即
ibm-object-storage-standard-跨区域-rclone 标准 跨区域 rclone 删除(T) 立即
ibm-object-storage-standard-跨区域-rclone-保留 标准 跨区域 rclone Retain 立即
ibm-object-storage-standard-cross-region-s3fs 标准 跨区域 s3fs 删除(T) 立即
ibm-object-storage-standard-cross-region-s3fs-retain 标准 跨区域 s3fs Retain 立即
ibm-object-storage-standard-rclone 标准 区域 rclone 删除(T) 立即
ibm-object-storage-standard-rclone-retain 标准 区域 rclone Retain 立即
ibm-object-storage-standard-s3fs 标准 区域 s3fs 删除(T) 立即
ibm-object-storage-standard-s3fs-retain 标准 区域 s3fs Retain 立即

要查看存储类的详细存储桶配置,请运行 oc describe storageclass <storageclass_name>oc describe storageclass <storageclass_name>

存储类参数

所有群集附加存储类都包括以下核心参数。

COS 集群附加存储类的核心参数
参数 描述
client 标识驱动程序使用的客户端类型。 附加存储类使用 awss3
cosEndpoint 定义水桶区域的 IBM Cloud Object Storage 端点。
csi.storage.k8s.io/node-publish-secret-name 引用包含 IBM Cloud Object Storage 凭据的密文名称。
csi.storage.k8s.io/node-publish-secret-namespace 引用包含 IBM Cloud Object Storage 凭据的秘密命名空间。
locationConstraint 定义水桶类别和区域,如 au-syd-smartau-syd-standard
mounter 指定存储类是使用 s3fs 还是 rclone 安装程序。

默认 s3fs 存储类挂载选项

s3fs 存储类使用以下默认挂载选项。

COS 附加组件“s3fs”存储类的默认挂载选项
安装选项 描述
multipart_size=52 设置每个多部分请求的部分大小(以 MB 为单位)。
multireq_max=20 设置列出对象的最大并行请求数。
max_dirty_data=5120 在写入指定数量的 MB 后,将脏数据刷新到 S3。 最小支持值为 50-1 的值将禁用此行为。
parallel_count=20 s3fs 使用多部分请求上传大型对象,并并行发送请求。
max_stat_cache_size=100000 设置统计缓存和符号链接缓存中的最大条目数。
retries=5 设置重试失败的 S3 事务的次数。
kernel_cache 启用卷挂载点的内核缓冲区缓存。 从 IBM Cloud Object Storage 读取的数据存储在内核缓存中,以帮助提供更快的读取访问速度。 标准和智能 s3fs 存储类已启用内核缓存。

默认 rclone 存储类挂载选项

rclone 存储类使用以下默认挂载选项。

COS 附加组件 rclone 存储类的默认挂载选项
安装选项 描述
acl=private 确保上传的对象不会被公众访问。
bucket_acl=private rclone 创建的桶的默认 ACL 设置为 private
upload_cutoff=100Mi 使用多部分上传功能上传大于 100 MiB 的文件。 较小的文件只需一次请求即可上传。
chunk_size=16Mi 设置多部分上传中每个部分的大小。
max_upload_parts=1000 设置每个多部件上传的最大部件数,并通过配置的 chunk_size 间接限制最大支持文件大小。 通过 chunk_size=16Mi,最大文件大小为 16 GiB
upload_concurrency=8 设置多部件上传时并行上传的部件数量。