設定 Block Storage for VPC

Block Storage for VPC 為您的虛擬伺服器實體提供管理程序掛載的高效能資料儲存空間,您可以在 VPC 中配置這些儲存空間。

您可以從具有符合您工作負載需求之 GB 大小及 IOPS 的預先定義儲存空間層級中進行選擇。 若要瞭解 Block Storage for VPC 是否為適合您的儲存空間選項,請參閱選擇儲存空間解決方案。 如需定價資訊,請參閱 定價 Block Storage for VPC

  • 預設情況下,在 VPC 叢集上啟用Block Storage for VPC程式。
  • 若您停用此 Block Storage for VPC 附加元件,它將保持停用狀態,直到您再次啟用它為止。 當您重新整理或更新叢集主控節點時,此功能不會啟用。

IBM Cloud Block Storage for VPC 的快速入門

在此快速入門指南中,您將透過建立 PVC 來動態配置卷宗,從而於叢集內建立分層 Block Storage for VPC10Gi5IOPS 卷宗。 然後,您建立應用程式部署來裝載 PVC。

現在,您可以選擇 第二代儲存等級

只要這些 Pod 排程在同一個節點上,您的 Block Storage for VPC 卷即可被多個 Pod 掛載。

  1. 建立 PVC 的檔案,並將其命名為 pvc.yaml。 選擇 第一代和第二代 儲存類別。

    使用 ibmc-vpc-block-5iops-tier 儲存類別的第一代範例:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-pvc
    spec:
      storageClassName: ibmc-vpc-block-5iops-tier
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
    

    使用 ibmc-vpc-block-sdp 儲存類別的第二代範例:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: my-pvc
    spec:
      storageClassName: ibmc-vpc-block-sdp
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
    
  2. 在叢集裡建立 PVC。

    oc apply -f pvc.yaml
    
  3. 連結 PVC 之後,請建立使用 PVC 的應用程式部署。 建立部署的檔案,並將其命名為 deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
        name: my-deployment
        labels:
          app: my-app
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          containers:
          - image: ngnix # Your containerized app image.
            name: my-container
            volumeMounts:
            - name: my-volume
              mountPath: /mount-path
          volumes:
          - name: my-volume
            persistentVolumeClaim:
              claimName: my-pvc
    
  4. 在叢集裡建立部署。

    oc apply -f deployment.yaml
    

如需相關資訊,請參閱下列鏈結。

將 Block Storage for VPC 新增至應用程式

選擇 Block Storage for VPC 設定檔,並建立持久磁區聲明,以便為叢集動態佈建 Block Storage for VPC。 動態佈建將自動建立符合的持續性磁區,並在 IBM Cloud 帳戶中訂購實體儲存裝置。

  1. 決定能最好地符合您所需的容量和效能需求的 Block Storage for VPC 設定檔

  2. 為 Block Storage for VPC 設定檔選取對應的儲存空間類別。

    依預設,所有 IBM 預先定義的儲存空間類別都會為 Block Storage for VPC 設定 ext4 檔案系統。 如果要使用其他檔案系統(例如 xfsext3),請建立自訂儲存空間類別

    • 10 IOPS/GB: ibmc-vpc-block-10iops-tieribmc-vpc-block-retain-10iops-tier
    • 5 IOPS/GB: ibmc-vpc-block-5iops-tieribmc-vpc-block-retain-5iops-tier
    • 3 IOPS/GB: ibmc-vpc-block-general-purposeibmc-vpc-block-retain-general-purpose
    • 自訂: ibmc-vpc-block-customibmc-vpc-block-retain-custom
  3. 決定 Block Storage for VPC 配置。

    1. 選擇儲存空間的大小。 確保您選擇的 Block Storage for VPC 設定檔支援該大小。
    2. 選擇是否要在刪除叢集或持續性磁區要求 (PVC) 之後保留您的資料。
      • 如果要保留資料,則請選擇 retain 儲存空間類別。 當您刪除 PVC 時,只會刪除 PVC。 持續性磁區 (PV)、IBM Cloud 帳戶中的實體儲存裝置以及您的資料仍會存在。 若要回收儲存空間並再次在叢集裡使用,必須移除 PV,並執行使用現有 Block Storage for VPC 的步驟。
      • 如果要在刪除 PVC 時刪除 PV、資料和實體 Block Storage for VPC,請選擇不含 retain 的儲存空間類別。
  4. 建立配置檔以定義持續性磁區要求,並將配置儲存為 YAML 檔案。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc_name> # Enter a name for your PVC.
    spec:
      accessModes:
      - <access-mode> # ReadWriteOnce or ReadWriteOncePod
      resources:
        requests:
          storage: 10Gi # Enter the size. Make sure that the size is supported in the profile that you chose.
      storageClassName: <storage_class> # Enter the storage class name that you selected earlier.
    
  5. 在叢集裡建立 PVC。

    oc apply -f pvc.yaml
    
  6. 驗證您的 PVC 已建立並已連結至 PV。 此處理程序可能需要幾分鐘的時間。

    oc describe pvc <pvc_name>
    

    輸出範例

    Name:          mypvv
    Namespace:     default
    StorageClass:  ibmc-vpc-block-5iops-tier
    Status:        Bound
    Volume:        
    Labels:        <none>
    Annotations:   oc.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"csi-block-pvc-good","namespace":"default"},"spec":{...
                volume.beta.kubernetes.io/storage-provisioner: vpc.block.csi.ibm.io
    Finalizers:    [kubernetes.io/pvc-protection]
    Capacity: 10Gi   
    Access Modes:  
    VolumeMode:    Filesystem
    Events:
        Type       Reason                Age               From                         Message
        ----       ------                ----              ----                         -------
        Normal     ExternalProvisioning  9s (x3 over 18s)  persistentvolume-controller  waiting for a volume to be created, either by external provisioner "vpc.block.csi.ibm.io" or manually created by system administrator
    Mounted By:  <none>
    
  7. 為應用程式建立部署配置檔,並將 PVC 裝載到應用程式。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: <deployment_name>
      labels:
        app: <deployment_label>
    spec:
      selector:
        matchLabels:
          app: <app_name>
      template:
        metadata:
          labels:
            app: <app_name>
        spec:
          containers:
          - image: <image_name>
            name: <container_name>
            volumeMounts:
            - name: <volume_name>
              mountPath: /<file_path>
          volumes:
          - name: <volume_name>
            persistentVolumeClaim:
              claimName: <pvc_name>
    
    labels.app
    在 meta 資料區段中,輸入部署的標籤。
    matchLabels.applabels.app
    在規格選取器和範本 meta 資料區段中,輸入應用程式的標籤。
    image
    指定要使用的容器映像的名稱。 若要列出 IBM Cloud Container Registry 帳戶中的可用映像檔,請執行 ibmcloud cr image-list
    name
    指定要在 Pod 中部署之容器的名稱。
    mountPath
    在儲存器磁區裝載區段中,指定在儲存器內裝載 PVC 之目錄的絕對路徑。
    name
    在容器磁區裝載區段中,輸入要裝載至 Pod 的磁區名稱。 您可以輸入任何想要的名稱。
    name
    在磁區區段中,輸入要裝載至 Pod 的磁區名稱。 通常此名稱與 volumeMounts.name 相同。
    claimName
    在磁區持續性磁區要求區段中,輸入您先前建立的 PVC 名稱。
  8. 在叢集裡建立部署。

    oc apply -f deployment.yaml
    
  9. 驗證 PVC 是否已順利裝載到應用程式。 Pod 可能需要幾分鐘時間才能進入 Running 狀況。

    在部署應用程式的期間,您可能會在 CLI 輸出的 Unable to mount volumesEvents** 區段中看到間歇性的 ** 錯誤。 Block Storage for VPC 群集附加元件會自動嘗試掛載儲存到您的應用程式。 請多等待幾分鐘,以便儲存空間裝載到應用程式。

    oc describe deployment <deployment_name>
    

    輸出範例

    ...
    Volumes:
    myvol:
        Type:    PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
        ClaimName:    mypvc
        ReadOnly:    false
    

使用現有 Block Storage for VPC 實例

如果您有想要在群集中使用的現有實體 Block Storage for VPC 裝置,您可以手動建立 PV 和 PVC 來靜態佈建儲存。

您只能將磁區連接至一個工作者節點。 請確保磁區與工作者節點位於相同區域中,以便連接成功。

  1. 判定您要連接至 VPC 叢集裡工作者節點的磁區。 請注意音量 ID

    ibmcloud is volumes
    
  2. 列出磁區的詳細資料。 請注意 大小區域IOPS。 這些值是用來建立 PV。

    ibmcloud is volume <volume_id>
    
  3. 擷取 VPC 叢集裡的工作者節點清單。 記下與儲存空間磁區位於相同區域中的工作者節點 區域

    ibmcloud oc worker ls -c <cluster_name>
    
  4. 選用項目:如果已使用 retain 儲存空間類別佈建了實體 Block Storage for VPC 實例,則在移除 PVC 時不會移除 PV 和實體儲存空間。 若要在叢集裡使用實體 Block Storage for VPC 裝置,必須先移除現有 PV。

    1. 列出叢集裡的 PV,並尋找屬於 Block Storage for VPC 裝置的 PV。 PV 處於 released 狀況。

      oc get pv
      
    2. 移除 PV。

      oc delete pv <pv_name>
      
  5. 建立 PV 的配置檔。 包括之前擷取的 IDSizeZoneIOPS

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: <pv_name> # Example: my-persistent-volume
    spec:
      accessModes:
      - ReadWriteOnce
      capacity:
        storage: <vpc_block_storage_size> # Example: 20Gi
      csi:
        driver: vpc.block.csi.ibm.io
        fsType: ext4
        volumeAttributes:
          iops: "<vpc_block_storage_iops>" # Example: "3000"
          volumeId: <vpc_block_storage_ID> # Example: a1a11a1a-a111-1111-1a11-1111a11a1a11
          zone: "<vpc_block_zone>" # Example: "eu-de-3"
          region: "<vpc_block_region>"
        volumeHandle: <vpc_block_storage_ID>
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: failure-domain.beta.kubernetes.io/zone
              operator: In
              values:
              - <worker_node_zone> # Example: eu-de-3
            - key: failure-domain.beta.kubernetes.io/region
              operator: In
              values:
              - <worker_node_region> # Example: eu-de
            - key: kubernetes.io/hostname
              operator: In
              values:
              - <worker_node_primary_IP>
      persistentVolumeReclaimPolicy: Retain
      storageClassName: ""
      volumeMode: Filesystem
    
    name
    在 meta 資料區段中,輸入 PV 的名稱。
    storage
    在規格容量區段中,輸入您先前擷取的 Block Storage for VPC 磁區大小 (GB)。 例如,如果您的裝置大小為 100 GB,請輸入 100Gi
    iops
    在規格 CSI 磁區屬性區段中,輸入您先前擷取之 Block Storage for VPC 磁區的最大 IOPS。
    zone
    在規格 CSI 磁區屬性區段中,輸入符合您先前所擷取位置的 VPC 區塊區域。 例如,如果您的位置是 Washington DC-1,則使用 us-east-1 作為您的區域。 若要列出可用的區域,請執行 ibmcloud is zones。 若要尋找可用 VPC 區域和位置的概觀,請參閱在不同地區中建立 VPC。 指定 "zone" 時,請提及 "region" 參數。
    region
    您要連接儲存體之工作者節點的區域。
    worker_node_primary_IP
    您要連接儲存體之工作者節點的主要 IP。 您可以執行 ibmcloud oc worker ls 來尋找工作者節點的主要 IP。
    volumeIdspec.csi.volumeHandle
    在規格 CSI 磁區屬性區段中,輸入您先前擷取之 Block Storage for VPC 磁區的 ID。
    storageClassName
    對於規格儲存類別名稱,請輸入空字串。
    matchExpressions
    在規格節點親緣性區段中,輸入節點選取器術語以符合區域。 針對金鑰,輸入 failure-domain.beta.kubernetes.io/zone。 對於該值,請輸入您要連接儲存體之工作者節點的區域。
    matchExpressions
    在規格節點親緣性區段中,輸入節點選取器術語以符合區域。 針對金鑰,輸入 failure-domain.beta.kubernetes.io/region。 對於該值,請輸入您要連接儲存體之工作者節點的區域。
  6. 在叢集裡建立 PV。

    oc apply -f pv.yaml
    
  7. 驗證已在叢集裡建立 PV。

    oc get pv
    
  8. 為 PVC 建立另一個配置檔。 為了使 PVC 與先前建立的 PV 相符,您必須為儲存空間大小和存取模式選擇相同的值。 在儲存空間類別欄位中,輸入空字串值以便與 PV 相。 如果其中任何欄位與 PV 不匹配,則會透過動態佈建自動建立新的 PV 和 Block Storage for VPC 範例。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc_name>
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: <vpc_block_storage_size>
      storageClassName: ""
    
  9. 建立您的 PVC。

    oc apply -f pvc.yaml
    
  10. 驗證已建立 PVC,並將其連結至您先前建立的 PV。 此處理程序可能需要幾分鐘的時間。

oc describe pvc <pvc_name>
  1. 建立使用 PVC 的部署或 Pod。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: <deployment_name>
  labels:
    app: <deployment_label>
spec:
  selector:
    matchLabels:
      app: <app_name>
  template:
    metadata:
      labels:
        app: <app_name>
    spec:
      containers:
      - image: <image_name>
        name: <container_name>
        volumeMounts:
        - name: <volume_name>
          mountPath: /<file_path>
      volumes:
      - name: <volume_name>
        persistentVolumeClaim:
          claimName: <pvc_name>
      nodeSelector:
        kubernetes.io/hostname: "<worker_node_primary_IP>"

更新 Block Storage for VPC 叢集附加程式

您可以使用 命令 addon update 更新 叢集附加 Block Storage for VPC 元件。

在更新附加程式之前,請先檢閱 變更日誌

在從先前版本更新到 5.x 版本之前,您不得有任何處於 failure 狀態的磁碟區快照。 如需更多資訊,請參閱《 為何無法刪除 Block Storage for VPC 我的卷快照資源? 》。

  1. 請檢查是否有可用的更新項目。 如果有可用的更新項目,外掛程式版本會以星號標示,並顯示最新版本。 請注意最新版本,因為稍後會使用此值。

    ibmcloud oc cluster addons --cluster <cluster_name_or_ID>
    

    輸出範例

    Name                   Version                 Health State   Health Status   
    vpc-block-csi-driver   1.0.0* (2.0.0 latest)   normal         Addon Ready
    
  2. 更新附加程式。 請注意,視您已安裝的版本而定,更新指令會有所不同。

    5.0 以及更新版本 執行 addon update 指令。

    ibmcloud oc cluster addon update vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]
    

    5.0版之前的所有版本 停用並啟用附加程式。

    ibmcloud oc cluster addon disable vpc-block-csi-driver --cluster CLUSTER [-f] [-q]
    
    ibmcloud oc cluster addon enable vpc-block-csi-driver --cluster CLUSTER [-f] [-q] [--version VERSION] [-y]
    
  3. 驗證附加程式是否處於 Addon Ready 狀態。 附加程式可能需要幾分鐘才能備妥。

    ibmcloud oc cluster addon ls --cluster <cluster_name_or_ID>
    

    輸出範例

    Name                   Version   Health State   Health Status   
    vpc-block-csi-driver   2.0.0     normal         Addon Ready
    

    若您使用預設儲存類別而非特定 ibmc-vpc-block-10iops-tier 儲存類別,則必須在 中 addon-vpc-block-csi-driver-configmapConfigMap 變更預設儲存類別設定。 如需相關資訊,請參閱 變更預設儲存類別

  4. 如果您已根據預設 Block Storage for VPC 儲存類別建立自己的儲存類別,則必須重建那些儲存類別以更新參數。 如需相關資訊,請參閱 在更新至 4.2版之後重建您自己的儲存空間類別

更新至 4.2 版之後重建您自己的儲存空間類別

從版本 4.2 開始,儲存類別的預設參數已變更。 不再使用 sizeRangeiopsRange 參數。 如果您已建立任何使用這些參數的專屬儲存空間類別,則必須編輯自己的儲存空間類別以移除這些參數。 若要變更您自己儲存類別中的參數,您必須刪除並重建它們。 先前,已提供每一個儲存類別 sizeRangeiopsRange 作為參照資訊。 自版本起,這些參考 4.2 已遭移除。 現在,如需區塊儲存體設定檔、大小及 IOP 的相關資訊,請參閱 區塊儲存體設定檔 參照。

  1. 若要尋找您自己的儲存空間類別的詳細資料,請執行下列指令。

    oc describe sc STORAGECLASS
    
  2. 如果儲存類別使用 sizeRangeiopsRange,請取得儲存類別 YAML 並將它儲存至檔案。

    oc get sc STORAGECLASS -o yaml
    
  3. 在您從前一個指令輸出儲存的檔案中,移除 sizeRangeiopsRange 參數。

  4. 從叢集中刪除儲存空間類別。

    oc delete sc STORAGECLASS
    
  5. 使用您先前建立的檔案,在叢集裡重建儲存類別。

    oc apply -f custom-storage-class.yaml
    

為 Block Storage for VPC 設定加密

使用金鑰管理服務 (KMS) 供應商(例如 IBM® Key Protect )來建立私有根金鑰,您可在 Block Storage for VPC 執行個體中使用此金鑰,於資料寫入儲存空間時進行加密。 建立私人根金鑰後,使用您的根金鑰建立自己的儲存類別或 Kubernetes 秘密,然後再使用此儲存類別或秘密配置您的 Block Storage for VPC 範例。

啟用加密功能 Block Storage for VPC 將使效能降低約20%。 不過,確切的影響取決於工作者節點及儲存空間磁區配置。 啟用加密時,請考量容許效能影響。

  1. 建立您要使用的 KMS 提供者的實例。

  2. 在 KMS 範例中建立一個根金鑰。

  3. 設定服務到服務授權。 授權 Block Storage for VPC 存取 IBM® Key Protect。 一定要給Block Storage for VPC至少 Reader 存取您的 KMS 實例。

  4. 決定您要將 Key Protect 根金鑰 CRN 儲存在自訂儲存空間類別還是 Kubernetes 密碼。 然後,遵循步驟來建立自訂儲存空間類別或 Kubernetes 密碼。

    自訂儲存空間類別範例。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <storage_class_name> # Enter a name for your storage class.
    provisioner: vpc.block.csi.ibm.io
    parameters:
      profile: "5iops-tier"
      csi.storage.k8s.io/fstype: "ext4"
      billingType: "hourly"
      encrypted: "true"
      encryptionKey: "<encryption_key>"
      resourceGroup: ""
      zone: ""
      tags: ""
      generation: "gc"
      classVersion: "1"
    reclaimPolicy: "Delete"
    
    encrypted
    在參數中,輸入 true 以建立儲存空間類別,為 Block Storage for VPC 磁區設定加密。 如果將此選項設定為 true,則必須提供要在 parameters.encryptionKey 中使用的 Key Protect 服務實例的根密鑰 CRN。
    encryptionKey
    在參數中,輸入您先前擷取的根金鑰 CRN。

    範例 Kubernetes secret。

    apiVersion: v1
    kind: Secret
    type: vpc.block.csi.ibm.io
    metadata:
      name: <secret_name>
      namespace: <namespace_name>
    stringData:
      encrypted: <true_or_false>
    data
      encryptionKey: <encryption_key>
    
    name
    輸入密碼的名稱。
    namespace
    輸入您要在其中建立密碼的名稱空間。
    encrypted
    在參數中,輸入 true 以設定 Block Storage for VPC 磁區的加密。
    encryptionKey
    在參數中,輸入您要用來加密 Block Storage for VPC 磁區的 Key Protect 服務實例的根金鑰 CRN。 若要在秘密中使用您的根密鑰 CRN,您必須先執行 echo -n "<root_key_CRN>" | base64 ,將它轉換為 base64。
  5. 請遵循「新增 Block Storage for VPC 到您的應用程式」中的步驟 4-9,使用您自訂的儲存類別建立 PVC,以配置 Block Storage for VPC,該 PVC 已設定為使用 Key Protect 根金鑰加密。 然後,將此儲存空間裝載至應用程式 Pod。

    您的應用程式可能需要幾分鐘的時間,才能裝載儲存空間並進入 Running 狀況。

  6. 驗證資料是否加密。 列出您的 Block Storage for VPC 磁碟區,並註記您建立的實體 ID。 儲存空間實例 Name 等於建立 PVC 時自動建立的 PV 的名稱。

    ibmcloud is vols
    

    輸出範例

    ID                                     Name                                       Status      Capacity   IOPS   Profile           Attachment type   Created                     Zone         Resource group
    a395b603-74bf-4703-8fcb-b68e0b4d6960   pvc-479d590f-ca72-4df2-a30a-0941fceeca42   available   10         3000   5iops-tier        data              2019-08-17T12:29:18-05:00   us-south-1   a8a12accd63b437bbd6d58fb6a462ca7
    
  7. 使用磁碟區 ID,列出 Block Storage for VPC 儲存實體的詳細資訊,以確保您的 Key Protect 根金鑰儲存在儲存實體中。 可以在 CLI 輸出的 Encryption key 欄位中找到根金鑰。

    ibmcloud is vol <volume_ID>
    

    輸出範例

    ID                                     a395b603-74bf-4703-8fcb-b68e0b4d6960   
    Name                                   pvc-479d590f-ca72-4df2-a30a-0941fceeca42   
    Status                                 available   
    Capacity                               10   
    IOPS                                   3000   
    Profile                                5iops-tier   
    Encryption key                         crn:v1:bluemix:public:kms:us-south:a/6ef045fd2b43266cfe8e6388dd2ec098:53369322-958b-421c-911a-c9ae8d5156d1:key:47a985d1-5f5e-4477-93fc-12ce9bae343f   
    Encryption                             user_managed   
    Resource group                         a8a12accd63b437bbd6d58fb6a462ca7
    Created                                2019-08-17T12:29:18-05:00
    Zone                                   us-south-1   
    Volume Attachment Instance Reference
    

自訂預設儲存空間設定

您可以使用自訂的儲存類別或 Kubernetes secret 來變更某些預設 PVC 設定,以建立具有自訂設定的 Block Storage for VPC。

使用秘密並在自訂儲存類別中指定我的參數有什麼好處?
身為叢集管理員,當您希望叢集使用者建立的所有 PVC 都以特定組態進行佈建,且不想讓叢集使用者覆寫預設組態時,請 建立自訂的儲存類別
不過,如果需要多種配置,且您不想要為每種可能的 PVC 配置建立自訂儲存空間類別,則可以使用預設 PVC 設定建立一個自訂儲存空間類別,以及建立對一般 Kubernetes 密碼的參照。 如果您的叢集使用者必須置換自訂儲存空間類別的預設設定,他們可以藉由建立存放其自訂設定的 Kubernetes 密碼來達成。

當您要為 Block Storage for VPC 實例設定加密時,如果您要將 Key Protect 根金鑰 CRN 編碼到 base64,而不是直接在自訂儲存類別中提供金鑰,也可以使用 Kubernetes secret。

變更預設儲存類別

從版本 4.2 開始,Block Storage for VPC 叢集附加元件將預設儲存類別設定為 類別 ibmc-vpc-block-10iops-tier。 如果您具有 ibmc-vpc-block-10iops-tier 以外的預設儲存空間類別,且 PVC 使用預設儲存空間類別,則可能會導致多個預設儲存空間類別,這會導致 PVC 建立失敗。 若要使用 ibmc-vpc-block-10iops-tier 以外的預設儲存類別,您可以更新 addon-vpc-block-csi-driver-configmap,將 IsStorageClassDefault 變更為 false。

Block Storage for VPC 叢集附加程式的預設儲存類別是 ibmc-vpc-block-10iops-tier 儲存類別。

  1. 編輯 addon-vpc-block-csi-driver-configmap

    oc edit cm addon-vpc-block-csi-driver-configmap -n kube-system
    
  2. IsStorageClassDefault 設定變更為 false

  3. 儲存並結束。

  4. 等待 15 分鐘,並取得 ibmc-vpc-block-10iops-tier 儲存類別的詳細資料來驗證變更。

    oc get sc ibmc-vpc-block-10iops-tier -o yaml
    

建立您自己的儲存空間類別

為您的 Block Storage for VPC 執行個體建立自訂儲存類別,並設定您偏好的參數。 透過使用 SDP 設定檔,您可以指定容量和最大吞吐量限制。

SSD定義效能配置檔(SDP)現已於達拉斯、法蘭克福、倫敦、馬德里、大阪、聖保羅、雪梨、東京、多倫多及華盛頓提供。D.C 針對固態硬碟(SSD)定義的效能設定檔,現已於達拉斯、法蘭克福、東京及華盛頓提供快照建立功能 D.C。

如果您想要:

  • 設定自訂 IOPS 值。
  • 使用 ext4 以外的檔案系統類型來設定 Block Storage for VPC。
  • 設定加密。
  • 設定 SSD 定義的效能。

開始之前

  • 檢閱 儲存類別參照,以判定您要用於儲存類別的 profile

  • 如果您想為 Block Storage for VPC 指定自訂 IOP,也可以檢視自訂 設定檔

  • 如果要使用 SSD 定義的效能 (SDP) 設定檔,請 檢閱容量範圍和 IOP 詳細資訊。 請注意,使用 SSD 定義效能時,磁碟區的容量是由您指定的 IOP 和吞吐量決定。

  • 您可以使用現有的儲存類別,作為建立自己類別的起點。 使用 oc get sc <storageclass> -o yaml 指令儲存現有儲存類別的詳細資料。

  • 為了降低成本,您可以使用 ibmc-vpc-block-sdp 儲存等級(最低 3000 IOPS 和 1000 吞吐量 (Mbps)),以低容量、最低 IOPS 和最低吞吐量初始配置 PVC。 佈建完成後,您可以存取 PVC,並依需求調整 IOPS吞吐量

若要建立自訂儲存類別:

  1. 以下列格式建立自訂的儲存類組態檔案。 選擇 第一代和第二代 儲存類別。

    第一代範例:

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <storage_class_name>
    provisioner: vpc.block.csi.ibm.io
    parameters:
      profile: "<profile>" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom
      csi.storage.k8s.io/fstype: "<file_system_type>" # xfs, ext3, or ext4
      billingType: "hourly"
      encrypted: "<encrypted_true_false>"
      encryptionKey: "<encryption_key>"
      resourceGroup: ""
      zone: "<zone>"
      region: "<region>"
      tags: "<tags>"
      generation: "gc"
      throughput: "<throughput>" # Example: 2000
      classVersion: "1"
      iops: "<iops>" # Only specify this parameter if you are using a "custom" profile.
    allowVolumeExpansion: (true|false) # Select true or false. Only supported on version 3.0.1 and later
    volumeBindingMode: <volume_binding_mode>
      # csi.storage.k8s.io/provisioner-secret-name: # Uncomment and add secret parameters to enforce encryption.
      # csi.storage.k8s.io/provisioner-secret-namespace:
    reclaimPolicy: "<reclaim_policy>"
    
    name
    輸入儲存空間類別的名稱。
    profile
    輸入您在上一步中選擇的設定檔。 選擇 general-purpose, sdp, 5iops-tier, 10iops-tier,或自訂使用自訂 IOPs 值。 若要尋找特定設定檔所支援的儲存大小,請參閱 分層 IOPS 設定檔。 使用此儲存空間類別的任何 PVC 都必須指定此範圍內的大小值。
    csi.storage.k8s.io/fstype
    在參數中,輸入 Block Storage for VPC 範例的檔案系統。 選擇 xfsext3ext4。 如果您要修改卷的所有權或權限,您必須在自己的儲存類別中指定 csi.storage.k8s.io/fstype,而且您的 PVC 必須有 ReadWriteOnce 作為 accessMode。 Block Storage for VPC 驅動程式使用 ReadWriteOnceWithFSType fsGroupPolicy. 如需詳細資訊,請參閱 CSI 驅動程式說明文件
    encrypted
    在參數中,輸入 true 以建立儲存類別,為 Block Storage for VPC 磁區設定加密。 如果將此選項設定為 true,則必須提供要在 parameterencryptionKey 中使用的 Key Protect 服務實例的根密鑰 CRN。 如需加密資料的相關資訊,請參閱為 Block Storage for VPC 設定加密
    encryptionKey
    如果您為 parameters.encrypted 輸入 true,則輸入 Key Protect 服務實例的根金鑰 CRN,您要使用該 CRN 加密 Block Storage for VPC 磁碟區。 如需加密資料的相關資訊,請參閱為 Block Storage for VPC 設定加密
    zone
    在參數中,輸入您要在其中建立 Block Storage for VPC 實例的 VPC 區域。 請務必使用工作者節點連接到的區域。 若要列出工作節點使用的 VPC 區域,請執行 ibmcloud oc cluster get --cluster <cluster_name_or_ID> 並查看 CLI 輸出中的 工人區 欄位。 如果您未指定區域,則會自動為您的 Block Storage for VPC 範例選擇其中一個 Worker 節點區域。
    region
    您要連接儲存體之工作者節點的區域。
    tags
    在參數中,輸入以空格區隔的標籤清單,以套用至 Block Storage for VPC 實例。 標籤可協助您更輕鬆地找到實例,或根據一般性質(例如,它適用的應用程式或環境)來為您的實例分組。
    iops
    如果您為 profile 輸入 customsdp,請輸入您希望 Block Storage for VPC 使用的 IOP 值。 請參閱 Block Storage for VPC 自訂 IOPs 設定檔表,取得依卷冊大小所支援的 IOPs 範圍清單。
    throughput
    如果使用 sdp 設定檔,請輸入此值。 如需詳細資訊,請參閱 SDP 設定檔的 IOP 和吞吐量詳細 資訊
    reclaimPolicy
    輸入儲存空間類別的回收原則。 若要在移除 PVC 時保留 PV、實體儲存裝置及資料,請輸入 Retain。 若要在移除 PVC 時刪除 PV、實體儲存裝置及資料,請輸入 Delete
    allowVolumeExpansion
    輸入儲存類別的磁區擴充原則。 如果要允許卷擴充,請輸入 true。 如果不允許卷擴充,請輸入 false
    volumeBindingMode
    選擇是否要延遲 Block Storage for VPC 實例建立,直到使用此儲存空間的第一個 pod 準備就緒可排定為止。 若要延遲建立,請輸入 WaitForFirstConsumer。 若要在建立 PVC 時建立實例,請輸入 Immediate

    第二代範例:

    如果您使用第一代 ibmc-vpc-block-5iops-tier 儲存類別配置 9.6TB PVC,則最大 IOPS 為 48,000,最大吞吐量為 6144 Mbps。 然而,使用第二代 ibmc-vpc-block-sdp-max-bandwidth 儲存等級,最大 IOPS 為 64,000 且最大吞吐量為 8192 Mbps。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ibmc-vpc-block-sdp-max-bandwidth
    provisioner: vpc.block.csi.ibm.io
    parameters:
      profile: "sdp" # general-purpose, sdp, 5iops-tier, 10iops-tier, or custom
      csi.storage.k8s.io/fstype: "ext4" # xfs, ext3, or ext4
      billingType: "hourly"
      encrypted: "false"
      encryptionKey: ""
      resourceGroup: ""
      zone: "us-east"
      region: "tor01"
      tags: "tag"
      generation: "gc"
      throughput: "8192" # Example: 2000
      classVersion: "1"
      iops: "64000" # Only specify this parameter if you are using a "custom" profile.
    allowVolumeExpansion: true # Select true or false. Only supported on version 3.0.1 and later
    volumeBindingMode: Immediate
    reclaimPolicy: "Delete"
    
  2. 在叢集裡建立自訂儲存空間類別。

    oc apply -f custom-storageclass.yaml
    
  3. 驗證您的儲存空間類別可用於叢集。

    oc get sc
    

    輸出範例

    NAME                                    PROVISIONER            AGE
    <custom-storageclass>             vpc.block.csi.ibm.io   4m26s
    
  4. 執行將 Block Storage for VPC 新增至應用程式中的步驟來使用自訂儲存空間類別建立 PVC,以佈建 Block Storage for VPC。 然後將此儲存空間裝載到範例應用程式。

  5. 選用: 驗證 Block Storage for VPC 檔案系統類型

驗證 Block Storage for VPC 檔案系統

您可以建立自訂儲存空間類別,以佈建使用其他檔案系統(例如,xfsext3)的 Block Storage for VPC。 依預設,會為所有 Block Storage for VPC 實例佈建 ext4 檔案系統。

  1. 請遵循步驟,以您要使用的檔案系統建立自訂儲存空間類別

  2. 請遵循「新增 Block Storage for VPC 到您的應用程式」中的步驟 4-9,使用您自訂的儲存類別建立 PVC,以配置具有不同檔案系統的 Block Storage for VPC。 然後,將此儲存空間裝載至應用程式 Pod。

    您的應用程式可能需要幾分鐘的時間,才能裝載儲存空間並進入 Running 狀況。

  3. 驗證儲存空間已使用正確的檔案系統裝載。 列出叢集裡的 Pod,並記下用於裝載儲存空間的 Pod 的 Name

    oc get pods
    
  4. 登入 Pod。

    oc exec <pod_name> -it bash
    
  5. 列出 Pod 中的裝載路徑。

    mount | grep /dev/xvdg
    

    xfs 的輸出範例。

    /dev/xvdg on /test type xfs (rw,relatime,attr2,inode64,noquota)
    
  6. 結束 pod。

    exit
    

更新 VolumeAttachLimit

在 Block Storage for VPC 叢集附加程式的 5.2 版以及更新版本中,您可以透過編輯 configmap 來編輯可連接至每個節點的磁區數目上限。 預設值為 12

您的帳戶必須經過核准才能使用此特性。

  1. 登入您的帳戶。 適用的話,請將適當的資源群組設為目標。 設定叢集的環境定義。

  2. 編輯 ConfigMap。 將 VALUE 取代為您要設定的磁區連接限制。

    kubectl patch configmap/addon-vpc-block-csi-driver-configmap \       
    -n kube-system \
    --type merge \
    -p '{"data":{"VolumeAttachmentLimit":"VALUE"}}'
    
  3. 等待 kube-system 名稱空間中的 ibm-vpc-block-csi-node Pod 重新啟動。 驗證 Pod 已重新啟動。

    kubectl get pods -n kube-system -w| grep block-csi
    
  4. 您現在可以使用動態佈建或手動建立連接,將磁區連接至工作者節點。 如需相關資訊,請參閱 將 Block Storage for VPC 新增至應用程式使用現有 Block Storage for VPC 實例

在 Kubernetes 密碼中儲存自訂 PVC 設定

請在 Kubernetes 密碼中指定您的 PVC 設定,並在自訂儲存空間類別中參照此密碼。 然後,使用自訂儲存空間類別,以使用您在密碼中設定的自訂參數來建立 PVC。

我有哪些選項可以使用 Kubernetes secret?
身為叢集管理者,您可以選擇是否要允許每個叢集使用者置換儲存空間類別的預設設定,或者是否要建立叢集裡每個人都必須使用的一個密碼,並為 Key Protect 根金鑰 CRN 施行 base64 編碼。
每位使用者都可以自訂預設值
在此情況下,群集管理員使用預設 PVC 設定和一般 Kubernetes secret 的參照,建立一個自訂儲存類別。 群集使用者可透過建立具有他們想要的 PVC 設定的 Kubernetes secret,覆寫儲存類別的預設設定。 為了讓秘訣中的客製化設定套用到您的 Block Storage for VPC 範例,您必須建立一個與 Kubernetes 秘訣名稱相同的 PVC。
對 Key Protect 根金鑰施行 base64 編碼
在這種情況下,您會建立一個具有預設 PVC 設定的自訂儲存類別,並參照靜態 Kubernetes secret,以覆寫或增強自訂儲存類別的預設設定。 您的群集使用者無法透過建立自己的 Kubernetes secret 來覆寫預設設定。 叢集使用者必須改為使用在自訂儲存空間類別和密碼中選擇的配置來佈建 Block Storage for VPC。 與僅建立 自訂儲存類別 相比,使用此方法的好處是,當您想要加密 Block Storage for VPC 範例中的資料時,可以為 Key Protect 服務範例的根金鑰 CRN 強制執行 base64 編碼。
在開始使用 Kubernetes secret 進行 PVC 設定之前,我需要注意哪些事項?
某些 PVC 設定,例如 reclaimPolicyfstypevolumeBindingMode,無法在 Kubernetes 秘訣中設定,必須在儲存類別中設定。 作為叢集管理,如果要允許叢集使用者置換預設設定,則必須確保設定足夠的自訂儲存空間類別來參照通用 Kubernetes 密碼,以便使用者可以使用不同的 reclaimPolicyfstypevolumeBindingMode 設定來佈建 Block Storage for VPC。

讓每個使用者能自訂預設 PVC 設定

  1. 身為叢集管理者,請遵循步驟來建立自訂儲存空間類別。 在自訂儲存類別 YAML 檔案中,參考 metadata.parameters 部分中的 Kubernetes secret,如下所示。 請務必依現狀新增程式碼,不要變更變數名稱。

    csi.storage.k8s.io/provisioner-secret-name: ${pvc.name}
    csi.storage.k8s.io/provisioner-secret-namespace: ${pvc.namespace}
    
  2. 身為叢集使用者,請建立 Kubernetes 密碼,以自訂儲存空間類別的預設設定。

    apiVersion: v1
    kind: Secret
    type: vpc.block.csi.ibm.io
    metadata:
      name: <secret_name>
      namespace: <namespace_name>
    stringData:
      iops: "<IOPS_value>"
      zone: "<zone>"
      tags: "<tags>"
      encrypted: <true_or_false>
      resourceGroup: "<resource_group>"
    data
      encryptionKey: <encryption_key>
    
    name
    輸入 Kubernetes 密碼的名稱。
    namespace
    輸入您要在其中建立密碼的名稱空間。 若要在 PVC 中參照密碼,必須在相同的名稱空間中建立 PVC。
    iops
    在字串資料區段中,輸入您要為 Block Storage for VPC 實例容許的 IOPS 範圍。 輸入的範圍必須與計劃使用的 Block Storage for VPC 層級相符合。
    zone
    在字串資料區段中,輸入您要在其中建立 Block Storage for VPC 實例的 VPC 區域。 請務必使用工作者節點連接到的區域。 若要列出工作節點使用的 VPC 區域,請執行 ibmcloud oc cluster get --cluster <cluster_name_or_ID> 並查看 CLI 輸出中的 工人區 欄位。 如果您未指定區域,則會自動為您的 Block Storage for VPC 範例選擇其中一個 Worker 節點區域。
    tags
    在字串資料區段中,輸入要在建立 PVC 時使用的標籤清單 (以逗點區隔)。 標籤可以幫助您在建立儲存實例後找到它。
    resourceGroup
    在字串資料部分,輸入您希望 Block Storage for VPC 實例取得存取權的資源群組 ID。 如果不輸入資源群組,該實例會自動授權存取群集所屬資源群組的資源。
    encrypted
    在字串資料區段中,輸入 true,以建立密鑰來設定 Block Storage for VPC 磁區的加密。 如果將此選項設定為 true,則必須提供要在 parameters.encryptionKey 中使用的 Key Protect 服務實例的根密鑰 CRN。 如需有關加密資料的詳細資訊,請參閱為您的 Block Storage for VPC設定加密
    encryptionKey
    在資料部分,如果您輸入 true 表示 parameters.encrypted,則輸入您 Key Protect 服務實例的根金鑰 CRN,您要使用該 CRN 加密 Block Storage for VPC 磁碟區。 若要在秘密中使用您的根密鑰 CRN,您必須先執行 echo -n "<root_key_CRN>" | base64 ,將它轉換為 base64。 如需加密資料的相關資訊,請參閱為 Block Storage for VPC 設定加密
  3. 建立 Kubernetes 密碼。

    oc apply -f secret.yaml
    
  4. 執行將 Block Storage for VPC 新增至應用程式中的步驟來使用自訂設定建立 PVC。 請務必以叢集管理者建立的自訂儲存空間類別來建立 PVC,並使用您用於密碼的相同 PVC 名稱。 針對密碼和 PVC 使用相同的名稱,會觸發儲存空間提供者,在您的 PVC 中套用密碼的設定。

對 Key Protect 根金鑰 CRN 施行 base64 編碼

  1. 身為叢集管理者,建立 Kubernetes 密碼,其中包含您 Key Protect 根金鑰 CRN 的 base64 編碼值。 若要擷取根金鑰 CRN,請參閱為 Block Storage for VPC 設定加密

    apiVersion: v1
    kind: Secret
    type: vpc.block.csi.ibm.io
    metadata:
      name: <secret_name>
      namespace: <namespace_name>
    stringData:
      encrypted: <true_or_false>
      resourceGroup: "<resource_group>"
    data:
      encryptionKey: <encryption_key>
    
    name
    輸入 Kubernetes 密碼的名稱。
    namespace
    輸入您要在其中建立密碼的名稱空間。 若要在 PVC 中參照密碼,必須在相同的名稱空間中建立 PVC。
    encrypted
    在字串資料區段中,輸入 true,以建立密鑰來設定 Block Storage for VPC 磁區的加密。 如果將此選項設定為 true,則必須提供要在 parameters.encryptionKey 中使用的 Key Protect 服務實例的根密鑰 CRN。 如需有關加密資料的詳細資訊,請參閱為您的 Block Storage for VPC設定加密
    encryptionKey
    在資料部分,如果您輸入 true 表示 parameters.encrypted,則輸入您 Key Protect 服務實例的根金鑰 CRN,您要使用該 CRN 加密 Block Storage for VPC 磁碟區。 若要在秘密中使用您的根密鑰 CRN,您必須先執行 echo -n "<root_key_CRN>" | base64 ,將它轉換為基 64。 如需加密資料的相關資訊,請參閱為 Block Storage for VPC 設定加密
  2. 建立 Kubernetes 密碼。

    oc apply -f secret.yaml
    
  3. 遵循步驟,以建立自訂儲存空間類別。 在自訂儲存類別 YAML 檔案中,參考 metadata.parameters 部分中的 Kubernetes secret,如下所示。 請務必輸入您稍早建立的 Kubernetes 密碼名稱,以及您建立密碼所在的名稱空間。

    csi.storage.k8s.io/provisioner-secret-name: <secret_name>
    csi.storage.k8s.io/provisioner-secret-namespace: <secret_namespace>
    
  4. 以叢集使用者身分,執行將 Block Storage for VPC 新增至應用程式中的步驟來透過自訂儲存空間類別建立 PVC。

設定磁區擴充

若要供應支援擴充的磁區,您必須使用 allowVolumeExpansion 設為 true 的儲存類別。

您只能擴充應用程式 Pod 所裝載的磁區。

登入您的帳戶。 適用的話,請將適當的資源群組設為目標。 設定叢集的環境定義。

  1. 如果您不是使用 4.2 版或更新版本的附加程式,請 更新叢集裡的 Block Storage for VPC 叢集附加程式

  2. 建立 PVC,以使用支援磁區擴充的儲存空間類別。

  3. 部署應用程式,以使用您的 PVC。 建立應用程式時,請記下您指定的 mountPath

  4. 由應用程式 Pod 裝載 PVC 之後,您可以透過編輯 PVC 中 spec.resources.requests.storage 欄位的值來擴充磁區。 若要擴充磁區,請編輯 PVC 並增加 spec.resources.requests.storage 欄位中的值。

    oc edit pvc <pvc-name>
    

    範例

    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
    
  5. 儲存並關閉 PVC。

  6. 選用: 驗證磁區已擴充。 取得 PVC 的詳細資料,並記下 PV 名稱。

    oc get pvc <pvc-name>
    
  7. 說明您的 PV 並記下磁區 ID。

    oc describe PV
    
  8. 取得 Block Storage for VPC 磁區的詳細資料,並驗證容量。

    ibmcloud is vol <volume-ID>
    

在附加程式 4.2 版之前手動擴充磁區

請完成以下步驟,手動擴充您在附加元件 4.2 版本之前建立的現有 Block Storage for VPC 卷。

您只能擴充應用程式 Pod 所裝載的磁區。

  1. 取得應用程式的詳細資料,並記下 PVC 名稱及 mountPath

    oc get pod <pod-name> -n <pod-namespace> -o yaml
    
  2. 取得 PVC 的詳細資料,並記下 PV 名稱。

    oc get pvc
    
  3. 說明您的 PV 並取得 volumeId

    oc describe pv `pv-name` | grep volumeId
    

    磁區 ID r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1 的輸出範例。

    volumeId=r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1
    
  4. 使用 PATCH 要求來調整磁區大小。 下列範例會將磁區大小調整為 250 GiB。

    curl -sS -X PATCH -H "Authorization: <iam_token>" "https://<region>.iaas.cloud.ibm.com/v1/volumes/<volumeId>?generation=2&version=2020-06-16" -d '{"capacity":250}'
    
    <iam_token>
    您的 IAM 記號。 若要擷取 IAM 令牌,請執行 ibmcloud iam oauth-tokens
    <region>
    叢集所在的地區,例如 us-south
    <volumeId>
    您先前擷取的磁區 ID。 例如 r011-a1aaa1f1-3aaa-4a73-84aa-0aa32e11a1a1
    <capacity>
    增加的容量在GiB,例如 250
  5. 登入您的應用程式 pod。

    oc exec <pod-name> -it -- bash
    
  6. 執行下列指令,以使用主機二進位檔。

    chroot /host
    
  7. 取得檔案系統詳細資料,並記下您要更新的 Filesystem 路徑。 您也可以針對應用程式 Pod 中指定的裝載路徑使用 grepdf -h | grep <mount-path>

    df -h
    

    輸出範例

    Filesystem      Size  Used Avail Use% Mounted on
    overlay          98G   64G   29G  70% /
    tmpfs            64M     0   64M   0% /dev
    tmpfs            32G     0   32G   0% /sys/fs/cgroup
    shm              64M     0   64M   0% /dev/shm
    /dev/vda2        98G   64G   29G  70% /etc/hosts
    /dev/vdg        9.8G   37M  9.8G   1% /mount-path # Note the Filesystem path that corresponds to the mountPath that you specified in your app.
    tmpfs            32G   40K   32G   1% /run/secrets/kubernetes.io/serviceaccount
    tmpfs            32G     0   32G   0% /proc/acpi
    tmpfs            32G     0   32G   0% /proc/scsi
    tmpfs            32G     0   32G   0% /sys/firmware
    
  8. 調整檔案系統大小。

    sudo resize2fs <filesystem-path>
    

    範例指令

    sudo resize2fs /dev/vdg
    
  9. 驗證檔案系統已調整大小。

    df -h
    

備份及還原資料

資料在您所在區域的 Block Storage for VPC 冗餘故障區之間受到保護。 若要手動備份資料,請使用 Kubernetes oc cp 指令。

您可以使用 oc cp 指令將檔案和目錄複製到群集中的 Pod 或特定容器,或從 Pod 或特定容器複製檔案和目錄

開始之前: 存取 Red Hat OpenShift 叢集

若要備份或還原資料,請從下列選項中進行選擇:

將本機的資料複製到群集中的 Pod。

oc cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath>

將叢集中 pod 的資料複製到本機。

oc cp <namespace>/<pod>:<pod_filepath>/<filename> <local_filepath>/<filename>

將資料從您的本機複製到在群集中的 pod 中執行的特定容器。

oc cp <local_filepath>/<filename> <namespace>/<pod>:<pod_filepath> -c CONTAINER

瞭解磁區要求容量

VPC Block CSI Driver 會使用下列公式來計算磁區容量。

  • 如果值提供在 Gi:rBytes(requestedBytes) = X * 1024^3

  • 如果值提供在 G:rBytes(requestedBytes) = X * 10^9

所要求的值等於 (((rBytes+ GiB - 1) / GiB) * GiB) / GiB

例如:

  • 如果提供值 20Gi,則套用上述公式,所建立的磁區會是 20GB
  • 如果提供值 20G,則所建立的磁區是 19GB

有時,所建立磁區的容量小於所要求的值。 請注意,計費適用於所建立的磁區,而非所要求的磁區。

為區塊儲存指定可信設定檔

由於已知問題,當實施受信任設定檔時,VPC 卷 Block Storage 上的使用者標籤更新可能不會顯示。 不使用受信任設定檔的群集不存在此問題。

您可以使用受信任的設定檔來授權不同的 IBM Cloud 身分存取您帳戶中的資源,包括您的儲存解決方案。 可信賴的設定檔可集中存取控制、消除對長期使用的 API 金鑰的需求,並允許您將權限的範圍精確到特定任務所需的最小值。 如需詳細資訊,請參閱 設定儲存元件的可信設定檔