From 0137fe2f8510863483458c9f4ff8f5dd62022a7b Mon Sep 17 00:00:00 2001 From: cabbet Date: Mon, 30 Dec 2024 22:49:14 +0800 Subject: [PATCH] update v4.6.0 docs --- content/en/docs/_index.md | 2 +- content/en/docs/about-this-document/_index.md | 2 +- ...eters-for-a-distributed-storage-backend.md | 2 +- ...for-a-huawei-enterprise-storage-backend.md | 4 +- .../_index.md | 2 +- ...g-storage-topology-awareness-using-helm.md | 4 +- .../configuring-pvc-changes/_index.md | 2 +- .../creating-a-pvc-change-resource.md | 2 +- .../preparing-a-pvc-change-file.md | 3 +- .../deleting-a-pvc-change.md | 2 +- .../querying-a-pvc-change.md | 4 +- ...bling-the-pvc-change-feature-using-helm.md | 4 +- .../en/docs/appendix/communication-matrix.md | 6 +- .../configuring-custom-permissions.md | 2 +- .../huawei-csi-resource-management.md | 2 +- .../collecting-information/collecting-logs.md | 4 +- .../obtaining-the-csi-version.md | 2 +- .../viewing-huawei-csi-logs.md | 4 +- ...bling-the-readwriteoncepod-feature-gate.md | 14 +- ...ibility-with-huawei-distributed-storage.md | 8 +- ...tibility-with-huawei-enterprise-storage.md | 18 +- .../kubernetes-and-os-compatibility.md | 16 +- ...ing-the-host-multipathing-configuration.md | 6 +- ...hecking-the-images-on-which-csi-depends.md | 96 ++- ...g-user-configurations-on-huawei-storage.md | 8 +- ...ng-volume-snapshot-dependent-components.md | 2 +- ...loading-the-huawei-csi-software-package.md | 21 +- .../uploading-a-huawei-csi-image.md | 26 +- .../installing-huawei-csi/_index.md | 2 +- .../_index.md | 2 +- ...ei-csi-on-the-cce-or-cce-agile-platform.md | 6 +- ...ameters-in-the-values-yaml-file-of-helm.md | 60 +- .../manually-installing-huawei-csi.md | 6 +- .../uninstalling-huawei-csi/_index.md | 2 +- .../manually-uninstalling-huawei-csi.md | 7 +- ...alling-csi-dependent-component-services.md | 2 +- ...stalling-huawei-csi-on-cce-or-cce-agile.md | 7 +- ...i-csi-on-kubernetes-openshift-and-tanzu.md | 7 +- .../_index.md | 2 +- .../rolling-back-huawei-csi-1.md | 2 +- .../upgrading-huawei-csi-0.md | 10 +- .../_index.md | 6 - .../rolling-back-huawei-csi/_index.md | 9 +- ...ing-back-huawei-csi-on-cce-or-cce-agile.md | 2 +- ...i-csi-on-kubernetes-openshift-and-tanzu.md | 2 +- .../upgrading-huawei-csi/_index.md | 9 +- .../upgrading-from-2-x-or-3-x-to-4-x.md | 4 +- ...i-csi-on-kubernetes-openshift-and-tanzu.md | 130 ++- content/en/docs/overview/_index.md | 2 +- .../_index.md | 16 + ...ing-a-certificate-for-a-storage-backend.md | 0 .../deleting-a-storage-backend-certificate.md | 0 .../querying-a-storage-backend-certificate.md | 0 .../updating-a-storage-backend-certificate.md | 2 +- .../description-of-oceanctl-commands.md | 2 +- .../creating-a-storage-backend/_index.md | 2 +- ...onfiguration-files-in-typical-scenarios.md | 8 +- .../storage-backend-parameters.md | 6 +- .../deleting-a-storage-backend.md | 2 +- .../updating-a-storage-backend/_index.md | 2 +- .../manually-updating-a-storage-backend.md | 2 +- ...he-status-displayed-as-invalidimagename.md | 14 +- ...e-var-lib-iscsi-is-not-a-directory-repo.md | 4 +- ...tc-localtime-is-not-a-file-is-displayed.md | 4 +- ...-t-exist-is-displayed-in-the-events-log.md | 4 +- ...-a-volume-directory-is-mounted-to-a-pod.md | 4 +- ...or-message-context-deadline-exceeded-is.md | 8 +- ...-is-used-to-obtain-storage-backend-info.md | 34 + content/en/docs/using-huawei-csi/_index.md | 2 +- .../managing-a-pvc/cloning-a-pvc.md | 4 +- .../creating-a-pvc-using-a-snapshot.md | 4 +- .../dynamic-volume-provisioning/_index.md | 5 +- ...ameters-for-dynamic-volume-provisioning.md | 10 +- ...l-dynamic-volume-provisioning-scenarios.md | 8 +- ...ameters-for-dynamic-volume-provisioning.md | 25 +- .../manage-volume-provisioning/_index.md | 4 +- ...rameters-for-manage-volume-provisioning.md | 12 +- ...al-manage-volume-provisioning-scenarios.md | 2 +- ...rameters-for-manage-volume-provisioning.md | 6 +- .../static-volume-provisioning/_index.md | 4 +- ...rameters-for-static-volume-provisioning.md | 2 +- ...rameters-for-static-volume-provisioning.md | 4 +- .../expanding-the-capacity-of-a-pvc.md | 4 +- content/en/v4.5.0/_index.md | 11 + .../en/v4.5.0/about-this-document/_index.md | 55 ++ content/en/v4.5.0/advanced-features/_index.md | 10 + .../configuring-alua/_index.md | 10 + .../configuring-alua-using-helm/_index.md | 9 + ...eters-for-a-distributed-storage-backend.md | 65 ++ ...for-a-huawei-enterprise-storage-backend.md | 178 ++++ .../_index.md | 88 ++ ...g-storage-topology-awareness-using-helm.md | 147 ++++ .../advanced-features/pvc-change/_index.md | 11 + .../configuring-pvc-changes/_index.md | 51 ++ .../creating-a-pvc-change/_index.md | 13 + .../creating-a-pvc-change-resource.md | 26 + .../preparing-a-pvc-change-file.md | 133 +++ .../deleting-a-pvc-change.md | 27 + .../querying-a-pvc-change.md | 158 ++++ .../enabling-the-pvc-change-feature/_index.md | 11 + ...nabling-the-pvc-change-feature-manually.md | 40 + ...bling-the-pvc-change-feature-using-helm.md | 78 ++ content/en/v4.5.0/appendix/_index.md | 13 + .../v4.5.0/appendix/communication-matrix.md | 165 ++++ .../configuring-custom-permissions.md | 328 +++++++ ...iguration-policy-of-distributed-storage.md | 52 ++ ...onfiguration-policy-of-oceanstor-dorado.md | 52 ++ ...of-oceanstor-v5-and-oceanstor-dorado-v3.md | 64 ++ .../huawei-csi-resource-management.md | 213 +++++ content/en/v4.5.0/common-operations/_index.md | 14 + .../collecting-information/_index.md | 10 + .../collecting-information/collecting-logs.md | 109 +++ .../obtaining-the-csi-version.md | 39 + .../viewing-huawei-csi-logs.md | 87 ++ ...e-kubernetes-cluster-as-a-non-root-user.md | 29 + .../downloading-a-container-image.md | 49 ++ ...bling-the-readwriteoncepod-feature-gate.md | 70 ++ .../common-operations/installing-helm-3.md | 47 + .../modifying-the-log-output-mode.md | 82 ++ ...i-controller-or-huawei-csi-node-service.md | 25 + .../compatibility-and-features/_index.md | 13 + ...ibility-with-huawei-distributed-storage.md | 143 ++++ ...tibility-with-huawei-enterprise-storage.md | 306 +++++++ .../kubernetes-and-os-compatibility.md | 244 ++++++ .../kubernetes-feature-matrix.md | 244 ++++++ .../installation-and-deployment/_index.md | 11 + .../installation-preparations/_index.md | 27 + ...ing-the-host-multipathing-configuration.md | 42 + ...hecking-the-images-on-which-csi-depends.md | 145 ++++ ...g-the-status-of-host-dependent-software.md | 39 + ...g-user-configurations-on-huawei-storage.md | 105 +++ ...ng-volume-snapshot-dependent-components.md | 36 + ...loading-the-huawei-csi-software-package.md | 79 ++ .../uploading-a-huawei-csi-image.md | 88 ++ .../installing-huawei-csi/_index.md | 20 + .../_index.md | 44 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 175 ++++ ...ei-csi-on-the-cce-or-cce-agile-platform.md | 71 ++ ...ameters-in-the-values-yaml-file-of-helm.md | 779 +++++++++++++++++ .../manually-installing-huawei-csi.md | 86 ++ .../uninstalling-huawei-csi/_index.md | 14 + .../manually-uninstalling-huawei-csi.md | 75 ++ .../_index.md | 10 + ...alling-csi-dependent-component-services.md | 131 +++ ...stalling-huawei-csi-on-cce-or-cce-agile.md | 21 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 35 + .../_index.md | 14 + .../manual-upgrade-rollback/_index.md | 9 + .../rolling-back-huawei-csi-1.md | 24 + .../upgrading-huawei-csi-0.md | 39 + .../_index.md | 15 + .../rolling-back-huawei-csi/_index.md | 16 + ...ing-back-huawei-csi-on-cce-or-cce-agile.md | 22 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 48 ++ .../upgrading-huawei-csi/_index.md | 20 + .../upgrading-from-2-x-or-3-x-to-4-x.md | 31 + ...pgrading-huawei-csi-on-cce-or-cce-agile.md | 16 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 162 ++++ content/en/v4.5.0/overview/_index.md | 26 + content/en/v4.5.0/quick-start/_index.md | 44 + .../_index.md | 2 +- ...ing-a-certificate-for-a-storage-backend.md | 47 + .../deleting-a-storage-backend-certificate.md | 54 ++ .../querying-a-storage-backend-certificate.md | 9 + .../updating-a-storage-backend-certificate.md | 44 + .../storage-backend-management/_index.md | 22 + .../description-of-oceanctl-commands.md | 232 +++++ .../managing-storage-backends/_index.md | 17 + .../creating-a-storage-backend/_index.md | 94 ++ ...onfiguration-files-in-typical-scenarios.md | 277 ++++++ .../storage-backend-parameters.md | 199 +++++ .../deleting-a-storage-backend.md | 44 + .../querying-a-storage-backend.md | 9 + .../updating-a-storage-backend/_index.md | 13 + .../manually-updating-a-storage-backend.md | 18 + ...ord-of-a-storage-backend-using-oceanctl.md | 51 ++ content/en/v4.5.0/troubleshooting/_index.md | 12 + .../_index.md | 17 + ...cause-the-psp-permission-is-not-created.md | 60 ++ ...ult-port-of-the-livenessprobe-container.md | 34 + .../changing-the-mount-point-of-a-host.md | 32 + .../failed-to-create-an-ephemeral-volume.md | 64 ++ .../huawei-csi-service-issues/_index.md | 10 + ...he-status-displayed-as-invalidimagename.md | 80 ++ ...e-var-lib-iscsi-is-not-a-directory-repo.md | 49 ++ ...tc-localtime-is-not-a-file-is-displayed.md | 93 ++ .../troubleshooting/pod-issues/_index.md | 16 + ...-t-exist-is-displayed-in-the-events-log.md | 90 ++ ...xecution-of-the-mount-command-times-out.md | 46 + ...-the-mount-command-fails-to-be-executed.md | 20 + ...or-a-long-time-when-it-is-being-created.md | 19 + ...show-that-the-mount-point-already-exist.md | 23 + ...pod-failover-is-complete-but-the-source.md | 180 ++++ ...tarted-properly-when-the-kubernetes-pla.md | 37 + ...-a-volume-directory-is-mounted-to-a-pod.md | 19 + ...e-pod-is-in-the-containercreating-state.md | 35 + .../troubleshooting/pvc-issues/_index.md | 11 + ...deleted-the-pvc-is-in-the-pending-state.md | 76 ++ ...-capacity-of-a-generic-ephemeral-volume.md | 15 + ...acity-exceeds-the-storage-pool-capacity.md | 19 + ...created-the-pvc-is-in-the-pending-state.md | 89 ++ .../storage-backend-issues/_index.md | 10 + ...or-message-context-deadline-exceeded-is.md | 107 +++ ...ceanctl-tool-is-used-to-manage-backends.md | 2 +- ...ssword-is-updated-on-the-storage-device.md | 33 + content/en/v4.5.0/using-huawei-csi/_index.md | 15 + .../creating-a-volumesnapshot/_index.md | 18 + ...ut-volume-snapshot-dependent-components.md | 9 + .../configuring-a-volumesnapshot.md | 103 +++ .../configuring-a-volumesnapshotclass.md | 100 +++ .../using-huawei-csi/managing-a-pvc/_index.md | 20 + .../managing-a-pvc/cloning-a-pvc.md | 45 + .../creating-a-pvc-using-a-snapshot.md | 46 + .../managing-a-pvc/creating-a-pvc/_index.md | 17 + .../dynamic-volume-provisioning/_index.md | 113 +++ ...ameters-for-dynamic-volume-provisioning.md | 155 ++++ ...l-dynamic-volume-provisioning-scenarios.md | 310 +++++++ ...ameters-for-dynamic-volume-provisioning.md | 612 +++++++++++++ .../manage-volume-provisioning/_index.md | 98 +++ ...rameters-for-manage-volume-provisioning.md | 184 ++++ ...al-manage-volume-provisioning-scenarios.md | 155 ++++ ...rameters-for-manage-volume-provisioning.md | 243 ++++++ .../static-volume-provisioning/_index.md | 113 +++ ...rameters-for-static-volume-provisioning.md | 179 ++++ ...rameters-for-static-volume-provisioning.md | 96 +++ .../expanding-the-capacity-of-a-pvc.md | 88 ++ content/zh-cn/docs/_index.md | 2 +- .../zh-cn/docs/about-this-document/_index.md | 2 +- .../zh-cn/docs/advanced-features/_index.md | 0 .../configuring-alua/_index.md | 0 .../configuring-alua-using-helm/_index.md | 0 ...eters-for-a-distributed-storage-backend.md | 4 +- ...for-a-huawei-enterprise-storage-backend.md | 8 +- .../_index.md | 4 +- ...g-storage-topology-awareness-using-helm.md | 147 ++++ .../advanced-features/pvc-change/_index.md | 0 .../configuring-pvc-changes/_index.md | 2 +- .../creating-a-pvc-change/_index.md | 2 +- .../creating-a-pvc-change-resource.md | 4 +- .../preparing-a-pvc-change-file.md | 134 +++ .../deleting-a-pvc-change.md | 6 +- .../querying-a-pvc-change.md | 6 +- .../enabling-the-pvc-change-feature/_index.md | 0 ...nabling-the-pvc-change-feature-manually.md | 2 +- ...bling-the-pvc-change-feature-using-helm.md | 78 ++ .../zh-cn/docs/appendix/_index.md | 0 .../docs/appendix/communication-matrix.md | 165 ++++ .../configuring-custom-permissions.md | 6 +- ...iguration-policy-of-distributed-storage.md | 6 +- ...onfiguration-policy-of-oceanstor-dorado.md | 6 +- ...of-oceanstor-v5-and-oceanstor-dorado-v3.md | 6 +- .../huawei-csi-resource-management.md | 213 +++++ .../zh-cn/docs/common-operations/_index.md | 0 .../collecting-information/_index.md | 0 .../collecting-information/collecting-logs.md | 4 +- .../obtaining-the-csi-version.md | 39 + .../viewing-huawei-csi-logs.md | 8 +- ...e-kubernetes-cluster-as-a-non-root-user.md | 0 .../downloading-a-container-image.md | 8 +- ...bling-the-readwriteoncepod-feature-gate.md | 70 ++ .../common-operations/installing-helm-3.md | 0 .../modifying-the-log-output-mode.md | 4 +- ...i-controller-or-huawei-csi-node-service.md | 4 +- .../docs/compatibility-and-features/_index.md | 0 ...ibility-with-huawei-distributed-storage.md | 147 ++++ ...tibility-with-huawei-enterprise-storage.md | 310 +++++++ .../kubernetes-and-os-compatibility.md | 244 ++++++ .../kubernetes-feature-matrix.md | 0 .../installation-and-deployment/_index.md | 0 .../installation-preparations/_index.md | 6 +- ...ing-the-host-multipathing-configuration.md | 12 +- ...hecking-the-images-on-which-csi-depends.md | 161 ++++ ...g-the-status-of-host-dependent-software.md | 0 ...g-user-configurations-on-huawei-storage.md | 105 +++ ...ng-volume-snapshot-dependent-components.md | 4 +- ...loading-the-huawei-csi-software-package.md | 80 ++ .../uploading-a-huawei-csi-image.md | 88 ++ .../installing-huawei-csi/_index.md | 6 +- .../_index.md | 4 +- ...i-csi-on-kubernetes-openshift-and-tanzu.md | 14 +- ...ei-csi-on-the-cce-or-cce-agile-platform.md | 10 +- ...ameters-in-the-values-yaml-file-of-helm.md | 801 ++++++++++++++++++ .../manually-installing-huawei-csi.md | 18 +- .../uninstalling-huawei-csi/_index.md | 2 +- .../manually-uninstalling-huawei-csi.md | 80 ++ .../_index.md | 0 ...alling-csi-dependent-component-services.md | 8 +- ...stalling-huawei-csi-on-cce-or-cce-agile.md | 26 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 40 + .../_index.md | 4 +- .../manual-upgrade-rollback/_index.md | 0 .../rolling-back-huawei-csi-1.md | 8 +- .../upgrading-huawei-csi-0.md | 39 + .../_index.md | 9 + .../rolling-back-huawei-csi/_index.md | 16 + ...ing-back-huawei-csi-on-cce-or-cce-agile.md | 10 +- ...i-csi-on-kubernetes-openshift-and-tanzu.md | 48 ++ .../upgrading-huawei-csi/_index.md | 25 + .../upgrading-from-2-x-or-3-x-to-4-x.md | 31 + ...pgrading-huawei-csi-on-cce-or-cce-agile.md | 16 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 214 +++++ content/zh-cn/docs/overview/_index.md | 26 + .../zh-cn/docs/quick-start/_index.md | 10 +- .../docs/storage-backend-management/_index.md | 2 +- .../_index.md | 16 + ...ing-a-certificate-for-a-storage-backend.md | 4 +- .../deleting-a-storage-backend-certificate.md | 6 +- .../querying-a-storage-backend-certificate.md | 9 + .../updating-a-storage-backend-certificate.md | 8 +- .../description-of-oceanctl-commands.md | 6 +- .../managing-storage-backends/_index.md | 4 +- .../creating-a-storage-backend/_index.md | 10 +- ...onfiguration-files-in-typical-scenarios.md | 12 +- .../storage-backend-parameters.md | 199 +++++ .../deleting-a-storage-backend.md | 2 +- .../querying-a-storage-backend.md | 9 + .../updating-a-storage-backend/_index.md | 13 + .../manually-updating-a-storage-backend.md | 6 +- ...ord-of-a-storage-backend-using-oceanctl.md | 4 +- .../zh-cn/docs/troubleshooting/_index.md | 0 .../_index.md | 0 ...cause-the-psp-permission-is-not-created.md | 2 +- ...ult-port-of-the-livenessprobe-container.md | 2 +- .../changing-the-mount-point-of-a-host.md | 0 .../failed-to-create-an-ephemeral-volume.md | 0 .../huawei-csi-service-issues/_index.md | 0 ...he-status-displayed-as-invalidimagename.md | 80 ++ ...e-var-lib-iscsi-is-not-a-directory-repo.md | 6 +- ...tc-localtime-is-not-a-file-is-displayed.md | 10 +- .../docs/troubleshooting/pod-issues/_index.md | 0 ...-t-exist-is-displayed-in-the-events-log.md | 8 +- ...xecution-of-the-mount-command-times-out.md | 6 +- ...-the-mount-command-fails-to-be-executed.md | 4 +- ...or-a-long-time-when-it-is-being-created.md | 2 +- ...show-that-the-mount-point-already-exist.md | 2 +- ...pod-failover-is-complete-but-the-source.md | 16 +- ...tarted-properly-when-the-kubernetes-pla.md | 2 +- ...-a-volume-directory-is-mounted-to-a-pod.md | 0 ...e-pod-is-in-the-containercreating-state.md | 8 +- .../docs/troubleshooting/pvc-issues/_index.md | 0 ...deleted-the-pvc-is-in-the-pending-state.md | 6 +- ...-capacity-of-a-generic-ephemeral-volume.md | 0 ...acity-exceeds-the-storage-pool-capacity.md | 0 ...created-the-pvc-is-in-the-pending-state.md | 8 +- .../storage-backend-issues/_index.md | 0 ...or-message-context-deadline-exceeded-is.md | 34 + ...ceanctl-tool-is-used-to-manage-backends.md | 107 +++ ...-is-used-to-obtain-storage-backend-info.md | 2 +- .../zh-cn/docs/using-huawei-csi/_index.md | 2 +- .../creating-a-volumesnapshot/_index.md | 0 ...ut-volume-snapshot-dependent-components.md | 9 + .../configuring-a-volumesnapshot.md | 6 +- .../configuring-a-volumesnapshotclass.md | 4 +- .../using-huawei-csi/managing-a-pvc/_index.md | 0 .../managing-a-pvc/cloning-a-pvc.md | 45 + .../creating-a-pvc-using-a-snapshot.md | 46 + .../managing-a-pvc/creating-a-pvc/_index.md | 2 +- .../dynamic-volume-provisioning/_index.md | 116 +++ ...ameters-for-dynamic-volume-provisioning.md | 155 ++++ ...l-dynamic-volume-provisioning-scenarios.md | 310 +++++++ ...ameters-for-dynamic-volume-provisioning.md | 625 ++++++++++++++ .../manage-volume-provisioning/_index.md | 14 +- ...rameters-for-manage-volume-provisioning.md | 184 ++++ ...al-manage-volume-provisioning-scenarios.md | 4 +- ...rameters-for-manage-volume-provisioning.md | 243 ++++++ .../static-volume-provisioning/_index.md | 12 +- ...rameters-for-static-volume-provisioning.md | 2 +- ...rameters-for-static-volume-provisioning.md | 96 +++ .../expanding-the-capacity-of-a-pvc.md | 88 ++ ...04\344\273\266\344\277\241\346\201\257.md" | 9 - ...16\347\253\257\350\257\201\344\271\246.md" | 9 - ...30\345\202\250\345\220\216\347\253\257.md" | 9 - .../_index.md" | 15 - ...347\272\247\345\215\216\344\270\272CSI.md" | 16 - ...350\275\275\345\215\216\344\270\272CSI.md" | 21 - ...350\275\275\345\215\216\344\270\272CSI.md" | 35 - ...32\344\277\241\347\237\251\351\230\265.md" | 146 ---- content/zh-cn/v4.5.0/_index.md | 11 + .../v4.5.0/about-this-document/_index.md | 55 ++ .../zh-cn/v4.5.0/advanced-features/_index.md | 10 + .../configuring-alua/_index.md | 10 + .../configuring-alua-using-helm/_index.md | 9 + ...eters-for-a-distributed-storage-backend.md | 65 ++ ...for-a-huawei-enterprise-storage-backend.md | 178 ++++ .../_index.md | 88 ++ ...g-storage-topology-awareness-using-helm.md | 12 +- .../advanced-features/pvc-change/_index.md | 11 + .../configuring-pvc-changes/_index.md | 51 ++ .../creating-a-pvc-change/_index.md | 13 + .../creating-a-pvc-change-resource.md | 26 + .../preparing-a-pvc-change-file.md | 2 +- .../deleting-a-pvc-change.md | 27 + .../querying-a-pvc-change.md | 158 ++++ .../enabling-the-pvc-change-feature/_index.md | 11 + ...nabling-the-pvc-change-feature-manually.md | 40 + ...bling-the-pvc-change-feature-using-helm.md | 4 +- content/zh-cn/v4.5.0/appendix/_index.md | 13 + .../v4.5.0/appendix/communication-matrix.md | 165 ++++ .../configuring-custom-permissions.md | 328 +++++++ ...iguration-policy-of-distributed-storage.md | 52 ++ ...onfiguration-policy-of-oceanstor-dorado.md | 52 ++ ...of-oceanstor-v5-and-oceanstor-dorado-v3.md | 64 ++ .../huawei-csi-resource-management.md | 10 +- .../zh-cn/v4.5.0/common-operations/_index.md | 14 + .../collecting-information/_index.md | 10 + .../collecting-information/collecting-logs.md | 109 +++ .../obtaining-the-csi-version.md | 0 .../viewing-huawei-csi-logs.md | 87 ++ ...e-kubernetes-cluster-as-a-non-root-user.md | 29 + .../downloading-a-container-image.md | 49 ++ ...bling-the-readwriteoncepod-feature-gate.md | 18 +- .../common-operations/installing-helm-3.md | 47 + .../modifying-the-log-output-mode.md | 82 ++ ...i-controller-or-huawei-csi-node-service.md | 25 + .../compatibility-and-features/_index.md | 13 + ...ibility-with-huawei-distributed-storage.md | 2 +- ...tibility-with-huawei-enterprise-storage.md | 2 +- .../kubernetes-and-os-compatibility.md | 11 +- .../kubernetes-feature-matrix.md | 244 ++++++ .../installation-and-deployment/_index.md | 11 + .../installation-preparations/_index.md | 27 + ...ing-the-host-multipathing-configuration.md | 42 + ...hecking-the-images-on-which-csi-depends.md | 4 +- ...g-the-status-of-host-dependent-software.md | 39 + ...g-user-configurations-on-huawei-storage.md | 4 +- ...ng-volume-snapshot-dependent-components.md | 36 + ...loading-the-huawei-csi-software-package.md | 2 +- .../uploading-a-huawei-csi-image.md | 20 +- .../installing-huawei-csi/_index.md | 20 + .../_index.md | 44 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 175 ++++ ...ei-csi-on-the-cce-or-cce-agile-platform.md | 71 ++ ...ameters-in-the-values-yaml-file-of-helm.md | 15 +- .../manually-installing-huawei-csi.md | 86 ++ .../uninstalling-huawei-csi/_index.md | 14 + .../manually-uninstalling-huawei-csi.md | 12 +- .../_index.md | 10 + ...alling-csi-dependent-component-services.md | 131 +++ ...stalling-huawei-csi-on-cce-or-cce-agile.md | 21 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 35 + .../_index.md | 14 + .../manual-upgrade-rollback/_index.md | 9 + .../rolling-back-huawei-csi-1.md | 24 + .../upgrading-huawei-csi-0.md | 12 +- .../_index.md | 15 + .../rolling-back-huawei-csi/_index.md | 4 +- ...ing-back-huawei-csi-on-cce-or-cce-agile.md | 22 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 4 +- .../upgrading-huawei-csi/_index.md | 4 +- .../upgrading-from-2-x-or-3-x-to-4-x.md | 8 +- ...pgrading-huawei-csi-on-cce-or-cce-agile.md | 16 + ...i-csi-on-kubernetes-openshift-and-tanzu.md | 12 +- .../zh-cn/v4.5.0/overview/_index.md | 0 content/zh-cn/v4.5.0/quick-start/_index.md | 44 + .../_index.md | 2 +- ...ing-a-certificate-for-a-storage-backend.md | 47 + .../deleting-a-storage-backend-certificate.md | 54 ++ .../querying-a-storage-backend-certificate.md | 9 + .../updating-a-storage-backend-certificate.md | 44 + .../storage-backend-management/_index.md | 22 + .../description-of-oceanctl-commands.md | 232 +++++ .../managing-storage-backends/_index.md | 17 + .../creating-a-storage-backend/_index.md | 94 ++ ...onfiguration-files-in-typical-scenarios.md | 277 ++++++ .../storage-backend-parameters.md | 4 +- .../deleting-a-storage-backend.md | 44 + .../querying-a-storage-backend.md | 9 + .../updating-a-storage-backend/_index.md | 4 +- .../manually-updating-a-storage-backend.md | 18 + ...ord-of-a-storage-backend-using-oceanctl.md | 51 ++ .../zh-cn/v4.5.0/troubleshooting/_index.md | 12 + .../_index.md | 17 + ...cause-the-psp-permission-is-not-created.md | 60 ++ ...ult-port-of-the-livenessprobe-container.md | 34 + .../changing-the-mount-point-of-a-host.md | 32 + .../failed-to-create-an-ephemeral-volume.md | 64 ++ .../huawei-csi-service-issues/_index.md | 10 + ...he-status-displayed-as-invalidimagename.md | 12 +- ...e-var-lib-iscsi-is-not-a-directory-repo.md | 49 ++ ...tc-localtime-is-not-a-file-is-displayed.md | 93 ++ .../troubleshooting/pod-issues/_index.md | 16 + ...-t-exist-is-displayed-in-the-events-log.md | 90 ++ ...xecution-of-the-mount-command-times-out.md | 46 + ...-the-mount-command-fails-to-be-executed.md | 20 + ...or-a-long-time-when-it-is-being-created.md | 19 + ...show-that-the-mount-point-already-exist.md | 23 + ...pod-failover-is-complete-but-the-source.md | 180 ++++ ...tarted-properly-when-the-kubernetes-pla.md | 37 + ...-a-volume-directory-is-mounted-to-a-pod.md | 19 + ...e-pod-is-in-the-containercreating-state.md | 35 + .../troubleshooting/pvc-issues/_index.md | 11 + ...deleted-the-pvc-is-in-the-pending-state.md | 76 ++ ...-capacity-of-a-generic-ephemeral-volume.md | 15 + ...acity-exceeds-the-storage-pool-capacity.md | 19 + ...created-the-pvc-is-in-the-pending-state.md | 89 ++ .../storage-backend-issues/_index.md | 10 + ...or-message-context-deadline-exceeded-is.md | 6 +- ...ceanctl-tool-is-used-to-manage-backends.md | 4 +- ...ssword-is-updated-on-the-storage-device.md | 33 + .../zh-cn/v4.5.0/using-huawei-csi/_index.md | 15 + .../creating-a-volumesnapshot/_index.md | 18 + ...ut-volume-snapshot-dependent-components.md | 9 + .../configuring-a-volumesnapshot.md | 103 +++ .../configuring-a-volumesnapshotclass.md | 100 +++ .../using-huawei-csi/managing-a-pvc/_index.md | 20 + .../managing-a-pvc/cloning-a-pvc.md | 4 +- .../creating-a-pvc-using-a-snapshot.md | 4 +- .../managing-a-pvc/creating-a-pvc/_index.md | 17 + .../dynamic-volume-provisioning/_index.md | 8 +- ...ameters-for-dynamic-volume-provisioning.md | 4 +- ...l-dynamic-volume-provisioning-scenarios.md | 22 +- ...ameters-for-dynamic-volume-provisioning.md | 2 +- .../manage-volume-provisioning/_index.md | 98 +++ ...rameters-for-manage-volume-provisioning.md | 4 +- ...al-manage-volume-provisioning-scenarios.md | 155 ++++ ...rameters-for-manage-volume-provisioning.md | 0 .../static-volume-provisioning/_index.md | 113 +++ ...rameters-for-static-volume-provisioning.md | 179 ++++ ...rameters-for-static-volume-provisioning.md | 4 +- .../expanding-the-capacity-of-a-pvc.md | 14 +- hugo.toml | 14 +- 521 files changed, 23641 insertions(+), 883 deletions(-) create mode 100644 content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md rename content/en/docs/storage-backend-management/{optional-adding-a-certificate-to-a-storage-backend => adding-a-certificate-to-a-storage-backend}/creating-a-certificate-for-a-storage-backend.md (100%) rename content/en/docs/storage-backend-management/{optional-adding-a-certificate-to-a-storage-backend => adding-a-certificate-to-a-storage-backend}/deleting-a-storage-backend-certificate.md (100%) rename content/en/docs/storage-backend-management/{optional-adding-a-certificate-to-a-storage-backend => adding-a-certificate-to-a-storage-backend}/querying-a-storage-backend-certificate.md (100%) rename content/en/docs/storage-backend-management/{optional-adding-a-certificate-to-a-storage-backend => adding-a-certificate-to-a-storage-backend}/updating-a-storage-backend-certificate.md (93%) create mode 100644 content/en/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md create mode 100644 content/en/v4.5.0/_index.md create mode 100644 content/en/v4.5.0/about-this-document/_index.md create mode 100644 content/en/v4.5.0/advanced-features/_index.md create mode 100644 content/en/v4.5.0/advanced-features/configuring-alua/_index.md create mode 100644 content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md create mode 100644 content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md create mode 100644 content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md create mode 100644 content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md create mode 100644 content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/_index.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md create mode 100644 content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md create mode 100644 content/en/v4.5.0/appendix/_index.md create mode 100644 content/en/v4.5.0/appendix/communication-matrix.md create mode 100644 content/en/v4.5.0/appendix/configuring-custom-permissions.md create mode 100644 content/en/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md create mode 100644 content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md create mode 100644 content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md create mode 100644 content/en/v4.5.0/appendix/huawei-csi-resource-management.md create mode 100644 content/en/v4.5.0/common-operations/_index.md create mode 100644 content/en/v4.5.0/common-operations/collecting-information/_index.md create mode 100644 content/en/v4.5.0/common-operations/collecting-information/collecting-logs.md create mode 100644 content/en/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md create mode 100644 content/en/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs.md create mode 100644 content/en/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md create mode 100644 content/en/v4.5.0/common-operations/downloading-a-container-image.md create mode 100644 content/en/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md create mode 100644 content/en/v4.5.0/common-operations/installing-helm-3.md create mode 100644 content/en/v4.5.0/common-operations/modifying-the-log-output-mode.md create mode 100644 content/en/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md create mode 100644 content/en/v4.5.0/compatibility-and-features/_index.md create mode 100644 content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md create mode 100644 content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md create mode 100644 content/en/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md create mode 100644 content/en/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md create mode 100644 content/en/v4.5.0/installation-and-deployment/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md create mode 100644 content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md create mode 100644 content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md create mode 100644 content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md create mode 100644 content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md create mode 100644 content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md create mode 100644 content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/en/v4.5.0/overview/_index.md create mode 100644 content/en/v4.5.0/quick-start/_index.md rename content/en/{docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend => v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend}/_index.md (90%) create mode 100644 content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md create mode 100644 content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md create mode 100644 content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md create mode 100644 content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md create mode 100644 content/en/v4.5.0/storage-backend-management/_index.md create mode 100644 content/en/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/_index.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md create mode 100644 content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md create mode 100644 content/en/v4.5.0/troubleshooting/_index.md create mode 100644 content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md create mode 100644 content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md create mode 100644 content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md create mode 100644 content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md create mode 100644 content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md create mode 100644 content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md create mode 100644 content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md create mode 100644 content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md create mode 100644 content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/_index.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md create mode 100644 content/en/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md create mode 100644 content/en/v4.5.0/troubleshooting/pvc-issues/_index.md create mode 100644 content/en/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md create mode 100644 content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md create mode 100644 content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md create mode 100644 content/en/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md create mode 100644 content/en/v4.5.0/troubleshooting/storage-backend-issues/_index.md create mode 100644 content/en/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md rename content/en/{docs => v4.5.0}/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md (97%) create mode 100644 content/en/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md create mode 100644 content/en/v4.5.0/using-huawei-csi/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md create mode 100644 content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md create mode 100644 content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md create mode 100644 content/en/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md rename "content/zh-cn/docs/\345\211\215\350\250\200/_index.md" => content/zh-cn/docs/about-this-document/_index.md (99%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/_index.md" => content/zh-cn/docs/advanced-features/_index.md (100%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/_index.md" => content/zh-cn/docs/advanced-features/configuring-alua/_index.md (100%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/_index.md" => content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md (100%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" => content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md (97%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" => content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md (97%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/_index.md" => content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/_index.md (97%) create mode 100644 content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/_index.md" => content/zh-cn/docs/advanced-features/pvc-change/_index.md (100%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/_index.md" => content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md (97%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/_index.md" => content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md (64%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264\350\265\204\346\272\220.md" => content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md (80%) create mode 100644 content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\240\351\231\244PVC\345\217\230\346\233\264.md" => content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md (80%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\346\237\245\350\257\242PVC\345\217\230\346\233\264.md" => content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md (98%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/_index.md" => content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md (100%) rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\346\211\213\345\212\250\346\226\271\345\274\217\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" => content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md (83%) create mode 100644 content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md rename "content/zh-cn/docs/\351\231\204\345\275\225/_index.md" => content/zh-cn/docs/appendix/_index.md (100%) create mode 100644 content/zh-cn/docs/appendix/communication-matrix.md rename "content/zh-cn/docs/\351\231\204\345\275\225/\351\205\215\347\275\256\350\207\252\345\256\232\344\271\211\346\235\203\351\231\220.md" => content/zh-cn/docs/appendix/configuring-custom-permissions.md (99%) rename "content/zh-cn/docs/\351\231\204\345\275\225/\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" => content/zh-cn/docs/appendix/example-alua-configuration-policy-of-distributed-storage.md (53%) rename "content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-Dorado-ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" => content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md (50%) rename "content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-V5\347\263\273\345\210\227\345\222\214OceanStor-Dorado-V3\347\263\273\345\210\227ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" => content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md (56%) create mode 100644 content/zh-cn/docs/appendix/huawei-csi-resource-management.md rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/_index.md" => content/zh-cn/docs/common-operations/_index.md (100%) rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/_index.md" => content/zh-cn/docs/common-operations/collecting-information/_index.md (100%) rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\346\227\245\345\277\227\346\224\266\351\233\206.md" => content/zh-cn/docs/common-operations/collecting-information/collecting-logs.md (97%) create mode 100644 content/zh-cn/docs/common-operations/collecting-information/obtaining-the-csi-version.md rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\345\246\202\344\275\225\346\237\245\347\234\213\345\215\216\344\270\272CSI\346\227\245\345\277\227.md" => content/zh-cn/docs/common-operations/collecting-information/viewing-huawei-csi-logs.md (90%) rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\351\205\215\347\275\256\351\235\236root\347\224\250\346\210\267\350\256\277\351\227\256Kubernetes\351\233\206\347\276\244.md" => content/zh-cn/docs/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md (100%) rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\270\213\350\275\275\345\256\271\345\231\250\351\225\234\345\203\217.md" => content/zh-cn/docs/common-operations/downloading-a-container-image.md (74%) create mode 100644 content/zh-cn/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\256\211\350\243\205Helm-3.md" => content/zh-cn/docs/common-operations/installing-helm-3.md (100%) rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\256\346\224\271\346\227\245\345\277\227\350\276\223\345\207\272\346\250\241\345\274\217.md" => content/zh-cn/docs/common-operations/modifying-the-log-output-mode.md (94%) rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\346\233\264\346\226\260huawei-csi-controller\346\210\226huawei-csi-node\346\234\215\345\212\241.md" => content/zh-cn/docs/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md (64%) rename "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/_index.md" => content/zh-cn/docs/compatibility-and-features/_index.md (100%) create mode 100644 content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md create mode 100644 content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md create mode 100644 content/zh-cn/docs/compatibility-and-features/kubernetes-and-os-compatibility.md rename "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\347\211\271\346\200\247\347\237\251\351\230\265.md" => content/zh-cn/docs/compatibility-and-features/kubernetes-feature-matrix.md (100%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/_index.md" => content/zh-cn/docs/installation-and-deployment/_index.md (100%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/_index.md" => content/zh-cn/docs/installation-and-deployment/installation-preparations/_index.md (74%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\345\244\232\350\267\257\345\276\204\351\205\215\347\275\256.md" => content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md (84%) create mode 100644 content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\344\276\235\350\265\226\350\275\257\344\273\266\347\212\266\346\200\201.md" => content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md (100%) create mode 100644 content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266.md" => content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md (79%) create mode 100644 content/zh-cn/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md create mode 100644 content/zh-cn/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/_index.md (69%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md (93%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" => content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md (79%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\271\263\345\217\260\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" => content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md (84%) create mode 100644 content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" => content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md (56%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md (88%) create mode 100644 content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md (100%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/\345\215\270\350\275\275CSI\344\276\235\350\265\226\347\273\204\344\273\266\346\234\215\345\212\241.md" => content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md (94%) create mode 100644 content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md create mode 100644 content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md (59%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/_index.md" => content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md (100%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\233\236\351\200\200\345\215\216\344\270\272CSI-1.md" => content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md (57%) create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" => content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md (53%) create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md create mode 100644 content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/zh-cn/docs/overview/_index.md rename "content/zh-cn/docs/\345\277\253\351\200\237\345\274\200\345\247\213/_index.md" => content/zh-cn/docs/quick-start/_index.md (75%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/_index.md" => content/zh-cn/docs/storage-backend-management/_index.md (94%) create mode 100644 content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\233\345\273\272\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257.md" => content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md (95%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" => content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md (91%) create mode 100644 content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" => content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md (79%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/oceanctl\345\221\275\344\273\244\350\257\264\346\230\216.md" => content/zh-cn/docs/storage-backend-management/description-of-oceanctl-commands.md (94%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" => content/zh-cn/docs/storage-backend-management/managing-storage-backends/_index.md (51%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" => content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md (87%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\205\270\345\236\213\345\234\272\346\231\257\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" => content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md (91%) create mode 100644 content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257.md" => content/zh-cn/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md (94%) create mode 100644 content/zh-cn/docs/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md create mode 100644 content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/\346\211\213\345\212\250\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257.md" => content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md (55%) rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/oceanctl\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\345\257\206\347\240\201.md" => content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md (93%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/_index.md" => content/zh-cn/docs/troubleshooting/_index.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/_index.md" => content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\346\234\252\345\210\233\345\273\272PSP\346\235\203\351\231\220\345\257\274\350\207\264Pod\346\227\240\346\263\225\345\210\233\345\273\272.md" => content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md (95%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271livenessprobe\345\256\271\345\231\250\347\232\204\351\273\230\350\256\244\347\253\257\345\217\243.md" => content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md (86%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271\344\270\273\346\234\272\346\214\202\350\275\275\347\202\271.md" => content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\345\210\233\345\273\272\344\270\264\346\227\266\345\215\267\345\244\261\350\264\245.md" => content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" => content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/_index.md (100%) create mode 100644 content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi-node\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257\344\270\272-var-lib-iscsi-is-not-a-directory.md" => content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md (85%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250\345\215\216\344\270\272CSI\346\234\215\345\212\241\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257-etc-localtime-is-not-a-file.md" => content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md (84%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" => content/zh-cn/docs/troubleshooting/pod-issues/_index.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-Events\346\227\245\345\277\227\346\230\276\347\244\272-publishInfo-doesn-t-exist.md" => content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md (94%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\350\266\205\346\227\266.md" => content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md (88%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\345\244\261\350\264\245.md" => content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md (66%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\351\225\277\346\227\266\351\227\264\345\244\204\344\272\216ContainerCreating\347\212\266\346\200\201.md" => content/zh-cn/docs/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md (66%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245\346\210\226\351\207\215\345\220\257kubelet\345\220\216-\346\227\245\345\277\227\346\230\276\347\244\272\346\214\202\350\275\275\347\202\271\345\267\262\345\255\230\345\234\250.md" => content/zh-cn/docs/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md (74%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\351\233\206\347\276\244\344\270\255worker\350\212\202\347\202\271\345\256\225\346\234\272\345\271\266\346\201\242\345\244\215\345\220\216-Pod\345\256\214\346\210\220failover-\344\275\206\346\230\257Pod\346\211\200\345\234\250\346\272\220\344\270\273\346\234\272\345\207\272\347\216\260\347\233\230\347\254\246\346\256\213\347\225\231.md" => content/zh-cn/docs/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md (92%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Kubernetes\345\271\263\345\217\260\347\254\254\344\270\200\346\254\241\346\220\255\345\273\272\346\227\266-iscsi_tcp\346\234\215\345\212\241\346\262\241\346\234\211\346\255\243\345\270\270\345\220\257\345\212\250-\345\257\274\350\207\264\345\210\233\345\273\272Pod\345\244\261\350\264\245.md" => content/zh-cn/docs/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md (97%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Pod\346\214\202\350\275\275\345\215\267\347\233\256\345\275\225\346\217\220\347\244\272I-O-error.md" => content/zh-cn/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\344\270\272ContainerCreating.md" => content/zh-cn/docs/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md (70%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" => content/zh-cn/docs/troubleshooting/pvc-issues/_index.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\240\351\231\244PVC\345\211\215-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" => content/zh-cn/docs/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md (96%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\351\200\232\347\224\250\344\270\264\346\227\266\345\215\267\346\211\251\345\256\271\345\244\261\350\264\245.md" => content/zh-cn/docs/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/PVC\346\211\251\345\256\271\347\232\204\347\233\256\346\240\207\345\256\271\351\207\217\350\266\205\350\277\207\345\255\230\345\202\250\346\261\240\345\256\271\351\207\217\345\257\274\350\207\264\346\211\251\345\256\271\345\244\261\350\264\245.md" => content/zh-cn/docs/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md (100%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272PVC\346\227\266-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" => content/zh-cn/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md (88%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" => content/zh-cn/docs/troubleshooting/storage-backend-issues/_index.md (100%) create mode 100644 content/zh-cn/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md create mode 100644 content/zh-cn/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\345\255\230\345\202\250\344\276\247\346\233\264\346\226\260\345\257\206\347\240\201\345\220\216\350\264\246\346\210\267\350\242\253\351\224\201\345\256\232.md" => content/zh-cn/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md (93%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/docs/using-huawei-csi/_index.md (90%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/_index.md" => content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/_index.md (100%) create mode 100644 content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshot.md" => content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md (88%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshotClass.md" => content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md (91%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/_index.md" => content/zh-cn/docs/using-huawei-csi/managing-a-pvc/_index.md (100%) create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/_index.md" => content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md (69%) create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/_index.md" => content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md (73%) create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" => content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md (97%) create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" => content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md (83%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PV\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md (96%) create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md create mode 100644 content/zh-cn/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md delete mode 100644 "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266\344\277\241\346\201\257.md" delete mode 100644 "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" delete mode 100644 "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257.md" delete mode 100644 "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" delete mode 100644 "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" delete mode 100644 "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" delete mode 100644 "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" delete mode 100644 "content/zh-cn/docs/\351\231\204\345\275\225/\351\200\232\344\277\241\347\237\251\351\230\265.md" create mode 100644 content/zh-cn/v4.5.0/_index.md create mode 100644 content/zh-cn/v4.5.0/about-this-document/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/configuring-alua/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/\351\200\232\350\277\207Helm\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245.md" => content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md (92%) create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\207\206\345\244\207PVC\345\217\230\346\233\264\346\226\207\344\273\266.md" => content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md (99%) create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md create mode 100644 content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md rename "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\344\275\277\347\224\250Helm\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" => content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md (91%) create mode 100644 content/zh-cn/v4.5.0/appendix/_index.md create mode 100644 content/zh-cn/v4.5.0/appendix/communication-matrix.md create mode 100644 content/zh-cn/v4.5.0/appendix/configuring-custom-permissions.md create mode 100644 content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md create mode 100644 content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md create mode 100644 content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md rename "content/zh-cn/docs/\351\231\204\345\275\225/\345\215\216\344\270\272CSI\350\265\204\346\272\220\347\256\241\347\220\206.md" => content/zh-cn/v4.5.0/appendix/huawei-csi-resource-management.md (94%) create mode 100644 content/zh-cn/v4.5.0/common-operations/_index.md create mode 100644 content/zh-cn/v4.5.0/common-operations/collecting-information/_index.md create mode 100644 content/zh-cn/v4.5.0/common-operations/collecting-information/collecting-logs.md rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\345\246\202\344\275\225\350\216\267\345\217\226CSI\347\211\210\346\234\254\344\277\241\346\201\257.md" => content/zh-cn/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md (100%) create mode 100644 content/zh-cn/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs.md create mode 100644 content/zh-cn/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md create mode 100644 content/zh-cn/v4.5.0/common-operations/downloading-a-container-image.md rename "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\274\200\345\220\257ReadWriteOncePod\345\212\237\350\203\275\351\227\250.md" => content/zh-cn/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md (83%) create mode 100644 content/zh-cn/v4.5.0/common-operations/installing-helm-3.md create mode 100644 content/zh-cn/v4.5.0/common-operations/modifying-the-log-output-mode.md create mode 100644 content/zh-cn/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md create mode 100644 content/zh-cn/v4.5.0/compatibility-and-features/_index.md rename "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" => content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md (98%) rename "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" => content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md (99%) rename "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\345\217\212\346\223\215\344\275\234\347\263\273\347\273\237\345\205\274\345\256\271\346\200\247.md" => content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md (98%) create mode 100644 content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245CSI\344\276\235\350\265\226\347\232\204\351\225\234\345\203\217.md" => content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md (99%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\216\344\270\272\345\255\230\345\202\250\344\270\212\347\232\204\347\224\250\346\210\267\351\205\215\347\275\256.md" => content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md (98%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\213\350\275\275\345\215\216\344\270\272CSI\350\275\257\344\273\266\345\214\205.md" => content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md (99%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\212\344\274\240\345\215\216\344\270\272CSI\351\225\234\345\203\217.md" => content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md (67%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Helm-values-yaml\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md (98%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" => content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md (71%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\215\207\347\272\247\345\215\216\344\270\272CSI-0.md" => content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md (65%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md (64%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" => content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md (87%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/_index.md" => content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md (70%) rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/\344\273\2162-x\346\210\2263-x\345\215\207\347\272\247\350\207\2634-x\347\211\210\346\234\254.md" => content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md (75%) create mode 100644 content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md rename "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" => content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md (92%) rename "content/zh-cn/docs/\346\246\202\350\277\260/_index.md" => content/zh-cn/v4.5.0/overview/_index.md (100%) create mode 100644 content/zh-cn/v4.5.0/quick-start/_index.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/_index.md" => content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md (87%) create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/_index.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/_index.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\351\241\271\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md (98%) create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md rename "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" => content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md (64%) create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md create mode 100644 content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/_index.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi\346\234\215\345\212\241\346\227\266-\346\234\215\345\212\241\345\220\257\345\212\250\345\274\202\345\270\270-\347\212\266\346\200\201\346\230\276\347\244\272InvalidImageName.md" => content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md (87%) create mode 100644 content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/_index.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pvc-issues/_index.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md create mode 100644 content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/_index.md rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\345\210\233\345\273\272\345\220\216\347\253\257\345\244\261\350\264\245-\346\212\245\351\224\231-context-deadline-exceeded.md" => content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md (95%) rename "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\347\256\241\347\220\206\345\220\216\347\253\257\346\227\266\350\260\203\347\224\250webhook\345\244\261\350\264\245.md" => content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md (92%) create mode 100644 content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/_index.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\205\213\351\232\206PVC.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md (69%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\344\273\216\345\277\253\347\205\247\345\210\233\345\273\272PVC.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md (70%) create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md (82%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md (93%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md (91%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md (99%) create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md (94%) create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md (100%) create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md create mode 100644 content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md (87%) rename "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\346\211\251\345\256\271PVC.md" => content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md (67%) diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md index 8f4613a..f7bb3af 100644 --- a/content/en/docs/_index.md +++ b/content/en/docs/_index.md @@ -7,6 +7,6 @@ weight: 20 You can get the PDF version of the user guide from the following link: - + PDF Download diff --git a/content/en/docs/about-this-document/_index.md b/content/en/docs/about-this-document/_index.md index 2730b90..008bbc1 100644 --- a/content/en/docs/about-this-document/_index.md +++ b/content/en/docs/about-this-document/_index.md @@ -1,7 +1,7 @@ --- title: "About This Document" linkTitle: "About This Document" -description: +description: weight: 1 --- diff --git a/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md b/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md index a6e0926..59e78d0 100644 --- a/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md +++ b/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md @@ -9,7 +9,7 @@ For details about how to configure ALUA for Huawei distributed storage, see the The ALUA configuration may vary according to the OS. Visit [Huawei Technical Support](https://support.huawei.com/enterprise/en/index.html), enter **Host Connectivity Guide** in the search box, and click the search button. In the search result, select the host connectivity guide for the desired OS. Configure ALUA according to the actual situation and the description in the guide. Huawei CSI will apply the configuration items you set to the initiator of the host on Huawei storage. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >A node with a Pod provisioned does not proactively change ALUA information. The host ALUA configuration changes only after a Pod is provisioned again to the node. >In non-HyperMetro scenarios of distributed storage, you are advised to set the switchover mode to "disable ALUA" \(default value\). This is because the storage system is in active/active mode and "enables ALUA" is meaningless. Therefore, you are advised not to configure ALUA parameters for distributed storage. diff --git a/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md b/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md index d889194..72af466 100644 --- a/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md +++ b/content/en/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md @@ -9,7 +9,7 @@ For details about how to configure ALUA for Huawei enterprise storage, see the h The ALUA configuration may vary according to the OS. Visit [Huawei Technical Support](https://support.huawei.com/enterprise/en/index.html), enter **Host Connectivity Guide** in the search box, and click the search button. In the search result, select the host connectivity guide for the desired OS. Configure ALUA according to the actual situation and the description in the guide. Huawei CSI will apply the configuration items you set to the initiator of the host on Huawei storage. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >A node with a Pod provisioned does not proactively change ALUA information. The host ALUA configuration changes only after a Pod is provisioned again to the node. ## ALUA Parameters for OceanStor V5 and OceanStor Dorado V3 Series{#section16218353201717} @@ -102,7 +102,7 @@ parameters: [Table 2](#en-us_topic_0000001352783505_en-us_topic_0000001198982584_table7143850202411) lists the ALUA parameters supported by Huawei CSI for OceanStor and OceanStor Dorado series. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >By default, the initiator host access mode of OceanStor and OceanStor Dorado series storage is "balanced mode". Therefore, you are advised not to configure ALUA parameters for OceanStor and OceanStor Dorado series storage. **Table 2** ALUA parameters for OceanStor and OceanStor Dorado series diff --git a/content/en/docs/advanced-features/configuring-storage-topology-awareness/_index.md b/content/en/docs/advanced-features/configuring-storage-topology-awareness/_index.md index 9f6b454..c24986d 100644 --- a/content/en/docs/advanced-features/configuring-storage-topology-awareness/_index.md +++ b/content/en/docs/advanced-features/configuring-storage-topology-awareness/_index.md @@ -63,7 +63,7 @@ You need to configure topology labels on worker nodes in the cluster. The method - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- A topology label must start with **topology.kubernetes.io**. Topology label examples: > - Example 1: **topology.kubernetes.io/region=China-west** > - Example 2: **topology.kubernetes.io/zone=ChengDu** diff --git a/content/en/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md b/content/en/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md index d389c84..bc00b95 100644 --- a/content/en/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md +++ b/content/en/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md @@ -15,7 +15,7 @@ weight: 1 cp backend.yaml backend.yaml.bak ``` -4. Run the **vi **_backend.yaml_ command to open the file and configure topology awareness as required. The following is an example. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. +4. Run the **vi backend.yaml** command to open the file and configure topology awareness as required. The following is an example. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. ```yaml storage: "oceanstor-san" @@ -130,7 +130,7 @@ weight: 1

value:

-

If key is topology.kubernetes.io/zone or topology.kubernetes.io/region, value must be the same as the topology label set in the prerequisites.

+

If key is topology.kubernetes.io/zone or topology.kubernetes.io/region, value must be the same as the topology label set in the prerequisites.

If key is topology.kubernetes.io/protocol.<protocol>, value is fixed at csi.huawei.com.

diff --git a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md index 6848d1b..329335e 100644 --- a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md +++ b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md @@ -41,7 +41,7 @@ The PVC change feature is implemented using CRD. Related resources are described ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- VolumeModifyClaim resources can be created, deleted, and queried, but cannot be updated. >- VolumeModifyContent resources can only be queried and are used to display the change details of a single PVC. Do not manually create, delete, or modify the resources. >- VolumeModifyContent resources are managed by VolumeModifyClaim. Do not manually manage VolumeModifyContent resources. diff --git a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md index 88ebe68..a9ca445 100644 --- a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md +++ b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md @@ -7,7 +7,7 @@ weight: 2 This section describes how to create a PVC change resource based on a configured PVC change file. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- Only the HyperMetro active-active \(AA\) mode is supported. >- When a common volume is changed to a HyperMetro volume, only the storage volume at the primary site can be changed. >- Do not use Huawei CSI to manage a PVC during PVC change resource creation. diff --git a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md index e9a6426..e48f07a 100644 --- a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md +++ b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md @@ -55,6 +55,7 @@ The sample template of the PVC change file is **/examples/volumemodifyclaim.yam

-

The name must comply with the naming rules of a DNS subdomain name. The value can contain a maximum of 63 characters, including digits, lowercase letters, hyphens (-), and periods (.). It must start and end with a lowercase letter or digit.

+

Note: During a PVC change, the original StorageClass is backed up. The name of the backup StorageClass is <Original StorageClass name><VolumeModifyClaim name>, and must comply with the StorageClass naming rules.

spec.source.kind

@@ -108,7 +109,7 @@ The sample template of the PVC change file is **/examples/volumemodifyclaim.yam ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- The **spec.source.kind** and **spec.source.name** parameters are used to specify the volume change scope. For example, if they are set to a StorageClass and the corresponding name respectively, all PVCs in the **Bound** state provisioned using the target StorageClass will be changed. >- After all associated PVCs are changed, Huawei CSI will replace the original StorageClass and add the **spec.parameters** parameter of the VolumeModifyClaim so that the PVCs meet the StorageClass definition. diff --git a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md index 669e5dd..7f1f575 100644 --- a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md +++ b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md @@ -5,7 +5,7 @@ description: weight: 3 --- ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- If **STATUS** of a VolumeModifyClaim is **Creating**, deleting the VolumeModifyClaim resource will delete the created resource on the storage side and then remove the cluster resource. After the deletion, if you continue to use the original StorageClass for PVC management, you need to restore the associated storage backend to a non-HyperMetro storage backend. >- If **STATUS** of a VolumeModifyClaim is **Pending** or **Completed**, deleting the VolumeModifyClaim resource will only remove the cluster resource and will not delete the created resource on the storage side \(that is, there is not interaction with the storage side\). >- VolumeModifyContent resources are managed by VolumeModifyClaim. Do not manually manage VolumeModifyContent resources. diff --git a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md index ba2b0a1..bd275a5 100644 --- a/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md +++ b/content/en/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md @@ -78,7 +78,7 @@ To query a VolumeModifyClaim using kubectl, perform the following steps. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >You can use kubectl to view the **Events** information of a VolumeModifyClaim. If a VolumeModifyClaim cannot meet the creation requirements or an error occurs during the creation, the server will record the **Events** information. The following command is used as an example: >``` >kubectl describe volumemodifyclaims local-to-hypermetro @@ -150,7 +150,7 @@ A VolumeModifyContent is created using a VolumeModifyClaim and records the chang ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >You can use kubectl to view the **Events** information of a VolumeModifyContent. If a VolumeModifyContent cannot meet the creation requirements or an error occurs during the PVC change, the server will record the **Events** information. The following command is used as an example: >``` >kubectl describe volumemodifycontents myvmc-uid diff --git a/content/en/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md b/content/en/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md index 64aabfd..dfe1356 100644 --- a/content/en/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md +++ b/content/en/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md @@ -8,7 +8,7 @@ weight: 1 ## Prerequisites{#section10631153612202} - You have installed Huawei CSI using Helm. -- Huawei CSI v4.5.0 or later is used. +- Huawei CSI v4.6.0 or later is used. ## Procedure{#section1361061612118} @@ -39,7 +39,7 @@ weight: 1 customresourcedefinition.apiextensions.k8s.io/volumemodifycontents.xuanwu.huawei.io configured ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If the command output contains **Warning: resource customresourcedefinitions/volumemodifycontents.xuanwu.huawei.io is missing the kubectl.kubernetes.io/last-applied-configuration...**, you can ignore it. This message is displayed because the **kubectl create** command instead of the **kubectl apply** command is used for installation by Helm. 4. Run the following command to obtain the original service configuration file. diff --git a/content/en/docs/appendix/communication-matrix.md b/content/en/docs/appendix/communication-matrix.md index c3c9eb7..065e1bf 100644 --- a/content/en/docs/appendix/communication-matrix.md +++ b/content/en/docs/appendix/communication-matrix.md @@ -153,8 +153,10 @@ weight: 4

Enable some source ports.

-   -   +

-

+ +

-

+

For details about how to change the webhook port, see the CSI user guide.

diff --git a/content/en/docs/appendix/configuring-custom-permissions.md b/content/en/docs/appendix/configuring-custom-permissions.md index b6e2666..66df4a8 100644 --- a/content/en/docs/appendix/configuring-custom-permissions.md +++ b/content/en/docs/appendix/configuring-custom-permissions.md @@ -12,7 +12,7 @@ For different storage resources, refer to the following configurations: - For NAS resources, configure the minimum permissions by referring to [Table 1](#table66121923174916). - For SAN resources, configure the minimum permissions by referring to [Table 2](#table51362243359). ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >For details about how to configure permissions for user-defined roles, see [OceanStor Dorado 6000, Dorado 18000 Series Product Documentation](https://support.huawei.com/hedex/hdx.do?docid=EDOC1100214756&id=EN-US_TOPIC_0000001640708705&lang=en). **Table 1** Minimum permissions for NAS resources diff --git a/content/en/docs/appendix/huawei-csi-resource-management.md b/content/en/docs/appendix/huawei-csi-resource-management.md index e9ca9d2..add8d87 100644 --- a/content/en/docs/appendix/huawei-csi-resource-management.md +++ b/content/en/docs/appendix/huawei-csi-resource-management.md @@ -184,7 +184,7 @@ If you need to modify the resource requests and limits of a container, perform t - If the Pod name is **huawei-csi-controller**, modify the **huawei-csi-controller.yaml** file. - If the Pod name is **huawei-csi-node**, modify the **huawei-csi-node.yaml** file. - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >For details about Pod names, see [Table 1](#table4106151116363). For example, to modify the resource request of the **huawei-csi-driver** container in the Pod named **huawei-csi-node**, run the following command to edit the configuration file and find the container whose **spec.template.spec.containes.name** is **huawei-csi-driver**. Modify resource requests and limits as required. diff --git a/content/en/docs/common-operations/collecting-information/collecting-logs.md b/content/en/docs/common-operations/collecting-information/collecting-logs.md index c1bd57d..2c1ccd9 100644 --- a/content/en/docs/common-operations/collecting-information/collecting-logs.md +++ b/content/en/docs/common-operations/collecting-information/collecting-logs.md @@ -8,7 +8,7 @@ weight: 3 ## Performing Check Before Collection{#section298992810393} 1. Use a remote access tool, such as PuTTY, to log in to the node where the oceanctl tool is installed in the Kubernetes cluster through the management IP address. -2. Run the following command. The displayed version is **v4.5.0**. +2. Run the following command. The displayed version is **v4.6.0**. ``` oceanctl version @@ -17,7 +17,7 @@ weight: 3 The following is an example of the command output. ```yaml - Oceanctl Version: v4.5.0 + Oceanctl Version: v4.6.0 ``` 3. Run the **oceanctl collect logs --help** command. The following information is displayed. diff --git a/content/en/docs/common-operations/collecting-information/obtaining-the-csi-version.md b/content/en/docs/common-operations/collecting-information/obtaining-the-csi-version.md index afd77e4..36c816d 100644 --- a/content/en/docs/common-operations/collecting-information/obtaining-the-csi-version.md +++ b/content/en/docs/common-operations/collecting-information/obtaining-the-csi-version.md @@ -34,6 +34,6 @@ This section describes how to view the CSI version. The version information is displayed as follows: ``` - 4.5.0 + 4.6.0 ``` diff --git a/content/en/docs/common-operations/collecting-information/viewing-huawei-csi-logs.md b/content/en/docs/common-operations/collecting-information/viewing-huawei-csi-logs.md index 33a4074..f4971c0 100644 --- a/content/en/docs/common-operations/collecting-information/viewing-huawei-csi-logs.md +++ b/content/en/docs/common-operations/collecting-information/viewing-huawei-csi-logs.md @@ -42,7 +42,7 @@ weight: 2 6. Run the following command to view the standard output logs of the container. ``` - vi huawei-csi-controller-_huawei-csi_huawei-csi-driver-.log + vi huawei-csi-controller-_huawei-csi_huawei-csi-driver-.log ``` ## Viewing Logs of the huawei-csi-node Service{#en-us_topic_0000001191906803_section66851055357} @@ -82,6 +82,6 @@ weight: 2 6. Run the following command to view the standard output logs of the container. ``` - vi huawei-csi-node-_huawei-csi_huawei-csi-driver-.log + vi huawei-csi-node-_huawei-csi_huawei-csi-driver-.log ``` diff --git a/content/en/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md b/content/en/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md index 4f41cb4..7d005f5 100644 --- a/content/en/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md +++ b/content/en/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md @@ -7,10 +7,10 @@ weight: 6 The ReadWriteOnce access mode is the fourth access mode introduced by Kubernetes v1.22 for PVs and PVCs. If you create a Pod using a PVC in ReadWriteOncePod access mode, Kubernetes ensures that the Pod is the only Pod in the cluster that can read or write the PVC. -The ReadWriteOncePod access mode is an alpha feature in Kubernetes v1.22/1.23/1.24. Therefore, you need to enable the ReadWriteOncePod feature in **feature-gates** of kube-apiserver, kube-scheduler, and kubelet before using the access mode. +If the Kubernetes version is earlier than v1.29, you need to enable the ReadWriteOncePod feature in feature-gates of kube-apiserver, kube-scheduler, and kubelet. ->![](/css-docs/public_sys-resources/en/icon-note.gif) ->Currently, the CCE or CCE Agile platform does not support the ReadWriteOncePod feature gate. +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>Currently, the ReadWriteOncePod feature gate cannot be enabled on the CCE or CCE Agile platform. ## Procedure{#en-us_topic_0000001259843616_section137882216292} @@ -28,7 +28,7 @@ The ReadWriteOncePod access mode is an alpha feature in Kubernetes v1.22/1.23/1. ... ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >After the editing is complete, Kubernetes will automatically apply the updates. 2. Enable the ReadWriteOncePod feature gate for kube-scheduler. @@ -45,12 +45,12 @@ The ReadWriteOncePod access mode is an alpha feature in Kubernetes v1.22/1.23/1. ... ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >After the editing is complete, Kubernetes will automatically apply the updates. 3. Enable the ReadWriteOncePod feature gate for kubelet. - >![](/css-docs/public_sys-resources/en/icon-notice.gif) + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >The dynamic Kubelet configuration function is not used since v1.22 and deleted in v1.24. Therefore, you need to perform the following operations on kubelet on each worker node in the cluster. 1. Use a remote access tool, such as PuTTY, to log in to any worker node in the Kubernetes cluster through the management IP address. @@ -63,7 +63,7 @@ The ReadWriteOncePod access mode is an alpha feature in Kubernetes v1.22/1.23/1. ... ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >The default path of the kubelet configuration file is **/var/lib/kubelet/config.yaml**. Enter the path based on site requirements. 3. After the configuration is complete, run the **systemctl restart kubelet** command to restart kubelet. diff --git a/content/en/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md b/content/en/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md index c047e4a..7bb696e 100644 --- a/content/en/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md +++ b/content/en/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md @@ -7,6 +7,8 @@ weight: 4 Huawei CSI plug-in is compatible with Huawei OceanStor series distributed storage systems. The following table lists the supported storage versions. +## Supported Huawei Distributed Storage{#section723118313717} + **Table 1** Supported Huawei distributed storage @@ -29,6 +31,8 @@ Huawei CSI plug-in is compatible with Huawei OceanStor series distributed storag +## Features Supported by Huawei Distributed Storage{#section14115311203711} + Huawei CSI plug-in supports the following features for Huawei distributed storage. **Table 2** Features supported by Huawei distributed storage and constraints @@ -137,7 +141,7 @@ Huawei CSI plug-in supports the following features for Huawei distributed storag - Note 1: Manage Provisioning is a volume management feature customized by Huawei CSI. This feature allows existing storage resources to be managed by Kubernetes. You are not allowed to manage a storage resource for multiple times and concurrently delete or create a storage resource. -- Note 2: Only OceanStor Pacific series 8.1.2 and later versions support DPC. For details about whether the [OSs supported by Huawei CSI](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818) support DPC, see the compatibility document of the corresponding product version. -- Note 3: Only OceanStor Pacific series 8.1.2 and later versions support NFS 4.1. +- Note 2: Only OceanStor Pacific series 8.1.2 and later versions support DPC. When DPC is used, the OS must meet the requirements for the [OSs supported by Huawei CSI](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818) and the DPC basic connectivity requirements of OceanStor Pacific series. +- Note 3: Only OceanStor Pacific series 8.1.2 and later versions support NFS 4.1. OceanStor Pacific series 8.2.0 and later versions support NFS over RDMA. When NFS over RDMA is used, only NFS 3 is supported. - Note 4: The provisioned PVC whose **volumeType** is **lun** and **accessModes** is **ReadOnlyMany** does not support capacity expansion. diff --git a/content/en/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md b/content/en/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md index 410fa72..736edbc 100644 --- a/content/en/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md +++ b/content/en/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md @@ -7,6 +7,8 @@ weight: 3 Huawei CSI plug-in is compatible with Huawei OceanStor series all-flash storage and hybrid flash storage. The following table lists the supported storage versions. +## Supported Huawei Enterprise Storage{#section6374917361} + **Table 1** Supported Huawei enterprise storage @@ -28,17 +30,19 @@ Huawei CSI plug-in is compatible with Huawei OceanStor series all-flash storage

OceanStor

-

6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8, V700R001C00

OceanStor Dorado

-

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8, V700R001C00

+## Features Supported by Huawei Enterprise Storage{#section0652122673620} + Huawei CSI plug-in supports the following features for Huawei enterprise storage. **Table 2** Features supported by Huawei enterprise storage and constraints @@ -66,11 +70,11 @@ Huawei CSI plug-in supports the following features for Huawei enterprise storage

SAN: FC/iSCSI/NVMe over RoCE/NVMe over FC3

-

NAS: NFS 3/4.0/4.1

+

NAS: NFS 3/4.0/4.1/4.24

SAN: FC/iSCSI/NVMe over RoCE/NVMe over FC3

-

NAS: NFS 3/4.0/4.14

+

NAS: NFS 3/4.0/4.1/4.24

@@ -207,11 +211,11 @@ Huawei CSI plug-in supports the following features for Huawei enterprise storage - Note 1: Manage Provisioning is a volume management feature customized by Huawei CSI. This feature allows existing storage resources to be managed by Kubernetes. You are not allowed to manage a storage resource for multiple times and concurrently delete or create a storage resource. - Note 2: If the user's container platform is deployed in a virtualization environment, only iSCSI networking is supported. - Note 3: If NVMe over RoCE or NVMe over FC is used, the version of the nvme-cli tool on worker nodes must be 1.9 or later. To query the version, run the **nvme version** command. -- Note 4: Only OceanStor Dorado 6.1.0 and later versions support NFS. Only OceanStor Dorado 6.1.3 and later versions support NFS 4.1. OceanStor Dorado 6.1.7 and later versions support NFS over RDMA. +- Note 4: Only OceanStor/OceanStor Dorado 6.1.0 and later versions support NFS. Only OceanStor/OceanStor Dorado 6.1.3 and later versions support NFS 4.1. OceanStor/OceanStor Dorado 6.1.7 and later versions support NFS over RDMA. OceanStor/OceanStor Dorado 6.1.8 and later versions support NFS 4.2. - Note 5: The provisioned PVC whose **volumeType** is **lun** and **accessModes** is **ReadOnlyMany** does not support capacity expansion. - Note 6: Only system users can configure QoS. - Note 7: Only the active-active \(AA\) mode is supported. -- Note 8: Only OceanStor Dorado 6.1.3 and later versions support multi-tenant. +- Note 8: Only OceanStor/OceanStor Dorado 6.1.3 and later versions support multi-tenant. Huawei CSI plug-in supports the following Dtree features for Huawei enterprise storage. @@ -298,7 +302,7 @@ Huawei CSI plug-in supports the following Dtree features for Huawei enterprise s

OceanStor Dorado

-

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8, V700R001C00

diff --git a/content/en/docs/compatibility-and-features/kubernetes-and-os-compatibility.md b/content/en/docs/compatibility-and-features/kubernetes-and-os-compatibility.md index b798928..0ea685b 100644 --- a/content/en/docs/compatibility-and-features/kubernetes-and-os-compatibility.md +++ b/content/en/docs/compatibility-and-features/kubernetes-and-os-compatibility.md @@ -18,15 +18,15 @@ Huawei CSI plug-in supports the following container management platforms.

Kubernetes

-

1.16 to 1.30

+

1.16 to 1.31

Red Hat OpenShift Container Platform

-

4.6 EUS, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15

+

4.6 EUS, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15, 4.16, 4.17

-

Tanzu Kubernetes

+

Tanzu Kubernetes Grid Integrated

TKGI 1.14.1, TKGI 1.15, TKGI 1.16, TKGI 1.17, TKGI 1.18

@@ -44,7 +44,7 @@ Huawei CSI plug-in supports the following container management platforms. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- The connection between Huawei CSI and Tanzu Kubernetes supports only the centralized storage NAS scenario. For the related FAQ, see [Common Problems and Solutions for Interconnecting with the Tanzu Kubernetes Cluster](/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster). >- The connection between Huawei CSI and CCE or CCE Agile supports only centralized storage. @@ -112,7 +112,7 @@ The following table lists the OSs and multipathing software supported by the Hua

Red Hat CoreOS x86_64

-

4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15

+

4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15, 4.16, 4.17

Delivered with the OS, supporting FC/iSCSI

@@ -218,9 +218,9 @@ The following table lists the OSs and multipathing software supported by the Hua

Not supported

-

Red Hat Enterprise Linux x86_64

+

Red Hat Enterprise Linux x86_64

-

8.6, 8.7, 8.8, 9.4

+

8.6, 8.7, 8.8, 8.9, 8.10, 9.4

Delivered with the OS, supporting FC/iSCSI

@@ -236,7 +236,7 @@ Note 2: Only Kylin ARM V10 SP3 supports UltraPath 31.3.0. Note 3: Anolis OS supports only OceanStor Pacific storage. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >For DM-Multipath 0.7, some virtual devices may not be displayed in the command output after the **multipathd show maps** command is executed. Therefore, you are advised to use version 0.8 or later. >You can query the DM-Multipath version in either of the following ways: >- If the rpm package is used, run the **rpm -qa | grep multipath** or **rpm -qa | grep device-mapper** command. diff --git a/content/en/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md b/content/en/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md index f00c28a..ac1fb9f 100644 --- a/content/en/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md +++ b/content/en/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md @@ -9,7 +9,7 @@ If you plan to use the FC/iSCSI/NVMe over RoCE/NVMe over FC protocol to access H For details about the OSs and multipathing software supported by Huawei CSI, see [Table 2](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818). ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- If you want to use the FC/iSCSI protocol to connect to Huawei storage, you are advised to use native DM-Multipath provided by the OS. >- If you want to use the NVMe over RoCE/NVMe over FC protocol to connect to Huawei storage, you are advised to use Huawei-developed UltraPath-NVMe. >- If you want to use the SCSI protocol to connect to Huawei storage, disable DM-Multipath provided by the OS. @@ -19,7 +19,7 @@ For details about the OSs and multipathing software supported by Huawei CSI, see Multipathing software has been correctly installed on a host. - If you use native DM-Multipath provided by the OS, contact your host or OS provider to obtain the documents and software packages required for the installation. -- If you use Huawei-developed UltraPath or UltraPath-NVMe, contact Huawei engineers to obtain the UltraPath or UltraPath-NVMe documents and software packages. For details about the software package versions, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +- If you use Huawei-developed UltraPath or UltraPath-NVMe, contact Huawei engineers to obtain the UltraPath or UltraPath-NVMe documents and software packages. For details about the software package versions, see [Table 2](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818). ## Procedure{#section14674125816351} @@ -37,6 +37,6 @@ Multipathing software has been correctly installed on a host. If the configuration item does not exist, add it to the beginning of the **/etc/multipath.conf** file. - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >For details about the functions of the **user\_friendly\_names** and **find\_multipaths** parameters, see [dm\_multipath/config\_file\_defaults](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/dm_multipath/config_file_defaults). diff --git a/content/en/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md b/content/en/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md index 2a303a6..262a9c2 100644 --- a/content/en/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md +++ b/content/en/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md @@ -16,70 +16,86 @@ For details about the functions and details of each image, see the following tab - - - - - - - - - - - - - - - - - - - + + + - - + + + - - - + + + - - - @@ -103,43 +119,43 @@ For details about the functions and details of each image, see the following tab - - - - - - - - - - - -

Container Name

Container Image

+

Container Image

K8s Version Requirements

+

K8s Version Requirements

Feature Description

+

Feature Description

livenessprobe

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

+

registry.k8s.io/sig-storage/livenessprobe:v2.12.0

v1.16+

+

v1.16+

This image is provided by the Kubernetes community, used to monitor the health status of CSI and report it to Kubernetes so that Kubernetes can automatically detect CSI program problems and restart the Pod to rectify the problems.

+

This image is provided by the Kubernetes community, used to monitor the health status of CSI and report it to Kubernetes so that Kubernetes can automatically detect CSI program problems and restart the Pod to rectify the problems.

csi-resizer

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

+

registry.k8s.io/sig-storage/csi-resizer:v1.9.0

v1.16+

+

v1.16+

This image is provided by the Kubernetes community, used to call CSI to provide more storage space for a PVC when expanding the capacity of the PVC.

+

This image is provided by the Kubernetes community, used to call CSI to provide more storage space for a PVC when expanding the capacity of the PVC.

csi-node-driver-registrar

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

+

registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

v1.16+

+

v1.16+

This image is provided by the Kubernetes community, used to obtain CSI information and register a node with kubelet using the plug-in registration mechanism of kubelet so that Kubernetes can detect the connection between the node and Huawei storage.

+

This image is provided by the Kubernetes community, used to obtain CSI information and register a node with kubelet using the plug-in registration mechanism of kubelet so that Kubernetes can detect the connection between the node and Huawei storage.

csi-snapshotter

+

csi-snapshotter

k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.1

+

registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

v1.17+

+

v1.20+

This image is provided by the Kubernetes community, used to call CSI to create or delete a snapshot on the storage system when creating or deleting a VolumeSnapshot.

+

This image is provided by the Kubernetes community, used to call CSI to create or delete a snapshot on the storage system when creating or deleting a VolumeSnapshot.

snapshot-controller

+

registry.k8s.io/sig-storage/csi-snapshotter:v4.2.1

k8s.gcr.io/sig-storage/snapshot-controller:v4.2.1

+

v1.17-v1.19

v1.17+

+

snapshot-controller

+

+

registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

+

v1.20+

This image is provided by the Kubernetes community, used to listen to the VolumeSnapshot and VolumeSnapshotContent objects in the Kubernetes API and trigger csi-snapshotter to create a snapshot on the storage system when creating or deleting a VolumeSnapshot.

+

This image is provided by the Kubernetes community, used to listen to the VolumeSnapshot and VolumeSnapshotContent objects in the Kubernetes API and trigger csi-snapshotter to create a snapshot on the storage system when creating or deleting a VolumeSnapshot.

csi-provisioner

+

registry.k8s.io/sig-storage/snapshot-controller:v4.2.1

+

v1.17-v1.19

+

csi-provisioner

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

+

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

v1.17+

+

v1.20+

This image is provided by the Kubernetes community, used to create or delete PVCs.

+

This image is provided by the Kubernetes community, used to create or delete PVCs.

  • Calls the huawei-csi-controller service to create a LUN or file system on the storage system as a PV when creating a PVC.
  • Calls the huawei-csi-controller service to delete the LUN or file system corresponding to the PV when deleting a PVC.

registry.k8s.io/sig-storage/csi-provisioner:v3.0.0

+

v1.17-v1.19

+

quay.io/k8scsi/csi-provisioner:v1.4.0

v1.16.x

@@ -88,11 +104,11 @@ For details about the functions and details of each image, see the following tab

csi-attacher

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

+

registry.k8s.io/sig-storage/csi-attacher:v4.4.0

v1.17+

+

v1.17+

Calls the huawei-csi-controller service to perform the "Publish/Unpublish Volume" operation when creating or deleting a Pod.

+

Calls the huawei-csi-controller service to perform the "Publish/Unpublish Volume" operation when creating or deleting a Pod.

storage-backend-controller

storage-backend-controller:4.5.0

+

storage-backend-controller:4.6.0

v1.16+

+

v1.16+

This image is provided by Huawei CSI software package, used to manage storageBackendClaim resources.

+

This image is provided by Huawei CSI software package, used to manage storageBackendClaim resources.

storage-backend-sidecar

storage-backend-sidecar:4.5.0

+

storage-backend-sidecar:4.6.0

v1.16+

+

v1.16+

This image is provided by Huawei CSI software package, used to manage storageBackendContent resources.

+

This image is provided by Huawei CSI software package, used to manage storageBackendContent resources.

huawei-csi-driver

huawei-csi:4.5.0

+

huawei-csi:4.6.0

v1.16+

+

v1.16+

This image is provided by Huawei CSI software package, used to provide all features supported by Huawei CSI.

+

This image is provided by Huawei CSI software package, used to provide all features supported by Huawei CSI.

huawei-csi-extender

huawei-csi-extender:4.5.0

+

huawei-csi-extender:4.6.0

v1.16+

+

v1.16+

This image is provided by Huawei CSI software package, used to provide extended features of Huawei CSI.

+

This image is provided by Huawei CSI software package, used to provide extended features of Huawei CSI.

->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If the cluster is not connected to the Internet, manually download the container images and upload them to the cluster. For details, see [Downloading a Container Image](/docs/common-operations/downloading-a-container-image). diff --git a/content/en/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md b/content/en/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md index 3199a64..a88537f 100644 --- a/content/en/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md +++ b/content/en/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md @@ -53,7 +53,7 @@ After Huawei storage is connected to the container platform, Huawei CSI needs to

Local user

-

OceanStor 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

OceanStor

System user

@@ -64,11 +64,11 @@ After Huawei storage is connected to the container platform, Huawei CSI needs to

Local user

-

OceanStor Dorado 6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

OceanStor Dorado

System user

-

Administrator/User-defined role1

+

Administrator/User-defined role1

N/A

@@ -100,6 +100,6 @@ After Huawei storage is connected to the container platform, Huawei CSI needs to - Note 1: If a user-defined role is used, you need to configure permissions for the role. For details about how to configure the minimum permissions, see [Configuring Custom Permissions](/docs/appendix/configuring-custom-permissions). ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >You are advised not to use the users of the super administrator role. diff --git a/content/en/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md b/content/en/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md index fb288dc..fadf5a3 100644 --- a/content/en/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md +++ b/content/en/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md @@ -7,7 +7,7 @@ weight: 4 This section describes how to check the volume snapshot-dependent components in the cluster. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >Kubernetes earlier than v1.17.0 does not support the snapshot function. If the snapshot CRD is deployed, the cluster may be faulty. Therefore, if Huawei CSI is deployed on Kubernetes earlier than v1.17.0, perform the check according to [Kubernetes Earlier Than v1.17.0](#section6894165917369). ## Kubernetes Earlier Than v1.17.0{#section6894165917369} diff --git a/content/en/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md b/content/en/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md index 077df49..82c2b01 100644 --- a/content/en/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md +++ b/content/en/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md @@ -8,10 +8,11 @@ weight: 1 This section describes how to download the software package and the component structure of the software package. 1. Open a browser and enter [https://github.com/Huawei/eSDK\_K8S\_Plugin/releases](https://github.com/Huawei/eSDK_K8S_Plugin/releases) in the address box. -2. Download the software package of the 4.5.0 version based on the CPU architecture. +2. Download the software package of the 4.6.0 version based on the CPU architecture. - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >Software package naming rule: Plug-in name \(**eSDK\_Huawei\_Storage\_Kubernetes\_CSI\_Plugin**\) + Version number + CPU architecture + >CSI supports the following CPU architectures: x86, Arm, and PPC64LE. 3. Decompress the downloaded software package. The following table shows the component structure of the software package. @@ -24,24 +25,24 @@ This section describes how to download the software package and the component st -

image/huawei-csi-v4.5.0-arch.tar

+

image/huawei-csi-v4.6.0-arch.tar

-

huawei-csi-driver image. arch is X86 or ARM.

+

huawei-csi-driver image. arch indicates the CPU architecture.

-

image/storage-backend-controller-v4.5.0-arch.tar

+

image/storage-backend-controller-v4.6.0-arch.tar

-

Back-end management controller image. arch is X86 or ARM.

+

Back-end management controller image. arch indicates the CPU architecture.

-

image/storage-backend-sidecar-v4.5.0-arch.tar

+

image/storage-backend-sidecar-v4.6.0-arch.tar

-

Back-end management sidecar image. arch is X86 or ARM.

+

Back-end management sidecar image. arch indicates the CPU architecture.

-

image/huawei-csi-extender-v4.5.0-arch.tar

+

image/huawei-csi-extender-v4.6.0-arch.tar

-

huawei-csi-extender image. arch is X86 or ARM.

+

huawei-csi-extender image. arch indicates the CPU architecture.

bin/

diff --git a/content/en/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md b/content/en/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md index 9324e63..31b30e8 100644 --- a/content/en/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md +++ b/content/en/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md @@ -16,10 +16,10 @@ To use the CSI image on the container management platform, you need to import th The installation of Huawei CSI depends on the following image files provided by Huawei. Import and upload the image files in sequence. For details about how to obtain the image files, see [Downloading the Huawei CSI Software Package](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package). -- huawei-csi-v4.5.0-arch.tar -- storage-backend-controller-v4.5.0-_arch_.tar -- storage-backend-sidecar-v4.5.0-_arch_.tar -- huawei-csi-extender-v4.5.0-arch.tar +- huawei-csi-v4.6.0-arch.tar +- storage-backend-controller-v4.6.0-_arch_.tar +- storage-backend-sidecar-v4.6.0-_arch_.tar +- huawei-csi-extender-v4.6.0-arch.tar **Prerequisites** @@ -27,25 +27,25 @@ A Linux host with Docker installed is available, and the host can access the ima **Procedure** -1. Run the **docker load -i huawei-csi-v4.5.0-arch.tar** command to import the CSI image to the current node. +1. Run the following command to import the CSI image to the current node. The value of _arch_ can be **X86**, **ARM**, or **PPC64LE**. ``` - docker load -i huawei-csi-v4.5.0-arch.tar + docker load -i huawei-csi-v4.6.0-.tar ``` -2. Run the **docker tag huawei-csi:4.5.0 repo.huawei.com/huawei-csi:4.5.0** command to add the image repository address to the image tag. **repo.huawei.com** indicates the image repository address. +2. Run the following command to add the image repository address to the image tag. **repo.huawei.com** indicates the image repository address. ``` - docker tag huawei-csi:4.5.0 repo.huawei.com/huawei-csi:4.5.0 + docker tag huawei-csi:4.6.0 /huawei-csi:4.6.0 ``` -3. Run the **docker push repo.huawei.com/huawei-csi:4.5.0** command to upload the CSI image to the image repository. **repo.huawei.com** indicates the image repository address. +3. Run the following command to upload the CSI image to the image repository. **repo.huawei.com** indicates the image repository address. ``` - docker push repo.huawei.com/huawei-csi:4.5.0 + docker push /huawei-csi:4.6.0 ``` ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- You can also use containerd to import and upload the images. >- For details about how to import and upload images to the CCE or CCE Agile platform, see the user manual of the platform. @@ -63,7 +63,7 @@ If the image has been uploaded to the image repository, skip this section. 1. Use a remote access tool, such as PuTTY, to log in to the node where the image is to be imported through the management IP address. 2. Copy the **image** directory in the Kubernetes CSI component package to any directory on the current node. 3. Run the **cd image** command to go to the **image** working directory. For details about the tool path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). -4. Run the following commands in sequence to import all Huawei CSI images in the image directory to the local node. In the commands, _name_ indicates the name of a .tar image package. +4. Run the following commands in sequence to import all Huawei CSI images in the **image** directory to the local node. In the commands, _name_ indicates the name of a .tar image package. Run the following command using the Docker container engine: @@ -83,6 +83,6 @@ If the image has been uploaded to the image repository, skip this section. podman load -i .tar ``` - >![](/css-docs/public_sys-resources/en/icon-notice.gif) + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >If another container engine is installed on the node, use the image import command for the corresponding container engine. diff --git a/content/en/docs/installation-and-deployment/installing-huawei-csi/_index.md b/content/en/docs/installation-and-deployment/installing-huawei-csi/_index.md index 69e4c41..592da26 100644 --- a/content/en/docs/installation-and-deployment/installing-huawei-csi/_index.md +++ b/content/en/docs/installation-and-deployment/installing-huawei-csi/_index.md @@ -7,7 +7,7 @@ weight: 2 This section describes how to install Huawei CSI. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >In the current version, resource requests and limits are added to Huawei CSI. For details, see [Huawei CSI Resource Management](/docs/appendix/huawei-csi-resource-management). ## Prerequisites{#en-us_topic_0000001324610777_section19453102010152} diff --git a/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md b/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md index b9d6a45..5c3f015 100644 --- a/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md +++ b/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md @@ -9,7 +9,7 @@ weight: 1 This section describes how to install Huawei CSI using Helm 3. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- Huawei CSI can be installed as the root user or a non-root user. When installing Huawei CSI as a non-root user, ensure that the current user can access the API Server of the Kubernetes cluster. For details about how to configure access to the Kubernetes cluster as a non-root user, see [Configuring Access to the Kubernetes Cluster as a Non-root User](/docs/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user). >- Huawei CSI must be run as the root user. diff --git a/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md b/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md index b40da3c..24e1fb7 100644 --- a/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md +++ b/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md @@ -59,13 +59,13 @@ The CCE or CCE Agile platform cannot directly install Huawei CSI using Helm. You 3. Export the Helm installation package. For details, see [Creating a Helm Installation Package](#section2032812215509). 4. On the home page, choose **Charts** \> **My Charts** \> **Upload Chart**. The **Upload Chart** dialog box is displayed. Import the exported Helm installation package to the CCE Agile platform. - ![](/css-docs/figures/上传模板-en.png) + ![](/css-docs/figures/上传模板-ch.png) 5. After the installation package is uploaded, choose **Charts** \> **My Charts**. On the **My Charts** page that is displayed, choose **Install** \> **Submit**. The chart release name can be customized. - ![](/css-docs/figures/安装csi-en.png) + ![](/css-docs/figures/安装csi中文.png) 6. On the home page, choose **Charts** \> **Releases** and select the project specified during installation \(for example, **default** in the following figure\). After the installation is successful, **Installed** is displayed in the **Status** column. - ![](/css-docs/figures/安装结果-en.png) + ![](/css-docs/figures/安装结果-ch.png) diff --git a/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md b/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md index 81b5d17..f0f1945 100644 --- a/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md +++ b/content/en/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md @@ -32,7 +32,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

huawei-csi:4.5.0

+

huawei-csi:4.6.0

images.storageBackendSidecar

@@ -41,7 +41,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

storage-backend-sidecar:4.5.0

+

storage-backend-sidecar:4.6.0

images.storageBackendController

@@ -50,7 +50,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

storage-backend-controller:4.5.0

+

storage-backend-controller:4.6.0

images.huaweiCSIExtender

@@ -59,7 +59,7 @@ The images parameters in the **values.yaml** file are used to configure the co

No

-

huawei-csi-extender:4.5.0

+

huawei-csi-extender:4.6.0

images.sidecar.livenessProbe

@@ -68,7 +68,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

+

registry.k8s.io/sig-storage/livenessprobe:v2.12.0

images.sidecar.provisioner

@@ -77,7 +77,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

+

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

images.sidecar.attacher

@@ -86,7 +86,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

+

registry.k8s.io/sig-storage/csi-attacher:v4.4.0

images.sidecar.resizer

@@ -95,7 +95,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

+

registry.k8s.io/sig-storage/csi-resizer:v1.9.0

images.sidecar.snapshotter

@@ -104,7 +104,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.1

+

registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

images.sidecar.snapshotController

@@ -113,7 +113,7 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/snapshot-controller:v4.2.1

+

registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

images.sidecar.registrar

@@ -122,13 +122,13 @@ The images parameters in the **values.yaml** file are used to configure the co

Yes

-

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

+

registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- For details about the values of **huaweiCSIService**, **storageBackendSidecar**, **storageBackendController**, and **huaweiCSIExtender**, see [Uploading a Huawei CSI Image](/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image). Use the name and version of the finally generated image. >- For details about other sidecar image parameters, see [Checking the Images on Which CSI Depends](/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends). Use the name and version of the finally uploaded image. @@ -288,10 +288,32 @@ The controller parameters are used to configure the huawei-csi-controller compon

The default value is recommended.

+

controller.exportCsiService.enabled

+ +

Whether to run CSI services on the Service of the Kubernetes cluster.

+ +

No

+ +

false

+ +

After this function is enabled, other services in the Kubernetes cluster can access CSI services through gRPC.

+ + +

controller.exportCsiService.port

+ +

Port used when CSI services run on the Service of the Kubernetes cluster.

+ +

No

+ +

9090

+ +

If a port conflict occurs, change the port number to an idle one.

+ + ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If **controller.snapshot.enabled** is set to **true**, you need to install the volume snapshot CRD resource in the **helm/crd/snapshot-crds** directory. ## node Parameters{#section374014171581} @@ -342,7 +364,7 @@ The node parameters are used to configure the huawei-csi-node component.

No

-- key: "node.kubernetes.io/memory-pressure" +
- key: "node.kubernetes.io/memory-pressure"
   operator: "Exists"
   effect: "NoExecute"
 - key: "node.kubernetes.io/disk-pressure"
@@ -350,7 +372,7 @@ The node parameters are used to configure the huawei-csi-node component.
   effect: "NoExecute"
 - key: "node.kubernetes.io/network-unavailable"
   operator: "Exists"
-  effect: "NoExecute"
+  effect: "NoExecute"

For details about taints and tolerations, see Taints and Tolerations.

@@ -375,7 +397,7 @@ The node parameters are used to configure the huawei-csi-node component.

volumeDevices

After a block device is successfully mounted, the directory structure of the mount path is as follows:

-/var/lib/kubelet/plugins/kubernetes.io/csi/{kubeletVolumeDevicesDirName}/publish/{specName}/{podUID} +
/var/lib/kubelet/plugins/kubernetes.io/csi/{kubeletVolumeDevicesDirName}/publish/{specName}/{podUID}
@@ -579,7 +601,7 @@ The csiDriver parameters include the basic configurations for running Huawei CSI

file

-

When the value is file, logs are retained in the specified directory of the node. When the Pod where CSI is located is destroyed, logs are still retained.

+

When the value is file, logs are retained in the specified directory of the node. When the Pod where CSI is located is destroyed, logs are still retained.

When the value is console, logs are retained in the temporary space of the Pod where CSI is located. When the Pod where CSI is located is destroyed, the logs are also destroyed.

@@ -631,7 +653,7 @@ The csiDriver parameters include the basic configurations for running Huawei CSI ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >If Huawei CSI has been deployed in your container environment, ensure that the value of **csiDriver.driverName** is the same as that configured during previous deployment. Otherwise, existing volumes or snapshots provisioned by Huawei CSI in the system cannot be managed by the newly deployed Huawei CSI. ## Other Parameters{#section11500468593} @@ -771,7 +793,7 @@ Other parameters include some features of the CSI plug-in or the policies for ob ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >Ensure that the namespace entered in **kubernetes.namespace** exists on Kubernetes. If the namespace does not exist, run the following command to create it. In this example, the namespace for running Huawei CSI is **huawei-csi**. >``` >kubectl create namespace huawei-csi diff --git a/content/en/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md b/content/en/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md index d086eb9..8f05751 100644 --- a/content/en/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md +++ b/content/en/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md @@ -7,7 +7,7 @@ weight: 2 This section describes how to manually install Huawei CSI. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >Currently, only the Kubernetes platform supports manual installation of Huawei CSI. ## Procedure{#section113761618183018} @@ -46,7 +46,7 @@ This section describes how to manually install Huawei CSI. 8. Run the following command to install the huawei-csi-controller service. - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If the Kubernetes version is earlier than v1.17, modify the _./deploy/huawei-csi-controller.yaml_ file as follows: >- If the Kubernetes version is earlier than v1.17, the snapshot feature is not supported. In this case, delete the snapshot-related container configurations items **csi-snapshotter** and **snapshot-controller**. >- If the Kubernetes version is earlier than v1.17, the csi-provisioner sidecar image provided by the Kubernetes community does not support the **--leader-election** parameter. Therefore, the **leader-election** parameter of the csi-provisioner container is deleted and only single-copy deployment is supported. @@ -78,7 +78,7 @@ This section describes how to manually install Huawei CSI. huawei-csi-node-xrntc 3/3 Running 0 13m ``` ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >In the multi-copy controller deployment scenario, you can modify the **spec.replica** field of the Deployment resource in the _./deploy/huawei-csi-controller.yaml_ file to specify the number of copies. After the modification, run the following command for the modification to take effect. >``` >kubectl apply -f ./deploy/huawei-csi-controller.yaml diff --git a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md index b4c7374..fe2fb2a 100644 --- a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md +++ b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md @@ -7,7 +7,7 @@ weight: 3 This chapter describes how to uninstall Huawei CSI. The uninstallation method varies according to the installation mode. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >If you do not uninstall Huawei CSI for the purpose of an upgrade, ensure that all resources \(such as PV, PVC, snapshot, and storage backend resources\) provisioned by Huawei CSI have been cleared on your container platform before uninstalling Huawei CSI. Otherwise, once you uninstall Huawei CSI, these resources cannot be automatically scheduled, managed, or cleared. diff --git a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md index ee0aded..c941339 100644 --- a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md +++ b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md @@ -7,7 +7,7 @@ weight: 2 This section describes how to manually uninstall Huawei CSI. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >If you do not uninstall Huawei CSI for the purpose of an upgrade, ensure that all resources \(such as PV, PVC, snapshot, and storage backend resources\) provisioned by Huawei CSI have been cleared on your container platform before uninstalling Huawei CSI. Otherwise, once you uninstall Huawei CSI, these resources cannot be automatically scheduled, managed, or cleared. ## Uninstalling the huawei-csi-node Service{#section1012817231386} @@ -72,4 +72,9 @@ If [the CSIDriver feature is not used during installation](/docs/installation-a 2. Uninstall the webhook resource. For details, see [Uninstalling a Webhook Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014). 3. \(Optional\) Uninstall the snapshot-dependent component service. For details, see [Uninstalling the Snapshot-Dependent Component Service](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319). 4. \(Optional\) Uninstall the Lease resource. For details, see [Uninstalling a Lease Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317). +5. \(Optional\) Run the following command to delete the namespace where Huawei CSI is located. The default namespace **huawei-csi** is used as an example. + + ``` + kubectl delete ns huawei-csi + ``` diff --git a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md index 79f0904..d5e046f 100644 --- a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md +++ b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md @@ -62,7 +62,7 @@ The webhook resource named **storage-backend-controller.xuanwu.huawei.io** is ## Uninstalling the Snapshot-Dependent Component Service{#section48371491319} ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- Do not uninstall the snapshot-dependent component service when snapshots exist. Otherwise, Kubernetes will automatically delete all user snapshots and they cannot be restored. Exercise caution when performing this operation. For details, see [Delete a CustomResourceDefinition](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#delete-a-customresourcedefinition). >- Do not uninstall the snapshot-dependent component service during the CSI upgrade. diff --git a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md index bdc0716..d63ead0 100644 --- a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md +++ b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md @@ -13,9 +13,14 @@ This section describes how to uninstall Huawei CSI on the CCE or CCE Agile platf 2. On the home page, choose **Charts** \> **Releases**. The **Releases** page is displayed. 3. Select a Huawei CSI release and click **Uninstall**. In the displayed dialog box, click **OK**. - ![](/css-docs/figures/卸载-en.png) + ![](/css-docs/figures/卸载-ch.png) 4. Uninstall the huawei-csi-host-info object. For details, see [Uninstalling the huawei-csi-host-info Object](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017). 5. Uninstall the webhook resource. For details, see [Uninstalling a Webhook Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014). 6. \(Optional\) Uninstall the snapshot-dependent component service. For details, see [Uninstalling the Snapshot-Dependent Component Service](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319). +7. \(Optional\) Run the following command to delete the namespace where Huawei CSI is located. The default namespace **huawei-csi** is used as an example. + + ``` + kubectl delete ns huawei-csi + ``` diff --git a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md index 7302384..d8bd65a 100644 --- a/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md +++ b/content/en/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -25,11 +25,16 @@ This section describes how to uninstall Huawei CSI on the Kubernetes, OpenShift, The following is an example of the command output. If the command output is empty, the service is successfully uninstalled. ``` - NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION + NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION ``` 3. Uninstall the huawei-csi-host-info object. For details, see [Uninstalling the huawei-csi-host-info Object](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017). 4. Uninstall the webhook resource. For details, see [Uninstalling a Webhook Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014). 5. \(Optional\) Uninstall the snapshot-dependent component service. For details, see [Uninstalling the Snapshot-Dependent Component Service](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319). 6. \(Optional\) Uninstall the Lease resource. For details, see [Uninstalling a Lease Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317). +7. \(Optional\) Run the following command to delete the namespace where Huawei CSI is located. The default namespace **huawei-csi** is used as an example. + + ``` + kubectl delete ns huawei-csi + ``` diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md index 5c74b94..59aea57 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md @@ -7,7 +7,7 @@ weight: 4 This section describes how to upgrade or roll back Huawei CSI. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >In the current version, resource requests and limits are added to Huawei CSI. For details, see [Huawei CSI Resource Management](/docs/appendix/huawei-csi-resource-management). diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md index ab46f66..42547aa 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md @@ -7,7 +7,7 @@ weight: 2 Uninstall CSI by referring to [Manually Uninstalling Huawei CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi), and then download and install CSI of the source version. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. >- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. >- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md index e47426a..a1e5da0 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md @@ -9,14 +9,14 @@ This section describes how to manually upgrade Huawei CSI. During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- Some CSI 2._x_ versions are unavailable now. If the upgrade fails, CSI may fail to be rolled back to a version which is unavailable now. >- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. >- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. -## Upgrading CSI from 2.x or 3.x to 4.5.0{#section260220843210} +## Upgrading CSI from 2.x or 3.x to 4.6.0{#section260220843210} -To upgrade CSI from 2._x_ or 3._x_ to 4.5.0, perform the following operations: +To upgrade CSI from 2._x_ or 3._x_ to 4.6.0, perform the following operations: 1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. 2. Run the following command to back up the backend information to the **configmap.json** file. For the OpenShift platform, replace **kubectl** with **oc**. @@ -29,9 +29,9 @@ To upgrade CSI from 2._x_ or 3._x_ to 4.5.0, perform the following operations 4. Install CSI of the current version. For details, see [Manually Installing Huawei CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi). 5. Install the backend information backed up in [2](#li1699321211285) according to [Managing Storage Backends](/docs/storage-backend-management/managing-storage-backends). -## Upgrading CSI from 4.x to 4.5.0{#section173369363219} +## Upgrading CSI from 4.x to 4.6.0{#section173369363219} -To upgrade CSI from 4._x_ to 4.5.0, perform the following operations: +To upgrade CSI from 4._x_ to 4.6.0, perform the following operations: 1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. 2. Uninstall CSI. For details, see [Manually Uninstalling Huawei CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi). diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md index ebcb45c..ff8ab96 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md @@ -5,11 +5,5 @@ description: weight: 1 --- -To upgrade Huawei CSI from 2._x_ to 4.5.0, uninstall it by referring to the user guide of the earlier version and install Huawei CSI by referring to [Installing Huawei CSI Using Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm). - -To upgrade Huawei CSI from 2._x_ or 3._x_ to 4.5.0, see [Upgrading from 2.x or 3.x to 4.x](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x). - -To upgrade Huawei CSI from 4._x_ to 4.5.0, see [Upgrading Huawei CSI on Kubernetes, OpenShift, and Tanzu](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu). - diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md index 9ed8e51..4f990cc 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md @@ -1,13 +1,16 @@ --- title: "Rolling Back Huawei CSI" linkTitle: "Rolling Back Huawei CSI" -description: +description: weight: 2 --- -If CSI fails to be upgraded from 2._x_ or 3._x_ to 4.5.0 and needs to be rolled back, uninstall CSI by referring to [Uninstalling Huawei CSI Using Helm](en-us_topic_0000002032782245.md) and then download and install CSI of the source version. +If CSI fails to be upgraded from 2._x_ or 3._x_ to 4.6.0 and needs to be rolled back, uninstall CSI by referring to [Uninstalling Huawei CSI Using Helm](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm) and then download and install CSI of the source version. ->![](/public_sys-resources/icon-notice.gif) **NOTICE:** +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. >- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. >- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. + + + diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md index d3a1cc6..8be6934 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md @@ -5,7 +5,7 @@ description: weight: 2 --- ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. >- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. >- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md index ccdff88..fa50908 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -29,7 +29,7 @@ weight: 1 ``` REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION 1 Mon Jan 8 04:15:40 2024 superseded esdk-4.4.0 4.4.0 Install complete - 2 Mon Jan 8 04:16:12 2024 deployed esdk-4.5.0 4.5.0 Upgrade complete + 2 Mon Jan 8 04:16:12 2024 deployed esdk-4.6.0 4.6.0 Upgrade complete ``` 4. Run the following command to roll back the CSI services to the specified version. diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md index 6930ff4..2d586ba 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md @@ -7,13 +7,16 @@ weight: 1 This section describes how to upgrade Huawei CSI. -During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. +- To upgrade Huawei CSI from 2._x_ to 4.6.0, uninstall it by referring to the user guide of the earlier version and install Huawei CSI by referring to [Installing Huawei CSI Using Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm). +- To upgrade Huawei CSI from 2._x_ or 3._x_ to 4.6.0, see [Upgrading from 2.x or 3.x to 4.x](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x). +- To upgrade Huawei CSI from 4._x_ to 4.6.0, see [Upgrading Huawei CSI on Kubernetes, OpenShift, and Tanzu](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu). ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- Some CSI 2._x_ versions are unavailable now. If the upgrade fails, CSI may fail to be rolled back to a version which is unavailable now. ->- After an upgrade from 2._x_, 3._x_, or 4._x_ to 4.5.0, a Pod that has been provisioned in the source version may fail to be mounted again. For details, see [Upgrading from 2.x or 3.x to 4.x](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x). +>- After an upgrade from 2._x_, 3._x_, or 4._x_ to 4.6.0, a Pod that has been provisioned in the source version may fail to be mounted again. For details, see [Upgrading from 2.x or 3.x to 4.x](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x). >- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. >- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. +>- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md index 3884b39..66f9bb5 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md @@ -5,14 +5,14 @@ description: weight: 1 --- ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >In CSI 2._x_ or 3._x_, when block storage is used, the mapping with storage is set up in the huawei-csi-node service. Therefore, the huawei-csi-node service needs to communicate with the storage management network. Because the huawei-csi-node service is deployed as a DaemonSet, the huawei-csi-node service is deployed on each node in the cluster. As a result, in a large-scale cluster, each huawei-csi-node service sends requests to the storage and the number of storage connections may be fully occupied. Accordingly, huawei-csi-node cannot provide services properly. >In CSI 4._x_, the deployment model is optimized. The setup of the mapping with storage is migrated to the huawei-csi-controller service and the huawei-csi-node service does not need to communicate with the storage management network. This reduces the networking complexity of Huawei CSI. In addition, the huawei-csi-controller service is deployed as a Deployment. The number of copies is set based on the customer's reliability requirements. Generally, the number of copies ranges from 1 to 3. Therefore, the number of connections between Huawei CSI and storage is greatly reduced, so that Huawei CSI can connect to a large-scale cluster. >This change may cause a problem. That is, if a new mount process is generated after CSI is upgraded to 4._x_ but with workloads provisioned using 2._x_ or 3._x_ and the Container Orchestration \(CO\) system does not invoke the huawei-csi-controller service provided by Huawei CSI, the mounting will fail. For details, see [A Pod Fails to Be Created and Message "publishInfo doesn't exist" Is Displayed in the Events Log](/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log). ## Backing Up Storage Backend Configurations{#section3200825558} -If you have evaluated the risks mentioned in the preceding notice and need to upgrade CSI from 2._x_ or 3._x_ to 4.5.0, perform the following steps to back up storage backend configurations: +If you have evaluated the risks mentioned in the preceding notice and need to upgrade CSI from 2._x_ or 3._x_ to 4.6.0, perform the following steps to back up storage backend configurations: 1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. 2. Run the following command to back up the backend information to the **configmap.json** file. For the OpenShift platform, replace **kubectl** with **oc**. diff --git a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md index 5f13021..fed3490 100644 --- a/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md +++ b/content/en/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -40,94 +40,146 @@ If CSI of an earlier version is deployed using Helm, perform the following steps helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml ``` -7. Run the **vi update-values.yaml** command to open the file obtained in [6](#li1037712113474), modify the **images** configuration items, and update the image to the latest version. For details about the parameters to be modified, see [Table 1](#table8452547161918). +7. Run the **vi update-values.yaml** command to open the file obtained in [6](#li1037712113474), modify the **images** configuration items, and update the image to the latest version. For details about the parameters to be modified, see [Table 1](#table1554616217465). **Table 1** images configuration items - -

Parameter

+ + - - + - + - - - - - + - + - - - - - + - + - - - + - - - - - + - + - - - - + + - + + - - - + + + + - + + + + - + + + + + + - @@ -135,7 +187,7 @@ If CSI of an earlier version is deployed using Helm, perform the following steps 8. \(Optional\) If you need to update configuration items or add configuration information during the upgrade, modify the configuration information in the **update-values.yaml** file by referring to [Parameters in the values.yaml File of Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm). - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >During the upgrade, if the **update-values.yaml** and **values.yaml** configuration files contain the same configuration item, the configuration in the **update-values.yaml** file takes effect preferentially. 9. Run the following command to upgrade Huawei CSI. In the following command, **helm-huawei-csi** indicates the specified Helm chart name, **huawei-csi** indicates the specified Helm chart namespace, and **update-values.yaml** indicates the file obtained in [6](#li1037712113474). diff --git a/content/en/docs/overview/_index.md b/content/en/docs/overview/_index.md index 5e29e28..671acbf 100644 --- a/content/en/docs/overview/_index.md +++ b/content/en/docs/overview/_index.md @@ -22,5 +22,5 @@ The following figure shows the deployment model of Huawei CSI. **Figure 2** CSI deployment model ![](/css-docs/figures/csi-deployment-model.png "csi-deployment-model") -This document describes how to install, deploy, and use the Huawei CSI V4.5.0 plug-in. +This document describes how to install, deploy, and use the Huawei CSI V4.6.0 plug-in. diff --git a/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md new file mode 100644 index 0000000..e860cbd --- /dev/null +++ b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md @@ -0,0 +1,16 @@ +--- +title: "Adding a Certificate to a Storage Backend" +linkTitle: "Adding a Certificate to a Storage Backend" +description: +weight: 2 +--- + +This section describes how to create a certificate for a storage backend. If certificate verification is required for logging in to the storage, you can add a certificate by referring to this section. Currently, you can create a certificate for a storage backend based on the specified .crt or .pem file. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>Before creating a certificate for a storage backend, import the prepared certificate to the storage array. + + + + + diff --git a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md similarity index 100% rename from content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md rename to content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md diff --git a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md similarity index 100% rename from content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md rename to content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md diff --git a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md similarity index 100% rename from content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md rename to content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md diff --git a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md similarity index 93% rename from content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md rename to content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md index fbe4db4..10cf29c 100644 --- a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md +++ b/content/en/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md @@ -5,7 +5,7 @@ description: weight: 3 --- -Before updating a certificate, prepare a new certificate file and update the storage backend certificate by following the instructions provided in this section. If the certificate is no longer used, delete the certificate from the storage backend by referring to [Deleting a Storage Backend Certificate](/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate). +Before updating a certificate, prepare a new certificate file and update the storage backend certificate by following the instructions provided in this section. If the certificate is no longer used, delete the certificate from the storage backend by referring to [Deleting a Storage Backend Certificate](/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate). ## Procedure{#section127643118416} diff --git a/content/en/docs/storage-backend-management/description-of-oceanctl-commands.md b/content/en/docs/storage-backend-management/description-of-oceanctl-commands.md index c95e9ab..4e95c2c 100644 --- a/content/en/docs/storage-backend-management/description-of-oceanctl-commands.md +++ b/content/en/docs/storage-backend-management/description-of-oceanctl-commands.md @@ -59,7 +59,7 @@ weight: 3 - Run the following command to create a storage backend and specify **provisioner**. **csi.oceanstor.com** is the driver name specified during installation. For details, see [4](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform#li4307135252018). - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >This command is used only when a backend is created on the CCE or CCE Agile platform. ``` diff --git a/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md b/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md index 95f33fb..9b343e7 100644 --- a/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md +++ b/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md @@ -5,7 +5,7 @@ description: weight: 1 --- ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >1. When oceanctl is used to create a storage backend, the entered account and key information is stored in the [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) object. It is recommended that the customer container platform encrypt the Secret object based on the suggestions of the supplier or K8s community. For details about how to encrypt the Secret object in the K8s community, see [Enable Encryption at Rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/). >2. When a backend is created using a .json file, the backend name of an earlier version may contain uppercase letters or underscores \(\_\). In this case, the old name is remapped to a new name. The mapping process automatically occurs and does not affect the original functions. For example, **ABC\_123** is mapped to **abc-123-fd68e**. The mapping rules are as follows: > - Uppercase letters are converted to lowercase letters. diff --git a/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md b/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md index 6c44945..d9b9f61 100644 --- a/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md +++ b/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md @@ -19,7 +19,7 @@ For details about the backend configuration in typical scenarios, see the follow ## Configuring a Storage Backend of the iSCSI Type{#section9560112218344} ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If you want to use the iSCSI protocol, ensure that the iSCSI client has been installed on the host before installing Huawei CSI. You can check whether the client has been installed on the host by referring to [Checking the Status of Host-Dependent Software](/docs/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software). If the iSCSI client is not installed, restart the huawei-csi-node service after installing the iSCSI client. During the restart, do not use Huawei CSI to create new resources or mount or unmount an existing PVC. The following command is used as an example: >``` >kubectl delete pods -n huawei-csi -l app=huawei-csi-node @@ -65,7 +65,7 @@ maxClientThreads: "30" ## Configuring a Storage Backend of the FC Type{#section4385132433717} ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If you want to use the FC protocol, ensure that the FC network between the host and the storage device is connected before installing Huawei CSI. If the FC network is not connected, connect the FC network and then restart the huawei-csi-node service. During the restart, do not use Huawei CSI to create new resources or mount or unmount an existing PVC. The following command is used as an example: >``` >kubectl delete pods -n huawei-csi -l app=huawei-csi-node @@ -89,7 +89,7 @@ maxClientThreads: "30" ## Configuring a Storage Backend of the NVMe over RoCE Type{#section887724419372} ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >If you want to use the NVMe over RoCE protocol, ensure that the NVMe over RoCE network between the host and the storage device is connected before installing Huawei CSI. If the NVMe over RoCE network is not connected, connect the NVMe over RoCE network and then restart the huawei-csi-node service. During the restart, do not use Huawei CSI to create new resources or mount or unmount an existing PVC. The following command is used as an example: >``` >kubectl delete pods -n huawei-csi -l app=huawei-csi-node @@ -227,7 +227,7 @@ maxClientThreads: "30" ## Configuring Storage Backends of the HyperMetro Type{#section175945335494} ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- Before configuring NAS HyperMetro, you need to configure the HyperMetro relationship between two storage devices, including the remote device, HyperMetro domain, and the like. The HyperMetro domain of the file system can only work in HyperMetro active-active \(AA\) mode. For details about the configuration operation, see the product documentation of the corresponding storage model. >- The accounts for connecting to NAS HyperMetro backends must be the administrator accounts of the storage vStores. >- Except NAS HyperMetro backends, the management URLs of other backends cannot be the URL of a logical management port of a vStore that has established the HyperMetro relationship. diff --git a/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md b/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md index f6f393d..a7a3cb7 100644 --- a/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md +++ b/content/en/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md @@ -133,7 +133,7 @@ An example template of the backend configuration file is **/examples/backend/ba - - diff --git a/content/en/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md b/content/en/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md index 6ccfd12..b15150b 100644 --- a/content/en/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md +++ b/content/en/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md @@ -5,7 +5,7 @@ description: weight: 4 --- ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >Do not delete a storage backend when a volume management operation is being performed on it. ## Example of Deleting a Backend{#section20764568435} diff --git a/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md b/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md index c77faac..ecc3cc2 100644 --- a/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md +++ b/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md @@ -5,7 +5,7 @@ description: weight: 3 --- ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- When oceanctl is used to update storage backend information, only the storage backend password can be updated. >- If the backend account password is updated on the storage device, the CSI plug-in will retry due to login failures. As a result, the account may be locked. If the account is locked, change the password by referring to [An Account Is Locked After the Password Is Updated on the Storage Device](/docs/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device). diff --git a/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md b/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md index e6edd10..07bccc7 100644 --- a/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md +++ b/content/en/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md @@ -5,7 +5,7 @@ description: weight: 2 --- ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- PVC provisioning must be based on a configured storage backend. Therefore, if a PVC has been provisioned on a storage backend, do not change the storage backend. >- The name uniquely identifies a storage backend. The name of a storage backend with a PVC provisioned cannot be changed. >- After a storage backend is modified, the new configuration applies only to volumes to be provisioned. diff --git a/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md b/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md index 8cde624..34e0ce9 100644 --- a/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md +++ b/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md @@ -27,7 +27,7 @@ In the .yaml configuration files of the controller and node, the Huawei CSI imag ``` ... - name: huawei-csi-driver - image: huawei-csi:4.5.0 + image: huawei-csi:4.6.0 ... ``` @@ -40,13 +40,13 @@ In the .yaml configuration files of the controller and node, the Huawei CSI imag kubectl edit daemonset huawei-csi-node -o yaml -n=huawei-csi ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) - >- In **huawei-csi-driver** in the sample .yaml file, modify **image** to Huawei CSI image **huawei-csi:4.5.0**. + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- In **huawei-csi-driver** in the sample .yaml file, modify **image** to Huawei CSI image **huawei-csi:4.6.0**. > ``` > containers: > ... > - name: huawei-csi-driver - > image: huawei-csi:4.5.0 + > image: huawei-csi:4.6.0 > ``` 3. Run the following command to modify the configuration file of the huawei-csi-controller service: Press **I** or **Insert** to enter the insert mode and modify related parameters. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. @@ -55,13 +55,13 @@ In the .yaml configuration files of the controller and node, the Huawei CSI imag kubectl edit deployment huawei-csi-controller -o yaml -n=huawei-csi ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) - >- In **huawei-csi-driver** in the sample .yaml file, modify **image** to Huawei CSI image **huawei-csi:4.5.0**. + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- In **huawei-csi-driver** in the sample .yaml file, modify **image** to Huawei CSI image **huawei-csi:4.6.0**. > ``` > containers: > ... > - name: huawei-csi-driver - > image: huawei-csi:4.5.0 + > image: huawei-csi:4.6.0 > ``` 4. Wait until the huawei-csi-node and huawei-csi-controller services are started. diff --git a/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md b/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md index 83cbf67..5435d32 100644 --- a/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md +++ b/content/en/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md @@ -1,6 +1,6 @@ --- -title: "Failed to Start the huawei-csi-node Service with Error Message /var/lib/iscsi is not a directory Reported" -linkTitle: "Failed to Start the huawei-csi-node Service with Error Message /var/lib/iscsi is not a directory Reported" +title: "Failed to Start the huawei-csi-node Service with Error Message \"/var/lib/iscsi is not a directory\" Reported" +linkTitle: "Failed to Start the huawei-csi-node Service with Error Message \"/var/lib/iscsi is not a directory\" Reported" description: weight: 1 --- diff --git a/content/en/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md b/content/en/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md index e1e56bb..5c62f51 100644 --- a/content/en/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md +++ b/content/en/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md @@ -1,6 +1,6 @@ --- -title: "Huawei CSI Services Fail to Be Started and Error Message '/etc/localtime is not a file' Is Displayed" -linkTitle: "Huawei CSI Services Fail to Be Started and Error Message '/etc/localtime is not a file' Is Displayed" +title: "Huawei CSI Services Fail to Be Started and Error Message \"/etc/localtime is not a file\" Is Displayed" +linkTitle: "Huawei CSI Services Fail to Be Started and Error Message \"/etc/localtime is not a file\" Is Displayed" description: weight: 2 --- diff --git a/content/en/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md b/content/en/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md index eb17711..7895bf1 100644 --- a/content/en/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md +++ b/content/en/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md @@ -1,6 +1,6 @@ --- -title: "A Pod Fails to Be Created and Message publishInfo doesn't exist Is Displayed in the Events Log" -linkTitle: "A Pod Fails to Be Created and Message publishInfo doesn't exist Is Displayed in the Events Log" +title: "A Pod Fails to Be Created and Message \"publishInfo doesn't exist\" Is Displayed in the Events Log" +linkTitle: "A Pod Fails to Be Created and Message \"publishInfo doesn't exist\" Is Displayed in the Events Log" description: weight: 6 --- diff --git a/content/en/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md b/content/en/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md index 3fc0c93..11cbec9 100644 --- a/content/en/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md +++ b/content/en/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md @@ -1,6 +1,6 @@ --- -title: "I/O error Is Displayed When a Volume Directory Is Mounted to a Pod" -linkTitle: "I/O error Is Displayed When a Volume Directory Is Mounted to a Pod" +title: "\"I/O error\" Is Displayed When a Volume Directory Is Mounted to a Pod" +linkTitle: "\"I/O error\" Is Displayed When a Volume Directory Is Mounted to a Pod" description: weight: 8 --- diff --git a/content/en/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md b/content/en/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md index 8104cff..421ffa3 100644 --- a/content/en/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md +++ b/content/en/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md @@ -1,8 +1,8 @@ --- -title: "A Backend Fails to Be Created Using the oceanctl Tool and Error Message `context deadline exceeded` Is Displayed" -linkTitle: "A Backend Fails to Be Created Using the oceanctl Tool and Error Message `context deadline exceeded` Is Displayed" +title: "A Backend Fails to Be Created Using the oceanctl Tool and Error Message \"context deadline exceeded\" Is Displayed" +linkTitle: "A Backend Fails to Be Created Using the oceanctl Tool and Error Message \"context deadline exceeded\" Is Displayed" description: -weight: 2 +weight: 1 --- ## Symptom{#en-us_topic_0000001279996521_section1566717121452} @@ -65,7 +65,7 @@ Perform the following steps to check whether Huawei CSI fails to verify the conn Contact the Kubernetes platform administrator to check the network between kube-apiserver and CSI webhook. For example, if kube-apiserver has an HTTPS proxy, the CSI webhook service may fail to be accessed. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >In the temporary workaround, the webhook resource will be deleted. This resource is used to check whether the entered account information is correct and whether the connection to the storage can be set up when a storage backend is created. Therefore, deleting this resource affects only the verification during backend creation and does not affect other functions. Pay attention to the following: >- Ensure that the host machine where the huawei-csi-controller service is located can properly communicate with the storage. >- Ensure that the entered account and password are correct. diff --git a/content/en/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md b/content/en/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md new file mode 100644 index 0000000..c7ba74b --- /dev/null +++ b/content/en/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md @@ -0,0 +1,34 @@ +--- +title: "The Value of the ONLINE Field Is \"false\" When the oceanctl Tool Is Used to Obtain Storage Backend Information" +linkTitle: "The Value of the ONLINE Field Is \"false\" When the oceanctl Tool Is Used to Obtain Storage Backend Information" +description: +weight: 2 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +The following command is executed to check storage backend status: + +``` +oceanctl get backend +``` + +The value of the **ONLINE** field of the storage backend is **false**: + +``` +NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE Url +huawei-csi backend-201-nas-nfs nfs oceanstor-nas XXXXXXXXXXXXXX000006 Bound false https://192.168.129.157:8088 +``` + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +When CSI uses the account and password entered during storage backend creation to log in to the storage backend, if the login fails due to either of the following reasons, the **ONLINE** field will be set to **false**. + +1. Incorrect account password: The possible cause is that the password is changed on the storage backend but not updated in the Kubernetes cluster. For details about how to solve this problem, see [Solution or Workaround](#section155945247573). +2. Locked account. For details about how to solve this problem, see [An Account Is Locked After the Password Is Updated on the Storage Device](/docs/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device). + +## Solution or Workaround{#section155945247573} + +1. Obtain the latest account password. +2. Update the storage backend password by following the instructions in [Updating the Password of a Storage Backend Using oceanctl](/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl). + diff --git a/content/en/docs/using-huawei-csi/_index.md b/content/en/docs/using-huawei-csi/_index.md index 106de89..341cb11 100644 --- a/content/en/docs/using-huawei-csi/_index.md +++ b/content/en/docs/using-huawei-csi/_index.md @@ -7,7 +7,7 @@ weight: 7 This chapter describes how to use Huawei CSI to manage the lifecycle of PVs and snapshots. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- Do not delete a storage backend when using Huawei CSI to manage volumes. >- When block volumes are mapped, Huawei CSI automatically creates associated objects, such as hosts, host groups, and LUN groups, as well as mapping views. If these objects are manually created on the storage, the mapping logic of Huawei CSI will be affected. Therefore, ensure that these objects are deleted before mapping volumes using Huawei CSI. diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md b/content/en/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md index 3fa6e6a..21c88fb 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md @@ -27,13 +27,13 @@ spec: storage: 2Gi ``` ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- The specified **storageClassName** must be the same as the StorageClass of the source volume in **dataSource**. >- The capacity of the clone volume must be greater than or equal to that of the source volume. Equal capacity is recommended. ## Prerequisites{#section349216304616} -The source PVC already exists in the system, and the backend where the source PVC resides supports cloning. For details about the storage devices that support cloning, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support cloning, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). +The source PVC already exists in the system, and the backend where the source PVC resides supports cloning. For details about the storage devices that support cloning, see [Features Supported by Huawei Enterprise Storage](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620) and [Features Supported by Huawei Distributed Storage](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#section14115311203711). For details about the Kubernetes versions that support cloning, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). ## Procedure{#en-us_topic_0254212544_section319012981414} diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md index 858442a..b09c1aa 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md @@ -28,13 +28,13 @@ spec: storage: 100Gi ``` ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- The specified **storageClassName** must be the same as the StorageClass of the snapshot source volume in **dataSource**. >- The capacity of the clone volume must be greater than or equal to that of the snapshot. Equal capacity is recommended. ## Prerequisites{#en-us_topic_0254212585_section0772716133710} -A snapshot already exists in the system, and the backend where the snapshot resides supports cloning. For details about the storage devices that support PVC creation using a snapshot, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support PVC creation using a snapshot, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). +A snapshot already exists in the system, and the backend where the snapshot resides supports cloning. For details about the storage devices that support PVC creation using a snapshot, see [Features Supported by Huawei Enterprise Storage](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620) and [Features Supported by Huawei Distributed Storage](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#section14115311203711). For details about the Kubernetes versions that support PVC creation using a snapshot, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). ## Procedure{#en-us_topic_0254212585_section1882544631619} diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md index 9f567d0..906b1e4 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md @@ -72,7 +72,7 @@ To implement dynamic volume provisioning, perform the following steps: mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s ``` - >![](/css-docs/public_sys-resources/en/icon-notice.gif) + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- After the PVC is created, if the PVC is in the **Pending** state after a long time \(for example, one minute\), refer to [When a PVC Is Created, the PVC Is in the Pending State](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state). >- You are advised to create or delete a maximum of 100 PVCs in a batch. @@ -108,6 +108,9 @@ spec: claimName: mypvc # name of PVC ``` +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>If Pods are batch created using PVCs, the Pods are in the **ContainerCreating** status for a long time, and the huawei-csi-node service is in the **OOMKilled** status, the memory of the huawei-csi-node service is insufficient. In this case, increase the memory limit of huawei-csi-node by following the instructions in [Table 1](/docs/appendix/huawei-csi-resource-management#table4106151116363). + diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md index bc28a72..2452260 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md @@ -78,7 +78,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -98,7 +98,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -107,7 +107,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -132,7 +132,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -141,7 +141,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md index edbfea0..db33a41 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md @@ -53,7 +53,7 @@ metadata: provisioner: csi.huawei.com allowVolumeExpansion: true parameters: - backend: "san-181" # Enter the storage backend name. + backend: "nas-181" # Enter the storage backend name. pool: "pool001" # Enter the storage pool name volumeType: fs allocType: thin @@ -199,7 +199,7 @@ parameters: qos: '{"IOTYPE": 2, "MINIOPS": 1000}' # Configure QoS. ``` ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- vStore users of OceanStor V5 cannot configure QoS policies. >- The QoS configuration takes effect only on the newly created PVC. QoS cannot be added automatically for PVCs with the same StorageClass name that have been provisioned. @@ -222,7 +222,7 @@ parameters: authClient: "*" ``` ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- Before provisioning a NAS HyperMetro volume, you need to configure the HyperMetro relationship between two storage devices, including the remote device, HyperMetro domain, and the like. The HyperMetro domain of the file system can only work in HyperMetro active-active \(AA\) mode. For details about the configuration operation, see the product documentation of the corresponding storage model. >- If a storage device is faulty, the logical management port may fail over. In this case, you need to manually clear the corresponding storage resources after deleting the NAS HyperMetro volume. @@ -269,7 +269,7 @@ After the StorageClass configuration is complete, perform the following steps to After creating a StorageClass, you can use the StorageClass to create a PV or PVC. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >Pay attention to the following when using a StorageClass: >- Modifications to a StorageClass do not take effect on existing PVs. You need to delete these PVs and create them again using the modified StorageClass to apply the modified parameters. diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md index 8fd5830..660a252 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md @@ -150,7 +150,7 @@ weight: 2 - @@ -280,7 +280,7 @@ weight: 2 @@ -315,6 +315,19 @@ weight: 2 + + + + + + - - - @@ -107,7 +107,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -127,7 +127,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -136,7 +136,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -161,7 +161,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - @@ -170,7 +170,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV - diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md index 6e558ca..4116587 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md @@ -149,7 +149,7 @@ After the StorageClass configuration is complete, perform the following steps to After creating a StorageClass, you can use the StorageClass to create a PV or PVC. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >In the Manage Volume Provisioning mode, pay attention to the following when using a StorageClass: >- Modifications to a StorageClass do not take effect on existing PVs. You need to delete these PVs and create them again using the modified StorageClass to apply the modified parameters. diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md index 22fe98d..37dd662 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md @@ -132,7 +132,7 @@ If SAN storage is used, refer to example file **/examples/sc-lun.yaml**. If NAS - - - diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md index 3705d9a..fd11b0d 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md @@ -40,7 +40,7 @@ weight: 2 - @@ -64,7 +64,7 @@ weight: 2 diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md b/content/en/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md index 99135f2..eebf444 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md @@ -10,7 +10,7 @@ When the capacity of a PVC used by a container is insufficient, you need to expa ## Prerequisites{#en-us_topic_0254162571_section07036257166} - A PVC has been created, the backend to which it resides exists and supports capacity expansion. -- For details about the storage devices that support capacity expansion, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support capacity expansion, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). +- For details about the storage devices that support capacity expansion, see [Features Supported by Huawei Enterprise Storage](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620) and [Features Supported by Huawei Distributed Storage](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#section14115311203711). For details about the Kubernetes versions that support capacity expansion, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). - The csi-resizer service is enabled for huawei-csi-controller. ``` @@ -68,7 +68,7 @@ When the capacity of a PVC used by a container is insufficient, you need to expa In the preceding command, _mypvc_ indicates the name of the PVC to be expanded, and _120Gi_ indicates the capacity after expansion. Change the values based on the site requirements. - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see [Table 2](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#en-us_topic_0150885187_table178824527142). If XFS file systems are used, see [Table 3](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#en-us_topic_0150885187_table101951367104). If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version. >- If the PVC capacity does not meet the specifications, a PVC or Pod may fail to be created due to the limitations of storage specifications or host file system specifications. >- If the capacity expansion fails because the target capacity exceeds the storage pool capacity, see [Failed to Expand the PVC Capacity Because the Target Capacity Exceeds the Storage Pool Capacity](/docs/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity). diff --git a/content/en/v4.5.0/_index.md b/content/en/v4.5.0/_index.md new file mode 100644 index 0000000..42d1495 --- /dev/null +++ b/content/en/v4.5.0/_index.md @@ -0,0 +1,11 @@ +--- +title: "Huawei Container Storage Suite" +linkTitle: v4.5.0 +weight: 20 +--- + +You can get the PDF version of the user guide from the following link: + + + PDF Download + diff --git a/content/en/v4.5.0/about-this-document/_index.md b/content/en/v4.5.0/about-this-document/_index.md new file mode 100644 index 0000000..008bbc1 --- /dev/null +++ b/content/en/v4.5.0/about-this-document/_index.md @@ -0,0 +1,55 @@ +--- +title: "About This Document" +linkTitle: "About This Document" +description: +weight: 1 +--- + +## Intended Audience{#en-us_topic_0150885097_section1582418311113} + +This document is intended for: + +- Technical support engineers +- O&M engineers +- Engineers with basic knowledge of storage and Kubernetes + +## Symbol Conventions{#en-us_topic_0150885097_section992586151412} + +The symbols that may be found in this document are defined as follows. + + +

Container Name

Description

+

Description

New Value

+

K8s Version Requirements

+

New Value

images.huaweiCSIService

+

storage-backend-controller

+

huawei-csi image.

huawei-csi image.

+

v1.16+

huawei-csi:4.5.0

+

storage-backend-controller:4.6.0

images.storageBackendSidecar

+

storage-backend-sidecar

Image used by Huawei backends to manage storageBackendContent resources.

+

Image used by Huawei backends to manage storageBackendContent resources.

storage-backend-sidecar:4.5.0

+

v1.16+

+

storage-backend-sidecar:4.6.0

images.storageBackendController

+

huawei-csi-driver

+

Image used by Huawei backends to manage storageBackendClaim resources.

Image used by Huawei backends to manage storageBackendClaim resources.

+

v1.16+

storage-backend-controller:4.5.0

+

huawei-csi:4.6.0

images.huaweiCSIExtender

+

huawei-csi-extender

huawei-csi-extender image.

+

huawei-csi-extender image.

huawei-csi-extender:4.5.0

+

v1.16+

+

huawei-csi-extender:4.6.0

images.sidecar.livenessProbe

+

images.sidecar.livenessProbe

+

livenessprobe sidecar image.

livenessprobe sidecar image.

+

v1.16+

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

+

registry.k8s.io/sig-storage/livenessprobe:v2.12.0

images.sidecar.provisioner

+

images.sidecar.resizer

+

csi-resizer sidecar image.

csi-provisioner sidecar image.

+

v1.16+

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

+

registry.k8s.io/sig-storage/csi-resizer:v1.9.0

images.sidecar.attacher

+

images.sidecar.registrar

csi-attacher sidecar image.

+

csi-node-driver-registrar sidecar image.

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

+

v1.16+

+

registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

images.sidecar.resizer

+

images.sidecar.snapshotter

+

csi-snapshotter sidecar image.

csi-resizer sidecar image.

+

v1.20+

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

+

registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

images.sidecar.snapshotter

+

v1.17-v1.19

csi-snapshotter sidecar image.

+

registry.k8s.io/sig-storage/csi-snapshotter:v4.2.1

+

images.sidecar.snapshotController

+

k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.1

+

snapshot-controller sidecar image.

+

v1.20+

+

registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

images.sidecar.snapshotController

+

v1.17-v1.19

snapshot-controller sidecar image.

+

registry.k8s.io/sig-storage/snapshot-controller:v4.2.1

k8s.gcr.io/sig-storage/snapshot-controller:v4.2.1

+

images.sidecar.provisioner

+

+

csi-provisioner sidecar image.

+

v1.20+

+

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

images.sidecar.registrar

+

v1.17-v1.19

+

registry.k8s.io/sig-storage/csi-provisioner:v3.0.0

+

v1.16.x

+

quay.io/k8scsi/csi-provisioner:v1.4.0

csi-node-driver-registrar sidecar image.

+

images.sidecar.attacher

+

+

csi-attacher sidecar image.

+

v1.17+

+

registry.k8s.io/sig-storage/csi-attacher:v4.4.0

+

v.1.16.x

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

+

quay.io/k8scsi/csi-attacher:v1.2.1

-

If ALUA is enabled for the host multipathing software, ensure that the backend ALUA configuration is the same as that of the host ALUA configuration.

-

For details about the ALUA configuration, see Configuring ALUA Using Helm.

+

For details about the ALUA configuration, see Configuring ALUA Using Helm.

parameters.parentname

@@ -180,7 +180,7 @@ An example template of the backend configuration file is **/examples/backend/ba

-

This parameter is mandatory if storage topology awareness is enabled. For details, see Configuring Storage Topology Awareness Using Helm.

+

This parameter is mandatory if storage topology awareness is enabled. For details, see Configuring Storage Topology Awareness Using Helm.

maxClientThreads

@@ -191,7 +191,7 @@ An example template of the backend configuration file is **/examples/backend/ba

30

If this parameter is not specified, the default maximum number of connections is 30.

+

The value ranges from 1 to 30. If this parameter is not set or the value is not in the specified range, the default value 30 is used.

ReadWriteOnce

  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. For versions earlier than Kubernetes 1.29, you need to enable this feature by following the instructions in Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows:

OceanStor Dorado 6.1.2

+

OceanStor Dorado

512 Ki to 256 Ti

512 Ki to 50 Ti

OceanStor Pacific series 8.1.0

+

OceanStor Pacific series

64 Mi to 512 Ti

OceanStor Dorado 6.1.2

+

OceanStor Dorado

512 Ki to 256 Ti

512 Ki to 500 Ti

OceanStor Pacific series 8.1.0

+

OceanStor Pacific series

64 Mi to 512 Ti

3

4 indicates the highest speed. This parameter is available when you clone a PVC or create a PVC using a snapshot. For details, see Cloning a PVC or Creating a PVC Using a Snapshot.

+

4 indicates the highest speed. This parameter is available when you clone a PVC or create a PVC using a snapshot. For details, see Cloning a PVC or Creating a PVC Using a Snapshot.

parameters.applicationType

@@ -268,7 +268,7 @@ weight: 2

parameters.accesskrb5i

Configures the krb5i security protocol.

-
  • read_only: read-only
  • read_write: read and write
  • none: no permission
+
  • read_only: read-only
  • read_write: read and write
  • none: no permission

No

parameters.accesskrb5p

Configures the krb5p security protocol.

-
  • read_only: read-only
  • read_write: read and write
  • none: no permission
+
  • read_only: read-only
  • read_write: read and write
  • none: no permission

No

OceanStor Dorado 6.1.5+ and OceanStor 6.1.5+ NAS storage devices are supported.

parameters.disableVerifyCapacity

+

Whether to disable volume capacity verification. After this function is disabled, the system will not verify whether the volume capacity is an integer multiple of the sector size.

+

The value can be:

+
  • "true": disables volume capacity verification.
  • "false": enables volume capacity verification.
+

No

+

"false"

+
  • For OceanStor Dorado and OceanStor storage, the sector size is 512 B.
  • For OceanStor Pacific storage, the sector size is 1 MiB.
+

parameters.description

Configures the description of the created file system or LUN.

@@ -394,7 +407,7 @@ weight: 2

-

  • If Kerberos 5 is used, set this parameter to krb5.
  • If Kerberos 5i is used, set this parameter to krb5i.
  • If Kerberos 5p is used, set this parameter to krb5p.
  • Kerberos supports only NFSv4.0 or NFSv4.1.
+
  • If Kerberos 5 is used, set this parameter to krb5.
  • If Kerberos 5i is used, set this parameter to krb5i.
  • If Kerberos 5p is used, set this parameter to krb5p.
  • Kerberos supports only NFSv4.0 and later versions.
  • OceanStor Dorado and OceanStor 6.1.3 and later versions support Kerberos.

mountOptions.proto

@@ -406,7 +419,7 @@ weight: 2

-

  • Ensure that NFS over RDMA is enabled on the storage system.
  • NAS storage of OceanStor Dorado 6.1.7 or later is supported.
+
  • Ensure that NFS over RDMA is enabled on the storage system.
  • For Huawei enterprise storage, NAS storage of OceanStor Dorado and OceanStor 6.1.7 and later is supported.
  • For Huawei distributed storage, NAS storage of OceanStor Pacific 8.2.0 and later is supported. If NFS over RDMA is used for distributed storage, mountOptions.nfsvers must be set to 3.

mountOptions.port

@@ -524,7 +537,7 @@ weight: 2

Read/write type.

The value can be:

-
  • 2: read and write I/Os
+
  • 2: read and write I/Os

MAXBANDWIDTH

diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md index d969e5c..c82e56b 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md @@ -11,7 +11,7 @@ Manage Volume Provisioning allows administrators to use resources created on sto - The Kubernetes cluster is rebuilt. - Storage data is migrated in disaster recovery \(DR\) scenarios. ->![](/css-docs/public_sys-resources/en/icon-note.gif) +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) >In scenarios where multiple Kubernetes clusters are deployed, when Manage Volume Provisioning is used to manage the same storage resource, management operations performed on the PVC corresponding to the resource in any cluster will not be synchronized to other clusters. >For example, when you expand the capacity of a PVC in a cluster, the capacity of the corresponding PVC in other clusters will not be automatically expanded. In this case, you need to manually expand the capacity in other clusters by running the expansion commands in [Expanding the Capacity of a PVC](/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc). @@ -85,7 +85,7 @@ Manage Volume Provisioning allows administrators to use resources created on sto mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s ``` - >![](/css-docs/public_sys-resources/en/icon-notice.gif) + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >- After the PVC is created, if the PVC is in the **Pending** state after a long time \(for example, one minute\), refer to [When a PVC Is Created, the PVC Is in the Pending State](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state). >- You are advised to create or delete a maximum of 100 PVCs in a batch. diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md index 9bcc0d5..3c40c75 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md @@ -31,7 +31,7 @@ After configuring a StorageClass, you can use the StorageClass to configure a PV

csi.huawei.com/manageVolumeName: * csi.huawei.com/manageBackendName: *

  • For details about how to obtain Driver name, see Table 4.
  • Driver name/manageVolumeName: name of an existing volume on the storage. Only English characters are supported.
  • Driver name/manageBackendName: name of the storage backend in CSI.
+
  • For details about how to obtain Driver name, see Table 4.
  • Driver name/manageVolumeName: name of an existing volume on the storage. Only English characters are supported.
  • Driver name/manageBackendName: name of the storage backend in CSI.

You can run the oceanctl get backend -n huawei-csi command to obtain the backend name.

ReadWriteOnce

  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. For versions earlier than Kubernetes 1.29, you need to enable this feature by following the instructions in Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows:

OceanStor Dorado 6.1.2

+

OceanStor Dorado

512 Ki to 256 Ti

512 Ki to 50 Ti

OceanStor Pacific series 8.1.0

+

OceanStor Pacific series

64 Mi to 512 Ti

OceanStor Dorado 6.1.2

+

OceanStor Dorado

512 Ki to 256 Ti

512 Ki to 500 Ti

OceanStor Pacific series 8.1.0

+

OceanStor Pacific series

64 Mi to 512 Ti

-

For details about the configuration format, refer to the Linux permission settings, for example, 777 and 755.

-

This parameter is available when volumeType is set to lun.

+

All SAN storage devices are supported. Only the following NAS storage devices are supported: OceanStor Dorado, OceanStor, and OceanStor Pacific 8.1.2 and later versions.

mountOptions.nfsvers

@@ -201,7 +201,7 @@ If SAN storage is used, refer to example file **/examples/sc-lun.yaml**. If NAS

-

  • If Kerberos 5 is used, set this parameter to krb5.
  • If Kerberos 5i is used, set this parameter to krb5i.
  • If Kerberos 5p is used, set this parameter to krb5p.
  • Kerberos supports only NFSv4.0 or NFSv4.1.
+
  • If Kerberos 5 is used, set this parameter to krb5.
  • If Kerberos 5i is used, set this parameter to krb5i.
  • If Kerberos 5p is used, set this parameter to krb5p.
  • Kerberos supports only NFSv4.0 and later versions.
  • OceanStor Dorado and OceanStor 6.1.3 and later versions support Kerberos.

mountOptions.proto

@@ -213,7 +213,7 @@ If SAN storage is used, refer to example file **/examples/sc-lun.yaml**. If NAS

-

  • Ensure that NFS over RDMA is enabled on the storage system.
  • NAS storage of OceanStor Dorado 6.1.7 or later is supported.
+
  • Ensure that NFS over RDMA is enabled on the storage system.
  • For Huawei enterprise storage, NAS storage of OceanStor Dorado and OceanStor 6.1.7 and later is supported.
  • For Huawei distributed storage, NAS storage of OceanStor Pacific 8.2.0 and later is supported. If NFS over RDMA is used for distributed storage, mountOptions.nfsvers must be set to 3.

mountOptions.port

diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md index 9ac508b..721fd7c 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md @@ -38,7 +38,7 @@ A storage resource, such as a LUN or file system, required by the PV to be creat storage: 100Gi ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >In the configuration file for static volume provisioning, **storageClassName** must be set to **""**. Otherwise, Kubernetes will use the default StorageClass. 2. Run the following command to create a PV based on the prepared .yaml file. @@ -101,7 +101,7 @@ After a PV is created in static volume provisioning mode, you can create a PVC b mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO 12s ``` - >![](/css-docs/public_sys-resources/en/icon-note.gif) + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) >- After the PVC is created, if the PVC is in the **Pending** state after a long time \(for example, one minute\), refer to [When a PVC Is Created, the PVC Is in the Pending State](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state). >- You are advised to create or delete a maximum of 100 PVCs in a batch. diff --git a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md index 979b982..e45e1e2 100644 --- a/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md +++ b/content/en/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md @@ -64,7 +64,7 @@ weight: 1

ReadWriteOnce

  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows:

ReadWriteOnce

  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. For versions earlier than Kubernetes 1.29, you need to enable this feature by following the instructions in Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows:

-

Size of the volume to be created. The format is ***Gi and the unit is GiB.

-

The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see Table 2. If XFS file systems are used, see Table 3. If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version.

+

The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see Table 2. If XFS file systems are used, see Table 3. If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version.

If the PVC capacity does not meet the specifications, a PVC or Pod may fail to be created due to the limitations of storage specifications or host file system specifications.

When a PVC is created using a static PV and the PVC capacity is smaller than the capacity of the bound PV, the PVC capacity is set to the capacity of the bound PV. If the PVC capacity is greater than the capacity of the bound PV, the PVC cannot be created.

+ + + + + + + + + + + + + + + + + + + +

Symbol

+

Description

+

+

Indicates a hazard with a high level of risk which, if not avoided, will result in death or serious injury.

+

+

Indicates a hazard with a medium level of risk which, if not avoided, could result in death or serious injury.

+

+

Indicates a hazard with a low level of risk which, if not avoided, could result in minor or moderate injury.

+

+

Indicates a potentially hazardous situation which, if not avoided, could result in equipment damage, data loss, performance deterioration, or unanticipated results.

+

NOTICE is used to address practices not related to personal injury.

+

+

Supplements the important information in the main text.

+

NOTE is used to address information not related to personal injury, equipment damage, and environment deterioration.

+
diff --git a/content/en/v4.5.0/advanced-features/_index.md b/content/en/v4.5.0/advanced-features/_index.md new file mode 100644 index 0000000..7131bd9 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/_index.md @@ -0,0 +1,10 @@ +--- +title: "Advanced Features" +linkTitle: "Advanced Features" +description: +weight: 8 +--- + + + + diff --git a/content/en/v4.5.0/advanced-features/configuring-alua/_index.md b/content/en/v4.5.0/advanced-features/configuring-alua/_index.md new file mode 100644 index 0000000..152af08 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/configuring-alua/_index.md @@ -0,0 +1,10 @@ +--- +title: "Configuring ALUA" +linkTitle: "Configuring ALUA" +description: +weight: 1 +--- + +Asymmetric Logical Unit Access \(ALUA\) is a model that supports access to multiple target ports. In the multipathing state, ALUA presents active/passive volumes to the host and provides a port access status switchover interface to switch over the working controllers for volumes. For example, when a volume of a controller fails, you can set the status of ports on the controller to **Unavailable**. After the host multipathing software that supports ALUA detects the status, it switches subsequent I/Os from the failed controller to the peer controller. + + diff --git a/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md b/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md new file mode 100644 index 0000000..83d902e --- /dev/null +++ b/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md @@ -0,0 +1,9 @@ +--- +title: "Configuring ALUA Using Helm" +linkTitle: "Configuring ALUA Using Helm" +description: +weight: 1 +--- + + + diff --git a/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md b/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md new file mode 100644 index 0000000..59e78d0 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md @@ -0,0 +1,65 @@ +--- +title: "Configuring ALUA Parameters for a Distributed Storage Backend" +linkTitle: "Configuring ALUA Parameters for a Distributed Storage Backend" +description: +weight: 2 +--- + +For details about how to configure ALUA for Huawei distributed storage, see the host connectivity guide of the corresponding product. + +The ALUA configuration may vary according to the OS. Visit [Huawei Technical Support](https://support.huawei.com/enterprise/en/index.html), enter **Host Connectivity Guide** in the search box, and click the search button. In the search result, select the host connectivity guide for the desired OS. Configure ALUA according to the actual situation and the description in the guide. Huawei CSI will apply the configuration items you set to the initiator of the host on Huawei storage. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>A node with a Pod provisioned does not proactively change ALUA information. The host ALUA configuration changes only after a Pod is provisioned again to the node. +>In non-HyperMetro scenarios of distributed storage, you are advised to set the switchover mode to "disable ALUA" \(default value\). This is because the storage system is in active/active mode and "enables ALUA" is meaningless. Therefore, you are advised not to configure ALUA parameters for distributed storage. + +[Table 1](#table17219165595413) lists the ALUA parameters supported by Huawei CSI for distributed storage. + +**Table 1** ALUA parameters for distributed storage + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

HostName

+

The value of HostName is the host name of a worker node, for example, HostName1 and HostName2.

+

The host name can be obtained by running the cat /etc/hostname command. It can be matched by using regular expressions. When HostName is set to *, the configuration takes effect on hosts with any name. For details, see Regular expression.

+

If the host name of a compute node matches multiple ALUA configuration options, they will be sorted based on the matching accuracy and the first ALUA configuration option will be used. For details about the sorting rules, see Rules for Matching ALUA Configuration Items with Host Names.

+

switchoverMode

+

Switchover mode. This parameter is mandatory. The value can be:

+
  • Disable_alua: disables ALUA.
  • Enable_alua: enables ALUA.
+

In non-HyperMetro scenario, you are advised to set the switchover mode to "disable ALUA". This is because the storage system is in active/active mode and "enables ALUA" is meaningless. Currently, Huawei CSI does not support SAN HyperMetro scenarios. Exercise caution when enabling ALUA.

+

pathType

+

Path type. This parameter is conditionally mandatory. The value can be:

+
  • optimal_path: preferred path
  • non_optimal_path: non-preferred path
+

This parameter is mandatory when the switchover mode is set to "enables ALUA".

+
+ +## Rules for Matching ALUA Configuration Items with Host Names{#section81474196587} + +- If the configured host name rule exactly matches the host name of the service node, the ALUA configuration item corresponding to the host name rule is used. + + For example, the host name rule in configuration item 1 is **\*** and that in configuration item 2 is **^myhost01$**. If the host name of a compute node is **myhost01**, it exactly matches configuration item 2. In this case, Huawei CSI will apply the configuration information in configuration item 2 to the storage side. + +- If the configured host name rule does not exactly match the host name of the service node, the first ALUA configuration item matched by regular expressions is used. + + For example, the host name rule in configuration item 1 is **myhost0\[0-9\]** and that in configuration item 2 is **myhost0\[5-9\]**. In this case, configuration item 1 has a higher priority than configuration item 2. If the host name of a compute node is **myhost06**, both configuration items can be matched. In this case, Huawei CSI will apply the configuration information in configuration item 1 to the storage side. + diff --git a/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md b/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md new file mode 100644 index 0000000..72af466 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md @@ -0,0 +1,178 @@ +--- +title: "Configuring ALUA Parameters for a Huawei Enterprise Storage Backend" +linkTitle: "Configuring ALUA Parameters for a Huawei Enterprise Storage Backend" +description: +weight: 1 +--- + +For details about how to configure ALUA for Huawei enterprise storage, see the host connectivity guide of the corresponding product. + +The ALUA configuration may vary according to the OS. Visit [Huawei Technical Support](https://support.huawei.com/enterprise/en/index.html), enter **Host Connectivity Guide** in the search box, and click the search button. In the search result, select the host connectivity guide for the desired OS. Configure ALUA according to the actual situation and the description in the guide. Huawei CSI will apply the configuration items you set to the initiator of the host on Huawei storage. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>A node with a Pod provisioned does not proactively change ALUA information. The host ALUA configuration changes only after a Pod is provisioned again to the node. + +## ALUA Parameters for OceanStor V5 and OceanStor Dorado V3 Series{#section16218353201717} + +[Table 1](#en-us_topic_0000001299863718_en-us_topic_0000001199142540_table106361351202112) lists the ALUA parameters supported by Huawei CSI for OceanStor V5 and OceanStor Dorado V3 series. + +**Table 1** ALUA parameters supported by Huawei CSI for OceanStor V5 and OceanStor Dorado V3 series + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

HostName

+

Host name rule. This parameter is mandatory. You can use a regular expression.

+

The host name can be obtained by running the cat /etc/hostname command. It can be matched by using regular expressions. When HostName is set to *, the configuration takes effect on hosts with any name. For details, see Regular expression.

+

If the host name of a compute node matches multiple ALUA configuration options, they will be sorted based on the matching accuracy and the first ALUA configuration option will be used. For details about the sorting rules, see Rules for Matching ALUA Configuration Items with Host Names.

+

MULTIPATHTYPE

+

Multipathing type. This parameter is mandatory. The value can be:

+
  • 0: Third-party multipathing is not used.
  • 1: Third-party multipathing is used.
+

--

+

FAILOVERMODE

+

Initiator switchover mode. This parameter is conditionally mandatory. The value can be:

+
  • 0: early-version ALUA
  • 1: common ALUA
  • 2: ALUA not used
  • 3: special ALUA
+

This parameter needs to be specified only when third-party multipathing is used. Configure the initiator switchover mode by referring to the connectivity guide.

+

SPECIALMODETYPE

+

Special mode type of the initiator. This parameter is conditionally mandatory. The value can be:

+
  • 0: special mode 0
  • 1: special mode 1
  • 2: special mode 2
  • 3: special mode 3
+

This parameter needs to be specified only when the initiator switchover mode is special ALUA. Configure the special mode type of the initiator by referring to the connectivity guide.

+

PATHTYPE

+

Initiator path type. This parameter is conditionally mandatory. The value can be:

+
  • 0: preferred path
  • 1: non-preferred path
+

This parameter needs to be specified only when third-party multipathing is used. Configure the initiator path type by referring to the connectivity guide.

+
+ +The following uses OceanStor 18500 V5 as an example to describe how to connect to Red Hat. For details about the host connectivity guide, see _[Huawei SAN Storage Host Connectivity Guide for Red Hat](https://support.huawei.com/enterprise/en/doc/EDOC1000150157)_. + +The following ALUA configuration example is recommended in the OceanStor 18500 V5 host connectivity guide for Red Hat in non-HyperMetro storage scenarios. In this example, the OS on compute node **myhost01** in the Kubernetes cluster is RHEL 5._x_, and that on other compute nodes is RHEL 7._x_. According to the recommendation, the switchover mode of RHEL 5._x_ should be "ALUA not used", and that of RHEL 7._x_ should be "common ALUA". + +```yaml +storage: oceanstor-san +name: oceanstor-iscsi-155 +urls: + - https://192.168.129.155:8088 + - https://192.168.129.156:8088 +pools: + - StoragePool001 +parameters: + protocol: iscsi + portals: + - 192.168.128.120 + - 192.168.128.121 + ALUA: + ^myhost01$: + MULTIPATHTYPE: 1 + FAILOVERMODE: 2 + PATHTYPE: 0 + "*": + MULTIPATHTYPE: 1 + FAILOVERMODE: 1 + PATHTYPE: 0 +``` + +## ALUA Parameters for OceanStor and OceanStor Dorado Series{#section1629834120204} + +[Table 2](#en-us_topic_0000001352783505_en-us_topic_0000001198982584_table7143850202411) lists the ALUA parameters supported by Huawei CSI for OceanStor and OceanStor Dorado series. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>By default, the initiator host access mode of OceanStor and OceanStor Dorado series storage is "balanced mode". Therefore, you are advised not to configure ALUA parameters for OceanStor and OceanStor Dorado series storage. + +**Table 2** ALUA parameters for OceanStor and OceanStor Dorado series + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

HostName

+

Host name rule. This parameter is mandatory. You can use a regular expression.

+

The host name can be obtained by running the cat /etc/hostname command. It can be matched by using regular expressions. When HostName is set to *, the configuration takes effect on hosts with any name. For details, see Regular expression.

+

If the host name of a compute node matches multiple ALUA configuration options, they will be sorted based on the matching accuracy and the first ALUA configuration option will be used. For details about the sorting rules, see Rules for Matching ALUA Configuration Items with Host Names.

+

accessMode

+

Host access mode. This parameter is mandatory. The value can be:

+
  • 0: balanced mode
  • 1: asymmetric mode
+

The balanced mode is recommended in non-HyperMetro scenarios. Currently, Huawei CSI does not support SAN HyperMetro scenarios. Exercise caution when using the asymmetric mode.

+

hyperMetroPathOptimized

+

Whether the path of the host on the current storage array is preferred in HyperMetro scenarios. The value can be:

+
  • 1: yes
  • 0: no
+

This parameter needs to be specified only when the host access mode is set to asymmetric.

+

Currently, Huawei CSI does not support SAN HyperMetro scenarios. Exercise caution when using the asymmetric mode.

+
+ +The following uses OceanStor Dorado 18000 as an example to describe how to connect to Red Hat. For details about the host connectivity guide, see _[OceanStor Dorado and OceanStor Host Connectivity Guide for Red Hat](https://support.huawei.com/enterprise/en/doc/EDOC1100113070/1b4ad686)_. + +The following ALUA configuration example is recommended in the OceanStor Dorado 18000 host connectivity guide for Red Hat in non-HyperMetro storage scenarios. + +```yaml +storage: "oceanstor-san" +name: "dorado-iscsi-155" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "iscsi" + portals: + - "192.168.128.120" + - "192.168.128.121" + ALUA: + "*": + accessMode: 0 +``` + +## Rules for Matching ALUA Configuration Items with Host Names{#section81474196587} + +- If the configured host name rule exactly matches the host name of the service node, the ALUA configuration item corresponding to the host name rule is used. + + For example, the host name rule in configuration item 1 is **\*** and that in configuration item 2 is **^myhost01$**. If the host name of a compute node is **myhost01**, it exactly matches configuration item 2. In this case, Huawei CSI will apply the configuration information in configuration item 2 to the storage side. + +- If the configured host name rule does not exactly match the host name of the service node, the first ALUA configuration item matched by regular expressions is used. + + For example, the host name rule in configuration item 1 is **myhost0\[0-9\]** and that in configuration item 2 is **myhost0\[5-9\]**. In this case, configuration item 1 has a higher priority than configuration item 2. If the host name of a compute node is **myhost06**, both configuration items can be matched. In this case, Huawei CSI will apply the configuration information in configuration item 1 to the storage side. + diff --git a/content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md b/content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md new file mode 100644 index 0000000..c24986d --- /dev/null +++ b/content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md @@ -0,0 +1,88 @@ +--- +title: "Configuring Storage Topology Awareness" +linkTitle: "Configuring Storage Topology Awareness" +description: +weight: 2 +--- + +In the Kubernetes cluster, resources can be scheduled and provisioned based on the topology labels of nodes and the topology capabilities supported by storage backends. + +## Prerequisites{#en-us_topic_0000001200451233_section12171124814413} + +You need to configure topology labels on worker nodes in the cluster. The method is as follows: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to view information about worker nodes in the current cluster. + + ``` + kubectl get node + ``` + + The following is an example of the command output. + + ``` + NAME STATUS ROLES AGE VERSION + node01 Ready controlplane,etcd,worker 42d v1.22.3 + node02 Ready worker 42d v1.22.3 + node03 Ready worker 42d v1.22.3 + ``` + +3. Run the following command to configure a topology label for a worker node. In the preceding command, _nodename_ indicates the name of a worker node. For details about the **key** and **value** parameters, see [Table 1](#en-us_topic_0000001200451233_table1261817418166). + + ``` + kubectl label node = + ``` + + **Table 1** Parameter description + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

<key>

+

Unique identifier of a topology label.

+

The value can be zone, region, or protocol.<protocol>.

+

<protocol> can be set to iscsi, nfs, fc, or roce.

+

<value>

+

Value of a topology label.

+

If key is set to zone or region, value is a user-defined parameter.

+

If key is set to protocol.<protocol>, value is fixed at csi.huawei.com.

+
+ + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- A topology label must start with **topology.kubernetes.io**. Topology label examples: + > - Example 1: **topology.kubernetes.io/region=China-west** + > - Example 2: **topology.kubernetes.io/zone=ChengDu** + > - Example 3: **topology.kubernetes.io/protocol.iscsi=csi.huawei.com** + > - Example 4: **topology.kubernetes.io/protocol.fc=csi.huawei.com** + >- A key in a topology label on a node can have only one value. + >- If multiple protocols are configured in a topology label on a node, when you configure a StorageClass, the StorageClass needs to meet only one of the protocols. + >- If both the region and the zone are configured in a topology label on a node, when you configure a StorageClass, the StorageClass must meet all filter criteria. + +4. Run the following command to view the label information about all worker nodes in the current cluster. + + ``` + kubectl get nodes -o=jsonpath='{range .items[*]}[{.metadata.name}, {.metadata.labels}]{"\n"}{end}' | grep --color "topology.kubernetes.io" + ``` + + The following is an example of the command output. + + ``` + [node01,"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"node01","kubernetes.io/os":"linux","node-role.kubernetes.io/controlplane":"true","node-role.kubernetes.io/etcd":"true","node-role.kubernetes.io/worker":"true","topology.kubernetes.io/zone":"ChengDu"}] + ``` + + diff --git a/content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md b/content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md new file mode 100644 index 0000000..2bf9eef --- /dev/null +++ b/content/en/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md @@ -0,0 +1,147 @@ +--- +title: "Configuring Storage Topology Awareness Using Helm" +linkTitle: "Configuring Storage Topology Awareness Using Helm" +description: +weight: 1 +--- + +## Procedure{#en-us_topic_0000001352573769_section748483471312} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Go to the directory where the Helm project is located. If the previous Helm project cannot be found, copy the **helm** directory in the component package to any directory on the master node. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +3. Go to the backend service configuration directory **/examples/backend/** and back up the **backend.yaml** file. + + ``` + cp backend.yaml backend.yaml.bak + ``` + +4. Run the **vi **_backend.yaml_ command to open the file and configure topology awareness as required. The following is an example. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ```yaml + storage: "oceanstor-san" + name: "dorado-iscsi-155" + namespace: "huawei-csi" + urls: + - "https://192.168.129.155:8088" + pools: + - "StoragePool001" + parameters: + protocol: "iscsi" + portals: + - "10.10.30.20" + - "10.10.30.21" + supportedTopologies: + - { "topology.kubernetes.io/region": "China-west", "topology.kubernetes.io/zone": "ChengDu" } + - { "topology.kubernetes.io/region": "China-south","topology.kubernetes.io/zone": "ShenZhen" } + maxClientThreads: "30" + ``` + +5. Run the following command to delete the storage backend to be modified. In the command, **dorado-iscsi-155** indicates the storage backend name. + + ``` + oceanctl delete backend dorado-iscsi-155 -n huawei-csi + ``` + +6. Run the following command to create a storage backend. + + ``` + oceanctl create backend -f ../examples/backend/backend.yaml -i yaml + ``` + + Enter the storage user name and password as prompted. + + ``` + Please enter this backend user name:admin + Please enter this backend password: + ``` + +7. Run the **vi StorageClass.yaml** command to modify the .yaml file. Press **I** or **Insert** to enter the insert mode and add related parameters in the .yaml file. For details about the parameters, see [Table 1](#en-us_topic_0000001352573769_table118458471087). After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + Add the following configuration items to the _StorageClass.yaml_ file. + + - Example 1: Configure zone and region information in the StorageClass. + + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: example-storageclass + provisioner: csi.huawei.com + parameters: + volumeType: lun + allocType: thin + volumeBindingMode: WaitForFirstConsumer + allowedTopologies: + - matchLabelExpressions: + - key: topology.kubernetes.io/zone + values: + - ChengDu + - key: topology.kubernetes.io/region + values: + - China-west + ``` + + - Example 2: Configure protocol information in the StorageClass. + + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: protocol-example-storageclass + provisioner: csi.huawei.com + parameters: + volumeType: lun + allocType: thin + volumeBindingMode: WaitForFirstConsumer + allowedTopologies: + - matchLabelExpressions: + - key: topology.kubernetes.io/protocol.iscsi + values: + - csi.huawei.com + ``` + + **Table 1** Parameter description + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

volumeBindingMode

+

PersistentVolume binding mode, used to control the time when PersistentVolume resources are dynamically allocated and bound.

+

You can set this parameter to WaitForFirstConsumer or Immediate.

+

WaitForFirstConsumer: indicates that the binding and allocation of the PersistentVolume are delayed until a Pod that uses the PVC is created.

+

Immediate: The PersistentVolume is bound and allocated immediately after a PVC is created.

+

allowedTopologies.matchLabelExpressions

+

Topology information label, which is used to filter CSI backends and Kubernetes nodes. If the matching fails, PVCs or Pods cannot be created.

+

Both key and value must be configured in a fixed format.

+

key: This parameter can be set to topology.kubernetes.io/zone or topology.kubernetes.io/region.

+

topology.kubernetes.io/protocol.<protocol>: <protocol> indicates the protocol type and can be iscsi, fc, or nfs.

+

value:

+

If key is topology.kubernetes.io/zone or topology.kubernetes.io/region, value must be the same as the topology label set in the prerequisites.

+

If key is topology.kubernetes.io/protocol.<protocol>, value is fixed at csi.huawei.com.

+
+ +8. Run the following command to create a StorageClass based on the .yaml file. + + ``` + kubectl create -f StorgeClass.yaml + ``` + +9. Use the StorageClass to create a PVC with the topology capability. For details, see [PVC Parameters for Dynamic Volume Provisioning](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning). + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/_index.md b/content/en/v4.5.0/advanced-features/pvc-change/_index.md new file mode 100644 index 0000000..a5b81d3 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/_index.md @@ -0,0 +1,11 @@ +--- +title: "PVC Change" +linkTitle: "PVC Change" +description: +weight: 3 +--- + +This section describes how to use Huawei CSI to complete a PVC change. + + + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md new file mode 100644 index 0000000..329335e --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md @@ -0,0 +1,51 @@ +--- +title: "Configuring PVC Changes" +linkTitle: "Configuring PVC Changes" +description: +weight: 2 +--- + +The PVC change feature is implemented using CRD. Related resources are described as follows. + +**Table 1** Resource description + + + + + + + + + + + + + + + + + + + +

NAME

+

APIVERSION

+

NAMESPACED

+

KIND

+

volumemodifyclaims

+

xuanwu.huawei.io/v1

+

false

+

VolumeModifyClaim

+

volumemodifycontents

+

xuanwu.huawei.io/v1

+

false

+

VolumeModifyContent

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- VolumeModifyClaim resources can be created, deleted, and queried, but cannot be updated. +>- VolumeModifyContent resources can only be queried and are used to display the change details of a single PVC. Do not manually create, delete, or modify the resources. +>- VolumeModifyContent resources are managed by VolumeModifyClaim. Do not manually manage VolumeModifyContent resources. + + + + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md new file mode 100644 index 0000000..a6b60e9 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md @@ -0,0 +1,13 @@ +--- +title: "Creating a PVC Change" +linkTitle: "Creating a PVC Change" +description: +weight: 1 +--- + +## Prerequisites{#section5216334164716} + +The storage backends associated with the PVC to be changed are HyperMetro storage backends. If they are not HyperMetro storage backends, configure them by following the instructions in [Manually Updating a Storage Backend](/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend). + + + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md new file mode 100644 index 0000000..a9ca445 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md @@ -0,0 +1,26 @@ +--- +title: "Creating a PVC Change Resource" +linkTitle: "Creating a PVC Change Resource" +description: +weight: 2 +--- + +This section describes how to create a PVC change resource based on a configured PVC change file. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- Only the HyperMetro active-active \(AA\) mode is supported. +>- When a common volume is changed to a HyperMetro volume, only the storage volume at the primary site can be changed. +>- Do not use Huawei CSI to manage a PVC during PVC change resource creation. +>- Multiple VolumeModifyClaim resources cannot be created for the same PVC. If the target PVC needs to be changed for multiple times, perform the changes one by one. + +## Procedure{#section694142182112} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to create a PVC change. + + ``` + kubectl create -f volumemodifyclaim.yaml + ``` + +3. Query the creation result by following the instructions in [Querying a PVC Change](/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change). + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md new file mode 100644 index 0000000..84130a7 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md @@ -0,0 +1,133 @@ +--- +title: "Preparing a PVC Change File" +linkTitle: "Preparing a PVC Change File" +description: +weight: 1 +--- + +## PVC Change File Description{#section45675517546} + +The sample template of the PVC change file is **/examples/volumemodifyclaim.yaml**. The following table lists the configuration items. + +**Table 1** Parameter description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

apiVersion

+

API group, which is of the string type.

+

Yes

+

xuanwu.huawei.io/v1

+

The value is fixed at xuanwu.huawei.io/v1.

+

kind

+

Resource type, which is of the string type.

+

Yes

+

VolumeModifyClaim

+

The value is fixed at VolumeModifyClaim.

+

metadata.name

+

Name of a cluster resource object, which is of the string type.

+

Yes

+

-

+

The name must comply with the naming rules of a DNS subdomain name. The value can contain a maximum of 63 characters, including digits, lowercase letters, hyphens (-), and periods (.). It must start and end with a lowercase letter or digit.

+

spec.source.kind

+

Data source type, which is of the string type.

+

Yes

+

StorageClass

+

This parameter can only be set to StorageClass.

+

spec.source.name

+

Data source name, which is of the string type.

+

Yes

+

-

+

Only a StorageClass name can be configured.

+

spec.parameters.hyperMetro

+

Whether to change a common volume to a HyperMetro volume. Currently, the value can only be "true".

+

Yes

+

-

+

Only common storage volumes at the primary site can be changed to HyperMetro storage volumes.

+

spec.parameters.metroPairSyncSpeed

+

Data synchronization speed of a HyperMetro pair. The value ranges from 1 to 4.

+

The value can be:

+
  • 1: low
  • 2: medium
  • 3: high
  • 4: highest
+

No

+

-

+

This parameter is available only when spec.parameters.hyperMetro is set to "true".

+

Note:

+
  • If this parameter is not configured, the storage speed of the HyperMetro pair is determined by the storage device.
  • The highest synchronization speed may increase the host latency.
+
+ +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- The **spec.source.kind** and **spec.source.name** parameters are used to specify the volume change scope. For example, if they are set to a StorageClass and the corresponding name respectively, all PVCs in the **Bound** state provisioned using the target StorageClass will be changed. +>- After all associated PVCs are changed, Huawei CSI will replace the original StorageClass and add the **spec.parameters** parameter of the VolumeModifyClaim so that the PVCs meet the StorageClass definition. + +For details about the configuration in typical scenarios, see the following example: + +## Changing a Common Volume to a HyperMetro Volume{#section637055131612} + +The following is an example of changing a common volume to a HyperMetro volume: + +```yaml +apiVersion: xuanwu.huawei.io/v1 +kind: VolumeModifyClaim +metadata: + name: myvmc +spec: + source: + kind: StorageClass + name: mysc + parameters: + hyperMetro: "true" +``` + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md new file mode 100644 index 0000000..7f1f575 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md @@ -0,0 +1,27 @@ +--- +title: "Deleting a PVC Change" +linkTitle: "Deleting a PVC Change" +description: +weight: 3 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- If **STATUS** of a VolumeModifyClaim is **Creating**, deleting the VolumeModifyClaim resource will delete the created resource on the storage side and then remove the cluster resource. After the deletion, if you continue to use the original StorageClass for PVC management, you need to restore the associated storage backend to a non-HyperMetro storage backend. +>- If **STATUS** of a VolumeModifyClaim is **Pending** or **Completed**, deleting the VolumeModifyClaim resource will only remove the cluster resource and will not delete the created resource on the storage side \(that is, there is not interaction with the storage side\). +>- VolumeModifyContent resources are managed by VolumeModifyClaim. Do not manually manage VolumeModifyContent resources. +>- If some PVCs among the PVCs to be changed meet the change requirements and the batch change fails, all PVC changes will be removed. As a result, the PVCs that meet the change requirements will not meet the change requirements. +>- If a PVC to be changed has been manually managed on the storage side, the change may fail. Do not manually manage storage volumes when using the change feature. + +This section describes how to use kubectl to delete a PVC change. The procedure is as follows. + +## Procedure{#section694142182112} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to delete a PVC change. In the command, _vmc-name_ indicates the name of the VolumeModifyClaim resource. + + ``` + kubectl delete volumemodifyclaims + ``` + +3. Query the deletion result by following the instructions in [Creating a PVC Change Resource](/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource). + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md new file mode 100644 index 0000000..bd275a5 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md @@ -0,0 +1,158 @@ +--- +title: "Querying a PVC Change" +linkTitle: "Querying a PVC Change" +description: +weight: 2 +--- + +This section describes how to use Kubectl to query the PVC change status. Currently, Huawei CSI provides the following APIs through CRD. + +## Querying a VolumeModifyClaim{#section8423141610284} + +To query a VolumeModifyClaim using kubectl, perform the following steps. + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to query a PVC change. In the command, _vmc-name_ indicates the name of the VolumeModifyClaim resource. + + ``` + kubectl get volumemodifyclaims -owide + ``` + + The following is an example of the command output. + + ``` + NAME STATUS READY SOURCEKIND SOURCENAME STARTEDAT COMPLETEDAT AGE + myvmc Completed 1/1 StorageClass mysc 2024-06-06T03:19:13Z 2024-06-06T03:19:16Z 2m2s + ``` + + **Table 1** Command output description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

NAME

+

VolumeModifyClaim resource name.

+

STATUS

+

VolumeModifyClaim resource status. The value can be:

+
  • Pending: initial status.
  • Creating: The VolumeModifyClaim has completed basic verification and the server has received the change task, but the task has not been completed.
  • Completed: All associated PVCs are changed.
  • Rollback: When associated PVCs are partially changed, a user deletes PVCs.
  • Deleting: When all associated PVCs are changed, a user deletes PVCs.
+

READY

+

Ratio of the number of changed PVCs to the total number of PVCs that need to be changed.

+

SOURCEKIND

+

Data source type, for example, StorageClass.

+

SOURCENAME

+

Data source name, for example, StorageClass name.

+

STARTEDAT

+

Change start time, that is, the timestamp when the server receives the task and starts to process the task.

+

COMPLETEDAT

+

Change completion time, that is, the timestamp when the changes of all associated PVCs are complete. This parameter exists only when STATUS is Completed.

+

AGE

+

Lifetime of a VolumeModifyClaim from the time when it is created to the current time.

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>You can use kubectl to view the **Events** information of a VolumeModifyClaim. If a VolumeModifyClaim cannot meet the creation requirements or an error occurs during the creation, the server will record the **Events** information. The following command is used as an example: +>``` +>kubectl describe volumemodifyclaims local-to-hypermetro +>``` + +## Querying a VolumeModifyContent{#section215854219281} + +A VolumeModifyContent is created using a VolumeModifyClaim and records the change details of a single PVC. To query a VolumeModifyContent using kubectl, perform the following steps: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to query a PVC change. In the command, _myvmc-uid_ indicates the VolumeModifyContent resource name. + + ``` + kubectl get volumemodifycontents myvmc-uid -owide + ``` + + The following is an example of the command output. + + ``` + NAME STATUS MODIFYCLAIMNAME SOURCEVOLUME STARTEDAT COMPLETEDAT AGE + myvmc-uid Completed myvmc default/mypvc 2024-06-06T03:19:07Z 2024-06-06T03:19:09Z 36m + ``` + + **Table 2** Command output description + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

NAME

+

VolumeModifyContent resource name. The format is VolumeModifyClaim name-UID of the associated PVC.

+

STATUS

+

VolumeModifyContent resource status. The value can be:

+
  • Pending: initial status.
  • Creating: The VolumeModifyContent has completed basic verification and the server has received the change task, but the task has not been completed.
  • Completed: The associated PVC is changed.
  • Rollback: The PVC change is being rolled back.
+

MODIFYCLAIMNAME

+

Name of the associated VolumeModifyClaim.

+

SOURCEVOLUME

+

Information about the associated PVC. The format is Namespace name/PVC name.

+

STARTEDAT

+

PVC change start time, that is, the timestamp when the server receives the task and starts to process the task.

+

COMPLETEDAT

+

PVC change completion time, that is, the timestamp when the changes of all associated PVCs are complete. This parameter exists only when STATUS is Completed.

+

AGE

+

Lifetime of a VolumeModifyContent from the time when it is created to the current time.

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>You can use kubectl to view the **Events** information of a VolumeModifyContent. If a VolumeModifyContent cannot meet the creation requirements or an error occurs during the PVC change, the server will record the **Events** information. The following command is used as an example: +>``` +>kubectl describe volumemodifycontents myvmc-uid +>``` + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md b/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md new file mode 100644 index 0000000..a539c01 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md @@ -0,0 +1,11 @@ +--- +title: "Enabling the PVC Change Feature" +linkTitle: "Enabling the PVC Change Feature" +description: +weight: 1 +--- + +The PVC change feature is disabled by default during Huawei CSI installation. To use this feature, perform the following steps. + + + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md b/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md new file mode 100644 index 0000000..f3522c0 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md @@ -0,0 +1,40 @@ +--- +title: "Enabling the PVC Change Feature Manually" +linkTitle: "Enabling the PVC Change Feature Manually" +description: +weight: 2 +--- + +## Prerequisites{#section10631153612202} + +Huawei CSI has been manually installed. + +## Procedure{#section810241682811} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Go to the **manual/esdk** working directory and run the following command to configure the volume change CRD. + + ``` + kubectl apply -f ./crds/volume-modify/ + ``` + +3. Run the following command. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + kubectl apply -f ./deploy/huawei-csi-controller-extender.yaml + ``` + +4. Run the following command to check whether the services are started. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. In the preceding command, **huawei-csi** indicates the namespace for deploying Huawei CSI. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 10/10 Running 0 24m + huawei-csi-node-tqs87 3/3 Running 0 24m + ``` + diff --git a/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md b/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md new file mode 100644 index 0000000..b598368 --- /dev/null +++ b/content/en/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md @@ -0,0 +1,78 @@ +--- +title: "Enabling the PVC Change Feature Using Helm" +linkTitle: "Enabling the PVC Change Feature Using Helm" +description: +weight: 1 +--- + +## Prerequisites{#section10631153612202} + +- You have installed Huawei CSI using Helm. +- Huawei CSI v4.5.0 or later is used. + +## Procedure{#section1361061612118} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to check whether the PVC change feature is enabled. + + **helm-huawei-csi** indicates the Helm chart name specified during installation, and **huawei-csi** indicates the Helm chart namespace specified during installation. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + helm get values helm-huawei-csi -n huawei-csi -a | grep volumeModify -A 1 + ``` + + The following is an example of the command output. + + - If **enabled: true** is displayed in the command output, the feature is enabled. In this case, skip the following steps. + - If **enabled: false** is displayed in the command output, perform the following steps to enable the PVC change feature. + + ```yaml + volumeModify: + enabled: false + ``` + +3. Go to the **/helm/esdk** directory and run the following command to configure the volume change CRD. + + ``` + # kubectl apply -f ./crds/volume-modify/ + customresourcedefinition.apiextensions.k8s.io/volumemodifyclaims.xuanwu.huawei.io configured + customresourcedefinition.apiextensions.k8s.io/volumemodifycontents.xuanwu.huawei.io configured + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >If the command output contains **Warning: resource customresourcedefinitions/volumemodifycontents.xuanwu.huawei.io is missing the kubectl.kubernetes.io/last-applied-configuration...**, you can ignore it. This message is displayed because the **kubectl create** command instead of the **kubectl apply** command is used for installation by Helm. + +4. Run the following command to obtain the original service configuration file. + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +5. Run the **vi update-values.yaml** command to open the file obtained in [4](#li1230915254221) and modify the following configuration. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ```yaml + csiExtender: + volumeModify: + enabled: true + ``` + +6. Run the following command to update Huawei CSI services. + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./update-values.yaml + ``` + +7. Run the following command to check whether the services are started. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. In the preceding command, **huawei-csi** indicates the namespace for deploying Huawei CSI. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 10/10 Running 0 24m + huawei-csi-node-tqs87 3/3 Running 0 20m + ``` + diff --git a/content/en/v4.5.0/appendix/_index.md b/content/en/v4.5.0/appendix/_index.md new file mode 100644 index 0000000..3c7fa47 --- /dev/null +++ b/content/en/v4.5.0/appendix/_index.md @@ -0,0 +1,13 @@ +--- +title: "Appendix" +linkTitle: "Appendix" +description: +weight: 11 +--- + + + + + + + diff --git a/content/en/v4.5.0/appendix/communication-matrix.md b/content/en/v4.5.0/appendix/communication-matrix.md new file mode 100644 index 0000000..065e1bf --- /dev/null +++ b/content/en/v4.5.0/appendix/communication-matrix.md @@ -0,0 +1,165 @@ +--- +title: "Communication Matrix" +linkTitle: "Communication Matrix" +description: +weight: 4 +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Source Device

+

Host where CSI controller is located

+

Host where CSI controller is located

+

Host where CSI node is located

+

Kubernetes master node

+

Source IP Address

+

IP address of the source device

+

IP address of the source device

+

IP address of the source device

+

IP address of the source device

+

Source Port

+

1024 to 65536

+

1024 to 65536

+

1024 to 65536

+

1024 to 65536

+

Destination Device

+

Storage device

+

Host where CSI controller is located

+

Host where CSI node is located

+

Host where CSI controller is located

+

Destination IP Address

+

Management IP address of the storage device

+

IP address of the destination device

+

IP address of the destination device

+

IP address of the destination device

+

Destination Port (for Listening)

+

8088

+

9808

+

9800

+

4433

+

Protocol

+

TCP

+

TCP

+

TCP

+

TCP

+

Port Description

+

Used to create, manage, and delete volumes

+

Used by Kubernetes to check the health status of CSI controller

+

Used by Kubernetes to check the health status of CSI node

+

Used to invoke webhook verification

+

Listening Port Configurable

+

No

+

No

+

No

+

Yes

+

Authentication Mode

+

User name and password

+

Certificate

+

Certificate

+

Certificate

+

Encryption Mode

+

TLS 1.3/TLS 1.2

+

TLS 1.3/TLS 1.2

+

TLS 1.3/TLS 1.2

+

TLS 1.3/TLS 1.2

+

Plane

+

OM

+

O&M plane

+

O&M plane

+

O&M plane

+

Special Scenario

+

None

+

None

+

None

+

None

+

Remarks

+

Enable some source ports.

+

-

+

-

+

For details about how to change the webhook port, see the CSI user guide.

+
+ diff --git a/content/en/v4.5.0/appendix/configuring-custom-permissions.md b/content/en/v4.5.0/appendix/configuring-custom-permissions.md new file mode 100644 index 0000000..66df4a8 --- /dev/null +++ b/content/en/v4.5.0/appendix/configuring-custom-permissions.md @@ -0,0 +1,328 @@ +--- +title: "Configuring Custom Permissions" +linkTitle: "Configuring Custom Permissions" +description: +weight: 5 +--- + +## User-defined Role Configurations{#section366214517918} + +For different storage resources, refer to the following configurations: + +- For NAS resources, configure the minimum permissions by referring to [Table 1](#table66121923174916). +- For SAN resources, configure the minimum permissions by referring to [Table 2](#table51362243359). + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>For details about how to configure permissions for user-defined roles, see [OceanStor Dorado 6000, Dorado 18000 Series Product Documentation](https://support.huawei.com/hedex/hdx.do?docid=EDOC1100214756&id=EN-US_TOPIC_0000001640708705&lang=en). + +**Table 1** Minimum permissions for NAS resources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Permission Object

+

Parent Object

+

Read/Write Permission

+

Function

+

workload_type

+

file_storage_service

+

Read-only

+

Queries the workload type.

+

file_system

+

file_storage_service

+

Read and write

+

Manages file systems.

+

fs_snapshot

+

file_storage_service

+

Read and write

+

Manages file system snapshots.

+

quota

+

file_storage_service

+

Read and write

+

Manages file system quotas.

+

nfs_service

+

file_storage_service

+

Read-only

+

Queries NFS services.

+

share

+

file_storage_service

+

Read and write

+

Manages NFS shares.

+

dtree

+

file_storage_service

+

Read and write

+

Manages dtrees.

+

hyper_metro_pair

+

hyper_metro

+

Read and write

+

Creates file system HyperMetro pairs.

+

hyper_metro_domain

+

hyper_metro

+

Read-only

+

Queries information about file system HyperMetro domains.

+

remote_device

+

local_data_protection

+

Read-only

+

Queries remote device information.

+

storage_pool

+

pool

+

Read-only

+

Queries storage pool information.

+

smart_qos

+

resource_performance_tuning

+

Read and write

+

Manages SmartQoS policies.

+

system

+

system

+

Read-only

+

Queries storage device information (this object needs to be configured only when the owning group is the system group).

+

vstore

+

vstore

+

Read-only

+

Queries vStore information.

+

port

+

network

+

Read-only

+

Queries logical port information.

+
+ +**Table 2** Minimum permissions for SAN resources + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Permission Object

+

Parent Object

+

Read/Write Permission

+

Function

+

remote_device

+

local_data_protection

+

Read-only

+

Queries remote device information.

+

hyper_clone

+

local_data_protection

+

Read and write

+

Manages clone pairs.

+

lun_snapshot

+

local_data_protection

+

Read and write

+

Manages LUN snapshots.

+

workload_type

+

lun

+

Read-only

+

Queries the workload type.

+

lun

+

lun

+

Read and write

+

Manages LUNs.

+

host

+

mapping_view

+

Read and write

+

Manages hosts.

+

host_group

+

mapping_view

+

Read and write

+

Manages host groups.

+

initiator

+

mapping_view

+

Read and write

+

Manages initiators.

+

lun_group

+

mapping_view

+

Read and write

+

Manages LUN groups.

+

mapping_view

+

mapping_view

+

Read and write

+

Manages mapping views.

+

target

+

mapping_view

+

Read-only

+

Queries iSCSI initiators.

+

port

+

network

+

Read-only

+

Queries logical ports.

+

storage_pool

+

pool

+

Read-only

+

Queries storage pool information.

+

smart_qos

+

resource_performance_tuning

+

Read and write

+

Manages SmartQoS policies.

+

system

+

system

+

Read-only

+

Queries storage device information (this object needs to be configured only when the owning group is the system group).

+

vstore

+

vstore

+

Read-only

+

Queries vStore information.

+
+ diff --git a/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md b/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md new file mode 100644 index 0000000..27a23bd --- /dev/null +++ b/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md @@ -0,0 +1,52 @@ +--- +title: "Example ALUA Configuration Policy of Distributed Storage" +linkTitle: "Example ALUA Configuration Policy of Distributed Storage" +description: +weight: 3 +--- + +**Example 1:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + "*": + switchoverMode: Enable_alua + pathType: optimal_path + node1: + switchoverMode: Enable_alua + pathType: non_optimal_path +``` + +If the host name is **node1**, both of the preceding ALUA configuration sections can be used to configure initiators. According to the configuration policy rules in [Configuring ALUA Parameters for a Distributed Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend), the priority of the second configuration section \(where **HostName** is **node1**\) is higher than that of the first configuration section \(where **HostName** is **\***\). + +**Example 2:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + node[0-9]: + switchoverMode: Enable_alua + pathType: optimal_path + node[5-7]: + switchoverMode: Enable_alua + pathType: non_optimal_path +``` + +If the host name is **node6**, both of the preceding ALUA configuration sections can be used to configure initiators. According to the configuration policy rules in [Configuring ALUA Parameters for a Distributed Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend), select the first ALUA configuration section to configure initiators. + +**Example 3:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + node1$: + switchoverMode: Enable_alua + pathType: optimal_path + node10$: + switchoverMode: Enable_alua + pathType: non_optimal_path +``` + +According to the configuration policy rules in [Configuring ALUA Parameters for a Distributed Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend): For host **node1**, select the first ALUA configuration section to configure initiators. For host **node10**, select the second ALUA configuration section to configure initiators. **^** matches the beginning of a character string, and **$** matches the end of a character string. + diff --git a/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md b/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md new file mode 100644 index 0000000..8de07a5 --- /dev/null +++ b/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md @@ -0,0 +1,52 @@ +--- +title: "Example ALUA Configuration Policy of OceanStor Dorado" +linkTitle: "Example ALUA Configuration Policy of OceanStor Dorado" +description: +weight: 2 +--- + +**Example 1:** The configuration file content is as follows: + +``` +parameters: + ALUA: + "*": + accessMode: 1 + hyperMetroPathOptimized: 1 + node1: + accessMode: 1 + hyperMetroPathOptimized: 0 +``` + +If the host name is **node1**, both of the preceding ALUA configuration sections can be used to configure initiators. According to the configuration policy rules in [Configuring ALUA Parameters for a Huawei Enterprise Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend), the priority of the second configuration section \(where **HostName** is **node1**\) is higher than that of the first configuration section \(where **HostName** is **\***\). + +**Example 2:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + node[0-9]: + accessMode: 1 + hyperMetroPathOptimized: 1 + node[5-7]: + accessMode: 1 + hyperMetroPathOptimized: 0 +``` + +If the host name is **node6**, both of the preceding ALUA configuration sections can be used to configure initiators. According to the configuration policy rules in [Configuring ALUA Parameters for a Huawei Enterprise Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend), select the first ALUA configuration section to configure initiators. + +**Example 3:** The configuration file content is as follows: + +```yaml +parameters: + node1$: + node[0-9]: + accessMode: 1 + hyperMetroPathOptimized: 1 + node10$: + accessMode: 1 + hyperMetroPathOptimized: 0 +``` + +According to the configuration policy rules in [Configuring ALUA Parameters for a Huawei Enterprise Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend): For host **node1**, select the first ALUA configuration section to configure initiators. For host **node10**, select the second ALUA configuration section to configure initiators. **^** matches the beginning of a character string, and **$** matches the end of a character string. + diff --git a/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md b/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md new file mode 100644 index 0000000..e8a34f3 --- /dev/null +++ b/content/en/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md @@ -0,0 +1,64 @@ +--- +title: "Example ALUA Configuration Policy of OceanStor V5 and OceanStor Dorado V3" +linkTitle: "Example ALUA Configuration Policy of OceanStor V5 and OceanStor Dorado V3" +description: +weight: 1 +--- + +**Example 1:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + "*": + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 0 + node1: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 1 +``` + +If the host name is **node1**, both of the preceding ALUA configuration sections can be used to configure initiators. According to the configuration policy rules in [Configuring ALUA Parameters for a Huawei Enterprise Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend), the priority of the second configuration section \(where **HostName** is **node1**\) is higher than that of the first configuration section \(where **HostName** is **\***\). + +**Example 2:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + node[0-9]: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 0 + node[5-7]: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 1 +``` + +If the host name is **node6**, both of the preceding ALUA configuration sections can be used to configure initiators. According to the configuration policy rules in [Configuring ALUA Parameters for a Huawei Enterprise Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend), select the first ALUA configuration section to configure initiators. + +**Example 3:** The configuration file content is as follows: + +```yaml +parameters: + ALUA: + node$: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 0 + node10$: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 1 +``` + +According to the configuration policy rules in [Configuring ALUA Parameters for a Huawei Enterprise Storage Backend](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend): For host **node1**, select the first ALUA configuration section to configure initiators. For host **node10**, select the second ALUA configuration section to configure initiators. **^** matches the beginning of a character string, and **$** matches the end of a character string. + diff --git a/content/en/v4.5.0/appendix/huawei-csi-resource-management.md b/content/en/v4.5.0/appendix/huawei-csi-resource-management.md new file mode 100644 index 0000000..add8d87 --- /dev/null +++ b/content/en/v4.5.0/appendix/huawei-csi-resource-management.md @@ -0,0 +1,213 @@ +--- +title: "Huawei CSI Resource Management" +linkTitle: "Huawei CSI Resource Management" +description: +weight: 6 +--- + +This section lists the resource requests and limits used by each container of the Huawei CSI plug-in. For details about the unit, see [Resource units in Kubernetes](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes). + +**Table 1** Container resource requests and limits + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Pod Name

+

Container Name

+

CPU Request

+

CPU Limit

+

Memory Request

+

Memory Limit

+

huawei-csi-controller

+

huawei-csi-driver

+

50m

+

500m

+

128Mi

+

1Gi

+

storage-backend-sidecar

+

50m

+

300m

+

128Mi

+

512Mi

+

storage-backend-controller

+

50m

+

300m

+

128Mi

+

512Mi

+

huawei-csi-extender

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-attacher

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-provisioner

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-resize

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-snapshotter

+

50m

+

300m

+

128Mi

+

512Mi

+

snapshot-controller

+

50m

+

300m

+

128Mi

+

512Mi

+

liveness-probe

+

10m

+

100m

+

128Mi

+

128Mi

+

huawei-csi-node

+

huawei-csi-driver

+

50m

+

500m

+

128Mi

+

1Gi

+

csi-node-driver-registrar

+

50m

+

300m

+

128Mi

+

128Mi

+

liveness-probe

+

10m

+

100m

+

128Mi

+

128Mi

+
+ +## Modifying Resource Requests and Limits{#section61471438195712} + +If you need to modify the resource requests and limits of a container, perform the following steps \(in the following example, Helm is used to install Huawei CSI\): + +1. If Helm is used for installation, go to the **/helm/esdk/templates** directory. For manual deployment, the file to be modified is in the **/manual/esdk/deploy** directory. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +2. Modify the deployment template file. + + - If the Pod name is **huawei-csi-controller**, modify the **huawei-csi-controller.yaml** file. + - If the Pod name is **huawei-csi-node**, modify the **huawei-csi-node.yaml** file. + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >For details about Pod names, see [Table 1](#table4106151116363). + + For example, to modify the resource request of the **huawei-csi-driver** container in the Pod named **huawei-csi-node**, run the following command to edit the configuration file and find the container whose **spec.template.spec.containes.name** is **huawei-csi-driver**. Modify resource requests and limits as required. + + ``` + vi huawei-csi-node.yaml + ``` + + Edit the following content. + + ``` + containers + - name: huawei-csi-driver + ... + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 50m + memory: 128Mi + ``` + +3. If Huawei CSI is not installed, the modification of resource requests and limits takes effect after Huawei CSI is installed by referring to [Installing Huawei CSI on Kubernetes, OpenShift, and Tanzu](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu). +4. If Huawei CSI has been installed, the modification of resource requests and limits takes effect after Huawei CSI is updated by referring to [Upgrading Huawei CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu#section6841317173013). + diff --git a/content/en/v4.5.0/common-operations/_index.md b/content/en/v4.5.0/common-operations/_index.md new file mode 100644 index 0000000..fa072c4 --- /dev/null +++ b/content/en/v4.5.0/common-operations/_index.md @@ -0,0 +1,14 @@ +--- +title: "Common Operations" +linkTitle: "Common Operations" +description: +weight: 9 +--- + + + + + + + + diff --git a/content/en/v4.5.0/common-operations/collecting-information/_index.md b/content/en/v4.5.0/common-operations/collecting-information/_index.md new file mode 100644 index 0000000..237033d --- /dev/null +++ b/content/en/v4.5.0/common-operations/collecting-information/_index.md @@ -0,0 +1,10 @@ +--- +title: "Collecting Information" +linkTitle: "Collecting Information" +description: +weight: 2 +--- + + + + diff --git a/content/en/v4.5.0/common-operations/collecting-information/collecting-logs.md b/content/en/v4.5.0/common-operations/collecting-information/collecting-logs.md new file mode 100644 index 0000000..c1bd57d --- /dev/null +++ b/content/en/v4.5.0/common-operations/collecting-information/collecting-logs.md @@ -0,0 +1,109 @@ +--- +title: "Collecting Logs" +linkTitle: "Collecting Logs" +description: +weight: 3 +--- + +## Performing Check Before Collection{#section298992810393} + +1. Use a remote access tool, such as PuTTY, to log in to the node where the oceanctl tool is installed in the Kubernetes cluster through the management IP address. +2. Run the following command. The displayed version is **v4.5.0**. + + ``` + oceanctl version + ``` + + The following is an example of the command output. + + ```yaml + Oceanctl Version: v4.5.0 + ``` + +3. Run the **oceanctl collect logs --help** command. The following information is displayed. + + ``` + $ oceanctl collect logs --help + Collect logs of one or more nodes in specified namespace in Kubernetes + + Usage: + oceanctl collect logs [flags] + + Examples: + # Collect logs of all nodes in specified namespace + oceanctl collect logs -n + + # Collect logs of specified node in specified namespace + oceanctl collect logs -n -N + + # Collect logs of all nodes in specified namespace + oceanctl collect logs -n -a + + # Collect logs of all nodes in specified namespace with a maximum of 50 nodes collected at the same time + oceanctl collect logs -n -a --threads-max=50 + + # Collect logs of specified node in specified namespace + oceanctl collect logs -n -N -a + + Flags: + -a, --all Collect all nodes messages + -h, --help help for logs + -n, --namespace string namespace of resources + -N, --nodename string Specify the node for which information is to be collected. + --threads-max int set maximum number[1~1000] of threads for nodes to be collected. (default 50) + + Global Flags: + --log-dir string Specify the directory for printing log files. (default "/var/log/huawei") + ``` + +4. Run the following command to check whether a Pod is started properly. In the command, _huawei-csi_ indicates the namespace for installing CSI. + + ``` + kubectl get deployment -n huawei-csi + ``` + + The following is an example of the command output. + + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + huawei-csi-controller 1/1 1 1 21h + ``` + +## Collecting All Logs in the CSI Namespace Using oceanctl{#section8464164063912} + +1. Use a remote access tool, such as PuTTY, to log in to the node checked in [Performing Check Before Collection](#section298992810393) through the management IP address. +2. Run the **oceanctl collect logs -n -a --threads-max=**__ command to collect CSI logs of all nodes where CSI containers reside in the cluster. In the command, **threads-max** indicates the maximum number of nodes for which logs can be collected at the same time. The default value is **50**. You can set the value based on the host performance and load. + + ``` + oceanctl collect logs -n huawei-csi -a --threads-max=10 + ``` + +3. Check the log package generated in the **/tmp** directory. You can run the **unzip **__** -d collect\_logs** command to decompress the log package. In the preceding command, __ indicates the package name. + + ``` + # date + Wed Sep 20 02:49:24 EDT 2023 + + # ls + huawei-csi-2023-09-20-02:48:22-all.zip + ``` + +## Collecting the Log of a Single CSI Node Using oceanctl{#section1039148347} + +1. Use a remote access tool, such as PuTTY, to log in to the node checked in [Performing Check Before Collection](#section298992810393) through the management IP address. +2. Run the **oceanctl collect logs -n **__** -N **__ command to collect CSI logs of all nodes where CSI containers reside in the cluster. + + ``` + oceanctl collect logs -n huawei-csi -N node-1 + ``` + +3. Check the log package generated in the **/tmp** directory. You can run the **unzip **__** -d collect\_logs** command to decompress the log package. In the preceding command, __ indicates the package name. + + ``` + # date + Thu Sep 21 04:08:47 EDT 2023 + + # ls + huawei-csi-2023-09-21-04:05:15-node-1.zip + ``` + diff --git a/content/en/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md b/content/en/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md new file mode 100644 index 0000000..afd77e4 --- /dev/null +++ b/content/en/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md @@ -0,0 +1,39 @@ +--- +title: "Obtaining the CSI Version" +linkTitle: "Obtaining the CSI Version" +description: +weight: 1 +--- + +This section describes how to view the CSI version. + +## Procedure{#section1883055741114} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to query information about the node where huawei-csi-node resides. + + ``` + kubectl get pod -A -owide | grep huawei-csi-node + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi huawei-csi-node-87mss 3/3 Running 0 6m41s 192.168.129.155 node-1 + huawei-csi huawei-csi-node-xp8cc 3/3 Running 0 6m41s 192.168.129.156 node-2 + ``` + +2. Use a remote access tool, such as PuTTY, to log in to the node where the huawei-csi-controller service resides in the Kubernetes cluster through the management IP address. +3. Go to the log directory. + + ``` + cd /var/log/huawei + ``` + +4. Run the following command to view the customized output logs of the container. + + ``` + vi huawei-csi-controller + ``` + +5. Go to the container directory. + + ``` + cd /var/log/containers + ``` + +6. Run the following command to view the standard output logs of the container. + + ``` + vi huawei-csi-controller-_huawei-csi_huawei-csi-driver-.log + ``` + +## Viewing Logs of the huawei-csi-node Service{#en-us_topic_0000001191906803_section66851055357} + +1. Run the following command to obtain the node where huawei-csi-node is located. + + ``` + kubectl get pod -A -o wide | grep huawei + ``` + + The following is an example of the command output, where **IP** indicates the node IP address and **NODE** indicates the node name. + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi-node-g6f7z 3/3 Running 0 14s + ``` + +2. Use a remote access tool, such as PuTTY, to log in to the node where the huawei-csi-node service resides in the Kubernetes cluster through the management IP address. +3. Go to the log directory. + + ``` + cd /var/log/huawei + ``` + +4. Run the following command to view the customized output logs of the container. + + ``` + vi huawei-csi-node + ``` + +5. Go to the container directory. + + ``` + cd /var/log/containers + ``` + +6. Run the following command to view the standard output logs of the container. + + ``` + vi huawei-csi-node-_huawei-csi_huawei-csi-driver-.log + ``` + diff --git a/content/en/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md b/content/en/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md new file mode 100644 index 0000000..caf6a35 --- /dev/null +++ b/content/en/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md @@ -0,0 +1,29 @@ +--- +title: "Configuring Access to the Kubernetes Cluster as a Non-root User" +linkTitle: "Configuring Access to the Kubernetes Cluster as a Non-root User" +description: +weight: 7 +--- + +## Procedure{#en-us_topic_0000001283708426_section11147613122310} + +1. Copy the authentication file of the Kubernetes cluster and modify **/etc/kubernetes/admin.conf** to be the actual authentication file. + + ``` + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + ``` + +2. Change the user and user group of the authentication file. + + ``` + sudo chown $(id -u):$(id -g) $HOME/.kube/config + ``` + +3. Configure the **KUBECONFIG** environment variable of the current user. The following uses Ubuntu 20.04 as an example. + + ``` + echo "export KUBECONFIG=$HOME/.kube/config" >> ~/.bashrc + source ~/.bashrc + ``` + diff --git a/content/en/v4.5.0/common-operations/downloading-a-container-image.md b/content/en/v4.5.0/common-operations/downloading-a-container-image.md new file mode 100644 index 0000000..c54996d --- /dev/null +++ b/content/en/v4.5.0/common-operations/downloading-a-container-image.md @@ -0,0 +1,49 @@ +--- +title: "Downloading a Container Image" +linkTitle: "Downloading a Container Image" +description: +weight: 3 +--- + +## Downloading a Container Image Using containerd{#section15713611153419} + +1. Run the following command to download an image to a local path. In the command, _image:tag_ indicates the image to be pulled and its tag. + + ``` + ctr image pull : + ``` + +2. Run the following command to export the image to a file. In the command, _image:tag_ indicates the image to be exported, and _file_ indicates the name of the exported image file. + + ``` + ctr image export .tar : + ``` + +## Downloading a Container Image Using Docker{#section5466193511236} + +1. Run the following command to download an image to a local path. In the command, _image:tag_ indicates the image to be pulled. + + ``` + docker pull : + ``` + +2. Run the following command to export the image to a file. In the command, _image:tag_ indicates the image to be exported, and _file_ indicates the name of the exported image file. + + ``` + docker save : -o .tar + ``` + +## Downloading a Container Image Using Podman{#section137495322810} + +1. Run the following command to download an image to a local path. In the command, _image:tag_ indicates the image to be pulled. + + ``` + podman pull : + ``` + +2. Run the following command to export the image to a file. In the command, _image:tag_ indicates the image to be exported, and _file_ indicates the name of the exported image file. + + ``` + podman save : -o .tar + ``` + diff --git a/content/en/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md b/content/en/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md new file mode 100644 index 0000000..c570f36 --- /dev/null +++ b/content/en/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md @@ -0,0 +1,70 @@ +--- +title: "Enabling the ReadWriteOncePod Feature Gate" +linkTitle: "Enabling the ReadWriteOncePod Feature Gate" +description: +weight: 6 +--- + +The ReadWriteOnce access mode is the fourth access mode introduced by Kubernetes v1.22 for PVs and PVCs. If you create a Pod using a PVC in ReadWriteOncePod access mode, Kubernetes ensures that the Pod is the only Pod in the cluster that can read or write the PVC. + +The ReadWriteOncePod access mode is an alpha feature in Kubernetes v1.22/1.23/1.24. Therefore, you need to enable the ReadWriteOncePod feature in **feature-gates** of kube-apiserver, kube-scheduler, and kubelet before using the access mode. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>Currently, the CCE or CCE Agile platform does not support the ReadWriteOncePod feature gate. + +## Procedure{#en-us_topic_0000001259843616_section137882216292} + +1. Enable the ReadWriteOncePod feature gate for kube-apiserver. + 1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. + 2. Run the **vi /etc/kubernetes/manifests/kube-apiserver.yaml** command, press **I** or **Insert** to enter the insert mode, and add **--feature-gates=ReadWriteOncePod=true** to the kube-apiserver container. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ``` + ... + spec: + containers: + - command: + - kube-apiserver + - --feature-gates=ReadWriteOncePod=true + ... + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >After the editing is complete, Kubernetes will automatically apply the updates. + +2. Enable the ReadWriteOncePod feature gate for kube-scheduler. + 1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. + 2. Run the **vi /etc/kubernetes/manifests/kube-scheduler.yaml** command, press **I** or **Insert** to enter the insert mode, and add **--feature-gates=ReadWriteOncePod=true** to the kube-scheduler container. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ``` + ... + spec: + containers: + - command: + - kube-scheduler + - --feature-gates=ReadWriteOncePod=true + ... + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >After the editing is complete, Kubernetes will automatically apply the updates. + +3. Enable the ReadWriteOncePod feature gate for kubelet. + + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) + >The dynamic Kubelet configuration function is not used since v1.22 and deleted in v1.24. Therefore, you need to perform the following operations on kubelet on each worker node in the cluster. + + 1. Use a remote access tool, such as PuTTY, to log in to any worker node in the Kubernetes cluster through the management IP address. + 2. Run the **vi /var/lib/kubelet/config.yaml** command, press **I** or **Insert** to enter the editing state, and add **ReadWriteOncePod: true** to the **featureGates** field of the KubeletConfiguration object. If the **featureGates** field does not exist, add it at the same time. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ``` + apiVersion: kubelet.config.k8s.io/v1beta1 + featureGates: + ReadWriteOncePod: true + ... + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >The default path of the kubelet configuration file is **/var/lib/kubelet/config.yaml**. Enter the path based on site requirements. + + 3. After the configuration is complete, run the **systemctl restart kubelet** command to restart kubelet. + diff --git a/content/en/v4.5.0/common-operations/installing-helm-3.md b/content/en/v4.5.0/common-operations/installing-helm-3.md new file mode 100644 index 0000000..a6ba434 --- /dev/null +++ b/content/en/v4.5.0/common-operations/installing-helm-3.md @@ -0,0 +1,47 @@ +--- +title: "Installing Helm 3" +linkTitle: "Installing Helm 3" +description: +weight: 1 +--- + +This section describes how to install Helm 3. + +For details, see [https://helm.sh/docs/intro/install/](https://helm.sh/docs/intro/install/). + +## Prerequisites{#en-us_topic_0000001274250896_section19453102010152} + +Ensure that the master node in the Kubernetes cluster can access the Internet. + +## Procedure{#section164291640172317} + +1. Run the following command to download the Helm 3 installation script. + + ``` + curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 + ``` + +2. Run the following command to modify the permission on the Helm 3 installation script. + + ``` + chmod 700 get_helm.sh + ``` + +3. Determine the Helm version to be installed based on the version mapping between Helm and Kubernetes. For details about the version mapping, see [Helm Version Support Policy](https://helm.sh/docs/topics/version_skew/#supported-version-skew). Then run the following command to change the **DESIRED\_VERSION** environment variable to the Helm version to be installed and run the installation command. + + ``` + DESIRED_VERSION=v3.9.0 ./get_helm.sh + ``` + +4. Run the following command to check whether Helm 3 of the specified version is successfully installed. + + ``` + helm version + ``` + + If the following information is displayed, the installation is successful. + + ``` + version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"} + ``` + diff --git a/content/en/v4.5.0/common-operations/modifying-the-log-output-mode.md b/content/en/v4.5.0/common-operations/modifying-the-log-output-mode.md new file mode 100644 index 0000000..84951a4 --- /dev/null +++ b/content/en/v4.5.0/common-operations/modifying-the-log-output-mode.md @@ -0,0 +1,82 @@ +--- +title: "Modifying the Log Output Mode" +linkTitle: "Modifying the Log Output Mode" +description: +weight: 5 +--- + +huawei-csi supports two log output modes: **file** and **console**. **file** indicates that logs are output to the fixed directory \(**/var/log/huawei**\), and **console** indicates that logs are output to the standard directory of the container. You can set the log output mode as required. The default mode is **file**. + +## Procedure{#section130112319346} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Go to the **/helm/esdk** directory and run the following command to obtain the original service configuration file. **helm-huawei-csi** indicates the Helm chart name specified during the installation of the earlier version, and **huawei-csi** indicates the Helm chart namespace specified during the installation of the earlier version. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +3. Run the **vi update-values.yaml** command to open the file obtained in [2](#li1037712113474) and modify the configuration items. After the modification, press **Esc** and enter **:wq!** to save the modification. + + ```yaml + # The CSI driver parameter configuration + csiDriver: + # Driver name, it is strongly recommended not to modify this parameter + # The CCE platform needs to modify this parameter, e.g. csi.oceanstor.com + driverName: csi.huawei.com + # Endpoint, it is strongly recommended not to modify this parameter + endpoint: /csi/csi.sock + # DR Endpoint, it is strongly recommended not to modify this parameter + drEndpoint: /csi/dr-csi.sock + # Maximum number of concurrent disk scans or detaches, support 1~10 + connectorThreads: 4 + # Flag to enable or disable volume multipath access, support [true, false] + volumeUseMultipath: true + # Multipath software used by fc/iscsi. support [DM-multipath, HW-UltraPath, HW-UltraPath-NVMe] + scsiMultipathType: DM-multipath + # Multipath software used by roce/fc-nvme. only support [HW-UltraPath-NVMe] + nvmeMultipathType: HW-UltraPath-NVMe + # Timeout interval for waiting for multipath aggregation when DM-multipath is used on the host. support 1~600 + scanVolumeTimeout: 3 + # Timeout interval for running command on the host. support 1~600 + execCommandTimeout: 30 + # check the number of paths for multipath aggregation + # Allowed values: + # true: the number of paths aggregated by DM-multipath is equal to the number of online paths + # false: the number of paths aggregated by DM-multipath is not checked. + # Default value: false + allPathOnline: false + # Interval for updating backend capabilities. support 60~600 + backendUpdateInterval: 60 + # Huawei-csi-controller log configuration + controllerLogging: + # Log record type, support [file, console] + module: file + # Log Level, support [debug, info, warning, error, fatal] + level: info + # Directory for storing logs + fileDir: /var/log/huawei + # Size of a single log file + fileSize: 20M + # Maximum number of log files that can be backed up. + maxBackups: 9 + # Huawei-csi-node log configuration + nodeLogging: + # Log record type, support [file, console] + module: file + # Log Level, support [debug, info, warning, error, fatal] + level: info + # Directory for storing logs + fileDir: /var/log/huawei + # Size of a single log file + fileSize: 20M + # Maximum number of log files that can be backed up. + maxBackups: 9 + ``` + +4. Run the following command to update the log configuration. + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./update-values.yaml + ``` + diff --git a/content/en/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md b/content/en/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md new file mode 100644 index 0000000..cf58d24 --- /dev/null +++ b/content/en/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md @@ -0,0 +1,25 @@ +--- +title: "Updating the huawei-csi-controller or huawei-csi-node Service" +linkTitle: "Updating the huawei-csi-controller or huawei-csi-node Service" +description: +weight: 4 +--- + +Perform this operation when you need to update the huawei-csi-controller or huawei-csi-node service, for example, changing the number of copies for the huawei-csi-controller service. + +## Procedure{#section1452416823017} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Go to the **/helm/esdk** directory and run the following command to obtain the original service configuration file. **helm-huawei-csi** indicates the Helm chart name specified during the installation of the earlier version, and **huawei-csi** indicates the Helm chart namespace specified during the installation of the earlier version. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +3. Run the **vi update-values.yaml** command to open the file obtained in [2](#li1037712113474) and modify the configuration items by referring to [Parameters in the values.yaml File of Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm). After the modification, press **Esc** and enter **:wq!** to save the modification. +4. Run the following command to update Huawei CSI services. + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./update-values.yaml + ``` + diff --git a/content/en/v4.5.0/compatibility-and-features/_index.md b/content/en/v4.5.0/compatibility-and-features/_index.md new file mode 100644 index 0000000..a2259a0 --- /dev/null +++ b/content/en/v4.5.0/compatibility-and-features/_index.md @@ -0,0 +1,13 @@ +--- +title: "Compatibility and Features" +linkTitle: "Compatibility and Features" +description: +weight: 4 +--- + +This chapter describes the container management platforms, operating systems \(OSs\), and multipathing software supported by Huawei CSI plug-in, as well as the features and functions provided by the CSI plug-in when working with Huawei storage. + + + + + diff --git a/content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md b/content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md new file mode 100644 index 0000000..c047e4a --- /dev/null +++ b/content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md @@ -0,0 +1,143 @@ +--- +title: "Compatibility with Huawei Distributed Storage" +linkTitle: "Compatibility with Huawei Distributed Storage" +description: +weight: 4 +--- + +Huawei CSI plug-in is compatible with Huawei OceanStor series distributed storage systems. The following table lists the supported storage versions. + +**Table 1** Supported Huawei distributed storage + + + + + + + + + + + + + +

Storage Product

+

Version

+

FusionStorage Block

+

8.0.1

+

OceanStor Pacific series

+

8.1.0, 8.1.1, 8.1.2, 8.1.3, 8.1.5, 8.2.0

+
+ +Huawei CSI plug-in supports the following features for Huawei distributed storage. + +**Table 2** Features supported by Huawei distributed storage and constraints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Feature

+

FusionStorage Block

+

OceanStor Pacific Series

+

Static Provisioning

+

SAN: iSCSI/SCSI

+

SAN: iSCSI/SCSI

+

NAS: DPC2/NFS 3/4.13

+

Dynamic Provisioning

+

Manage Provisioning1

+

Expand Persistent Volume4

+

Volumes created in Dynamic Provisioning or Manage Provisioning mode are supported.

+

Create VolumeSnapshot

+

SAN volumes created in Dynamic Provisioning or Manage Provisioning mode are supported.

+

Delete VolumeSnapshot

+

Supported

+

Only SAN volume snapshots are supported.

+

Restore VolumeSnapshot

+

Supported

+

Only SAN volume snapshots are supported.

+

Clone Persistent Volume

+

SAN volumes created in Dynamic Provisioning or Manage Provisioning mode are supported.

+

Raw Block Volume

+

Only SAN volumes are supported.

+

Only SAN volumes are supported.

+

Topology

+

Supported

+

Supported

+

Generic Ephemeral Inline Volumes

+

Supported

+

Supported

+

Access Mode

+

RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions.

+

RWX: supported only by Raw Block volumes and NFS volumes.

+

QoS

+

Supported

+

Supported

+

Soft and hard quotas

+

Not supported

+

Only NAS volumes are supported.

+

Storage multi-tenant

+

Not supported

+

Only NAS volumes are supported.

+
+ +- Note 1: Manage Provisioning is a volume management feature customized by Huawei CSI. This feature allows existing storage resources to be managed by Kubernetes. You are not allowed to manage a storage resource for multiple times and concurrently delete or create a storage resource. +- Note 2: Only OceanStor Pacific series 8.1.2 and later versions support DPC. For details about whether the [OSs supported by Huawei CSI](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818) support DPC, see the compatibility document of the corresponding product version. +- Note 3: Only OceanStor Pacific series 8.1.2 and later versions support NFS 4.1. +- Note 4: The provisioned PVC whose **volumeType** is **lun** and **accessModes** is **ReadOnlyMany** does not support capacity expansion. + diff --git a/content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md b/content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md new file mode 100644 index 0000000..06970e2 --- /dev/null +++ b/content/en/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md @@ -0,0 +1,306 @@ +--- +title: "Compatibility with Huawei Enterprise Storage" +linkTitle: "Compatibility with Huawei Enterprise Storage" +description: +weight: 3 +--- + +Huawei CSI plug-in is compatible with Huawei OceanStor series all-flash storage and hybrid flash storage. The following table lists the supported storage versions. + +**Table 1** Supported Huawei enterprise storage + + + + + + + + + + + + + + + + + + + +

Storage Product

+

Version

+

OceanStor V5

+

V500R007, V500R007 Kunpeng

+

OceanStor Dorado V3

+

V300R002

+

OceanStor

+

6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

OceanStor Dorado

+

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+
+ +Huawei CSI plug-in supports the following features for Huawei enterprise storage. + +**Table 2** Features supported by Huawei enterprise storage and constraints + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Feature

+

OceanStor V5

+

OceanStor Dorado V3

+

OceanStor

+

OceanStor Dorado

+

Static Provisioning

+

SAN: FC/iSCSI2

+

NAS: NFS 3

+

+

SAN: FC/iSCSI2

+

+

SAN: FC/iSCSI/NVMe over RoCE/NVMe over FC3

+

NAS: NFS 3/4.0/4.1/4.2

+

+

SAN: FC/iSCSI/NVMe over RoCE/NVMe over FC3

+

NAS: NFS 3/4.0/4.14

+

+

Dynamic Provisioning

+

Manage Provisioning1

+

Expand Persistent Volume5

+

Volumes created in Dynamic Provisioning or Manage Provisioning mode are supported.

+

Create VolumeSnapshot

+

Volumes created in Dynamic Provisioning or Manage Provisioning mode are supported.

+

Delete VolumeSnapshot

+

Supported

+

Supported

+

Supported

+

Supported

+

Restore VolumeSnapshot

+

Supported

+

Supported

+

SAN: supported

+

NAS: supported only in 6.1.5 and later versions

+

SAN: supported

+

NAS: supported only in 6.1.5 and later versions

+

Clone Persistent Volume

+

Non-HyperMetro volumes created in Dynamic Provisioning or Manage Provisioning mode are supported.

+

SAN: supports non-HyperMetro volumes created in Dynamic Provisioning or Manage Provisioning mode.

+

NAS: Only 6.1.5 and later versions support volumes created in Dynamic Provisioning or Manage Provisioning mode.

+

Raw Block Volume

+

Only SAN volumes are supported.

+

Only SAN volumes are supported.

+

Only SAN volumes are supported.

+

Only SAN volumes are supported.

+

Topology

+

Supported

+

Supported

+

Supported

+

Supported

+

Generic Ephemeral Volumes

+

Supported

+

Supported

+

Supported

+

Supported

+

Access Mode

+

RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions.

+

RWX: supported only by Raw Block volumes and NFS volumes.

+

QoS

+

Supported6

+

Supported

+

Supported

+

Supported

+

Application type

+

N/A

+

N/A

+

Supported

+

Supported

+

Volume HyperMetro7

+

Not supported

+

N/A

+

Only NAS volumes are supported.

+

Storage multi-tenant

+

Only NAS volumes are supported.

+

N/A

+

Only NAS volumes are supported.8

+
+ +- Note 1: Manage Provisioning is a volume management feature customized by Huawei CSI. This feature allows existing storage resources to be managed by Kubernetes. You are not allowed to manage a storage resource for multiple times and concurrently delete or create a storage resource. +- Note 2: If the user's container platform is deployed in a virtualization environment, only iSCSI networking is supported. +- Note 3: If NVMe over RoCE or NVMe over FC is used, the version of the nvme-cli tool on worker nodes must be 1.9 or later. To query the version, run the **nvme version** command. +- Note 4: Only OceanStor Dorado 6.1.0 and later versions support NFS. Only OceanStor Dorado 6.1.3 and later versions support NFS 4.1. OceanStor Dorado 6.1.7 and later versions support NFS over RDMA. +- Note 5: The provisioned PVC whose **volumeType** is **lun** and **accessModes** is **ReadOnlyMany** does not support capacity expansion. +- Note 6: Only system users can configure QoS. +- Note 7: Only the active-active \(AA\) mode is supported. +- Note 8: Only OceanStor Dorado 6.1.3 and later versions support multi-tenant. + +Huawei CSI plug-in supports the following Dtree features for Huawei enterprise storage. + +**Table 3** Features supported by Dtree + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Feature

+

Supported

+

Static Provisioning

+

+

Dynamic Provisioning

+

+

Expand Persistent Volume

+

+

Access Mode

+

√ (RWX/RWO/ROX/RWOP: Kubernetes 1.22 or later supports RWOP.)

+

Multi-tenancy

+

+

Create VolumeSnapshot

+

X

+

Delete VolumeSnapshot

+

X

+

Restore VolumeSnapshot

+

X

+

Clone Persistent Volume

+

X

+

QoS

+

X

+

Volume HyperMetro

+

X

+

Application type

+

X

+
+ +**Table 4** Huawei storage versions supported by Dtree + + + + + + + + + + +

Storage Product

+

Version

+

OceanStor Dorado

+

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+
+ diff --git a/content/en/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md b/content/en/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md new file mode 100644 index 0000000..44e87a5 --- /dev/null +++ b/content/en/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md @@ -0,0 +1,244 @@ +--- +title: "Kubernetes and OS Compatibility" +linkTitle: "Kubernetes and OS Compatibility" +description: +weight: 1 +--- + +Huawei CSI plug-in supports the following container management platforms. + +**Table 1** Supported container management platforms + + + + + + + + + + + + + + + + + + + + + + +

Container Management Platform

+

Version

+

Kubernetes

+

1.16 to 1.30

+

Red Hat OpenShift Container Platform

+

4.6 EUS, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15

+

Tanzu Kubernetes

+

TKGI 1.14.1, TKGI 1.15, TKGI 1.16, TKGI 1.17, TKGI 1.18

+

CCE Agile

+

22.3.2

+

CCE

+

22.9.5

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- The connection between Huawei CSI and Tanzu Kubernetes supports only the centralized storage NAS scenario. For the related FAQ, see [Common Problems and Solutions for Interconnecting with the Tanzu Kubernetes Cluster](/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster). +>- The connection between Huawei CSI and CCE or CCE Agile supports only centralized storage. + +The following table lists the OSs and multipathing software supported by the Huawei CSI plug-in. + +**Table 2** Supported host OSs and multipathing software versions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

OS Name

+

OS Version

+

Native DM-Multipath Version

+

Huawei UltraPath Version

+

CentOS x86_64

+

7.6, 7.7, 7.9

+

Delivered with the OS, supporting FC/iSCSI

+

UltraPath 31.1.0, supporting FC/iSCSI

+

CentOS x86_64

+

8.2, 8.4

+

Delivered with the OS, supporting FC/iSCSI

+

UltraPath 31.1.0, supporting FC/iSCSI

+

UltraPath-NVMe 31.1.RC8, supporting NVMe over RoCE/NVMe over FC

+

CentOS ARM

+

7.6

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

Rocky Linux x86_64

+

8.6

+

Delivered with the OS, supporting FC/iSCSI

+

UltraPath 31.2.1, supporting NVMe over RoCE

+

SUSE 15 x86_64

+

SP2, SP3

+

Delivered with the OS, supporting FC/iSCSI

+

UltraPath 31.1.0, supporting FC/iSCSI

+

UltraPath-NVMe 31.1.RC8, supporting NVMe over RoCE/NVMe over FC

+

Red Hat CoreOS x86_64

+

4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

Ubuntu x86_64

+

18.04, 20.04, 22.04

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

Ubuntu ARM

+

22.04

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

Kylin x86_64

+

7.6, V10 SP1, V10 SP2, V10 SP3

+

Delivered with the OS, supporting FC/iSCSI

+

UltraPath 31.2.0, supporting FC/iSCSI1

+

Kylin ARM

+

V10 SP1, V10 SP2, V10 SP3

+

Delivered with the OS, supporting FC/iSCSI

+

UltraPath 31.3.0, supporting iSCSI2

+

Debian x86_64

+

9, 11, 12

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

EulerOS x86_64

+

V2R9, V2R10, V2R11, V2R12

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

EulerOS ARM

+

V2R10, V2R12

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

UOS x86_64

+

V20

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

BC-Linux ARM

+

21.10

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+

Anolis OS3

+

8.8

+

Delivered with the OS, supporting iSCSI

+

Not supported

+

OpenEuler x86_64

+

22.03 LTS SP1

+

Delivered with the OS, supporting iSCSI

+

Not supported

+

Red Hat Enterprise Linux x86_64

+

8.6, 8.7, 8.8, 9.4

+

Delivered with the OS, supporting FC/iSCSI

+

Not supported

+
+ +Note 1: Only Kylin x86\_64 V10 SP2 supports UltraPath 31.2.0. + +Note 2: Only Kylin ARM V10 SP3 supports UltraPath 31.3.0. + +Note 3: Anolis OS supports only OceanStor Pacific storage. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>For DM-Multipath 0.7, some virtual devices may not be displayed in the command output after the **multipathd show maps** command is executed. Therefore, you are advised to use version 0.8 or later. +>You can query the DM-Multipath version in either of the following ways: +>- If the rpm package is used, run the **rpm -qa | grep multipath** or **rpm -qa | grep device-mapper** command. +>- If the deb package is used, run the **dpkg -l | grep multipath** command. + diff --git a/content/en/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md b/content/en/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md new file mode 100644 index 0000000..b25403c --- /dev/null +++ b/content/en/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md @@ -0,0 +1,244 @@ +--- +title: "Kubernetes Feature Matrix" +linkTitle: "Kubernetes Feature Matrix" +description: +weight: 2 +--- + +This section describes the features of different Kubernetes versions supported by Huawei CSI. + +**Table 1** Kubernetes versions and supported features + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Feature

+

V1.16

+

V1.17

+

V1.18

+

V1.19

+

V1.20

+

V1.21+

+

Static Provisioning

+

+

+

+

+

+

+

Dynamic Provisioning

+

+

+

+

+

+

+

Manage Provisioning1

+

+

+

+

+

+

+

Expand Persistent Volume

+

+

+

+

+

+

+

Create VolumeSnapshot

+

x

+

+

+

+

+

+

Restore VolumeSnapshot

+

x

+

+

+

+

+

+

Delete VolumeSnapshot

+

x

+

+

+

+

+

+

Clone Persistent Volume

+

x

+

+

+

+

+

+

Modify Volume2

+

+

+

+

+

+

+

Raw Block Volume

+

+

+

+

+

+

+

Topology

+

+

+

+

+

+

+

Generic Ephemeral Inline Volumes

+

x

+

x

+

x

+

x

+

x

+

+

Volume Limits

+

x

+

+

+

+

+

+

FSGroup Support

+

x

+

x

+

x

+

x

+

+

+
+ +- Note 1: Manage Provisioning is a volume management feature customized by Huawei CSI. This feature allows existing storage resources to be managed by Kubernetes. You are not allowed to manage a storage resource for multiple times and concurrently delete or create a storage resource. When a storage resource is managed by multiple clusters, operations on the managed volume in a single cluster take effect only in the cluster and will not be synchronized to other clusters. Instead, you need to perform these operations on the managed volume in other clusters. +- Note 2: Modify Volume is a PVC change feature customized by Huawei CSI. This feature allows a common volume to be changed to a HyperMetro volume. To use this feature, ensure that the connected storage supports the volume HyperMetro feature. + diff --git a/content/en/v4.5.0/installation-and-deployment/_index.md b/content/en/v4.5.0/installation-and-deployment/_index.md new file mode 100644 index 0000000..f6f4563 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/_index.md @@ -0,0 +1,11 @@ +--- +title: "Installation and Deployment" +linkTitle: "Installation and Deployment" +description: +weight: 5 +--- + + + + + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/_index.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/_index.md new file mode 100644 index 0000000..85f5dba --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/_index.md @@ -0,0 +1,27 @@ +--- +title: "Installation Preparations" +linkTitle: "Installation Preparations" +description: +weight: 1 +--- + +This chapter describes the preparations for the installation. + +## Prerequisites{#section7412194016270} + +Before performing the operations described in this chapter, ensure that the following conditions are met: + +- A container management platform has been deployed and is running properly, and its compatibility meets the requirements described in [Kubernetes and OS Compatibility](/docs/compatibility-and-features/kubernetes-and-os-compatibility). +- \(Mandatory for enterprise storage\) Initial configuration for interconnecting with Huawei enterprise storage has been completed, including storage pool division and port configuration. The version of the storage product meets the requirements in [Compatibility with Huawei Enterprise Storage](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage). +- \(Mandatory for distributed storage\) Initial configuration for interconnecting with Huawei distributed storage has been completed, including storage pool division and port configuration. The version of the storage product meets the requirements in [Compatibility with Huawei Distributed Storage](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage). +- The connectivity between Huawei storage and the container platform host has been configured. For example, the worker node running huawei-csi-controller communicates properly with the management IP address of the storage device to be connected, and the worker node running huawei-csi-node communicates properly with the service IP address of the storage device to be connected. In iSCSI scenarios, the **ping** command can be used to verify the connectivity. +- Ensure that the language of the operating system is English. +- Ensure that storage resource names, such as storage pool names and tenant names, are in English. + + + + + + + + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md new file mode 100644 index 0000000..9b212f4 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md @@ -0,0 +1,42 @@ +--- +title: "Checking the Host Multipathing Configuration" +linkTitle: "Checking the Host Multipathing Configuration" +description: +weight: 5 +--- + +If you plan to use the FC/iSCSI/NVMe over RoCE/NVMe over FC protocol to access Huawei storage in a container environment, you are advised to use host multipathing software to enhance the link redundancy and performance of the host and storage. If you do not want to use the software, skip this section. + +For details about the OSs and multipathing software supported by Huawei CSI, see [Table 2](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818). + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- If you want to use the FC/iSCSI protocol to connect to Huawei storage, you are advised to use native DM-Multipath provided by the OS. +>- If you want to use the NVMe over RoCE/NVMe over FC protocol to connect to Huawei storage, you are advised to use Huawei-developed UltraPath-NVMe. +>- If you want to use the SCSI protocol to connect to Huawei storage, disable DM-Multipath provided by the OS. + +## Prerequisites{#section43820464358} + +Multipathing software has been correctly installed on a host. + +- If you use native DM-Multipath provided by the OS, contact your host or OS provider to obtain the documents and software packages required for the installation. +- If you use Huawei-developed UltraPath or UltraPath-NVMe, contact Huawei engineers to obtain the UltraPath or UltraPath-NVMe documents and software packages. For details about the software package versions, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + +## Procedure{#section14674125816351} + +1. If you use the iSCSI/FC protocol to connect to Huawei enterprise storage, configure and check host multipathing by referring to _[OceanStor Dorado and OceanStor Host Connectivity Guide for Red Hat](https://support.huawei.com/enterprise/en/doc/EDOC1100113070/1b4ad686/os-native-multipathing-software)_. +2. If you use the NVMe over RoCE/NVMe over FC protocol to connect to Huawei enterprise storage, configure and check host multipathing by referring to _[OceanStor Dorado and OceanStor Host Connectivity Guide for Red Hat](https://support.huawei.com/enterprise/en/doc/EDOC1100113070/5f5e5688/ultrapath)_. +3. If you use iSCSI to connect to Huawei distributed storage, configure and check host multipathing by referring to [Configuring Multipathing for an Application Server](https://support.huawei.com/enterprise/en/doc/EDOC1100115354/59dfdd73) in _[FusionStorage 8.0.1 Block Storage Basic Service Configuration Guide](https://support.huawei.com/enterprise/en/doc/EDOC1100115354)_. +4. If you use the native multipathing software provided by the OS, check whether the **/etc/multipath.conf** file contains the following configuration item. + + ``` + defaults { + user_friendly_names yes + find_multipaths no + } + ``` + + If the configuration item does not exist, add it to the beginning of the **/etc/multipath.conf** file. + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >For details about the functions of the **user\_friendly\_names** and **find\_multipaths** parameters, see [dm\_multipath/config\_file\_defaults](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/dm_multipath/config_file_defaults). + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md new file mode 100644 index 0000000..eb8d7a4 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md @@ -0,0 +1,145 @@ +--- +title: "Checking the Images on Which CSI Depends" +linkTitle: "Checking the Images on Which CSI Depends" +description: +weight: 7 +--- + +The installation of Huawei CSI depends on the images listed in the following table. If all worker nodes in the cluster have been connected to the Internet and can pull images online, you can skip this section. If nodes in the cluster cannot connect to the Internet, download the corresponding image file based on the Kubernetes version and upload it to the image repository or import it to all worker nodes in the Kubernetes cluster. + +The huawei-csi-controller service depends on the following sidecar images: livenessprobe, csi-provisioner, csi-attacher, csi-resizer, csi-snapshotter, snapshot-controller, storage-backend-controller, storage-backend-sidecar, huawei-csi-driver, and huawei-csi-extender. The huawei-csi-node service depends on the following sidecar images: livenessprobe, csi-node-driver-registrar, and huawei-csi-driver. + +For details about the functions and details of each image, see the following table. + +**Table 1** Images on which Huawei CSI depends + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Container Name

+

Container Image

+

K8s Version Requirements

+

Feature Description

+

livenessprobe

+

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

+

v1.16+

+

This image is provided by the Kubernetes community, used to monitor the health status of CSI and report it to Kubernetes so that Kubernetes can automatically detect CSI program problems and restart the Pod to rectify the problems.

+

csi-resizer

+

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

+

v1.16+

+

This image is provided by the Kubernetes community, used to call CSI to provide more storage space for a PVC when expanding the capacity of the PVC.

+

csi-node-driver-registrar

+

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

+

v1.16+

+

This image is provided by the Kubernetes community, used to obtain CSI information and register a node with kubelet using the plug-in registration mechanism of kubelet so that Kubernetes can detect the connection between the node and Huawei storage.

+

csi-snapshotter

+

k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.1

+

v1.17+

+

This image is provided by the Kubernetes community, used to call CSI to create or delete a snapshot on the storage system when creating or deleting a VolumeSnapshot.

+

snapshot-controller

+

k8s.gcr.io/sig-storage/snapshot-controller:v4.2.1

+

v1.17+

+

This image is provided by the Kubernetes community, used to listen to the VolumeSnapshot and VolumeSnapshotContent objects in the Kubernetes API and trigger csi-snapshotter to create a snapshot on the storage system when creating or deleting a VolumeSnapshot.

+

csi-provisioner

+

+

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

+

v1.17+

+

This image is provided by the Kubernetes community, used to create or delete PVCs.

+
  • Calls the huawei-csi-controller service to create a LUN or file system on the storage system as a PV when creating a PVC.
  • Calls the huawei-csi-controller service to delete the LUN or file system corresponding to the PV when deleting a PVC.
+

quay.io/k8scsi/csi-provisioner:v1.4.0

+

v1.16.x

+

csi-attacher

+

+

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

+

v1.17+

+

Calls the huawei-csi-controller service to perform the "Publish/Unpublish Volume" operation when creating or deleting a Pod.

+

+

quay.io/k8scsi/csi-attacher:v1.2.1

+

v.1.16.x

+

storage-backend-controller

+

storage-backend-controller:4.5.0

+

v1.16+

+

This image is provided by Huawei CSI software package, used to manage storageBackendClaim resources.

+

storage-backend-sidecar

+

storage-backend-sidecar:4.5.0

+

v1.16+

+

This image is provided by Huawei CSI software package, used to manage storageBackendContent resources.

+

huawei-csi-driver

+

huawei-csi:4.5.0

+

v1.16+

+

This image is provided by Huawei CSI software package, used to provide all features supported by Huawei CSI.

+

huawei-csi-extender

+

huawei-csi-extender:4.5.0

+

v1.16+

+

This image is provided by Huawei CSI software package, used to provide extended features of Huawei CSI.

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>If the cluster is not connected to the Internet, manually download the container images and upload them to the cluster. For details, see [Downloading a Container Image](/docs/common-operations/downloading-a-container-image). + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md new file mode 100644 index 0000000..1c67075 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md @@ -0,0 +1,39 @@ +--- +title: "Checking the Status of Host-Dependent Software" +linkTitle: "Checking the Status of Host-Dependent Software" +description: +weight: 6 +--- + +This section describes how to check whether the status of host-dependent software on worker nodes in a cluster is normal. In this example, the host OS is CentOS 7.9 x86\_64. + +- Check the status of the iSCSI client. + + ``` + systemctl status iscsi iscsid + ``` + +- Check the status of the NFS client. + + ``` + systemctl status rpcbind + ``` + +- Check the status of DM-Multipath. + + ``` + systemctl status multipathd.socket multipathd + ``` + +- Check the status of UltraPath. + + ``` + systemctl status nxup + ``` + +- Check the status of UltraPath-NVMe. + + ``` + systemctl status upudev upService_plus + ``` + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md new file mode 100644 index 0000000..e718b79 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md @@ -0,0 +1,105 @@ +--- +title: "Checking User Configurations on Huawei Storage" +linkTitle: "Checking User Configurations on Huawei Storage" +description: +weight: 3 +--- + +After Huawei storage is connected to the container platform, Huawei CSI needs to manage storage resources on Huawei storage based on service requirements, such as creating and mapping volumes. In this case, Huawei CSI needs to use the users created on Huawei storage to communicate with Huawei storage. The following table lists the user information required for different storage devices. + +**Table 1** User requirements for connecting storage to CSI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Storage Type

+

User Type

+

Role

+

Level

+

Type

+

OceanStor V5

+

System user

+

Administrator

+

Administrator

+

Local user

+

vStore user

+

vStore administrator

+

Administrator

+

Local user

+

OceanStor Dorado V3

+

System user

+

Administrator

+

Administrator

+

Local user

+

OceanStor 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

System user

+

Administrator/User-defined role1

+

N/A

+

Local user

+

OceanStor Dorado 6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8

+

System user

+

Administrator/User-defined role1

+

N/A

+

Local user

+

vStore user

+

vStore administrator

+

N/A

+

Local user

+

OceanStor Pacific series

+

System user

+

Administrator

+

N/A

+

Local user

+
+ +- Note 1: If a user-defined role is used, you need to configure permissions for the role. For details about how to configure the minimum permissions, see [Configuring Custom Permissions](/docs/appendix/configuring-custom-permissions). + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>You are advised not to use the users of the super administrator role. + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md new file mode 100644 index 0000000..fadf5a3 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md @@ -0,0 +1,36 @@ +--- +title: "Checking Volume Snapshot-Dependent Components" +linkTitle: "Checking Volume Snapshot-Dependent Components" +description: +weight: 4 +--- + +This section describes how to check the volume snapshot-dependent components in the cluster. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>Kubernetes earlier than v1.17.0 does not support the snapshot function. If the snapshot CRD is deployed, the cluster may be faulty. Therefore, if Huawei CSI is deployed on Kubernetes earlier than v1.17.0, perform the check according to [Kubernetes Earlier Than v1.17.0](#section6894165917369). + +## Kubernetes Earlier Than v1.17.0{#section6894165917369} + +If the Kubernetes version is earlier than v1.17.0, the cluster may be faulty during snapshot deployment. Perform the following steps to delete the snapshot CRD installation file. + +1. Run the following command to check the Kubernetes version. In the following example, the Kubernetes version is v1.16.0. + + ``` + kubectl get node + ``` + + The following is an example of the command output. + + ``` + NAME STATUS ROLES AGE VERSION + test-master Ready master 311d v1.16.0 + test-node Ready 311d v1.16.0 + ``` + +2. Go to the **/helm/esdk/crds/snapshot-crds** directory and run the following command to delete the snapshot CRD installation file. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + rm -rf ./huawei-csi-snapshot-crd-v1.yaml + ``` + diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md new file mode 100644 index 0000000..8e95899 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md @@ -0,0 +1,79 @@ +--- +title: "Downloading the Huawei CSI Software Package" +linkTitle: "Downloading the Huawei CSI Software Package" +description: +weight: 1 +--- + +This section describes how to download the software package and the component structure of the software package. + +1. Open a browser and enter [https://github.com/Huawei/eSDK\_K8S\_Plugin/releases](https://github.com/Huawei/eSDK_K8S_Plugin/releases) in the address box. +2. Download the software package of the 4.5.0 version based on the CPU architecture. + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >Software package naming rule: Plug-in name \(**eSDK\_Huawei\_Storage\_Kubernetes\_CSI\_Plugin**\) + Version number + CPU architecture + +3. Decompress the downloaded software package. The following table shows the component structure of the software package. + + **Table 1** Component description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Component

+

Description

+

image/huawei-csi-v4.5.0-arch.tar

+

huawei-csi-driver image. arch is X86 or ARM.

+

image/storage-backend-controller-v4.5.0-arch.tar

+

Back-end management controller image. arch is X86 or ARM.

+

image/storage-backend-sidecar-v4.5.0-arch.tar

+

Back-end management sidecar image. arch is X86 or ARM.

+

image/huawei-csi-extender-v4.5.0-arch.tar

+

huawei-csi-extender image. arch is X86 or ARM.

+

bin/

+

Binary file used by an image provided by Huawei.

+

bin/oceanctl

+

Command line tool provided by Huawei, which can be used to manage storage backends.

+

helm/

+

Helm project used to deploy Huawei CSI.

+

manual/

+

Used to manually install and deploy Huawei CSI.

+

examples/

+

.yaml sample file used during CSI use.

+

examples/backend

+

.yaml sample file used to create a storage backend.

+
+ diff --git a/content/en/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md b/content/en/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md new file mode 100644 index 0000000..b5c4258 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md @@ -0,0 +1,88 @@ +--- +title: "Uploading a Huawei CSI Image" +linkTitle: "Uploading a Huawei CSI Image" +description: +weight: 2 +--- + +Huawei provides the **huawei-csi** image for users. For details about how to obtain the image file, see [Downloading the Huawei CSI Software Package](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package). + +To use the CSI image on the container management platform, you need to import the CSI image to the cluster in advance using either of the following methods: + +- \(Recommended\) Use Docker to upload the CSI image to the image repository. +- Manually import the CSI image to all nodes where Huawei CSI needs to be deployed. + +## Uploading an Image to the Image Repository{#section93821739143119} + +The installation of Huawei CSI depends on the following image files provided by Huawei. Import and upload the image files in sequence. For details about how to obtain the image files, see [Downloading the Huawei CSI Software Package](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package). + +- huawei-csi-v4.5.0-arch.tar +- storage-backend-controller-v4.5.0-_arch_.tar +- storage-backend-sidecar-v4.5.0-_arch_.tar +- huawei-csi-extender-v4.5.0-arch.tar + +**Prerequisites** + +A Linux host with Docker installed is available, and the host can access the image repository. + +**Procedure** + +1. Run the **docker load -i huawei-csi-v4.5.0-arch.tar** command to import the CSI image to the current node. + + ``` + docker load -i huawei-csi-v4.5.0-arch.tar + ``` + +2. Run the **docker tag huawei-csi:4.5.0 repo.huawei.com/huawei-csi:4.5.0** command to add the image repository address to the image tag. **repo.huawei.com** indicates the image repository address. + + ``` + docker tag huawei-csi:4.5.0 repo.huawei.com/huawei-csi:4.5.0 + ``` + +3. Run the **docker push repo.huawei.com/huawei-csi:4.5.0** command to upload the CSI image to the image repository. **repo.huawei.com** indicates the image repository address. + + ``` + docker push repo.huawei.com/huawei-csi:4.5.0 + ``` + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- You can also use containerd to import and upload the images. +>- For details about how to import and upload images to the CCE or CCE Agile platform, see the user manual of the platform. + +## Uploading an Image to a Local Node{#section15439218133113} + +If the image has been uploaded to the image repository, skip this section. + +**Prerequisites** + +- The node has the corresponding Huawei CSI image file. For details about how to obtain the image file, see [Downloading the Huawei CSI Software Package](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package). +- Docker or another container engine has been installed on the node. + +**Procedure** + +1. Use a remote access tool, such as PuTTY, to log in to the node where the image is to be imported through the management IP address. +2. Copy the **image** directory in the Kubernetes CSI component package to any directory on the current node. +3. Run the **cd image** command to go to the **image** working directory. For details about the tool path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +4. Run the following commands in sequence to import all Huawei CSI images in the image directory to the local node. In the commands, _name_ indicates the name of a .tar image package. + + Run the following command using the Docker container engine: + + ``` + docker load -i .tar + ``` + + Run the following command using the containerd container engine: + + ``` + ctr -n k8s.io image import .tar + ``` + + Run the following command using the Podman container engine: + + ``` + podman load -i .tar + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) + >If another container engine is installed on the node, use the image import command for the corresponding container engine. + diff --git a/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md new file mode 100644 index 0000000..592da26 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md @@ -0,0 +1,20 @@ +--- +title: "Installing Huawei CSI" +linkTitle: "Installing Huawei CSI" +description: +weight: 2 +--- + +This section describes how to install Huawei CSI. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>In the current version, resource requests and limits are added to Huawei CSI. For details, see [Huawei CSI Resource Management](/docs/appendix/huawei-csi-resource-management). + +## Prerequisites{#en-us_topic_0000001324610777_section19453102010152} + +- Operations described in [Installation Preparations](/docs/installation-and-deployment/installation-preparations) have been completed. +- All worker nodes of the cluster communicate properly with the service network of the storage device to be connected. In iSCSI scenarios, the **ping** command can be used to verify the connectivity. +- Software clients required by the corresponding protocol, such as iSCSI and NFS clients, have been installed on all worker nodes of the cluster. + + + diff --git a/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..5c3f015 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md @@ -0,0 +1,44 @@ +--- +title: "Installing Huawei CSI Using Helm" +linkTitle: "Installing Huawei CSI Using Helm" +description: +weight: 1 +--- + +## Helm Installation Description{#section16991437124819} + +This section describes how to install Huawei CSI using Helm 3. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- Huawei CSI can be installed as the root user or a non-root user. When installing Huawei CSI as a non-root user, ensure that the current user can access the API Server of the Kubernetes cluster. For details about how to configure access to the Kubernetes cluster as a non-root user, see [Configuring Access to the Kubernetes Cluster as a Non-root User](/docs/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user). +>- Huawei CSI must be run as the root user. + +Helm is a software package management tool in the Kubernetes ecosystem. Similar to Ubuntu APT, CentOS YUM, or Python pip, Helm manages Kubernetes application resources. + +You can use Helm to package, distribute, install, upgrade, and roll back Kubernetes applications in a unified manner. + +- For details about how to obtain and install Helm, see [https://helm.sh/docs/intro/install/](https://helm.sh/docs/intro/install/). +- For details about the mapping between Helm and Kubernetes versions, see [https://helm.sh/docs/topics/version\_skew/](https://helm.sh/docs/topics/version_skew/). + +When installing huawei-csi-controller, Helm deploys the following components in the workloads of the Deployment type in the specified namespace: + +- huawei-csi-driver: Huawei CSI driver. +- storage-backend-controller: Huawei backend management controller, used to manage storageBackendClaim resources. +- storage-backend-sidecar: used to manage storageBackendContent resources. +- Kubernetes External Provisioner: used to provide or delete volumes. +- Kubernetes External Attacher: used to attach or detach volumes. +- Kubernetes External Resizer: used to expand the capacity of volumes. +- Kubernetes External liveness-probe: used to determine the health status of a Pod. +- \(Optional\) huawei-csi-extender: Huawei CSI extender. +- \(Optional\) Kubernetes External Snapshotter: used to provide snapshot support \(installed as CRD\). +- \(Optional\) Kubernetes External Snapshot Controller: used to control volume snapshots. + +When installing huawei-csi-node, Helm deploys the following components in the workloads of the DaemonSet type in the specified namespace: + +- huawei-csi-driver: Huawei CSI driver. +- Kubernetes Node Registrar: used to process driver registration. +- liveness-probe: used to determine the health status of a Pod. + + + + diff --git a/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..2fb5f7d --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,175 @@ +--- +title: "Installing Huawei CSI on Kubernetes, OpenShift, and Tanzu" +linkTitle: "Installing Huawei CSI on Kubernetes, OpenShift, and Tanzu" +description: +weight: 1 +--- + +## Installation Procedure{#section9426125115349} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the cluster through the management IP address. +2. Copy the **helm** directory in the Kubernetes CSI component package to any directory on the master node. For details about the Helm tool path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +3. Go to the **helm/esdk** working directory. + + ``` + cd helm/esdk + ``` + +4. Prepare the **values.yaml** file. Huawei CSI provides the **values.yaml** template file in the **helm/esdk** directory of the software package. You can also modify parameters according to [Parameters in the values.yaml File of Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm) to customize Huawei CSI. +5. Perform the following configuration before the installation: + - If the container platform is Kubernetes, skip this step. + - If the container platform is OpenShift, perform the configuration in [Installation and Configuration on the OpenShift Platform](#section14977616204416). + - If the container platform is Tanzu, perform the configuration in [Installation and Configuration on the Tanzu Platform](#section9291624164514). + +6. Run the following command to update the storage backend CRD. + + ``` + kubectl apply -f ./crds/backend/ + ``` + +7. \(Optional\) Check snapshot-dependent components by following the instructions provided in [Checking Volume Snapshot-Dependent Components](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components). After confirming that the components are correct, run the following command to update the snapshot CRD. If **controller.snapshot.enabled** is set to **false** or the Kubernetes version is earlier than v1.17, you can skip this step. For details, see [Table 2](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459). + + ``` + kubectl apply -f ./crds/snapshot-crds/ --validate=false + ``` + +8. Run the following command to install Huawei CSI. In the preceding command, _helm-huawei-csi_ indicates the custom Helm chart name, **./** indicates that the Helm project in the current directory is used, and _huawei-csi_ indicates the custom Helm chart namespace. + + ``` + helm install helm-huawei-csi ./ -n huawei-csi --create-namespace + ``` + + The following is an example of the command output. + + ```yaml + NAME: helm-huawei-csi + LAST DEPLOYED: Wed Jun 8 11:50:28 2022 + NAMESPACE: huawei-csi + STATUS: deployed + REVISION: 1 + TEST SUITE: None + ``` + +9. After the huawei-csi service is deployed, run the following command to check whether the service is started. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. If the Pod status is **Running**, the installation is successful. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 Running 0 24m + huawei-csi-controller-6dfcc4b79f-csphc 9/9 Running 0 24m + huawei-csi-node-g6f4k 3/3 Running 0 20m + huawei-csi-node-tqs87 3/3 Running 0 20m + ``` + +## Installation and Configuration on the OpenShift Platform{#section14977616204416} + +For the OpenShift platform, run the following commands to create the **SecurityContextConstraints** resource. + +1. Run the following command to edit the **helm\_scc.yaml** file. + + ``` + vi helm_scc.yaml + ``` + +2. Modify the **helm\_scc.yaml** file. In the following command output, **huawei-csi** indicates the created namespace. Replace it based on the actual situation. + + ```yaml + apiVersion: security.openshift.io/v1 + kind: SecurityContextConstraints + metadata: + name: helm-scc + allowHostDirVolumePlugin: true + allowHostIPC: true + allowHostNetwork: true + allowHostPID: true + allowHostPorts: true + allowPrivilegeEscalation: true + allowPrivilegedContainer: true + + defaultAddCapabilities: + - SYS_ADMIN + runAsUser: + type: RunAsAny + seLinuxContext: + type: RunAsAny + fsGroup: + type: RunAsAny + users: + - system:serviceaccount:huawei-csi:huawei-csi-controller + - system:serviceaccount:huawei-csi:huawei-csi-node + ``` + +3. Run the following command to create a **SecurityContextConstraints** file. + + ``` + oc create -f helm_scc.yaml + ``` + +## Installation and Configuration on the Tanzu Platform{#section9291624164514} + +On the Tanzu platform, run the following command to configure the **kubelet** installation directory. + +1. Go to the **helm/esdk** directory in the installation package, run the following command to open the configuration file, modify the file, and save the file. For details about the installation package directory, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + vi values.yaml + ``` + +2. Modify the **kubeletConfigDir** parameter as follows: + + ```yaml + # Specify kubelet config dir path. + # kubernetes and openshift is usually /var/lib/kubelet + # Tanzu is usually /var/vcap/data/kubelet + # CCE is usually /mnt/paas/kubernetes/kubelet + kubeletConfigDir: /var/vcap/data/kubelet + ``` + +For TKGI 1.16 or earlier of the Tanzu platform, run the following commands to configure the RBAC permission. + +1. Run the following command to create a file named **rbac.yaml**. + + ``` + vi rbac.yaml + ``` + +2. Copy the following content to the **rbac.yaml** file, save the file, and exit. + + ``` + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + name: huawei-csi-psp-role + rules: + - apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + --- + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + name: huawei-csi-psp-role-cfg + roleRef: + kind: ClusterRole + name: huawei-csi-psp-role + apiGroup: rbac.authorization.k8s.io + subjects: + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:huawei-csi + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:default + ``` + +3. Run the following command to create the RBAC permission. + + ``` + kubectl create -f rbac.yaml + ``` + diff --git a/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md new file mode 100644 index 0000000..24e1fb7 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md @@ -0,0 +1,71 @@ +--- +title: "Installing Huawei CSI on the CCE or CCE Agile Platform" +linkTitle: "Installing Huawei CSI on the CCE or CCE Agile Platform" +description: +weight: 2 +--- + +This section describes how to install Huawei CSI on the CCE or CCE Agile platform. + +## Creating a Helm Installation Package{#section2032812215509} + +The CCE or CCE Agile platform cannot directly install Huawei CSI using Helm. You need to manually create a Helm installation package and upload it to the chart list on the platform for installation. + +1. Use a remote access tool, such as PuTTY, to log in to any node where Helm is deployed through the management IP address. +2. Copy the **helm** directory in the Huawei CSI component package to any directory on the node. For details about the Helm tool path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +3. Go to the **helm** working directory. + + ``` + cd helm/ + ``` + +4. Modify the **kubeletConfigDir** and **csiDriver.driverName** parameters in the **helm/esdk/values.yaml** file. + + ``` + vi ./esdk/values.yaml + ``` + + Modify the following parameters: + + ```yaml + # Specify kubelet config dir path. + # kubernetes and openshift is usually /var/lib/kubelet + # Tanzu is usually /var/vcap/data/kubelet + # CCE is usually /mnt/paas/kubernetes/kubelet + kubeletConfigDir: /mnt/paas/kubernetes/kubelet + + # The CSI driver parameter configuration + csiDriver: + # Driver name, it is strongly recommended not to modify this parameter + # The CCE platform needs to modify this parameter, e.g. csi.oceanstor.com + driverName: csi.oceanstor.com + ``` + +5. Run the following command to create a Helm installation package. This command will generate the installation package to the current path. + + ``` + helm package ./esdk/ -d ./ + ``` + +## Installing Huawei CSI{#section3411185295111} + +1. Use a remote access tool, such as PuTTY, to log in to any master node where the CCE Agile platform is deployed through the management IP address. +2. Run the following command to create a namespace for deploying Huawei CSI. _huawei-csi_ indicates the custom namespace. + + ``` + kubectl create namespace huawei-csi + ``` + +3. Export the Helm installation package. For details, see [Creating a Helm Installation Package](#section2032812215509). +4. On the home page, choose **Charts** \> **My Charts** \> **Upload Chart**. The **Upload Chart** dialog box is displayed. Import the exported Helm installation package to the CCE Agile platform. + + ![](/css-docs/figures/上传模板-ch.png) + +5. After the installation package is uploaded, choose **Charts** \> **My Charts**. On the **My Charts** page that is displayed, choose **Install** \> **Submit**. The chart release name can be customized. + + ![](/css-docs/figures/安装csi中文.png) + +6. On the home page, choose **Charts** \> **Releases** and select the project specified during installation \(for example, **default** in the following figure\). After the installation is successful, **Installed** is displayed in the **Status** column. + + ![](/css-docs/figures/安装结果-ch.png) + diff --git a/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md new file mode 100644 index 0000000..fd48af3 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md @@ -0,0 +1,779 @@ +--- +title: "Parameters in the values.yaml File of Helm" +linkTitle: "Parameters in the values.yaml File of Helm" +description: +weight: 3 +--- + +When using Helm to install CSI, you need to prepare the **values.yaml** file of the Helm project based on the features required during deployment. Huawei CSI provides the **values.yaml** template file in the **helm/esdk** directory of the software package. + +This section describes the configuration items in the **values.yaml** file and backend configuration examples in typical scenarios. + +## images Parameters{#section128441143205716} + +The images parameters in the **values.yaml** file are used to configure the component image information on which Huawei CSI depends during running. Set the following parameters: + +**Table 1** images parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

images.huaweiCSIService

+

huawei-csi image.

+

Yes

+

huawei-csi:4.5.0

+

images.storageBackendSidecar

+

Huawei back-end management sidecar image.

+

Yes

+

storage-backend-sidecar:4.5.0

+

images.storageBackendController

+

Huawei back-end management controller image.

+

Yes

+

storage-backend-controller:4.5.0

+

images.huaweiCSIExtender

+

huawei-csi-extender image.

+

No

+

huawei-csi-extender:4.5.0

+

images.sidecar.livenessProbe

+

livenessprobe sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

+

images.sidecar.provisioner

+

csi-provisioner sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

+

images.sidecar.attacher

+

csi-attacher sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

+

images.sidecar.resizer

+

csi-resizer sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

+

images.sidecar.snapshotter

+

csi-snapshotter sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.1

+

images.sidecar.snapshotController

+

snapshot-controller sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/snapshot-controller:v4.2.1

+

images.sidecar.registrar

+

csi-node-driver-registrar sidecar image.

+

Yes

+

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- For details about the values of **huaweiCSIService**, **storageBackendSidecar**, **storageBackendController**, and **huaweiCSIExtender**, see [Uploading a Huawei CSI Image](/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image). Use the name and version of the finally generated image. +>- For details about other sidecar image parameters, see [Checking the Images on Which CSI Depends](/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends). Use the name and version of the finally uploaded image. + +## controller Parameters{#section94006111587} + +The controller parameters are used to configure the huawei-csi-controller component. + +**Table 2** controller parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

controller.controllerCount

+

Number of huawei-csi-controller component copies.

+

Yes

+

1

+

If the Kubernetes version is earlier than v1.17, the huawei-csi-controller component can be deployed only in single-copy mode because the csi-provisioner sidecar image provided by the Kubernetes community does not support the --leader-election parameter.

+

Therefore, if the Kubernetes version is earlier than v1.17, this parameter can only be set to 1.

+

controller.volumeNamePrefix

+

PV name prefix. The default value is pvc, that is, the name of a created PV is pvc-<uuid>. The prefix must comply with the naming rules of a DNS subdomain name, and the total length of the PV name cannot exceed 253 characters.

+

No

+

pvc

+

The corresponding provisioner parameter name is --volume-name-prefix.

+

It is recommended that the prefix contain no more than 20 characters.

+

For details, see Configuring the PV Name Prefix.

+
  • If the connected backend is OceanStor V5 SAN storage, it is recommended that the prefix contain a maximum of 5 characters.
  • If the connected backend is OceanStor V5 NAS storage, the prefix can contain only lowercase letters, hyphens (-), and digits.
  • If the connected backend is OceanStor Dorado or OceanStor storage, the prefix can contain only lowercase letters, hyphens (-), and digits.
  • If the connected backend is OceanStor Pacific series storage, the prefix can contain a maximum of 58 characters, including only letters, digits, underscores (_), hyphens (-), and periods (.).
  • If the connected backend is FusionStorage Block, the prefix can contain a maximum of 58 characters, including only letters, digits, underscores (_), and hyphens (-).
+

controller.webhookPort

+

Port used by the webhook service.

+

Yes

+

4433

+

If a port conflict occurs, change the port number to an idle one.

+

controller.snapshot.enabled

+

Whether to enable the snapshot feature.

+

Yes

+

true

+

If you want to use snapshot-related functions, enable this feature.

+

The Kubernetes version must be later than v1.17.

+

controller.resizer.enabled

+

Whether to enable the capacity expansion feature.

+

Yes

+

true

+

The Kubernetes version must be later than v1.16.

+

controller.nodeSelector

+

Node selector of huawei-csi-controller. After this parameter is set, huawei-csi-controller will be scheduled only to a node with the label.

+

No

+

-

+

For details about the node selector, see Assign Pods to Nodes.

+

controller.tolerations

+

Taint toleration of huawei-csi-controller. After this parameter is set, huawei-csi-controller can tolerate taints on a node.

+

No

+

-

+

For details about taints and tolerations, see Taints and Tolerations.

+

controller.livenessProbePort

+

Liveness probe port of huawei-csi-controller, used for health check.

+

Yes

+

9808

+

If a port conflict occurs, change the port number to an idle one.

+

controller.csiExtender.volumeModify.enabled

+

Whether to enable the PVC change feature.

+

No

+

false

+

If you want to use PVC change-related functions, enable this feature.

+

controller.csiExtender.volumeModify.retryBaseDelay

+

Minimum retry interval when a PVC change fails to be created.

+

No

+

5s

+

The default value is recommended.

+

controller.csiExtender.volumeModify.retryMaxDelay

+

Maximum retry interval when a PVC change fails to be created.

+

No

+

5m

+

The default value is recommended.

+

controller.csiExtender.volumeModify.reconcileDelay

+

Interval for reconciling VolumeModifyClaim objects.

+

No

+

1s

+

The default value is recommended.

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>If **controller.snapshot.enabled** is set to **true**, you need to install the volume snapshot CRD resource in the **helm/crd/snapshot-crds** directory. + +## node Parameters{#section374014171581} + +The node parameters are used to configure the huawei-csi-node component. + +**Table 3** node parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

node.maxVolumesPerNode

+

Maximum number of volumes provisioned by Huawei CSI that can be used by a node. If this parameter is not specified or is set to 0, the number is unlimited.

+

If nodeName is specified during Pod creation, this configuration will be ignored.

+

No

+

100

+

For details, see Volume Limits.

+

node.nodeSelector

+

Node selector of huawei-csi-node. After this parameter is set, huawei-csi-node will be scheduled only to a node with the label.

+

No

+

-

+

For details about the node selector, see Assign Pods to Nodes.

+

node.tolerations

+

Taint toleration of huawei-csi-node. After this parameter is set, huawei-csi-node can tolerate taints on a node.

+

No

+
- key: "node.kubernetes.io/memory-pressure"
+  operator: "Exists"
+  effect: "NoExecute"
+- key: "node.kubernetes.io/disk-pressure"
+  operator: "Exists"
+  effect: "NoExecute"
+- key: "node.kubernetes.io/network-unavailable"
+  operator: "Exists"
+  effect: "NoExecute"
+

For details about taints and tolerations, see Taints and Tolerations.

+

node.livenessProbePort

+

Liveness probe port of huawei-csi-node, used for health check.

+

Yes

+

9800

+

If a port conflict occurs, change the port number to an idle one.

+

node.kubeletVolumeDevicesDirName

+

Name of the directory where a block device is mounted to kubelet.

+

No

+

volumeDevices

+

After a block device is successfully mounted, the directory structure of the mount path is as follows:

+
/var/lib/kubelet/plugins/kubernetes.io/csi/{kubeletVolumeDevicesDirName}/publish/{specName}/{podUID}
+
+ +## csiDriver Parameters{#section389443385812} + +The csiDriver parameters include the basic configurations for running Huawei CSI, such as Huawei driver name and multipathing type. + +**Table 4** csiDriver parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

csiDriver.driverName

+

Registered driver name.

+

Yes

+

csi.huawei.com

+
  • Use the default value.
  • For the CCE Agile platform, modify this field. For example, csi.oceanstor.com.
+

csiDriver.endpoint

+

Communication endpoint.

+

Yes

+

/csi/csi.sock

+

Use the default value.

+

csiDriver.connectorThreads

+

Maximum number of disks that can be concurrently scanned/detached. The value is an integer ranging from 1 to 10.

+

Yes

+

4

+

A larger value indicates that more concurrent disk scanning and detaching operations are performed on a single node at the same time. When DM-Multipath is used, a large number of concurrent requests may cause unknown problems and affect the overall time.

+

csiDriver.volumeUseMultipath

+

Whether to use multipathing software. The value is a Boolean value.

+

Yes

+

true

+

It is strongly recommended that multipathing software be enabled to enhance the redundancy and performance of storage links.

+

csiDriver.scsiMultipathType

+

Multipathing software used when the storage protocol is fc or iscsi. The following parameter values can be configured:

+
  • DM-multipath
  • HW-UltraPath
  • HW-UltraPath-NVMe
+

Mandatory when volumeUseMultipath is set to true.

+

DM-multipath

+

The DM-multipath value is recommended.

+

csiDriver.nvmeMultipathType

+

Multipathing software used when the storage protocol is roce or fc-nvme. Only HW-UltraPath-NVMe is supported.

+

Mandatory when volumeUseMultipath is set to true.

+

HW-UltraPath-NVMe

+

-

+

csiDriver.scanVolumeTimeout

+

Timeout interval for waiting for multipathing aggregation when DM-Multipath is used on the host. The value ranges from 1 to 600 seconds.

+

Yes

+

3

+

-

+

csiDriver.execCommandTimeout

+

Timeout interval for running commands on the host.

+

Yes

+

30

+

In scenarios such as mounting and capacity expansion, the CSI plug-in needs to run some host commands, for example, running the mount command to mount a file system. This parameter is used to control the timeout interval for running a single command.

+

csiDriver.allPathOnline

+

Whether to check whether the number of paths aggregated by DM-Multipath is equal to the actual number of online paths. The following parameter values can be configured:

+
  • true: The drive letter mounting condition is met only when the number of paths aggregated by DM-Multipath is equal to the actual number of online paths.
  • false: By default, the number of paths aggregated by DM-Multipath is not checked. As long as virtual drive letters are generated upon aggregation, the drive letter mounting condition is met.
+

This parameter is mandatory when csiDriver.scsiMultipathType is set to DM-multipath.

+

false

+

-

+

csiDriver.backendUpdateInterval

+

Interval for updating backend capabilities. The value ranges from 60 to 600 seconds.

+

Yes

+

60

+

-

+

csiDriver.controllerLogging.module

+

Record type of the controller log. The following parameter values can be configured:

+
  • file
  • console
+

Yes

+

file

+

When the value is file, logs are retained in the specified directory of the node. When the Pod where CSI is located is destroyed, logs are still retained.

+

When the value is console, logs are retained in the temporary space of the Pod where CSI is located. When the Pod where CSI is located is destroyed, the logs are also destroyed.

+

csiDriver.controllerLogging.level

+

Output level of the controller log. The following parameter values can be configured:

+
  • debug
  • info
  • warning
  • error
  • fatal
+

Yes

+

info

+

-

+

csiDriver.controllerLogging.fileDir

+

Directory of the controller log in file output mode.

+

Yes

+

/var/log/huawei

+

Ensure that the directory has sufficient space for storing logs. It is recommended that the space be greater than or equal to 200 MB.

+

csiDriver.controllerLogging.fileSize

+

Size of a single controller log file in file output mode.

+

Yes

+

20M

+

-

+

csiDriver.controllerLogging.maxBackups

+

Maximum number of controller log file backups in file output mode.

+

Yes

+

9

+

-

+

csiDriver.nodeLogging.module

+

Record type of the node log. The following parameter values can be configured:

+
  • file
  • console
+

Yes

+

file

+

When the value is file, logs are retained in the specified directory of the node. When the Pod where CSI is located is destroyed, logs are still retained.

+

When the value is console, logs are retained in the temporary space of the Pod where CSI is located. When the Pod where CSI is located is destroyed, the logs are also destroyed.

+

csiDriver.nodeLogging.level

+

Output level of the node log. The following parameter values can be configured:

+
  • debug
  • info
  • warning
  • error
  • fatal
+

Yes

+

info

+

-

+

csiDriver.nodeLogging.fileDir

+

Directory of the node log in file output mode.

+

Yes

+

/var/log/huawei

+

Ensure that the directory has sufficient space for storing logs. It is recommended that the space be greater than or equal to 200 MB.

+

csiDriver.nodeLogging.fileSize

+

Size of a single node log file in file output mode.

+

Yes

+

20M

+

-

+

csiDriver.nodeLogging.maxBackups

+

Maximum number of node log file backups in file output mode.

+

Yes

+

9

+

-

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>If Huawei CSI has been deployed in your container environment, ensure that the value of **csiDriver.driverName** is the same as that configured during previous deployment. Otherwise, existing volumes or snapshots provisioned by Huawei CSI in the system cannot be managed by the newly deployed Huawei CSI. + +## Other Parameters{#section11500468593} + +Other parameters include some features of the CSI plug-in or the policies for obtaining images. + +**Table 5** Other parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

kubernetes.namespace

+

Kubernetes namespace where Huawei CSI is running, which can be customized. The name must consist of lowercase letters, digits, and hyphens (-), for example, my-name and 123-abc.

+

No

+

huawei-csi

+

-

+

kubeletConfigDir

+

Working directory of kubelet.

+

Yes

+

/var/lib/kubelet

+
  • Use the default value.
  • For the Tanzu platform, change the value of this field to /var/vcap/data/kubelet.
  • For the CCE Agile platform, change the value of this field to /mnt/paas/kubernetes/kubelet.
+

sidecarImagePullPolicy

+

Pull policy of the sidecar image.

+

Yes

+

IfNotPresent

+

-

+

huaweiImagePullPolicy

+

Pull policy of the huawei-csi image.

+

Yes

+

IfNotPresent

+

-

+

CSIDriverObject.isCreate

+

Whether to create the CSIDriver object.

+

Yes

+

false

+

The CSIDriver feature is a GA version in Kubernetes v1.18. Therefore, to use this feature, the Kubernetes version must be later than v1.18. If the Kubernetes version is earlier than v1.18, set this parameter to false.

+

CSIDriverObject.attachRequired

+

Whether the CSI plug-in skips the attach operation. The following parameter values can be configured:

+
  • true: The attach operation is required.
  • false: The attach operation is skipped.
+

Yes

+

true

+

The attachRequired parameter can be configured in Kubernetes v1.18.

+

If CSIDriverObject.isCreate is set to true and attachRequired is set to false, the huawei-csi plug-in will not deploy the csi-attacher sidecar.

+
  • If NAS storage is used, this parameter can be set to false.
  • If SAN storage is used, set this parameter to true.
+

CSIDriverObject.fsGroupPolicy

+

Whether the ownership and permissions of a basic volume can be changed before the volume is mounted. The following parameter values can be configured:

+
  • "ReadWriteOnceWithFSType": The volume ownership and permission can be changed only when fsType is specified and accessModes of the volume contains ReadWriteOnce.
  • "File": Kubernetes can use fsGroup to change the permissions and ownership of a volume to match fsGroup requested by a user in the Pod security policy, regardless of fsGroup or accessModes.
  • "None": A volume is mounted without any change.
  • "null": The fsGroupPolicy parameter is not set.
+

No

+

null

+

The fsGroupPolicy parameter can be configured in Kubernetes v1.20, and takes effect only when CSIDriverObject.isCreate is set to true.

+

This feature is a Beta version in Kubernetes v1.20 but a GA version in Kubernetes v1.23. Therefore, the Kubernetes version must be later than v1.20.

+

leaderElection.leaseDuration

+

Leader duration.

+

No

+

8s

+

This parameter takes effect only in the multi-controller scenario.

+

leaderElection.renewDeadline

+

Time for the leader to be re-elected.

+

No

+

6s

+

This parameter takes effect only in the multi-controller scenario.

+

leaderElection.retryPeriod

+

Leader election retry time.

+

No

+

2s

+

This parameter takes effect only in the multi-controller scenario.

+
+ +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>Ensure that the namespace entered in **kubernetes.namespace** exists on Kubernetes. If the namespace does not exist, run the following command to create it. In this example, the namespace for running Huawei CSI is **huawei-csi**. +>``` +>kubectl create namespace huawei-csi +>``` + diff --git a/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md new file mode 100644 index 0000000..8f05751 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md @@ -0,0 +1,86 @@ +--- +title: "Manually Installing Huawei CSI" +linkTitle: "Manually Installing Huawei CSI" +description: +weight: 2 +--- + +This section describes how to manually install Huawei CSI. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>Currently, only the Kubernetes platform supports manual installation of Huawei CSI. + +## Procedure{#section113761618183018} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the cluster through the management IP address. +2. Copy the **manual** directory in the Kubernetes CSI component package to any directory on the master node. +3. Run the following command to create a namespace. + + ``` + kubectl create ns huawei-csi + ``` + +4. Go to the **manual/esdk** working directory. For details about the path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + cd manual/esdk + ``` + +5. Run the following command to update the storage backend CRD. + + ``` + kubectl apply -f ./crds/backend/ + ``` + +6. \(Optional\) Check snapshot-dependent components by following the instructions provided in [Checking Volume Snapshot-Dependent Components](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components). After confirming that the components are correct, run the following command to update the snapshot CRD. If the Kubernetes version is earlier than v1.17, skip this step. + + ``` + kubectl apply -f ./crds/snapshot-crds/ --validate=false + ``` + +7. \(Optional\) Run the following command to install CSIDriver. If the CSIDriver feature is not used, you can skip this step. For details, see the [CSIDriver](https://kubernetes-csi.github.io/docs/csi-driver-object.html) feature. + + ``` + kubectl apply -f ./deploy/csidriver.yaml + ``` + +8. Run the following command to install the huawei-csi-controller service. + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >If the Kubernetes version is earlier than v1.17, modify the _./deploy/huawei-csi-controller.yaml_ file as follows: + >- If the Kubernetes version is earlier than v1.17, the snapshot feature is not supported. In this case, delete the snapshot-related container configurations items **csi-snapshotter** and **snapshot-controller**. + >- If the Kubernetes version is earlier than v1.17, the csi-provisioner sidecar image provided by the Kubernetes community does not support the **--leader-election** parameter. Therefore, the **leader-election** parameter of the csi-provisioner container is deleted and only single-copy deployment is supported. + >- Modify the dependent image version based on the version requirements in [Checking the Images on Which CSI Depends](/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends). + + ``` + kubectl apply -f ./deploy/huawei-csi-controller.yaml + ``` + +9. Run the following command to install the huawei-csi-node service. + + ``` + kubectl apply -f ./deploy/huawei-csi-node.yaml + ``` + +10. Run the following command to check whether the services are started. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. If the Pod status is **Running**, the installation is successful. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-68745d489c-v5xkj 9/9 Running 0 13m + huawei-csi-node-4hbqp 3/3 Running 0 13m + huawei-csi-node-f7dkf 3/3 Running 0 13m + huawei-csi-node-xrntc 3/3 Running 0 13m + ``` + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>In the multi-copy controller deployment scenario, you can modify the **spec.replica** field of the Deployment resource in the _./deploy/huawei-csi-controller.yaml_ file to specify the number of copies. After the modification, run the following command for the modification to take effect. +>``` +>kubectl apply -f ./deploy/huawei-csi-controller.yaml +>``` + diff --git a/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md new file mode 100644 index 0000000..fe2fb2a --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md @@ -0,0 +1,14 @@ +--- +title: "Uninstalling Huawei CSI" +linkTitle: "Uninstalling Huawei CSI" +description: +weight: 3 +--- + +This chapter describes how to uninstall Huawei CSI. The uninstallation method varies according to the installation mode. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>If you do not uninstall Huawei CSI for the purpose of an upgrade, ensure that all resources \(such as PV, PVC, snapshot, and storage backend resources\) provisioned by Huawei CSI have been cleared on your container platform before uninstalling Huawei CSI. Otherwise, once you uninstall Huawei CSI, these resources cannot be automatically scheduled, managed, or cleared. + + + diff --git a/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md new file mode 100644 index 0000000..c63ea9f --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md @@ -0,0 +1,75 @@ +--- +title: "Manually Uninstalling Huawei CSI" +linkTitle: "Manually Uninstalling Huawei CSI" +description: +weight: 2 +--- + +This section describes how to manually uninstall Huawei CSI. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>If you do not uninstall Huawei CSI for the purpose of an upgrade, ensure that all resources \(such as PV, PVC, snapshot, and storage backend resources\) provisioned by Huawei CSI have been cleared on your container platform before uninstalling Huawei CSI. Otherwise, once you uninstall Huawei CSI, these resources cannot be automatically scheduled, managed, or cleared. + +## Uninstalling the huawei-csi-node Service{#section1012817231386} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to uninstall the huawei-csi-node service. Replace _huawei-csi_ with the namespace where Huawei CSI is located. + + ``` + kubectl delete daemonset huawei-csi-node -n huawei-csi + ``` + +3. Run the following command to check whether the service is successfully uninstalled. If **NotFound** is displayed, the service is successfully uninstalled. + + ``` + kubectl get daemonset huawei-csi-node -n huawei-csi + ``` + +## Uninstalling the huawei-csi-controller Service{#section34281930180} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to uninstall the huawei-csi-controller service. Replace _huawei-csi_ with the namespace where Huawei CSI is located. + + ``` + kubectl delete deployment huawei-csi-controller -n huawei-csi + ``` + +3. Run the following command to check whether the service is successfully uninstalled. If **NotFound** is displayed, the service is successfully uninstalled. + + ``` + kubectl get deployment huawei-csi-controller -n huawei-csi + ``` + +## Uninstalling the csidriver Object{#section4229471288} + +If [the CSIDriver feature is not used during installation](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi#li395973220487), you can skip the following steps. + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to uninstall the csidriver object. + + ``` + kubectl delete csidriver csi.huawei.com + ``` + +3. Run the following command to check whether the service is successfully uninstalled. If **NotFound** is displayed, the service is successfully uninstalled. + + ``` + kubectl get csidriver csi.huawei.com + ``` + +## Deleting the RBAC Permission{#section111616512911} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Delete the RBAC permission. + + ``` + kubectl -n huawei-csi -l provisioner=csi.huawei.com delete ServiceAccount,Service,role,rolebinding,ClusterRole,ClusterRoleBinding + ``` + +## Uninstalling Other Resources{#section1370361019919} + +1. Uninstall the huawei-csi-host-info object. For details, see [Uninstalling the huawei-csi-host-info Object](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017). +2. Uninstall the webhook resource. For details, see [Uninstalling a Webhook Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014). +3. \(Optional\) Uninstall the snapshot-dependent component service. For details, see [Uninstalling the Snapshot-Dependent Component Service](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319). +4. \(Optional\) Uninstall the Lease resource. For details, see [Uninstalling a Lease Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317). + diff --git a/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..171cd80 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md @@ -0,0 +1,10 @@ +--- +title: "Uninstalling Huawei CSI Using Helm" +linkTitle: "Uninstalling Huawei CSI Using Helm" +description: +weight: 1 +--- + + + + diff --git a/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md new file mode 100644 index 0000000..d5e046f --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md @@ -0,0 +1,131 @@ +--- +title: "Uninstalling CSI-Dependent Component Services" +linkTitle: "Uninstalling CSI-Dependent Component Services" +description: +weight: 3 +--- + +This section describes how to uninstall the CSI-dependent component services. + +## Uninstalling the huawei-csi-host-info Object{#section870813403017} + +Secret object **huawei-csi-host-info** stores the initiator information about each node in the cluster, for example, iSCSI initiators. When you run the **helm uninstall** command, the resource will not be uninstalled. To uninstall the resource, perform the following steps: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to delete the Secret object. _huawei-csi-host-info_ is the name of the Secret object, and _huawei-csi_ is the namespace where the Secret object is located. + + ``` + kubectl delete secret huawei-csi-host-info -n huawei-csi + ``` + +3. Run the following command to check whether the Secret object is successfully uninstalled. + + ``` + kubectl get secret huawei-csi-host-info -n huawei-csi + ``` + + The following is an example of the command output. If **NotFound** is displayed in the command output, the **huawei-csi-host-info** object is successfully uninstalled. + + ```yaml + Error from server (NotFound): secrets "huawei-csi-host-info" not found + ``` + +## Uninstalling a Webhook Resource{#section871155813014} + +The webhook resource named **storage-backend-controller.xuanwu.huawei.io** is used to verify the backend key information and connectivity with the storage. When you run the **helm uninstall** command, the resource will not be uninstalled. To uninstall the resource, perform the following steps: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to query the webhook-dependent component service. + + ``` + kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io + ``` + + The following is an example of the command output. + + ``` + NAME WEBHOOKS AGE + storage-backend-controller.xuanwu.huawei.io 1 12d + ``` + +3. Run the following command to uninstall the webhook-dependent component service. + + ``` + kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io + ``` + +4. Run the following command to check whether the service is successfully uninstalled. If the command output is empty, the uninstallation is successful. + + ``` + kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io + ``` + +## Uninstalling the Snapshot-Dependent Component Service{#section48371491319} + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- Do not uninstall the snapshot-dependent component service when snapshots exist. Otherwise, Kubernetes will automatically delete all user snapshots and they cannot be restored. Exercise caution when performing this operation. For details, see [Delete a CustomResourceDefinition](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#delete-a-customresourcedefinition). +>- Do not uninstall the snapshot-dependent component service during the CSI upgrade. + +**Scenario Description** + +- Currently, Huawei CSI uses the snapshot feature. +- Currently, only Huawei CSI is available in the Kubernetes cluster, and Huawei CSI is no longer used. +- Before the uninstallation, ensure that no VolumeSnapshot resource managed by Huawei CSI exists in the Kubernetes cluster. + +**Procedure** + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to uninstall the snapshot-dependent component service. + + ``` + kubectl delete crd volumesnapshotclasses.snapshot.storage.k8s.io volumesnapshotcontents.snapshot.storage.k8s.io volumesnapshots.snapshot.storage.k8s.io + ``` + +3. Run the following command to check whether the service is successfully uninstalled. If the command output is empty, the uninstallation is successful. + + ``` + kubectl get crd | grep snapshot.storage.k8s.io + ``` + +## Uninstalling a Lease Resource{#section263805014317} + +If the value of the **controller.controllerCount** configuration item in the **values.yaml** file is greater than 1, huawei-csi-controller will be deployed in multi-copy mode. The multiple copies of huawei-csi-controller are implemented using the LeaderElection mechanism of Kubernetes. This mechanism creates a Lease object to store the current Holder information. When you run the **helm uninstall** command, the resource will not be uninstalled. To uninstall the resource, perform the following steps. If the value of **controller.controllerCount** is **1**, you can skip the following steps. For details about the configuration item, see [Table 2](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459). + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to query the Lease information. + + ``` + kubectl get lease -n huawei-csi + ``` + + The following is an example of the command output. + + ``` + NAME HOLDER AGE + csi-huawei-com node-1 24d + external-attacher-leader-csi-huawei-com node-1 24d + external-resizer-csi-huawei-com node-1 24d + external-snapshotter-leader-csi-huawei-com node-1 24d + snapshot-controller-leader node-1 24d + storage-backend-controller node-1 24d + huawei-csi-extender node-1 24d + ``` + +3. Run the following command to uninstall the Lease resource. + + ``` + kubectl delete lease -n huawei-csi csi-huawei-com external-attacher-leader-csi-huawei-com external-resizer-csi-huawei-com external-snapshotter-leader-csi- + ``` + +4. Run the following command to check whether the uninstallation is successful. + + ``` + kubectl get lease -n huawei-csi + ``` + + The following is an example of the command output. If the command output is empty, the uninstallation is successful. + + ``` + No resources found in huawei-csi namespace. + ``` + diff --git a/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..2d03b7f --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,21 @@ +--- +title: "Uninstalling Huawei CSI on CCE or CCE Agile" +linkTitle: "Uninstalling Huawei CSI on CCE or CCE Agile" +description: +weight: 2 +--- + +This section describes how to uninstall Huawei CSI on the CCE or CCE Agile platform. The following uses CCE Agile v22.3.2 as an example. + +## Procedure{#section1489941282414} + +1. Log in to the CCE Agile platform. +2. On the home page, choose **Charts** \> **Releases**. The **Releases** page is displayed. +3. Select a Huawei CSI release and click **Uninstall**. In the displayed dialog box, click **OK**. + + ![](/css-docs/figures/卸载-ch.png) + +4. Uninstall the huawei-csi-host-info object. For details, see [Uninstalling the huawei-csi-host-info Object](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017). +5. Uninstall the webhook resource. For details, see [Uninstalling a Webhook Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014). +6. \(Optional\) Uninstall the snapshot-dependent component service. For details, see [Uninstalling the Snapshot-Dependent Component Service](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319). + diff --git a/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..7302384 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,35 @@ +--- +title: "Uninstalling Huawei CSI on Kubernetes, OpenShift, and Tanzu" +linkTitle: "Uninstalling Huawei CSI on Kubernetes, OpenShift, and Tanzu" +description: +weight: 1 +--- + +This section describes how to uninstall Huawei CSI on the Kubernetes, OpenShift, and Tanzu platforms. + +## Procedure{#section9152125194710} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to uninstall Huawei CSI. In the command, _helm-huawei-csi_ indicates the custom Helm chart name and _huawei-csi_ indicates the namespace where the Helm chart resides. This command will uninstall the huawei-csi-controller, huawei-csi-node, and RBAC resources of Huawei CSI. + + ``` + helm uninstall helm-huawei-csi -n huawei-csi + ``` + + After the uninstallation command is executed, you need to check whether the uninstallation is successful. In the preceding command, _huawei-csi_ indicates the namespace where the chart is located. + + ``` + helm list -n huawei-csi + ``` + + The following is an example of the command output. If the command output is empty, the service is successfully uninstalled. + + ``` + NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION + ``` + +3. Uninstall the huawei-csi-host-info object. For details, see [Uninstalling the huawei-csi-host-info Object](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017). +4. Uninstall the webhook resource. For details, see [Uninstalling a Webhook Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014). +5. \(Optional\) Uninstall the snapshot-dependent component service. For details, see [Uninstalling the Snapshot-Dependent Component Service](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319). +6. \(Optional\) Uninstall the Lease resource. For details, see [Uninstalling a Lease Resource](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317). + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md new file mode 100644 index 0000000..59aea57 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md @@ -0,0 +1,14 @@ +--- +title: "Upgrading or Rolling Back Huawei CSI" +linkTitle: "Upgrading or Rolling Back Huawei CSI" +description: +weight: 4 +--- + +This section describes how to upgrade or roll back Huawei CSI. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>In the current version, resource requests and limits are added to Huawei CSI. For details, see [Huawei CSI Resource Management](/docs/appendix/huawei-csi-resource-management). + + + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md new file mode 100644 index 0000000..ebb1bc3 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md @@ -0,0 +1,9 @@ +--- +title: "Manual Upgrade/Rollback" +linkTitle: "Manual Upgrade/Rollback" +description: +weight: 2 +--- + + + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md new file mode 100644 index 0000000..42547aa --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md @@ -0,0 +1,24 @@ +--- +title: "Rolling Back Huawei CSI" +linkTitle: "Rolling Back Huawei CSI" +description: +weight: 2 +--- + +Uninstall CSI by referring to [Manually Uninstalling Huawei CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi), and then download and install CSI of the source version. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. +>- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. +>- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. + +## Prerequisites{#en-us_topic_0000001275627010_en-us_topic_0000001232767941_section19453102010152} + +You have downloaded the CSI software package of the source version. + +## Procedure{#section7449184616111} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Uninstall CSI. For details, see [Manually Uninstalling Huawei CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi). +3. Reinstall CSI of the source version. For details, see [Manually Installing Huawei CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi). + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md new file mode 100644 index 0000000..2058a7e --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md @@ -0,0 +1,39 @@ +--- +title: "Upgrading Huawei CSI" +linkTitle: "Upgrading Huawei CSI" +description: +weight: 1 +--- + +This section describes how to manually upgrade Huawei CSI. + +During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- Some CSI 2._x_ versions are unavailable now. If the upgrade fails, CSI may fail to be rolled back to a version which is unavailable now. +>- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. +>- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. + +## Upgrading CSI from 2.x or 3.x to 4.5.0{#section260220843210} + +To upgrade CSI from 2._x_ or 3._x_ to 4.5.0, perform the following operations: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to back up the backend information to the **configmap.json** file. For the OpenShift platform, replace **kubectl** with **oc**. + + ``` + kubectl get cm huawei-csi-configmap -n huawei-csi -o json > configmap.json + ``` + +3. Uninstall CSI. For details, see [Manually Uninstalling Huawei CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi). +4. Install CSI of the current version. For details, see [Manually Installing Huawei CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi). +5. Install the backend information backed up in [2](#li1699321211285) according to [Managing Storage Backends](/docs/storage-backend-management/managing-storage-backends). + +## Upgrading CSI from 4.x to 4.5.0{#section173369363219} + +To upgrade CSI from 4._x_ to 4.5.0, perform the following operations: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Uninstall CSI. For details, see [Manually Uninstalling Huawei CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi). +3. Install CSI of the current version. For details, see [Manually Installing Huawei CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi). + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..ebcb45c --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md @@ -0,0 +1,15 @@ +--- +title: "Upgrading or Rolling Back Huawei CSI Using Helm" +linkTitle: "Upgrading or Rolling Back Huawei CSI Using Helm" +description: +weight: 1 +--- + +To upgrade Huawei CSI from 2._x_ to 4.5.0, uninstall it by referring to the user guide of the earlier version and install Huawei CSI by referring to [Installing Huawei CSI Using Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm). + +To upgrade Huawei CSI from 2._x_ or 3._x_ to 4.5.0, see [Upgrading from 2.x or 3.x to 4.x](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x). + +To upgrade Huawei CSI from 4._x_ to 4.5.0, see [Upgrading Huawei CSI on Kubernetes, OpenShift, and Tanzu](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu). + + + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md new file mode 100644 index 0000000..e4b08f0 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md @@ -0,0 +1,16 @@ +--- +title: "Rolling Back Huawei CSI" +linkTitle: "Rolling Back Huawei CSI" +description: +weight: 2 +--- + +If CSI fails to be upgraded from 2._x_ or 3._x_ to 4.5.0 and needs to be rolled back, uninstall CSI by referring to [Uninstalling Huawei CSI Using Helm](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm) and then download and install CSI of the source version. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. +>- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. +>- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. + + + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..8be6934 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,22 @@ +--- +title: "Rolling Back Huawei CSI on CCE or CCE Agile" +linkTitle: "Rolling Back Huawei CSI on CCE or CCE Agile" +description: +weight: 2 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. +>- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. +>- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. + +## Prerequisites{#en-us_topic_0000001275627010_en-us_topic_0000001232767941_section19453102010152} + +You have downloaded the CSI software package of the source version. + +## Procedure{#section7449184616111} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Uninstall CSI. For details, see [Procedure](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile#section1489941282414). +3. Reinstall CSI of the source version. For details, see [Installing Huawei CSI on the CCE or CCE Agile Platform](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform). + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..ccdff88 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,48 @@ +--- +title: "Rolling Back Huawei CSI on Kubernetes, OpenShift, and Tanzu" +linkTitle: "Rolling Back Huawei CSI on Kubernetes, OpenShift, and Tanzu" +description: +weight: 1 +--- + +## Prerequisites{#section12493103133711} + +- CSI has been updated using Helm 3. + +## Procedure{#section1015846181614} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Go to the **helm/esdk** working directory. For the directory path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + cd helm/esdk + ``` + +3. Run the following command to query the historical versions of the CSI services deployed using Helm. + + ``` + helm history helm-huawei-csi -n huawei-csi + ``` + + The following is an example of the command output. + + ``` + REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION + 1 Mon Jan 8 04:15:40 2024 superseded esdk-4.4.0 4.4.0 Install complete + 2 Mon Jan 8 04:16:12 2024 deployed esdk-4.5.0 4.5.0 Upgrade complete + ``` + +4. Run the following command to roll back the CSI services to the specified version. + + In the preceding command, _revision-number_ indicates a version number queried in [3](#li92161141175717). For example, the version is **1**. + + ``` + helm rollback helm-huawei-csi -n huawei-csi 1 + ``` + + The following is an example of the command output. If **Rollback was a success** is displayed in the command output, the CSI services are successfully rolled back to the specified version. + + ``` + Rollback was a success! Happy Helming! + ``` + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md new file mode 100644 index 0000000..d1c9703 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md @@ -0,0 +1,20 @@ +--- +title: "Upgrading Huawei CSI" +linkTitle: "Upgrading Huawei CSI" +description: +weight: 1 +--- + +This section describes how to upgrade Huawei CSI. + +During the upgrade or rollback, the existing resources such as PVCs, snapshots, and Pods will run properly and will not affect your service access. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- Some CSI 2._x_ versions are unavailable now. If the upgrade fails, CSI may fail to be rolled back to a version which is unavailable now. +>- After an upgrade from 2._x_, 3._x_, or 4._x_ to 4.5.0, a Pod that has been provisioned in the source version may fail to be mounted again. For details, see [Upgrading from 2.x or 3.x to 4.x](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x). +>- During the upgrade or rollback, you cannot use Huawei CSI to create new resources or mount or unmount an existing PVC. +>- During the upgrade or rollback, do not uninstall the snapshot-dependent component service. + + + + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md new file mode 100644 index 0000000..f38a6e7 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md @@ -0,0 +1,31 @@ +--- +title: "Upgrading from 2.x or 3.x to 4.x" +linkTitle: "Upgrading from 2.x or 3.x to 4.x" +description: +weight: 1 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>In CSI 2._x_ or 3._x_, when block storage is used, the mapping with storage is set up in the huawei-csi-node service. Therefore, the huawei-csi-node service needs to communicate with the storage management network. Because the huawei-csi-node service is deployed as a DaemonSet, the huawei-csi-node service is deployed on each node in the cluster. As a result, in a large-scale cluster, each huawei-csi-node service sends requests to the storage and the number of storage connections may be fully occupied. Accordingly, huawei-csi-node cannot provide services properly. +>In CSI 4._x_, the deployment model is optimized. The setup of the mapping with storage is migrated to the huawei-csi-controller service and the huawei-csi-node service does not need to communicate with the storage management network. This reduces the networking complexity of Huawei CSI. In addition, the huawei-csi-controller service is deployed as a Deployment. The number of copies is set based on the customer's reliability requirements. Generally, the number of copies ranges from 1 to 3. Therefore, the number of connections between Huawei CSI and storage is greatly reduced, so that Huawei CSI can connect to a large-scale cluster. +>This change may cause a problem. That is, if a new mount process is generated after CSI is upgraded to 4._x_ but with workloads provisioned using 2._x_ or 3._x_ and the Container Orchestration \(CO\) system does not invoke the huawei-csi-controller service provided by Huawei CSI, the mounting will fail. For details, see [A Pod Fails to Be Created and Message "publishInfo doesn't exist" Is Displayed in the Events Log](/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log). + +## Backing Up Storage Backend Configurations{#section3200825558} + +If you have evaluated the risks mentioned in the preceding notice and need to upgrade CSI from 2._x_ or 3._x_ to 4.5.0, perform the following steps to back up storage backend configurations: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to back up the backend information to the **configmap.json** file. For the OpenShift platform, replace **kubectl** with **oc**. + + ``` + kubectl get cm huawei-csi-configmap -n huawei-csi -o json > configmap.json + ``` + +## Upgrading Huawei CSI{#section1413511233612} + +Perform the upgrade according to the procedure described in [Upgrading Huawei CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu#section6841317173013). + +## Configuring the Storage Backend{#section496812169812} + +Configure the storage backend by following the instructions in [Managing Storage Backends](/docs/storage-backend-management/managing-storage-backends) according to the backend information backed up in [Backing Up Storage Backend Configurations](#section3200825558). After the storage backend is successfully configured, perform operations according to the risk handling methods described in the preceding notice to prevent problems during Pod failover. + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..a2dcb97 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,16 @@ +--- +title: "Upgrading Huawei CSI on CCE or CCE Agile" +linkTitle: "Upgrading Huawei CSI on CCE or CCE Agile" +description: +weight: 3 +--- + +## Prerequisites{#en-us_topic_0000001275627010_en-us_topic_0000001232767941_section19453102010152} + +You have downloaded the CSI software package of a new version. + +## Procedure{#section7449184616111} + +1. Uninstall CSI. For details, see [Uninstalling Huawei CSI on CCE or CCE Agile](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile). +2. Install CSI of the new version. For details, see [Installing Huawei CSI on the CCE or CCE Agile Platform](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform). + diff --git a/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..7be6d77 --- /dev/null +++ b/content/en/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,162 @@ +--- +title: "Upgrading Huawei CSI on Kubernetes, OpenShift, and Tanzu" +linkTitle: "Upgrading Huawei CSI on Kubernetes, OpenShift, and Tanzu" +description: +weight: 2 +--- + +## Prerequisites{#section12493103133711} + +- Huawei CSI of an earlier version is installed using Helm. +- A Huawei CSI image of a new version has been created and uploaded to the image repository or imported to all nodes by following the instructions provided in [Uploading a Huawei CSI Image](/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image). + +## Upgrading Huawei CSI{#section6841317173013} + +If CSI of an earlier version is deployed using Helm, perform the following steps to upgrade Huawei CSI. + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Copy the CSI component package of the target version to any directory on the master node. +3. Go to the **helm/esdk** working directory. For the directory path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). + + ``` + cd helm/esdk + ``` + +4. Run the **kubectl apply -f** _./crds/backend/_ command to update the storage backend CRD. + + ``` + kubectl apply -f ./crds/backend/ + ``` + +5. \(Optional\) Check snapshot-dependent components by following the instructions provided in [Checking Volume Snapshot-Dependent Components](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components). After confirming that the components are correct, run the **kubectl apply -f** ._/crds/snapshot-crds/_ **--validate=false** command to update the snapshot CRD. If **controller.snapshot.enabled** is set to **false** or the Kubernetes version is earlier than v1.17, you can skip this step. For details, see [Table 2](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459). + + ``` + kubectl apply -f ./crds/snapshot-crds/ --validate=false + ``` + +6. Run the following command to obtain the original service configuration file. **helm-huawei-csi** indicates the Helm chart name specified during the installation of the earlier version, and **huawei-csi** indicates the Helm chart namespace specified during the installation of the earlier version. + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +7. Run the **vi update-values.yaml** command to open the file obtained in [6](#li1037712113474), modify the **images** configuration items, and update the image to the latest version. For details about the parameters to be modified, see [Table 1](#table8452547161918). + + **Table 1** images configuration items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

New Value

+

images.huaweiCSIService

+

huawei-csi image.

+

huawei-csi:4.5.0

+

images.storageBackendSidecar

+

Image used by Huawei backends to manage storageBackendContent resources.

+

storage-backend-sidecar:4.5.0

+

images.storageBackendController

+

Image used by Huawei backends to manage storageBackendClaim resources.

+

storage-backend-controller:4.5.0

+

images.huaweiCSIExtender

+

huawei-csi-extender image.

+

huawei-csi-extender:4.5.0

+

images.sidecar.livenessProbe

+

livenessprobe sidecar image.

+

k8s.gcr.io/sig-storage/livenessprobe:v2.5.0

+

images.sidecar.provisioner

+

csi-provisioner sidecar image.

+

k8s.gcr.io/sig-storage/csi-provisioner:v3.0.0

+

images.sidecar.attacher

+

csi-attacher sidecar image.

+

k8s.gcr.io/sig-storage/csi-attacher:v3.4.0

+

images.sidecar.resizer

+

csi-resizer sidecar image.

+

k8s.gcr.io/sig-storage/csi-resizer:v1.4.0

+

images.sidecar.snapshotter

+

csi-snapshotter sidecar image.

+

k8s.gcr.io/sig-storage/csi-snapshotter:v4.2.1

+

images.sidecar.snapshotController

+

snapshot-controller sidecar image.

+

k8s.gcr.io/sig-storage/snapshot-controller:v4.2.1

+

images.sidecar.registrar

+

csi-node-driver-registrar sidecar image.

+

k8s.gcr.io/sig-storage/csi-node-driver-registrar:v2.3.0

+
+ +8. \(Optional\) If you need to update configuration items or add configuration information during the upgrade, modify the configuration information in the **update-values.yaml** file by referring to [Parameters in the values.yaml File of Helm](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm). + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >During the upgrade, if the **update-values.yaml** and **values.yaml** configuration files contain the same configuration item, the configuration in the **update-values.yaml** file takes effect preferentially. + +9. Run the following command to upgrade Huawei CSI. In the following command, **helm-huawei-csi** indicates the specified Helm chart name, **huawei-csi** indicates the specified Helm chart namespace, and **update-values.yaml** indicates the file obtained in [6](#li1037712113474). + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./values.yaml -f ./update-values.yaml + ``` + +10. After the huawei-csi service is deployed, run the following command to check whether the service is started. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. If the Pod status is **Running**, the service is started successfully. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 Running 0 24m + huawei-csi-controller-6dfcc4b79f-csphc 9/9 Running 0 24m + huawei-csi-node-g6f4k 3/3 Running 0 20m + huawei-csi-node-tqs87 3/3 Running 0 20m + ``` + diff --git a/content/en/v4.5.0/overview/_index.md b/content/en/v4.5.0/overview/_index.md new file mode 100644 index 0000000..5e29e28 --- /dev/null +++ b/content/en/v4.5.0/overview/_index.md @@ -0,0 +1,26 @@ +--- +title: "Overview" +linkTitle: "Overview" +description: +weight: 2 +--- + +[Container Storage Interface](https://github.com/container-storage-interface/spec/blob/master/spec.md#container-storage-interface) \(CSI\) is an industry standard used to expose block and file storage systems to container workloads on container orchestration systems \(COs\) such as Kubernetes. Huawei CSI plug-in is used to communicate with Huawei enterprise storage and distributed storage products and provide storage services for Kubernetes container workloads. It is a mandatory plug-in used by Huawei enterprise storage and distributed storage in the Kubernetes environment. + +Kubernetes uses a series of officially maintained sidecar components to register and listen to Kubernetes object resources and call CSI Driver through gRPC when necessary. Huawei CSI Driver implements the call initiated by sidecar on Huawei storage, for example, creating a [Persistent Volume \(PV\)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) is to create a LUN or file system on Huawei storage. The following figure shows the overall structure of Kubernetes, Huawei CSI, and Huawei storage. + +**Figure 1** CSI overall architecture +![](/css-docs/figures/csi-overall-architecture.png "csi-overall-architecture") + +Huawei CSI consists of two components: huawei-csi-controller and huawei-csi-node. + +- huawei-csi-controller: one or more Pods \(including Controller Service and Identity Service\) running in Deployment mode. It is used to interact with Huawei storage using RESTful. Therefore, the node running the huawei-csi-controller component must be connected to the management plane network of the storage. +- huawei-csi-node: a Pod \(including Node Service and Identity Service\) that runs on Kubernetes worker nodes in DaemonSet mode. It is used to mount and unmount a LUN/file system provided by Huawei storage on worker nodes. Therefore, the node running the huawei-csi-node component must be connected to the service plane network of the storage. + +The following figure shows the deployment model of Huawei CSI. + +**Figure 2** CSI deployment model +![](/css-docs/figures/csi-deployment-model.png "csi-deployment-model") + +This document describes how to install, deploy, and use the Huawei CSI V4.5.0 plug-in. + diff --git a/content/en/v4.5.0/quick-start/_index.md b/content/en/v4.5.0/quick-start/_index.md new file mode 100644 index 0000000..671209f --- /dev/null +++ b/content/en/v4.5.0/quick-start/_index.md @@ -0,0 +1,44 @@ +--- +title: "Quick Start" +linkTitle: "Quick Start" +description: +weight: 3 +--- + +This chapter describes how to quickly install and use Huawei CSI to manage Persistent Volume Claims \(PVCs\). + +## Huawei CSI Use Process{#section10356165115616} + +**Figure 1** CSI installation and use process +![](/css-docs/figures/csi-installation-and-use-process.png "csi-installation-and-use-process") + +## Compatibility and Features{#section17589135519713} + +Before using this plug-in, learn about its compatibility with Huawei storage, container platforms, and host operating systems \(OSs\), as well as supported features. + +[Compatibility and Features](/docs/compatibility-and-features) + +## Installation Preparations{#section1698093774519} + +Before installing Huawei CSI, you need to prepare the configurations of related environments such as container platforms and hosts. + +[Installation Preparations](/docs/installation-and-deployment/installation-preparations) + +## Installation and Deployment{#section48621535144915} + +Huawei CSI provides two installation modes: installation using Helm and manual installation, which are suitable for different container platforms such as Kubernetes and OpenShift. + +[Installation and Deployment](/docs/installation-and-deployment) + +## Creating a Storage Backend{#section18261514524} + +Before using Huawei CSI, you need to create storage backend resources. + +[Creating a Storage Backend](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend) + +## Using Huawei CSI{#section1855354751020} + +Now, you can use Huawei CSI to manage PVCs. + +[Using Huawei CSI](/docs/using-huawei-csi) + diff --git a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/_index.md b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md similarity index 90% rename from content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/_index.md rename to content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md index c88b25a..e010cca 100644 --- a/content/en/docs/storage-backend-management/optional-adding-a-certificate-to-a-storage-backend/_index.md +++ b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md @@ -7,7 +7,7 @@ weight: 2 This section describes how to create a certificate for a storage backend. If certificate verification is required for logging in to the storage, you can add a certificate by referring to this section. Currently, you can create a certificate for a storage backend based on the specified .crt or .pem file. ->![](/css-docs/public_sys-resources/en/icon-notice.gif) +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) >Before creating a certificate for a storage backend, import the prepared certificate to the storage array. diff --git a/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md new file mode 100644 index 0000000..f0dd2a0 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md @@ -0,0 +1,47 @@ +--- +title: "Creating a Certificate for a Storage Backend" +linkTitle: "Creating a Certificate for a Storage Backend" +description: +weight: 1 +--- + +## Prerequisites{#section414814741510} + +A certificate has been created. Take OceanStor Dorado as an example. For details about how to create a certificate, [click here](https://support.huawei.com/hedex/hdx.do?docid=EDOC1100214756&id=EN-US_TOPIC_0000001595814228&lang=en). + +## Example of Creating a Certificate{#section1393413618152} + +1. Prepare a certificate file in advance, for example, **cert.crt**. +2. Run the following command to obtain information about a storage backend. + + ``` + oceanctl get backend + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +3. Run the following command to create a certificate for the specified storage backend. + + ``` + oceanctl create cert cert-1 -b backend-1 -f /path/to/cert.crt + ``` + +4. Check the certificate creation result. + + ``` + oceanctl get cert -b backend-1 + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME BOUNDBACKEND + huawei-csi cert-1 backend-1 + ``` + diff --git a/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md new file mode 100644 index 0000000..5e5d7bd --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md @@ -0,0 +1,54 @@ +--- +title: "Deleting a Storage Backend Certificate" +linkTitle: "Deleting a Storage Backend Certificate" +description: +weight: 4 +--- + +## Procedure{#section14609953142910} + +1. Run the following command to obtain information about a storage backend. + + ``` + oceanctl get backend + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +2. Run the following command to obtain information about the certificate of the specified storage backend. + + ``` + oceanctl get cert -b backend-1 + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME BOUNDBACKEND + huawei-csi cert-1 backend-1 + ``` + +3. Run the following command to delete the certificate of the specified storage backend. + + ``` + oceanctl delete cert -b backend-1 + ``` + +4. Check the deletion result. + + ``` + oceanctl get cert -b backend-1 + ``` + + The following is an example of the command output. If **no cert found** is displayed, the deletion is successful. + + ```yaml + Error from server (NotFound): no cert found on backend backend-1 in huawei-csi namespace + ``` + diff --git a/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md new file mode 100644 index 0000000..15d6289 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md @@ -0,0 +1,9 @@ +--- +title: "Querying a Storage Backend Certificate" +linkTitle: "Querying a Storage Backend Certificate" +description: +weight: 2 +--- + +Query storage backend certificates using the commands in [Querying a Storage Backend Certificate](/docs/storage-backend-management/description-of-oceanctl-commands#section11544144412475). + diff --git a/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md new file mode 100644 index 0000000..4890185 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md @@ -0,0 +1,44 @@ +--- +title: "Updating a Storage Backend Certificate" +linkTitle: "Updating a Storage Backend Certificate" +description: +weight: 3 +--- + +Before updating a certificate, prepare a new certificate file and update the storage backend certificate by following the instructions provided in this section. If the certificate is no longer used, delete the certificate from the storage backend by referring to [Deleting a Storage Backend Certificate](/docs/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate). + +## Procedure{#section127643118416} + +1. Run the following command to obtain information about a storage backend. + + ``` + oceanctl get backend + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +2. Run the following command to check whether the specified storage backend has a certificate. + + ``` + oceanctl get cert -b backend-1 + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME BOUNDBACKEND + huawei-csi cert-1 backend-1 + ``` + +3. Run the following command to update the certificate of the specified storage backend. + + ``` + oceanctl update cert -b backend-1 -f /path/to/cert.crt + ``` + diff --git a/content/en/v4.5.0/storage-backend-management/_index.md b/content/en/v4.5.0/storage-backend-management/_index.md new file mode 100644 index 0000000..51d058a --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/_index.md @@ -0,0 +1,22 @@ +--- +title: "Storage Backend Management" +linkTitle: "Storage Backend Management" +description: +weight: 6 +--- + +Backend is an abstract concept of Huawei storage resources. Each Huawei storage device can abstract multiple backend resources using features such as tenants, storage pools, and protocols. Each backend exists independently and defines Huawei storage information required for providing persistent volumes for Kubernetes clusters. + +This chapter describes how to use the oceanctl tool to manage storage backends, including creating, querying, updating, and deleting backends. + +## Description of the oceanctl Tool{#en-us_topic_0000001324610777_section19453102010152} + +- You have obtained the oceanctl tool, copied the oceanctl tool to the environment directory, for example, **/usr/local/bin**, and obtained the execute permission. The oceanctl tool is stored in **/bin/oceanctl** of the software package. +- The oceanctl tool depends on **kubectl** \(for the Kubernetes platform\) or **oc** \(for the OpenShift platform\) commands. Therefore, you need to run the tool on a node where **kubectl** or **oc** commands can be executed. +- By default, the user who runs **oceanctl** commands must have the read and write permissions on the **/var/log** directory. If you do not have the permissions on the directory, run the **--log-dir=/path/to/custom** command to specify a directory on which you have the permissions as the log file directory. +- **huawei-csi** is the default namespace used by oceanctl to create a backend. +- For details about **oceanctl** commands, see [Description of oceanctl Commands](/docs/storage-backend-management/description-of-oceanctl-commands). + + + + diff --git a/content/en/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md b/content/en/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md new file mode 100644 index 0000000..4e95c2c --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md @@ -0,0 +1,232 @@ +--- +title: "Description of oceanctl Commands" +linkTitle: "Description of oceanctl Commands" +description: +weight: 3 +--- + +## Obtaining Help Information{#section1117411442508} + +- Obtain the oceanctl help information. + + ``` + oceanctl --help + ``` + +- Check the oceanctl version. + + ``` + oceanctl version + ``` + +- Specify the custom log file directory. The following example describes how to check the oceanctl version. + + ``` + oceanctl version --log-dir=/path/to/custom + ``` + +## Creating a Storage Backend{#section68961238162410} + +- Run the following command to obtain the help information about creating a backend. + + ``` + oceanctl create backend -h + ``` + +- Run the following command to create a storage backend based on the specified yaml file. + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml + ``` + +- Run the following command to create a storage backend based on the specified json file. The **huawei-csi-configmap** file can be exported only in json format. + + ``` + oceanctl create backend -f /path/to/configmap.json -i json + ``` + +- Run the following command to create a storage backend in the specified namespace. + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml -n + ``` + +- Run the following command to create a storage backend and ignore the storage backend name verification, for example, uppercase letters and underscores \(\_\). Do not run this command unless necessary. + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml --not-validate-name + ``` + +- Run the following command to create a storage backend and specify **provisioner**. **csi.oceanstor.com** is the driver name specified during installation. For details, see [4](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform#li4307135252018). + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >This command is used only when a backend is created on the CCE or CCE Agile platform. + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml --provisioner=csi.oceanstor.com + ``` + +## Querying a Storage Backend{#section1746114212110} + +- Run the following command to obtain the help information about querying a backend. + + ``` + oceanctl get backend -h + ``` + +- Run the following command to query a single storage backend in the default namespace. + + ``` + oceanctl get backend + ``` + +- Run the following command to query all storage backends in the specified namespace. + + ``` + oceanctl get backend -n + ``` + +- Run the following command to format the output. Currently, **json**, **yaml**, and **wide** are supported. + + ``` + oceanctl get backend -o json + ``` + +## Updating a Storage Backend{#section20491912142516} + +- Run the following command to obtain the help information about updating a backend. + + ``` + oceanctl update backend -h + ``` + +- Run the following command to update the specified storage backend in the default namespace. + + ``` + oceanctl update backend --password + ``` + +- Run the following command to update a storage backend in the specified namespace. + + ``` + oceanctl update backend -n --password + ``` + +## Deleting a Storage Backend{#section1473712371285} + +- Run the following command to obtain the help information about deleting a backend. + + ``` + oceanctl delete backend -h + ``` + +- Run the following command to delete the specified storage backend in the default namespace. + + ``` + oceanctl delete backend + ``` + +- Run the following command to delete all storage backends in the default namespace. + + ``` + oceanctl delete backend --all + ``` + +- Run the following command to delete a storage backend in the specified namespace. + + ``` + oceanctl delete backend -n + ``` + +## Creating a Storage Backend Certificate{#section16801122125214} + +- Run the following command to obtain the help information about querying a certificate. + + ``` + oceanctl create cert -h + ``` + +- Run the following command to create a certificate for a single storage backend in the default namespace based on the specified .crt certificate file. + + ``` + oceanctl create cert -f /path/to/cert.crt -b + ``` + +- Run the following command to create a certificate for a single storage backend in the specified namespace based on the specified .crt certificate file. + + ``` + oceanctl create cert -f /path/to/cert.crt -b -n + ``` + +- Run the following command to create a certificate for a single storage backend in the specified namespace based on the specified .pem certificate file. + + ``` + oceanctl create cert -f /path/to/cert.pem -b -n + ``` + +## Querying a Storage Backend Certificate{#section11544144412475} + +- Run the following command to obtain the help information about querying a certificate. + + ``` + oceanctl get cert -h + ``` + +- Run the following command to query the certificate of a specified storage backend in the default namespace. + + ``` + oceanctl get cert -b + ``` + +- Run the following command to query the certificate of a specified storage backend in the specified namespace. + + ``` + oceanctl get cert -b -n + ``` + +## Updating a Storage Backend Certificate{#section1215513912218} + +- Run the following command to obtain the help information about updating a certificate. + + ``` + oceanctl update cert -h + ``` + +- Run the following command to update a certificate for a specified storage backend in the default namespace based on the specified .crt certificate file. + + ``` + oceanctl update cert -b -f /path/to/cert.crt + ``` + +- Run the following command to update a certificate for a specified storage backend in the specified namespace based on the specified .crt certificate file. + + ``` + oceanctl update cert -b -n -f /path/to/cert.crt + ``` + +- Run the following command to update a certificate for a specified storage backend in the specified namespace based on the specified .pem certificate file. + + ``` + oceanctl update cert -b -n -f /path/to/cert.pem + ``` + +## Deleting a Storage Backend Certificate{#section1394334712223} + +- Run the following command to obtain the help information about deleting a certificate. + + ``` + oceanctl delete cert -h + ``` + +- Run the following command to delete the certificate of a specified storage backend in the default namespace. + + ``` + oceanctl delete cert -b + ``` + +- Run the following command to delete the certificate of a specified storage backend in the specified namespace. + + ``` + oceanctl delete cert -b -n + ``` + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/_index.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/_index.md new file mode 100644 index 0000000..eaeb9d7 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/_index.md @@ -0,0 +1,17 @@ +--- +title: "Managing Storage Backends" +linkTitle: "Managing Storage Backends" +description: +weight: 1 +--- + +This section describes how to create a storage backend. Currently, you can create a backend based on the configured backend yaml file or the exported configmap.json file. + +If you create a backend by adding a backend yaml file, configure the backend file by referring to [Examples of Storage Backend Configuration Files in Typical Scenarios](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios). + +If the exported configmap.json file exists, create a storage backend by referring to [Creating a Storage Backend](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend). + + + + + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md new file mode 100644 index 0000000..9b343e7 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md @@ -0,0 +1,94 @@ +--- +title: "Creating a Storage Backend" +linkTitle: "Creating a Storage Backend" +description: +weight: 1 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>1. When oceanctl is used to create a storage backend, the entered account and key information is stored in the [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) object. It is recommended that the customer container platform encrypt the Secret object based on the suggestions of the supplier or K8s community. For details about how to encrypt the Secret object in the K8s community, see [Enable Encryption at Rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/). +>2. When a backend is created using a .json file, the backend name of an earlier version may contain uppercase letters or underscores \(\_\). In this case, the old name is remapped to a new name. The mapping process automatically occurs and does not affect the original functions. For example, **ABC\_123** is mapped to **abc-123-fd68e**. The mapping rules are as follows: +> - Uppercase letters are converted to lowercase letters. +> - An underscore \(\_\) is converted to a hyphen \(-\). +> - A 5-digit hash code is added to the end. +>3. If a storage backend is connected to a vStore, the vStore name cannot be changed after the storage backend is created. + +## Procedure{#section193534374443} + +1. Prepare the backend configuration file, for example, **backend.yaml**. For details, see [Examples of Storage Backend Configuration Files in Typical Scenarios](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios). To create multiple backends, separate them with **---**. + + ``` + storage: "oceanstor-san" + name: "backend-1" + namespace: "huawei-csi" + urls: + - "https://192.168.129.157:8088" + pools: + - "StoragePool001" + parameters: + protocol: "roce" + portals: + - "10.10.30.20" + - "10.10.30.21" + maxClientThreads: "30" + --- + storage: "oceanstor-san" + name: "backend-2" + namespace: "huawei-csi" + urls: + - "https://192.168.129.158:8088" + pools: + - "StoragePool001" + parameters: + protocol: "roce" + portals: + - "10.10.30.20" + - "10.10.30.21" + maxClientThreads: "30" + ``` + +2. Run the following command to create a storage backend. + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml + ``` + + The following is an example of the command output. + + ``` + NUMBER CONFIGURED NAME STORAGE URLS + 1 false backend-1 oceanstor-san https://192.168.129.157:8088 + 2 false backend-2 oceanstor-san https://192.168.129.158:8088 + Please enter the backend number to configure (Enter 'exit' to exit): + ``` + +3. Enter the serial number of the backend to be created and enter the account and password. + + ``` + Please enter the backend number to configure (Enter 'exit' to exit):1 + Please enter this backend user name:admin + Please enter this backend password: + + Backend backend-1 is configured + NUMBER CONFIGURED NAME STORAGE URLS + 1 true backend-1 oceanstor-san https://192.168.129.157:8088 + 2 false backend-2 oceanstor-san https://192.168.129.158:8088 + Please enter the backend number to configure (Enter 'exit' to exit): + ``` + +4. Check the storage backend creation result. + + ``` + oceanctl get backend + ``` + + The following is an example of the command output. If the backend status is **Bound**, the creation is successful. + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + + + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md new file mode 100644 index 0000000..d9b9f61 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md @@ -0,0 +1,277 @@ +--- +title: "Examples of Storage Backend Configuration Files in Typical Scenarios" +linkTitle: "Examples of Storage Backend Configuration Files in Typical Scenarios" +description: +weight: 1 +--- + +For details about the backend configuration in typical scenarios, see the following examples. For details about the parameter configuration, see [Storage Backend Parameters](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters). + +- [Configuring a Storage Backend of the iSCSI Type](#section9560112218344) +- [Configuring a Storage Backend of the FC Type](#section4385132433717) +- [Configuring a Storage Backend of the NVMe over RoCE Type](#section887724419372) +- [Configuring a Storage Backend of the NVMe over FC Type](#section11434793492) +- [Configuring a Storage Backend of the NFS Type](#section13980125055717) +- [Configuring a Storage Backend of the SCSI Type](#section51803398537) +- [Configuring a Storage Backend of the DPC Type](#section1094123525411) +- [Configuring Storage Backends of the Dtree Type](#section6768010203620) +- [Configuring Storage Backends of the HyperMetro Type](#section175945335494) + +## Configuring a Storage Backend of the iSCSI Type{#section9560112218344} + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>If you want to use the iSCSI protocol, ensure that the iSCSI client has been installed on the host before installing Huawei CSI. You can check whether the client has been installed on the host by referring to [Checking the Status of Host-Dependent Software](/docs/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software). If the iSCSI client is not installed, restart the huawei-csi-node service after installing the iSCSI client. During the restart, do not use Huawei CSI to create new resources or mount or unmount an existing PVC. The following command is used as an example: +>``` +>kubectl delete pods -n huawei-csi -l app=huawei-csi-node +>``` + +The following is an example of the backend configuration file of the iSCSI type for enterprise storage: + +```yaml +storage: "oceanstor-san" +name: "dorado-iscsi-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "iscsi" + portals: + - "192.168.128.120" + - "192.168.128.121" +maxClientThreads: "30" +``` + +The following is an example of the backend configuration file of the iSCSI type for distributed storage: + +```yaml +storage: "fusionstorage-san" +name: "pacific-iscsi-125" +namespace: "huawei-csi" +urls: + - "https://192.168.129.125:8088" + - "https://192.168.129.126:8088" +pools: + - "StoragePool001" +parameters: + protocol: "iscsi" + portals: + - "192.168.128.122" + - "192.168.128.123" +maxClientThreads: "30" +``` + +## Configuring a Storage Backend of the FC Type{#section4385132433717} + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>If you want to use the FC protocol, ensure that the FC network between the host and the storage device is connected before installing Huawei CSI. If the FC network is not connected, connect the FC network and then restart the huawei-csi-node service. During the restart, do not use Huawei CSI to create new resources or mount or unmount an existing PVC. The following command is used as an example: +>``` +>kubectl delete pods -n huawei-csi -l app=huawei-csi-node +>``` + +The following is an example of the backend configuration file of the FC type for enterprise storage: + +```yaml +storage: "oceanstor-san" +name: "fc-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "fc" +maxClientThreads: "30" +``` + +## Configuring a Storage Backend of the NVMe over RoCE Type{#section887724419372} + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>If you want to use the NVMe over RoCE protocol, ensure that the NVMe over RoCE network between the host and the storage device is connected before installing Huawei CSI. If the NVMe over RoCE network is not connected, connect the NVMe over RoCE network and then restart the huawei-csi-node service. During the restart, do not use Huawei CSI to create new resources or mount or unmount an existing PVC. The following command is used as an example: +>``` +>kubectl delete pods -n huawei-csi -l app=huawei-csi-node +>``` + +The following is an example of the backend configuration file of the NVMe over RoCE type for enterprise storage: + +```yaml +storage: "oceanstor-san" +name: "roce-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "roce" + portals: + - "192.168.128.120" + - "192.168.128.121" +maxClientThreads: "30" +``` + +## Configuring a Storage Backend of the NVMe over FC Type{#section11434793492} + +The following is an example of the backend configuration file of the NVMe over FC type for enterprise storage: + +```yaml +storage: "oceanstor-san" +name: "fc-nvme-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "fc-nvme" +maxClientThreads: "30" +``` + +## Configuring a Storage Backend of the NFS Type{#section13980125055717} + +The following is an example of the backend configuration file of the NFS type for enterprise storage: + +```yaml +storage: "oceanstor-nas" +name: "nfs-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "nfs" + portals: + - "192.168.128.155" +maxClientThreads: "30" +``` + +The following is an example of the backend configuration file of the NFS type for distributed storage: + +```yaml +storage: "fusionstorage-nas" +name: "nfs-126" +namespace: "huawei-csi" +urls: + - "https://192.168.129.125:8088" + - "https://192.168.129.126:8088" +pools: + - "StoragePool001" +parameters: + protocol: "nfs" + portals: + - "192.168.128.123" +maxClientThreads: "30" +``` + +## Configuring a Storage Backend of the SCSI Type{#section51803398537} + +The following is an example of the backend configuration file of the SCSI type for distributed storage: + +```yaml +storage: "fusionstorage-san" +name: "scsi-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" +pools: + - "StoragePool001" +parameters: + protocol: "scsi" + portals: + - {"hostname01": "192.168.125.21","hostname02": "192.168.125.22"} +maxClientThreads: "30" +``` + +## Configuring a Storage Backend of the DPC Type{#section1094123525411} + +The following is an example of the backend configuration file of the DPC type for distributed storage: + +```yaml +storage: "fusionstorage-nas" +name: "dpc-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "dpc" +maxClientThreads: "30" +``` + +## Configuring Storage Backends of the Dtree Type{#section6768010203620} + +The following is an example of the backend configuration file of the Dtree type for enterprise storage: + +```yaml +storage: "oceanstor-dtree" +name: "nfs-dtree" +namespace: "huawei-csi" +urls: +- "https://192.168.129.155:8088" +parameters: + protocol: "nfs" + parentname: "parent-filesystem" + portals: + - "192.168.128.155" +maxClientThreads: "30" +``` + +## Configuring Storage Backends of the HyperMetro Type{#section175945335494} + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- Before configuring NAS HyperMetro, you need to configure the HyperMetro relationship between two storage devices, including the remote device, HyperMetro domain, and the like. The HyperMetro domain of the file system can only work in HyperMetro active-active \(AA\) mode. For details about the configuration operation, see the product documentation of the corresponding storage model. +>- The accounts for connecting to NAS HyperMetro backends must be the administrator accounts of the storage vStores. +>- Except NAS HyperMetro backends, the management URLs of other backends cannot be the URL of a logical management port of a vStore that has established the HyperMetro relationship. +>- When a HyperMetro storage backend is used, do not provision common file systems. Otherwise, services may be interrupted in logical port failover scenarios. + +CSI allows you to connect to OceanStor or OceanStor Dorado and provision HyperMetro volumes of the NFS type on the storage side. You need to configure storage backends that work in HyperMetro mode. The procedure is as follows: Create two configuration files and create backends one by one. + +This example shows how to configure backends of the HyperMetro type for Huawei OceanStor or OceanStor Dorado. First, create local storage backend configuration file **nfs-hypermetro-155.yaml**. + +```yaml +storage: "oceanstor-nas" +name: "nfs-hypermetro-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +metrovStorePairID: "f09838237b93c000" +metroBackend: "nfs-hypermetro-157" +parameters: + protocol: "nfs" + portals: + - "192.168.129.155" +maxClientThreads: "30" +``` + +After the local backend is created, create remote storage backend configuration file **nfs-hypermetro-157.yaml**. + +```yaml +storage: "oceanstor-nas" +name: "nfs-hypermetro-157" +namespace: "huawei-csi" +urls: + - "https://192.168.129.157:8088" + - "https://192.168.129.158:8088" +pools: + - "StoragePool001" +metrovStorePairID: "f09838237b93c000" +metroBackend: "nfs-hypermetro-155" +parameters: + protocol: "nfs" + portals: + - "192.168.129.157" +maxClientThreads: "30" +``` + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md new file mode 100644 index 0000000..96991aa --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md @@ -0,0 +1,199 @@ +--- +title: "Storage Backend Parameters" +linkTitle: "Storage Backend Parameters" +description: +weight: 2 +--- + +An example template of the backend configuration file is **/examples/backend/backend.yaml**. The following table lists the parameters. + +**Table 1** backend parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

storage

+

Storage service type.

+
  • If enterprise storage provides SAN, set this parameter to oceanstor-san.
  • If enterprise storage provides NAS, set this parameter to oceanstor-nas.
  • If enterprise storage provides NAS of the Dtree type, set this parameter to oceanstor-dtree.
  • If distributed storage provides SAN, set this parameter to fusionstorage-san.
  • If distributed storage provides NAS, set this parameter to fusionstorage-nas.
+

Yes

+

oceanstor-nas

+

One backend can provide only one storage service. If a single Huawei storage system can provide both SAN and NAS storage services, you can configure multiple backends and use different storage service types for each backend.

+

name

+

Storage backend name. The value can contain a maximum of 63 characters, including lowercase letters, digits, and hyphens (-). It must start with a letter or digit.

+

Yes

+

-

+

Ensure that the storage backend name is unique.

+

namespace

+

Namespace.

+

No

+

-

+

The storage backend must be in the same namespace as Huawei CSI.

+

vstoreName

+

vStore name on the storage side. This parameter needs to be specified when the connected backend is OceanStor V5 and resources need to be provisioned under a specified vStore.

+

Conditionally mandatory

+

-

+

This parameter needs to be specified only when the backend is OceanStor V5 and vStores need to be supported.

+

accountName

+

Account name on the storage side. This parameter is mandatory when OceanStor Pacific series NAS is connected and NAS resources need to be provisioned under a specified account.

+

Conditionally mandatory

+

-

+

This parameter needs to be specified only when the backend is OceanStor Pacific series NAS and accounts need to be supported.

+

urls

+

Management URLs of storage device. The value format is a list. The value can be a domain name or an IP address + port number. Only IPv4 addresses are supported.

+

Yes

+

-

+

If the connected backend is OceanStor or OceanStor Dorado storage and resources need to be provisioned under a specified vStore, set this parameter to the URL of the logical management port of the vStore.

+

pools

+

Storage pools of storage devices. The value format is a list.

+

Conditionally mandatory

+

-

+

This parameter is optional when storage is set to oceanstor-dtree.

+

parameters.protocol

+

Storage protocol. The value is a character string.

+
  • iscsi
  • fc
  • roce
  • fc-nvme
  • nfs
  • dpc
  • scsi
+

Yes

+

-

+
  • If the value is set to iscsi, ensure that an iSCSI client has been installed on the connected compute node.
  • If the value is set to nfs, ensure that an NFS client tool has been installed on the connected compute node.
  • If the value is set to fc-nvme or roce, ensure that the nvme-cli tool has been installed on the connected compute node. The tool version must be 1.x and not earlier than 1.9.
  • If the value is set to dpc, ensure that DPC has been installed on the connected compute node and the node has been added as a DPC compute node on the storage device to be connected.
  • If the value is set to scsi, ensure that a distributed storage VBS client has been installed on the connected compute node.
+

parameters.portals

+

Service access port. Nodes will use this port to read and write storage resources. The value format is a list.

+

Multiple ports can be configured if the protocol is iscsi or roce. Only one port can be configured if the protocol is nfs. Service ports do not need to be configured if the protocol is fc, fc-nvme, or dpc. If the protocol is scsi, the port is in dictionary format where the key indicates the host name and the value indicates the IP address (only IPv4 addresses are supported).

+

Conditionally mandatory

+

-

+
  • If a vStore or account is used to connect to a backend, portals must be set to the logical port information of the vStore or account.
  • If nfs is used, the value can be a domain name.
+

parameters.ALUA

+

ALUA configuration of the storage backend. If the worker node uses the native multipathing software provided by the OS and ALUA is enabled, you need to configure this parameter.

+

Conditionally mandatory

+

-

+

If ALUA is enabled for the host multipathing software, ensure that the backend ALUA configuration is the same as that of the host ALUA configuration.

+

For details about the ALUA configuration, see Configuring ALUA Using Helm.

+

parameters.parentname

+

Name of a file system on the current storage device. Dtree is created in the file system.

+

This parameter is mandatory when storage is set to oceanstor-dtree.

+

Conditionally mandatory

+

-

+

Query the name on the File Systems page of DeviceManager.

+

metrovStorePairID

+

HyperMetro vStore pair ID.

+

This parameter is mandatory when a PV to be created on the storage side needs to support the NAS HyperMetro feature. In this case, you need to enter the ID of the HyperMetro vStore pair to which the PV to be created belongs.

+

Conditionally mandatory

+

-

+

You can query the HyperMetro vStore pair ID on DeviceManager.

+

metroBackend

+

Backend name of the HyperMetro peer. The value is a character string.

+

This parameter is mandatory when a PV to be created on the storage side needs to support the NAS HyperMetro feature. In this case, you need to enter the name of the other backend to form a HyperMetro pair with the current backend.

+

Conditionally mandatory

+

-

+

The names of the two backends in the pair must be entered. After the two backends form a HyperMetro relationship, they cannot form a HyperMetro relationship with other backends.

+

supportedTopologies

+

Storage topology awareness configuration. The parameter format is JSON of the list type.

+

Conditionally mandatory

+

-

+

This parameter is mandatory if storage topology awareness is enabled. For details, see Configuring Storage Topology Awareness Using Helm.

+

maxClientThreads

+

Maximum number of concurrent connections to a storage backend.

+

No

+

30

+

If this parameter is not specified, the default maximum number of connections is 30.

+
+ diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md new file mode 100644 index 0000000..b15150b --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md @@ -0,0 +1,44 @@ +--- +title: "Deleting a Storage Backend" +linkTitle: "Deleting a Storage Backend" +description: +weight: 4 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>Do not delete a storage backend when a volume management operation is being performed on it. + +## Example of Deleting a Backend{#section20764568435} + +1. Run the following command to obtain information about a storage backend. + + ``` + oceanctl get backend + ``` + + The following is an example of the command output. + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +2. Run the following command to delete the specified storage backend. + + ``` + oceanctl delete backend backend-1 + ``` + +3. Run the following command to check the deletion result. + + ``` + oceanctl get backend backend-1 + ``` + + The following is an example of the command output. If **not found** is displayed, the deletion is successful. + + ```yaml + Error from server (NotFound): backend "backend-1" not found + ``` + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md new file mode 100644 index 0000000..6f1323a --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md @@ -0,0 +1,9 @@ +--- +title: "Querying a Storage Backend" +linkTitle: "Querying a Storage Backend" +description: +weight: 2 +--- + +Run the **oceanctl** commands in [Querying a Storage Backend](/docs/storage-backend-management/description-of-oceanctl-commands#section1746114212110) to query the storage backend information. + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md new file mode 100644 index 0000000..ecc3cc2 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md @@ -0,0 +1,13 @@ +--- +title: "Updating a Storage Backend" +linkTitle: "Updating a Storage Backend" +description: +weight: 3 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- When oceanctl is used to update storage backend information, only the storage backend password can be updated. +>- If the backend account password is updated on the storage device, the CSI plug-in will retry due to login failures. As a result, the account may be locked. If the account is locked, change the password by referring to [An Account Is Locked After the Password Is Updated on the Storage Device](/docs/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device). + + + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md new file mode 100644 index 0000000..07bccc7 --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md @@ -0,0 +1,18 @@ +--- +title: "Manually Updating a Storage Backend" +linkTitle: "Manually Updating a Storage Backend" +description: +weight: 2 +--- + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- PVC provisioning must be based on a configured storage backend. Therefore, if a PVC has been provisioned on a storage backend, do not change the storage backend. +>- The name uniquely identifies a storage backend. The name of a storage backend with a PVC provisioned cannot be changed. +>- After a storage backend is modified, the new configuration applies only to volumes to be provisioned. +>- Do not perform volume management operations during the modification of a storage backend. + +## Procedure{#section1223254955011} + +1. Delete the storage backend to be modified. For details, see [Deleting a Storage Backend](/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend). +2. Create a storage backend with the same name. For details, see [Creating a Storage Backend](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend). The storage backend name cannot be changed. + diff --git a/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md new file mode 100644 index 0000000..0dcf42f --- /dev/null +++ b/content/en/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md @@ -0,0 +1,51 @@ +--- +title: "Updating the Password of a Storage Backend Using oceanctl" +linkTitle: "Updating the Password of a Storage Backend Using oceanctl" +description: +weight: 1 +--- + +## Example of Updating a Backend{#section1968753944018} + +1. Run the following command to obtain the help information about updating a storage backend. + + ``` + oceanctl update backend -h + ``` + + The following is an example of the command output. + + ``` + Update a backend for Ocean Storage in Kubernetes + + Usage: + oceanctl update backend [flags] + + Examples: + # Update backend account information in default(huawei-csi) namespace + oceanctl update backend --password + + # Update backend account information in specified namespace + oceanctl update backend -n namespace --password + + Flags: + -h, --help help for backend + -n, --namespace string namespace of resources + --password Update account password + ``` + +2. Run the following command to update a storage backend. + + ``` + oceanctl update backend backend-1 --password + ``` + + Enter the user name and new password as prompted: + + ``` + Please enter this backend user name:admin + Please enter this backend password: + + backend/backend-1 updated + ``` + diff --git a/content/en/v4.5.0/troubleshooting/_index.md b/content/en/v4.5.0/troubleshooting/_index.md new file mode 100644 index 0000000..8dbbc4e --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/_index.md @@ -0,0 +1,12 @@ +--- +title: "Troubleshooting" +linkTitle: "Troubleshooting" +description: +weight: 10 +--- + + + + + + diff --git a/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md new file mode 100644 index 0000000..496a3c2 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md @@ -0,0 +1,17 @@ +--- +title: "Common Problems and Solutions for Interconnecting with the Tanzu Kubernetes Cluster" +linkTitle: "Common Problems and Solutions for Interconnecting with the Tanzu Kubernetes Cluster" +description: +weight: 5 +--- + +This section describes the common problems and solutions for interconnecting with the Tanzu Kubernetes cluster. Currently, the following problems occur during interconnection with the Tanzu Kubernetes cluster: + +- A Pod cannot be created because the PSP permission is not created. +- The mount point of the host is different from that of the native Kubernetes. As a result, a volume fails to be mounted. +- The livenessprobe container port conflicts with the Tanzu vSphere port. As a result, the container restarts repeatedly. + + + + + diff --git a/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md new file mode 100644 index 0000000..c5938c2 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md @@ -0,0 +1,60 @@ +--- +title: "A Pod Cannot Be Created Because the PSP Permission Is Not Created" +linkTitle: "A Pod Cannot Be Created Because the PSP Permission Is Not Created" +description: +weight: 1 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +When huawei-csi-controller and huawei-csi-node are created, only the Deployment and DaemonSet resources are successfully created, and no Pod is created for the controller and node. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +The service account used for creating resources does not have the "use" permission of the PSP policy. + +## Solution or Workaround{#en-us_topic_0000001279996521_section164471213145410} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the **vi** _psp-use.yaml_ command to create a file named **psp-use.yaml** + + ``` + vi psp-use.yaml + ``` + +3. Configure the **psp-use.yaml** file. + + ``` + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + name: huawei-csi-psp-role + rules: + - apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + --- + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + name: huawei-csi-psp-role-cfg + roleRef: + kind: ClusterRole + name: huawei-csi-psp-role + apiGroup: rbac.authorization.k8s.io + subjects: + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:huawei-csi + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:default + + ``` + +4. Run the following command to create the PSP permission. + + ``` + kubectl create -f psp-use.yaml + ``` + diff --git a/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md new file mode 100644 index 0000000..3416f2b --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md @@ -0,0 +1,34 @@ +--- +title: "Changing the Default Port of the livenessprobe Container" +linkTitle: "Changing the Default Port of the livenessprobe Container" +description: +weight: 3 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +The livenessprobe container of the huawei-csi-controller component keeps restarting. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +The default port \(9808\) of the livenessprobe container of huawei-csi-controller conflicts with the existing vSphere CSI port of Tanzu. + +## Solution or Workaround{#en-us_topic_0000001279996521_section164471213145410} + +Change the default port of the livenessprobe container to an idle port. + +1. Go to the **helm/esdk** directory and run the **vi values.yaml** command to open the configuration file. + + ``` + vi values.yaml + ``` + +2. Change the default value **9808** of **controller.livenessProbePort** to an idle port, for example, **9809**. + + ```yaml + controller: + livenessProbePort: 9809 + ``` + +3. Update Huawei CSI using Helm. For details, see [Upgrading Huawei CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi). + diff --git a/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md new file mode 100644 index 0000000..9a64f22 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md @@ -0,0 +1,32 @@ +--- +title: "Changing the Mount Point of a Host" +linkTitle: "Changing the Mount Point of a Host" +description: +weight: 2 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +A Pod fails to be created, and error message "mount point does not exist" is recorded in Huawei CSI logs. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +The native Kubernetes cluster in the **pods-dir** directory of huawei-csi-node is inconsistent with the Tanzu Kubernetes cluster. + +## Solution or Workaround{#en-us_topic_0000001279996521_section164471213145410} + +1. Go to the **helm/esdk/** directory and run the **vi values.yaml** command to open the configuration file. + + ``` + vi values.yaml + ``` + +2. Change the value of **kubeletConfigDir** to the actual installation directory of kubelet. + + ```yaml + # Specify kubelet config dir path. + # kubernetes and openshift is usually /var/lib/kubelet + # Tanzu is usually /var/vcap/data/kubelet + kubeletConfigDir: /var/vcap/data/kubelet + ``` + diff --git a/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md new file mode 100644 index 0000000..389dfd0 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md @@ -0,0 +1,64 @@ +--- +title: "Failed to Create an Ephemeral Volume" +linkTitle: "Failed to Create an Ephemeral Volume" +description: +weight: 4 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +A [generic ephemeral volume](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) fails to be created, and the error message **PodSecurityPolicy: unable to admit pod: \[spec.volumes\[0\]: Invalid value: "ephemeral": ephemeral volumes are not allowed to be used spec.volumes\[0\]** is displayed. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +The current PSP policy does not contain the permission to use ephemeral volumes. + +## Solution or Workaround{#en-us_topic_0000001279996521_section164471213145410} + +Add the permission to use ephemeral volumes to the default PSP **pks-privileged** and **pks-restricted**. The following is an example of modifying **pks-privileged**: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to modify the **pks-privileged** configuration. + + ``` + kubectl edit psp pks-privileged + ``` + +3. Add **ephemeral** to **spec.volumes**. The following is an example. + + ```yaml + # Please edit the object below. Lines beginning with a '#' will be ignored, + # and an empty file will abort the edit. If an error occurs while saving this file will be + # reopened with the relevant failures. + # + apiVersion: policy/v1beta1 + kind: PodSecurityPolicy + metadata: + annotations: + apparmor.security.beta.kubernetes.io/allowedProfileName: '*' + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + creationTimestamp: "2022-10-11T08:07:00Z" + name: pks-privileged + resourceVersion: "1227763" + uid: 2f39c44a-2ce7-49fd-87ca-2c5dc3bfc0c6 + spec: + allowPrivilegeEscalation: true + allowedCapabilities: + - '*' + supplementalGroups: + rule: RunAsAny + volumes: + - glusterfs + - hostPath + - iscsi + - nfs + - persistentVolumeClaim + - ephemeral + ``` + +4. Run the following command to check whether the addition is successful. + + ``` + kubectl get psp pks-privileged -o yaml + ``` + diff --git a/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md new file mode 100644 index 0000000..7073ba8 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md @@ -0,0 +1,10 @@ +--- +title: "Huawei CSI Service Issues" +linkTitle: "Huawei CSI Service Issues" +description: +weight: 1 +--- + + + + diff --git a/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md new file mode 100644 index 0000000..d9a275d --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md @@ -0,0 +1,80 @@ +--- +title: "Failed to Start huawei-csi Services with the Status Displayed as InvalidImageName" +linkTitle: "Failed to Start huawei-csi Services with the Status Displayed as InvalidImageName" +description: +weight: 3 +--- + +## Symptom{#en-us_topic_0000001205368783_section1566717121452} + +The huawei-csi services \(huawei-csi-controller or huawei-csi-node\) cannot be started. After the **kubectl get pod -A | grep huawei** command is executed, the command output shows that the service status is **InvalidImageName**. + +``` +kubectl get pod -A | grep huawei +``` + +The following is an example of the command output. + +``` +huawei-csi huawei-csi-controller-fd5f97768-qlldc 6/9 InvalidImageName 0 16s +huawei-csi huawei-csi-node-25txd 2/3 InvalidImageName 0 15s +``` + +## Root Cause Analysis{#en-us_topic_0000001205368783_section1425013451056} + +In the .yaml configuration files of the controller and node, the Huawei CSI image version number is incorrect. For example: + +``` + ... + - name: huawei-csi-driver + image: huawei-csi:4.5.0 + ... +``` + +## Solution or Workaround{#en-us_topic_0000001205368783_section350653016492} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to modify the configuration file of the huawei-csi-node service. Press **I** or **Insert** to enter the insert mode and modify related parameters. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ``` + kubectl edit daemonset huawei-csi-node -o yaml -n=huawei-csi + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- In **huawei-csi-driver** in the sample .yaml file, modify **image** to Huawei CSI image **huawei-csi:4.5.0**. + > ``` + > containers: + > ... + > - name: huawei-csi-driver + > image: huawei-csi:4.5.0 + > ``` + +3. Run the following command to modify the configuration file of the huawei-csi-controller service: Press **I** or **Insert** to enter the insert mode and modify related parameters. After the modification is complete, press **Esc** and enter **:wq!** to save the modification. + + ``` + kubectl edit deployment huawei-csi-controller -o yaml -n=huawei-csi + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- In **huawei-csi-driver** in the sample .yaml file, modify **image** to Huawei CSI image **huawei-csi:4.5.0**. + > ``` + > containers: + > ... + > - name: huawei-csi-driver + > image: huawei-csi:4.5.0 + > ``` + +4. Wait until the huawei-csi-node and huawei-csi-controller services are started. +5. Run the following command to check whether the huawei-csi services are started. + + ``` + kubectl get pod -A | grep huawei + ``` + + The following is an example of the command output. If the Pod status is **Running**, the services are started successfully. + + ``` + huawei-csi huawei-csi-controller-58799449cf-zvhmv 9/9 Running 0 2m29s + huawei-csi huawei-csi-node-7fxh6 3/3 Running 0 12m + ``` + diff --git a/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md new file mode 100644 index 0000000..5435d32 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md @@ -0,0 +1,49 @@ +--- +title: "Failed to Start the huawei-csi-node Service with Error Message \"/var/lib/iscsi is not a directory\" Reported" +linkTitle: "Failed to Start the huawei-csi-node Service with Error Message \"/var/lib/iscsi is not a directory\" Reported" +description: +weight: 1 +--- + +## Symptom{#en-us_topic_0000001086137838_section1566717121452} + +The huawei-csi-node service cannot be started. When you run the **kubectl describe daemonset huawei-csi-node -n huawei-csi** command, error message "/var/lib/iscsi is not a directory" is reported. + +## Root Cause Analysis{#en-us_topic_0000001086137838_section1425013451056} + +The **/var/lib/iscsi** directory does not exist in the huawei-csi-node container. + +## Solution or Workaround{#en-us_topic_0000001086137838_section350653016492} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Go to the directory where the Helm project is located. If the previous Helm project cannot be found, copy the **helm** directory in the component package to any directory on the master node. For details about the component package path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +3. Go to the **templates** directory and find the **huawei-csi-node.yaml** file. + + ``` + cd /templates + ``` + +4. Run the following command to set **path** in **huawei-csi-node.yaml** \> **volumes** \> **iscsi-dir** \> **hostPath** to **/var/lib/iscsi**, save the file, and exit. + + ``` + vi huawei-csi-node.yaml + ``` + +5. Run the following command to upgrade the Helm chart. The upgrade command will update the Deployment, DaemonSet, and RBAC resources. In the preceding command, _helm-huawei-csi_ indicates the custom chart name and _huawei-csi_ indicates the custom namespace. + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f values.yaml + ``` + + The following is an example of the command output. + + ``` + Release "helm-huawei-csi" has been upgraded. Happy Helming! + NAME: helm-huawei-csi + LAST DEPLOYED: Thu Jun 9 07:58:15 2022 + NAMESPACE: huawei-csi + STATUS: deployed + REVISION: 2 + TEST SUITE: None + ``` + diff --git a/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md new file mode 100644 index 0000000..5c62f51 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md @@ -0,0 +1,93 @@ +--- +title: "Huawei CSI Services Fail to Be Started and Error Message \"/etc/localtime is not a file\" Is Displayed" +linkTitle: "Huawei CSI Services Fail to Be Started and Error Message \"/etc/localtime is not a file\" Is Displayed" +description: +weight: 2 +--- + +## Symptom{#en-us_topic_0000001086137838_section1566717121452} + +During the installation and deployment of CSI, a Pod fails to run and is in the **ContainerCreating** state. Alarm **/etc/localtime is not a file** is generated for the Pod. + +## Root Cause Analysis{#en-us_topic_0000001086137838_section1425013451056} + +When the container mounts the **/etc/localtime** file on the host, the type is incorrectly identified. As a result, the container fails to mount the **/etc/localtime** file on the host and the Pod cannot run. + +## Procedure{#section158611659145513} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to check the running status of the Pod of the CSI services. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. _huawei-csi_ indicates the namespace where the CSI services are deployed. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 ContainerCreating 0 24m + huawei-csi-controller-6dfcc4b79f-csphc 9/9 ContainerCreating 0 24m + huawei-csi-node-g6f4k 3/3 ContainerCreating 0 20m + huawei-csi-node-tqs87 3/3 ContainerCreating 0 20m + ``` + +3. Run the following command to check the **Events** parameter of the container. + + ``` + kubectl describe pod huawei-csi-controller-6dfcc4b79f-9vjtq -n huawei-csi + ``` + + The following is an example of the command output. In the command, _huawei-csi-controller-6dfcc4b79f-9vjtq_ indicates the name of the Pod in the **ContainerCreating** state found in [2](#li131611149192013), and _huawei-csi_ indicates the namespace to which the Pod belongs. + + ``` + ... + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Scheduled 96s default-scheduler Successfully assigned huawei-csi/huawei-csi-controller-6dfcc4b79f-9vjtq to node1 + Warning FailedMount 33s (x8 over 96s) kubelet MountVolume.SetUp failed for volume "host-time" : hostPath type check failed: /etc/localtime is not a file + ``` + +4. Run the **cd /helm/esdk/templates** command to go to the CSI installation package path. For the path, see [Table 1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#en-us_topic_0150885197_table17200162435412). +5. Take the **huawei-csi-controller.yaml** file as an example. Run the following command to view the file content. + + ``` + vi huawei-csi-controller.yaml + ``` + + Find the **host-time** configuration item under **volumes**, and delete the **type: File** line. Perform the same operations on the **huawei-csi-node.yaml** deployment file that involves the configuration item in the **templates** directory. + + ``` + ... + ... + volumes: + - hostPath: + path: /var/log/ + type: Directory + name: log + - hostPath: + path: /etc/localtime + type: File + name: host-time + ... + ... + ``` + +6. Uninstall and reinstall the service by referring to [Uninstalling Huawei CSI Using Helm](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm). +7. Run the following command to check whether the Pod running status of Huawei CSI services is **Running**. + + ``` + kubectl get pod -n huawei-csi + ``` + + The following is an example of the command output. + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjts 9/9 Running 0 24m + huawei-csi-controller-6dfcc4b79f-csphb 9/9 Running 0 24m + huawei-csi-node-g6f41 3/3 Running 0 20m + huawei-csi-node-tqs85 3/3 Running 0 20m + ``` + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/_index.md b/content/en/v4.5.0/troubleshooting/pod-issues/_index.md new file mode 100644 index 0000000..640d730 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/_index.md @@ -0,0 +1,16 @@ +--- +title: "Pod Issues" +linkTitle: "Pod Issues" +description: +weight: 4 +--- + + + + + + + + + + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md new file mode 100644 index 0000000..7895bf1 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md @@ -0,0 +1,90 @@ +--- +title: "A Pod Fails to Be Created and Message \"publishInfo doesn't exist\" Is Displayed in the Events Log" +linkTitle: "A Pod Fails to Be Created and Message \"publishInfo doesn't exist\" Is Displayed in the Events Log" +description: +weight: 6 +--- + +## Symptom{#section16564369537} + +When a Pod is being created, the Pod keeps in the **ContainerCreating** state. It is found that the following alarm event is printed for the Pod: **rpc error: code = Internal desc = publishInfo doesn't exist** + +## Root Cause Analysis{#section135642617536} + +As required by CSI, when a workload needs to use a PV, the Container Orchestration system \(CO system, communicating with the CSI plug-in using RPC requests\) invokes the ControllerPublishVolume interface \(provided by huawei-csi-controller\) in the [CSI protocol](https://github.com/container-storage-interface/spec/blob/master/spec.md) provided by the CSI plug-in to map the PV, and then invokes the NodeStageVolume interface \(provided by huawei-csi-node\) provided by the CSI plug-in to mount the PV. During a complete mounting operation, only the huawei-csi-node service receives the NodeStageVolume request. Before that, the huawei-csi-controller service does not receive the ControllerPublishVolume request. As a result, the huawei-csi-controller service does not map the PV volume and does not send the mapping information to the huawei-csi-node service. Therefore, error message **publishInfo doesn't exist** is reported. + +## Solution{#section75642613539} + +To solve this problem, Kubernetes needs to invoke the ControllerPublishVolume interface. + +If this operation is triggered by all workloads created by earlier versions in the cluster, this problem will not occur. + +## Procedure{#section1883055741114} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to obtain the information about the node where a workload is located. + + ``` + kubectl get pod error-pod -n error-pod-in-namespace -owide + ``` + + The following is an example of the command output. + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + pod-nfs 0/1 ContainerCreating 0 3s node-1 + ``` + +3. Fail over the workload to another node. +4. If the failover cannot be completed in the cluster, you can delete the workload and create a new one on the original node. +5. Check whether the workload is successfully started. If it fails to be started, contact Huawei technical support engineers. + +## Checking Cluster Workloads{#section96497192258} + +When Kubernetes invokes the CSI plug-in to complete volume mapping, the VolumeAttachment resource is used to save the mapping information, indicating that a specified volume is attached to or detached from a specified node. This problem occurs because publishInfo does not exist. You can view the VolumeAttachment resource information to check whether this problem is also involved in other workloads in the cluster. The procedure is as follows: + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to obtain the VolumeAttachment information and retain resources whose **ATTACHER** field is **csi.huawei.com**. **csi.huawei.com** indicates the Huawei CSI driver name and can be configured in the **values.yaml** file. The corresponding configuration item is **csiDriver.driverName**. For details about the configuration item, see [Table 4](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table188162213437). + + ``` + kubectl get volumeattachments.storage.k8s.io + ``` + + The following is an example of the command output. + + ``` + NAME ATTACHER PV NODE ATTACHED AGE + csi-47abxx csi.huawei.com pvc-1xx node-1 true 12h + ``` + +3. Run the following command to view the VolumeAttachment resource details. In the following information, **csi-47abxx** is the resource name obtained in [2](#li18768174613266). + + ``` + kubectl get volumeattachments.storage.k8s.io csi-47abxx -o yaml + ``` + + The following is an example of the command output. + + ``` + kind: VolumeAttachment + metadata: + annotations: + csi.alpha.kubernetes.io/node-id: '{"HostName":"node-1"}' + finalizers: + - external-attacher/csi-huawei-com + name: csi-47abxxx + uid: 0c87fa8a-c3d6-4623-acb8-71d6206d030d + spec: + attacher: csi.huawei.com + nodeName: debian-node + source: + persistentVolumeName: pvc-1xx + status: + attached: true + attachmentMetadata: + publishInfo: '{}' + ``` + +4. If **status.attachmentMetadata.publishInfo** exists in the resource obtained in [3](#li876824620267), the problem described in this FAQ is not involved in the workloads created using **pvc-1xx** on the **node-1** node. **node-1** and **pvc-1xx** are the query results in [2](#li18768174613266). If **status.attachmentMetadata.publishInfo** does not exist, rectify the fault by referring to [Solution](#section75642613539). +5. If multiple VolumeAttachment resources exist, repeat [3](#li876824620267) to [4](#li143811934379). + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md new file mode 100644 index 0000000..e514d83 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md @@ -0,0 +1,46 @@ +--- +title: "A Pod Fails to Be Created and the Log Shows That the Execution of the mount Command Times Out" +linkTitle: "A Pod Fails to Be Created and the Log Shows That the Execution of the mount Command Times Out" +description: +weight: 4 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +When a Pod is being created, the Pod keeps in the **ContainerCreating** status. In this case, check the log information of huawei-csi-node \(for details, see [Viewing Huawei CSI Logs](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)\). The log shows that the execution of the mount command times out. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +Cause 1: The configured service IP address is disconnected. As a result, the **mount** command execution times out and fails. + +Cause 2: For some operating systems, such as Kylin V10 SP1 and SP2, it takes a long time to run the **mount** command in a container using NFSv3. As a result, the **mount** command may time out and error message "error: exit status 255" is displayed. The possible cause is that the value of **LimitNOFILE** of container runtime containerd is too large \(over 1 billion\). + +Cause 3: The mounting may fail due to network problems. The default mounting timeout period of CSI is 30 seconds. If the mounting still fails after 30 seconds, logs show that the execution of the **mount** command times out. + +## Solution or Workaround{#en-us_topic_0000001279996521_section164471213145410} + +1. Run the **ping** command to check whether the service IP network is connected. If the ping fails, the fault is caused by cause 1. In this case, configure an available service IP address. If the ping succeeds, go to [2](#li21141916181411). +2. Go to any container where the **mount** command can be executed and use NFSv3 to run the **mount** command. If the command times out, the fault may be caused by cause 2. Run the **systemctl status containerd.service** command to check the configuration file path, and then run the **cat **_/xxx/containerd.service_ command to check the configuration file. If the file contains **LimitNOFILE=infinity** or the value of **LimitNOFILE** is 1 billion, go to [3](#li560665881414). Otherwise, contact Huawei technical support engineers. +3. For cause 2, perform the following operations: + - Try using NFSv4.0. + - Change the value of **LimitNOFILE** to a proper one by referring to [change solution provided by the community](https://github.com/containerd/containerd/issues/3201). This solution will restart the container runtime. Evaluate the impact on services. + +4. Manually mount the file system on the host machine where the mounting fails. If the required time exceeds 30 seconds, check whether the network between the host machine and the storage node is normal. An example of the **mount** command is as follows. + - Run the following command to create a test directory. + + ``` + mkdir /tmp/test_mount + ``` + + - Run the **mount** command to mount the file system and observe the time consumed. The value of _ip:nfs\_share\_path_ can be obtained from the huawei-csi-node log. For details, see [Viewing Huawei CSI Logs](/docs/common-operations/collecting-information/viewing-huawei-csi-logs). + + ``` + time mount ip:nfs_share_path /tmp/test_mount + ``` + + - After the test is complete, run the following command to unmount the file system. + + ``` + umount /tmp/test_mount + ``` + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md new file mode 100644 index 0000000..eb59468 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md @@ -0,0 +1,20 @@ +--- +title: "A Pod Fails to Be Created and the Log Shows That the mount Command Fails to Be Executed" +linkTitle: "A Pod Fails to Be Created and the Log Shows That the mount Command Fails to Be Executed" +description: +weight: 5 +--- + +## Symptom{#section16564369537} + +In NAS scenarios, when a Pod is being created, the Pod keeps in the **ContainerCreating** status. In this case, check the log information of huawei-csi-node \(for details, see [Viewing Huawei CSI Logs](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)\). The log shows that the mount command fails to be executed. + +## Root Cause Analysis{#section135642617536} + +The possible cause is that the NFS 4.0/4.1/4.2 protocol is not enabled on the storage side. After the NFS v4 protocol fails to be used for mounting, the host does not negotiate to use the NFS v3 protocol for mounting. + +## Solution or Workaround{#section75642613539} + +- Enable the NFS 3/4.0/4.1/4.2 protocol on the storage side and retry the default mounting. +- Specify an available NFS protocol for mounting. For details, see [StorageClass Configuration Examples in Typical Dynamic Volume Provisioning Scenarios](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios). + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md new file mode 100644 index 0000000..369f0b3 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md @@ -0,0 +1,19 @@ +--- +title: "A Pod Is in the ContainerCreating State for a Long Time When It Is Being Created" +linkTitle: "A Pod Is in the ContainerCreating State for a Long Time When It Is Being Created" +description: +weight: 3 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +When a Pod is being created, the Pod is in the **ContainerCreating** state for a long time. Check the huawei-csi-node log \(for details, see [Viewing Huawei CSI Logs](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)\). No Pod creation information is recorded in the huawei-csi-node log. After the **kubectl get volumeattachment** command is executed, the name of the PV used by the Pod is not displayed in the **PV** column. After a long period of time \(more than ten minutes\), the Pod is normally created and the Pod status changes to **Running**. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +The kube-controller-manager component of Kubernetes is abnormal. + +## Solution or Workaround{#en-us_topic_0000001279996521_section164471213145410} + +Contact container platform engineers to rectify the fault. + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md b/content/en/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md new file mode 100644 index 0000000..89acda4 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md @@ -0,0 +1,23 @@ +--- +title: "After a Pod Fails to Be Created or kubelet Is Restarted, Logs Show That the Mount Point Already Exists" +linkTitle: "After a Pod Fails to Be Created or kubelet Is Restarted, Logs Show That the Mount Point Already Exists" +description: +weight: 7 +--- + +## Symptom{#section16564369537} + +When a Pod is being created, the Pod is always in the **ContainerCreating** state. Alternatively, after kubelet is restarted, logs show that the mount point already exists. Check the log information of huawei-csi-node \(for details, see [Viewing Huawei CSI Logs](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)\). The error information is: **The mount /var/lib/kubelet/pods/xxx/mount is already exist, but the source path is not /var/lib/kubelet/plugins/kubernetes.io/xxx/globalmount** + +## Root Cause Analysis{#section135642617536} + +The root cause of this problem is that Kubernetes performs repeated mounting operations. + +## Solution or Workaround{#section75642613539} + +Run the following command to unmount the existing path. In the command, **/var/lib/kubelet/pods/xxx/mount** indicates the existing mount path displayed in the logs. + +``` +umount /var/lib/kubelet/pods/xxx/mount +``` + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md b/content/en/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md new file mode 100644 index 0000000..ea09b8e --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md @@ -0,0 +1,180 @@ +--- +title: "After a Worker Node in the Cluster Breaks Down and Recovers, Pod Failover Is Complete but the Source Host Where the Pod Resides Has Residual Drive Letters" +linkTitle: "After a Worker Node in the Cluster Breaks Down and Recovers, Pod Failover Is Complete but the Source Host Where the Pod Resides Has Residual Drive Letters" +description: +weight: 1 +--- + +## Symptom{#en-us_topic_0000001133091104_section1566717121452} + +A Pod is running on worker node A, and an external block device is mounted to the Pod through CSI. After worker node A is powered off abnormally, the Kubernetes platform detects that the node is faulty and switches the Pod to worker node B. After worker node A recovers, the drive letters on worker node A change from normal to faulty. + +## Environment Configuration{#en-us_topic_0000001133091104_section87566339513} + +Kubernetes version: 1.18 or later + +Storage type: block storage + +## Root Cause Analysis{#en-us_topic_0000001133091104_section1425013451056} + +After worker node A recovers, Kubernetes initiates an unmapping operation on the storage, but does not initiate a drive letter removal operation on the host. After Kubernetes completes the unmapping, residual drive letters exist on worker node A. + +## Solution or Workaround{#en-us_topic_0000001133091104_section350653016492} + +Currently, you can only manually clear the residual drive letters on the host. Alternatively, restart the host again and use the disk scanning mechanism during the host restart to clear the residual drive letters. The specific method is as follows: + +1. Check the residual drive letters on the host. + 1. Run the following command to check whether a DM multipathing device with abnormal multipathing status exists. + + ``` + multipath -ll + ``` + + The following is an example of the command output. The path status is **failed faulty running**, the corresponding DM multipathing device is **dm-12**, and the associated SCSI disks are **sdi** and **sdj**. If multiple paths are configured, multiple SCSI disks exist. Record these SCSI disks. + + ``` + mpathb (3618cf24100f8f457014a764c000001f6) dm-12 HUAWEI ,XSG1 + size=100G features='0' hwhandler='0' wp=rw + `-+- policy='service-time 0' prio=-1 status=active + |- 39:0:0:1 sdi 8:48 failed faulty running + `- 38:0:0:1 sdj 8:64 failed faulty running + ``` + + - If yes, go to [step 1.2](#en-us_topic_0000001133091104_li4217105512811). + - If no, no further action is required. + + 2. Run the following command to check whether the residual DM multipathing device is readable. + + ``` + dd if=/dev/dm-12 of=/dev/null count=1 bs=1M iflag=direct + ``` + + The following is an example of the command output. If the returned result is **Input/output error** and the read data is **0 bytes \(0 B\) copied**, the device is unreadable. _dm-xx_ indicates the device ID obtained in [step 1.1](#en-us_topic_0000001133091104_li177163210119). + + ``` + dd: error reading '/dev/dm-12': Input/output error + 0+0 records in + 0+0 records out + 0 bytes (0 B) copied, 0.0236862 s, 0.0 kB/s + ``` + + - If yes, record the residual _dm-xx_ device and associated disk IDs \(for details, see [step 1.1](#en-us_topic_0000001133091104_li177163210119)\) and perform the clearing operation. + - If the command execution is suspended, go to [step 1.3](#en-us_topic_0000001133091104_li6716192111111). + - If other cases, contact technical support engineers. + + 3. Log in to the node again in another window. + 1. Run the following command to view the suspended process. + + ``` + ps -ef | grep dm-12 | grep -w dd + ``` + + The following is an example of the command output. + + ``` + root 21725 9748 0 10:33 pts/10 00:00:00 dd if=/dev/dm-12 of=/dev/null count=1 bs=10M iflag=direct + ``` + + 2. Kill the pid. + + ``` + kill -9 pid + ``` + + 3. Record the residual _dm-xx_ device and associated disk IDs \(for details, see [step 1.1](#en-us_topic_0000001133091104_li177163210119)\) and perform the clearing operation. + +2. Clear the residual drive letters on the host. + 1. Run the following command to delete residual multipathing aggregation device information according to the DM multipathing device obtained in [step 1](#en-us_topic_0000001133091104_li195731859152815). + + ``` + multipath -f /dev/dm-12 + ``` + + If an error is reported, contact technical support engineers. + + 2. Run the following command to clear the residual SCSI disks according to the drive letters of the residual disks obtained in [step 1](#en-us_topic_0000001133091104_li195731859152815). + + ``` + echo 1 > /sys/block/xxxx/device/delete + ``` + + When multiple paths are configured, clear the residual disks based on the drive letters. The residual paths are **sdi** and **sdj**. + + ``` + echo 1 > /sys/block/sdi/device/delete + echo 1 > /sys/block/sdj/device/delete + ``` + + If an error is reported, contact technical support engineers. + + 3. Check whether the DM multipathing device and SCSI disk information has been cleared. + + Run the following commands in sequence to query the multipathing and disk information. If the residual **dm-12** device and SCSI disks **sdi** and **sdj** are cleared, the clearing is complete. + + 1. View multipathing information. + + ``` + multipath -ll + ``` + + The following is an example of the command output. The residual **dm-12** device is cleared. + + ``` + mpathb (3618cf24100f8f457014a764c000001f6) dm-3 HUAWEI ,XSG1 + size=100G features='0' hwhandler='0' wp=rw + `-+- policy='service-time 0' prio=-1 status=active + |- 39:0:0:1 sdd 8:48 active ready running + `- 38:0:0:1 sde 8:64 active ready running + mpathn (3618cf24100f8f457315a764c000001f6) dm-5 HUAWEI ,XSG1 + size=100G features='0' hwhandler='0' wp=rw + `-+- policy='service-time 0' prio=-1 status=active + |- 39:0:0:2 sdc 8:32 active ready running + `- 38:0:0:2 sdb 8:16 active ready running + ``` + + 2. View device information. + + ``` + ls -l /sys/block/ + ``` + + The following is an example of the command output. SCSI disks **sdi** and **sdj** are cleared. + + ``` + total 0 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-0 -> ../devices/virtual/block/dm-0 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-1 -> ../devices/virtual/block/dm-1 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-2 -> ../devices/virtual/block/dm-2 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-3 -> ../devices/virtual/block/dm-3 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdb -> ../devices/platform/host35/session2/target35:0:0/35:0:0:1/block/sdb + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdc -> ../devices/platform/host34/target34:65535:5692/34:65535:5692:0/block/sdc + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdd -> ../devices/platform/host39/session6/target39:0:0/39:0:0:1/block/sdd + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sde -> ../devices/platform/host38/session5/target38:0:0/38:0:0:1/block/sde + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdh -> ../devices/platform/host39/session6/target39:0:0/39:0:0:3/block/sdh + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdi -> ../devices/platform/host38/session5/target38:0:0/38:0:0:3/block/sdi + ``` + + 3. View disk information. + + ``` + ls -l /dev/disk/by-id/ + ``` + + The following is an example of the command output. SCSI disks **sdi** and **sdj** are cleared. + + ``` + total 0 + lrwxrwxrwx 1 root root 10 Aug 11 19:57 dm-name-mpathb -> ../../dm-3 + lrwxrwxrwx 1 root root 10 Aug 11 19:58 dm-name-mpathn -> ../../dm-5 + lrwxrwxrwx 1 root root 10 Aug 11 19:57 dm-uuid-mpath-3618cf24100f8f457014a764c000001f6 -> ../../dm-3 + lrwxrwxrwx 1 root root 10 Aug 11 19:58 dm-uuid-mpath-3618cf24100f8f457315a764c000001f6 -> ../../dm-5 + lrwxrwxrwx 1 root root 9 Aug 11 19:57 scsi-3618cf24100f8f457014a764c000001f6 -> ../../sdd + lrwxrwxrwx 1 root root 9 Aug 11 19:57 scsi-3618cf24100f8f45712345678000103e8 -> ../../sdi + lrwxrwxrwx 1 root root 9 Aug 3 15:17 scsi-3648435a10058805278654321ffffffff -> ../../sdb + lrwxrwxrwx 1 root root 9 Aug 2 14:49 scsi-368886030000020aff44cc0d060c987f1 -> ../../sdc + lrwxrwxrwx 1 root root 9 Aug 11 19:57 wwn-0x618cf24100f8f457014a764c000001f6 -> ../../sdd + lrwxrwxrwx 1 root root 9 Aug 11 19:57 wwn-0x618cf24100f8f45712345678000103e8 -> ../../sdi + lrwxrwxrwx 1 root root 9 Aug 3 15:17 wwn-0x648435a10058805278654321ffffffff -> ../../sdb + lrwxrwxrwx 1 root root 9 Aug 2 14:49 wwn-0x68886030000020aff44cc0d060c987f1 -> ../../sdc + ``` + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md b/content/en/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md new file mode 100644 index 0000000..8800ce2 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md @@ -0,0 +1,37 @@ +--- +title: "Failed to Create a Pod Because the iscsi\_tcp Service Is Not Started Properly When the Kubernetes Platform Is Set Up for the First Time" +linkTitle: "Failed to Create a Pod Because the iscsi\_tcp Service Is Not Started Properly When the Kubernetes Platform Is Set Up for the First Time" +description: +weight: 9 +--- + +## Symptom{#en-us_topic_0234872004_section1566717121452} + +When you create a Pod, error **Cannot connect ISCSI portal \*.\*.\*.\*: libkmod: kmod\_module\_insert\_module: could not find module by name='iscsi\_tcp'** is reported in the **/var/log/huawei-csi-node** log. + +## Root Cause Analysis{#en-us_topic_0234872004_section1425013451056} + +The iscsi\_tcp service may be stopped after the Kubernetes platform is set up and the iSCSI service is installed. You can run the following command to check whether the service is stopped. + +``` +lsmod | grep iscsi | grep iscsi_tcp +``` + +The following is an example of the command output. + +``` +iscsi_tcp 18333 6 +libiscsi_tcp 25146 1 iscsi_tcp +libiscsi 57233 2 libiscsi_tcp,iscsi_tcp +scsi_transport_iscsi 99909 3 iscsi_tcp,libiscsi +``` + +## Solution or Workaround{#en-us_topic_0234872004_section350653016492} + +Run the following command to manually load the iscsi\_tcp service. + +``` +modprobe iscsi_tcp +lsmod | grep iscsi | grep iscsi_tcp +``` + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md b/content/en/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md new file mode 100644 index 0000000..11cbec9 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md @@ -0,0 +1,19 @@ +--- +title: "\"I/O error\" Is Displayed When a Volume Directory Is Mounted to a Pod" +linkTitle: "\"I/O error\" Is Displayed When a Volume Directory Is Mounted to a Pod" +description: +weight: 8 +--- + +## Symptom{#section16564369537} + +When a Pod reads or writes a mounted volume, message "I/O error" is displayed. + +## Root Cause Analysis{#section135642617536} + +When a protocol such as SCSI is used, if the Pod continuously writes data to the mount directory, the storage device will restart. As a result, the link between the device on the host and the storage device is interrupted, triggering an I/O error. When the storage device is restored, the mount directory is still read-only. + +## Solution{#section75642613539} + +Remount the volume. That is, reconstruct the Pod to trigger re-mounting. + diff --git a/content/en/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md b/content/en/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md new file mode 100644 index 0000000..bf1ca94 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md @@ -0,0 +1,35 @@ +--- +title: "When a Pod Is Created, the Pod Is in the ContainerCreating State" +linkTitle: "When a Pod Is Created, the Pod Is in the ContainerCreating State" +description: +weight: 2 +--- + +## Symptom{#en-us_topic_0000001163875516_section1566717121452} + +A Pod is created. After a period of time, the Pod is still in the **ContainerCreating** state. Check the log information \(for details, see [Viewing Huawei CSI Logs](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)\). The error message "Fibre Channel volume device not found" is displayed. + +## Root Cause Analysis{#en-us_topic_0000001163875516_section1425013451056} + +This problem occurs because residual disks exist on the host node. As a result, disks fail to be found when a Pod is created next time. + +## Solution or Workaround{#en-us_topic_0000001163875516_section164471213145410} + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to query information about the node where the Pod resides. + + ``` + kubectl get pod -o wide + ``` + + The following is an example of the command output. + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + mypod 0/1 ContainerCreating 0 51s 10.244.1.224 node1 + ``` + +3. Delete the Pod. +4. Use a remote access tool, such as PuTTY, to log in to the _node1_ node in the Kubernetes cluster through the management IP address. _node1_ indicates the node queried in [2](#en-us_topic_0000001163875516_li134903196550). +5. Clear the residual drive letters. For details, see [Solution or Workaround](/docs/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source#en-us_topic_0000001133091104_section350653016492). + diff --git a/content/en/v4.5.0/troubleshooting/pvc-issues/_index.md b/content/en/v4.5.0/troubleshooting/pvc-issues/_index.md new file mode 100644 index 0000000..e7a558f --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pvc-issues/_index.md @@ -0,0 +1,11 @@ +--- +title: "PVC Issues" +linkTitle: "PVC Issues" +description: +weight: 3 +--- + + + + + diff --git a/content/en/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md b/content/en/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md new file mode 100644 index 0000000..9843205 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md @@ -0,0 +1,76 @@ +--- +title: "Before a PVC Is Deleted, the PVC Is in the Pending State" +linkTitle: "Before a PVC Is Deleted, the PVC Is in the Pending State" +description: +weight: 2 +--- + +## Symptom{#en-us_topic_0000001161960178_section1566717121452} + +Before a PVC is deleted, the PVC is in the **Pending** state. + +## Root Cause Analysis{#en-us_topic_0000001161960178_section1425013451056} + +Cause 1: A StorageClass with the specified name is not created in advance. As a result, Kubernetes cannot find the specified StorageClass name when a PVC is created. + +Cause 2: The storage pool capability does not match the StorageClass capability. As a result, huawei-csi fails to select a storage pool. + +Cause 3: An error code \(for example, 50331651\) is returned by a RESTful interface of the storage. As a result, huawei-csi fails to create a PVC. + +Cause 4: The storage does not return a response within the timeout period set by huawei-csi. As a result, huawei-csi returns a timeout error to Kubernetes. + +Cause 5: Other causes. + +## Solution or Workaround{#en-us_topic_0000001161960178_section350653016492} + +To delete a PVC in the **Pending** state, you need to take different measures according to the following causes. + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to view details about the PVC. + + ``` + kubectl describe pvc mypvc + ``` + +3. Perform the corresponding operation according to the **Events** information in the detailed PVC information. + - If the PVC is in the **Pending** state due to cause 1, run the **kubectl delete pvc **_mypvc_ command to delete the PVC. + + ```yaml + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Warning ProvisioningFailed 0s (x15 over 3m24s) persistentvolume-controller storageclass.storage.k8s.io "mysc" not found + ``` + + - If the PVC is in the **Pending** state due to cause 2, run the **kubectl delete pvc **_mypvc_ command to delete the PVC. + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = failed to select pool, the capability filter failed, error: failed to select pool, the final filter field: replication, parameters map[allocType:thin replication:True size:1099511627776 volumeType:lun]. please check your storage class + ``` + + - If the PVC is in the **Pending** state due to cause 3, run the **kubectl delete pvc** _mypvc_ command to delete the PVC. + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 62s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = Create volume map[ALLOCTYPE:1 CAPACITY:20 DESCRIPTION:Created from Kubernetes CSI NAME:pvc-63ebfda5-4cf0-458e-83bd-ecc PARENTID:0] error: 50331651 + ``` + + - If the PVC is in the **Pending** state due to cause 4, contact Huawei engineers. + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = context deadline exceeded (Client.Timeout exceeded while awaiting headers) + ``` + + - If the PVC is in the **Pending** state due to cause 5, contact Huawei engineers. + diff --git a/content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md b/content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md new file mode 100644 index 0000000..a827fe8 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md @@ -0,0 +1,15 @@ +--- +title: "Failed to Expand the Capacity of a Generic Ephemeral Volume" +linkTitle: "Failed to Expand the Capacity of a Generic Ephemeral Volume" +description: +weight: 3 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +In an environment where the Kubernetes version is earlier than 1.25, the capacity of a [generic ephemeral volume](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) of the LUN type fails to be expanded. The system displays a message indicating that the PV capacity has been expanded, but the PVC capacity fails to be updated. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +This problem is caused by a Kubernetes [bug](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md), which has been resolved in Kubernetes 1.25. + diff --git a/content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md b/content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md new file mode 100644 index 0000000..62d2d36 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md @@ -0,0 +1,19 @@ +--- +title: "Failed to Expand the PVC Capacity Because the Target Capacity Exceeds the Storage Pool Capacity" +linkTitle: "Failed to Expand the PVC Capacity Because the Target Capacity Exceeds the Storage Pool Capacity" +description: +weight: 4 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +In a Kubernetes environment earlier than 1.23, PVC capacity expansion fails when the target capacity exceeds the storage pool capacity. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +This is a known issue in the Kubernetes community. For details, see [Recovering from Failure when Expanding Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#recovering-from-failure-when-expanding-volumes). + +## Solution or Workaround{#section1730118471221} + +For details, see [Recovering from Failure when Expanding Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#recovering-from-failure-when-expanding-volumes). + diff --git a/content/en/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md b/content/en/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md new file mode 100644 index 0000000..544ca03 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md @@ -0,0 +1,89 @@ +--- +title: "When a PVC Is Created, the PVC Is in the Pending State" +linkTitle: "When a PVC Is Created, the PVC Is in the Pending State" +description: +weight: 1 +--- + +## Symptom{#en-us_topic_0000001207958677_section1566717121452} + +A PVC is created. After a period of time, the PVC is still in the **Pending** state. + +## Root Cause Analysis{#en-us_topic_0000001207958677_section1425013451056} + +Cause 1: A StorageClass with the specified name is not created in advance. As a result, Kubernetes cannot find the specified StorageClass name when a PVC is created. + +Cause 2: The storage pool capability does not match the StorageClass capability. As a result, huawei-csi fails to select a storage pool. + +Cause 3: An error code \(for example, 50331651\) is returned by a RESTful interface of the storage. As a result, huawei-csi fails to create a PVC. + +Cause 4: The storage does not return a response within the timeout period set by huawei-csi. As a result, huawei-csi returns a timeout error to Kubernetes. + +Cause 5: Other causes. + +## Solution or Workaround{#en-us_topic_0000001207958677_section350653016492} + +When a PVC is created, if the PVC is in the **Pending** state, you need to take different measures according to the following causes. + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to view details about the PVC. + + ``` + kubectl describe pvc mypvc + ``` + +3. Perform the corresponding operation according to the **Events** information in the detailed PVC information. + - If the PVC is in the **Pending** state due to cause 1, perform the following steps. + + ```yaml + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Warning ProvisioningFailed 0s (x15 over 3m24s) persistentvolume-controller storageclass.storage.k8s.io "mysc" not found + ``` + + 1. Delete the PVC. + 2. Create a StorageClass. For details, see [StorageClass Configuration Examples in Typical Dynamic Volume Provisioning Scenarios](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios). + 3. Create a PVC. For details, see [PVC Parameters for Dynamic Volume Provisioning](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning). + + - If the PVC is in the **Pending** state due to cause 2, perform the following steps. + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = failed to select pool, the capability filter failed, error: failed to select pool, the final filter field: replication, parameters map[allocType:thin replication:True size:1099511627776 volumeType:lun]. please check your storage class + ``` + + 1. Delete the PVC. + 2. Delete the StorageClass. + 3. Modify the **StorageClass.yaml** file based on the **Events** information. + 4. Create a StorageClass. For details, see [StorageClass Configuration Examples in Typical Dynamic Volume Provisioning Scenarios](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios). + 5. Create a PVC. For details, see [PVC Parameters for Dynamic Volume Provisioning](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning). + + - If the PVC is in the **Pending** state due to cause 3, contact Huawei engineers. + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 62s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = Create volume map[ALLOCTYPE:1 CAPACITY:20 DESCRIPTION:Created from Kubernetes CSI NAME:pvc-63ebfda5-4cf0-458e-83bd-ecc PARENTID:0] error: 50331651 + ``` + + - If the PVC is in the **Pending** state due to cause 4, perform the following steps. + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = context deadline exceeded (Client.Timeout exceeded while awaiting headers) + ``` + + 1. Wait for 10 minutes and check the PVC details again by referring to this section. + 2. If it is still in the **Pending** state, contact Huawei engineers. + + - If the PVC is in the **Pending** state due to cause 5, contact Huawei engineers. + diff --git a/content/en/v4.5.0/troubleshooting/storage-backend-issues/_index.md b/content/en/v4.5.0/troubleshooting/storage-backend-issues/_index.md new file mode 100644 index 0000000..d830400 --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/storage-backend-issues/_index.md @@ -0,0 +1,10 @@ +--- +title: "Storage Backend Issues" +linkTitle: "Storage Backend Issues" +description: +weight: 2 +--- + + + + diff --git a/content/en/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md b/content/en/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md new file mode 100644 index 0000000..111848a --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md @@ -0,0 +1,107 @@ +--- +title: "A Backend Fails to Be Created Using the oceanctl Tool and Error Message \"context deadline exceeded\" Is Displayed" +linkTitle: "A Backend Fails to Be Created Using the oceanctl Tool and Error Message \"context deadline exceeded\" Is Displayed" +description: +weight: 2 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +A user fails to create a storage backend using the oceanctl tool, and "failed to call webhook: xxx :context deadline exceeded; error: exist status 1" is displayed on the console. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +When a storage backend is created, the webhook service provided by CSI is invoked to verify the connectivity with the storage management network and the storage account and password. The possible causes are as follows: + +- Huawei CSI fails to verify the connectivity of the storage management network. +- The communication between kube-apiserver and CSI webhook is abnormal. + +## Huawei CSI Fails to Verify the Connectivity of the Storage Management Network{#section17680127184319} + +Perform the following steps to check whether Huawei CSI fails to verify the connectivity of the storage management network. + +1. Use a remote access tool, such as PuTTY, to log in to any master node in the Kubernetes cluster through the management IP address. +2. Run the following command to obtain CSI service information. _huawei-csi_ indicates the namespace where the CSI services are deployed. + + ``` + kubectl get pod -n huawei-csi -owide + ``` + + The following is an example of the command output. + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi-controller-xxx 9/9 Running 0 19h host-ip1 host-1 + huawei-csi-node-mnqbz 3/3 Running 0 19h host-ip1 host-1 + ``` + +3. Log in to the node where huawei-csi-controller resides, for example, **host-1** in [2](#li1895283018493). +4. Go to the **/var/log/huawei** directory. + + ```yaml + # cd /var/log/huawei + ``` + +5. View the **storage-backend-controller** log. The following uses the storage connection timeout as an example. + + ``` + tail -n 1000 storage-backend-controller + ``` + + The following is a log example. + + ``` + 2024-01-01 06:30:44.280661 1 [INFO]: Try to login https://192.168.129.155:8088/deviceManager/rest + 2024-01-01 06:31:44.281626 1 [ERROR]: Send request method: POST, Url: https://192.168.129.155:8088/deviceManager/rest/xx/sessions, error: Post "https://192.168.129.155:8088/deviceManager/rest/xx/sessions": context deadline exceeded (Client.Timeout exceeded while awaiting headers) + 2024-01-01 06:31:44.281793 1 [WARNING]: Login https://192.168.129.155:8088/deviceManager/rest error due to connection failure, gonna try another Url + 2024-01-01 06:31:44.291668 1 [INFO]: Finished validateCreate huawei-csi/backend-test. + 2024-01-01 06:31:44.291799 1 [ERROR]: Failed to validate StorageBackendClaim, error: unconnected + ``` + +6. If the log contains information about login timeout, login failure, or long request duration, check the connectivity between the host machine and the storage or the network status. +7. If no request is recorded in the log, the communication between kube-apiserver and CSI webhook is abnormal. + +## Abnormal Communication Between kube-apiserver and CSI Webhook{#section56891019204012} + +Contact the Kubernetes platform administrator to check the network between kube-apiserver and CSI webhook. For example, if kube-apiserver has an HTTPS proxy, the CSI webhook service may fail to be accessed. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>In the temporary workaround, the webhook resource will be deleted. This resource is used to check whether the entered account information is correct and whether the connection to the storage can be set up when a storage backend is created. Therefore, deleting this resource affects only the verification during backend creation and does not affect other functions. Pay attention to the following: +>- Ensure that the host machine where the huawei-csi-controller service is located can properly communicate with the storage. +>- Ensure that the entered account and password are correct. + +1. Run the following command to view CSI webhook information. + + ``` + kubectl get validatingwebhookconfiguration storage-backend-controller.xuanwu.huawei.io + ``` + + The following is an example of the command output. + + ``` + NAME WEBHOOKS AGE + storage-backend-controller.xuanwu.huawei.io 1 4d22h + ``` + +2. Contact the Kubernetes platform administrator to check whether the communication between kube-apiserver and CSI webhook is abnormal. +3. Perform the following temporary workaround: Run the following command to delete the webhook. + + ``` + kubectl delete validatingwebhookconfiguration storage-backend-controller.xuanwu.huawei.io + ``` + +4. Create a storage backend. For details, see [Managing Storage Backends](/docs/storage-backend-management/managing-storage-backends). +5. If the communication between kube-apiserver and CSI webhook is restored, you need to reconstruct the webhook. In this case, run the following command to restart CSI Controller and restore the number of CSI Controller copies by specifying **--replicas=\***. In the following example, the number is restored to **1**. Change it based on actual requirements. + + Change the number of copies to 0 first. + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=0 + ``` + + Then restore the number of copies to the original number. + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=1 + ``` + diff --git a/content/en/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md b/content/en/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md similarity index 97% rename from content/en/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md rename to content/en/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md index c3dcc91..73fa4f5 100644 --- a/content/en/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md +++ b/content/en/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md @@ -9,7 +9,7 @@ weight: 1 After the webhook configuration is changed, for example, the value of the **webhookPort** parameter is changed, an error is reported indicating that a webhook fails to be called when the oceanctl tool is used to manage backends, as shown in the following figure. -![](/css-docs/figures/en-us_image_0000001996023254.png) +![](/css-docs/figures/en-us_image_0000002084763809.png) ## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} diff --git a/content/en/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md b/content/en/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md new file mode 100644 index 0000000..aa2158a --- /dev/null +++ b/content/en/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md @@ -0,0 +1,33 @@ +--- +title: "An Account Is Locked After the Password Is Updated on the Storage Device" +linkTitle: "An Account Is Locked After the Password Is Updated on the Storage Device" +description: +weight: 3 +--- + +## Symptom{#en-us_topic_0000001279996521_section1566717121452} + +After a user changes the password on the storage device, the account is locked. + +## Root Cause Analysis{#en-us_topic_0000001279996521_section1425013451056} + +CSI uses the account and password configured on the storage device to log in to the storage device. After the account password is changed on the storage device, CSI attempts to log in to the storage device again after the login fails. Take OceanStor Dorado as an example. The default login policy is that an account will be locked after three consecutive password verification failures. Therefore, when CSI retries for more than three times, the account will be locked. + +## Solution or Workaround{#section155945247573} + +1. If the backend account is **admin**, run the following command to set the number of huawei-csi-controller service copies to 0. If an account other than **admin** is used, skip this step. + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=0 + ``` + +2. Log in to the storage device as user **admin** and modify the login policy. Take OceanStor Dorado as an example. On DeviceManager, choose **Settings** \> **User and Security** \> **Security Policies** \> **Login Policy**, click **Modify**, and disable **Account Lockout**. +3. If the backend account is **admin**, run the following command to restore the number of CSI Controller copies using **--replicas=**_\*_. In the following example, the number of copies is restored to **1**. Change it based on site requirements. If an account other than **admin** is used, skip this step. + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=1 + ``` + +4. Use the oceanctl tool to change the storage backend password. For details about how to change the backend password, see [Updating a Storage Backend](/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend). +5. Log in to the storage device as user admin and modify the login policy. Take OceanStor Dorado as an example. On DeviceManager, choose **Settings** \> **User and Security** \> **Security Policies** \> **Login Policy**, click **Modify**, and enable **Account Lockout**. + diff --git a/content/en/v4.5.0/using-huawei-csi/_index.md b/content/en/v4.5.0/using-huawei-csi/_index.md new file mode 100644 index 0000000..341cb11 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/_index.md @@ -0,0 +1,15 @@ +--- +title: "Using Huawei CSI" +linkTitle: "Using Huawei CSI" +description: +weight: 7 +--- + +This chapter describes how to use Huawei CSI to manage the lifecycle of PVs and snapshots. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- Do not delete a storage backend when using Huawei CSI to manage volumes. +>- When block volumes are mapped, Huawei CSI automatically creates associated objects, such as hosts, host groups, and LUN groups, as well as mapping views. If these objects are manually created on the storage, the mapping logic of Huawei CSI will be affected. Therefore, ensure that these objects are deleted before mapping volumes using Huawei CSI. + + + diff --git a/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md new file mode 100644 index 0000000..6a80467 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md @@ -0,0 +1,18 @@ +--- +title: "Creating a VolumeSnapshot" +linkTitle: "Creating a VolumeSnapshot" +description: +weight: 2 +--- + +In Kubernetes, a [VolumeSnapshot](https://kubernetes.io/docs/concepts/storage/volume-snapshots/) is a snapshot of a volume on a storage system. The VolumeSnapshot capability provides Kubernetes users with a standard way to replicate the content of a volume at a specified point in time without creating a volume. For example, this function enables database administrators to back up the database before making changes such as editing or deleting. + +This section describes how to create a VolumeSnapshot using Huawei CSI. To create a VolumeSnapshot, perform the following steps: + +- Checking information about volume snapshot-dependent components +- Configuring a VolumeSnapshotClass +- Configuring a VolumeSnapshot + + + + diff --git a/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md new file mode 100644 index 0000000..13546b3 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md @@ -0,0 +1,9 @@ +--- +title: "Checking Information About Volume Snapshot-dependent Components" +linkTitle: "Checking Information About Volume Snapshot-dependent Components" +description: +weight: 1 +--- + +If you need to use volume snapshots and features associated with volume snapshots in the container environment, perform the operations in [Checking Volume Snapshot-Dependent Components](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components) to check whether volume snapshot-dependent components have been deployed in your environment and check the api-versions information about volume snapshots. + diff --git a/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md new file mode 100644 index 0000000..738a94f --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md @@ -0,0 +1,103 @@ +--- +title: "Configuring a VolumeSnapshot" +linkTitle: "Configuring a VolumeSnapshot" +description: +weight: 3 +--- + +VolumeSnapshot can be provisioned in two ways: pre-provisioning and dynamic provisioning. Currently, Huawei CSI supports only dynamic provisioning. This section describes how to dynamically provision a VolumeSnapshot using Huawei CSI. + +The following is an example of the VolumeSnapshot configuration file: + +- If api-versions in your environment supports v1, use the following example: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1 + kind: VolumeSnapshot + metadata: + name: mysnapshot + spec: + volumeSnapshotClassName: mysnapclass + source: + persistentVolumeClaimName: mypvc + ``` + +- If api-versions in your environment supports v1beta1, use the following example: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1beta1 + kind: VolumeSnapshot + metadata: + name: mysnapshot + spec: + volumeSnapshotClassName: mysnapclass + source: + persistentVolumeClaimName: mypvc + ``` + +- The api-versions information in the VolumeSnapshot must be the same as the version used for creating the VolumeSnapshotClass. + +You can modify the parameters according to [Table 1](#en-us_topic_0254162579_table14111735169). + +**Table 1** VolumeSnapshot parameters + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

metadata.name

+

User-defined name of a VolumeSnapshot object.

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

spec.volumeSnapshotClassName

+

Name of the VolumeSnapshotClass object.

+

--

+

spec.source.persistentVolumeClaimName

+

Name of the source PVC object.

+

Name of the source PVC of the snapshot

+
+ +## Prerequisites{#section1236201420471} + +- The source PVC exists, and the backend where the PVC resides supports VolumeSnapshot creation. For details about the storage devices that support VolumeSnapshot creation, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support VolumeSnapshot creation, see [Table 1](/docs/compatibility-and-features/kubernetes-feature-matrix#table134589135522). +- The volume snapshot component CRD on which the running of Huawei CSI depends has been installed. For details, see [Checking Volume Snapshot-Dependent Components](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components). +- A VolumeSnapshotClass that uses Huawei CSI exists in the system. + +## Procedure{#section1678012285209} + +1. Run the following command to create a VolumeSnapshot using the created VolumeSnapshot configuration file. + + ``` + kubectl create -f mysnapshot.yaml + ``` + +2. Run the following command to view the information about the created VolumeSnapshot. + + ``` + kubectl get volumesnapshot + ``` + + The following is an example of the command output. + + ``` + NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE + mysnapshot true mypvc 100Gi mysnapclass snapcontent-1009af0a-24c2-4435-861c-516224503f2d 78s + ``` + diff --git a/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md new file mode 100644 index 0000000..25ef504 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md @@ -0,0 +1,100 @@ +--- +title: "Configuring a VolumeSnapshotClass" +linkTitle: "Configuring a VolumeSnapshotClass" +description: +weight: 2 +--- + +[VolumeSnapshotClass](https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes/) provides a way to describe the "classes" of storage when provisioning a VolumeSnapshot. Each VolumeSnapshotClass contains the **driver**, **deletionPolicy**, and **parameters** fields, which are used when a VolumeSnapshot belonging to the class needs to be dynamically provisioned. + +The name of a VolumeSnapshotClass object is significant, and is how users can request a particular class. Administrators set the name and other parameters of a class when first creating VolumeSnapshotClass objects, and the objects cannot be updated once they are created. + +The following is an example of a VolumeSnapshotClass used by Huawei CSI: + +- If api-versions in your environment supports v1, use the following example: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1 + kind: VolumeSnapshotClass + metadata: + name: mysnapclass + driver: csi.huawei.com + deletionPolicy: Delete + ``` + +- If api-versions in your environment supports v1beta1, use the following example: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1beta1 + kind: VolumeSnapshotClass + metadata: + name: mysnapclass + driver: csi.huawei.com + deletionPolicy: Delete + ``` + +- If api-versions in your environment supports both v1 and v1beta1, v1 is recommended. + +You can modify the parameters according to [Table 1](#en-us_topic_0254162578_table189495491346). Currently, Huawei CSI does not support user-defined parameters \(**parameters**\) in a VolumeSnapshotClass. Therefore, you are advised to create a VolumeSnapshotClass for all snapshots. + +**Table 1** VolumeSnapshotClass parameters + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

metadata.name

+

User-defined name of a VolumeSnapshotClass object.

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

driver

+

driver identifier. This parameter is mandatory.

+

Set this parameter to the driver name set during Huawei CSI installation. The default driver name is csi.huawei.com.

+

deletionPolicy

+

Snapshot deletion policy. This parameter is mandatory. The value can be:

+
  • Delete
  • Retain
+
  • If the deletion policy is Delete, the snapshot on the storage device will be deleted together with the VolumeSnapshotContent object.
  • If the deletion policy is Retain, the snapshot and VolumeSnapshotContent object on the storage device will be retained.
+
+ +## Prerequisites{#section549623219322} + +Huawei CSI supports snapshots, and the volume snapshot component CRD on which its running depends has been installed. For details about the CRD, see [Checking Volume Snapshot-Dependent Components](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components). For details about the Kubernetes versions that support VolumeSnapshot creation, see [Table 1](/docs/compatibility-and-features/kubernetes-feature-matrix#table134589135522). + +## Procedure{#section187667882011} + +1. Run the following command to create a VolumeSnapshotClass using the created VolumeSnapshotClass configuration file. + + ``` + kubectl create -f mysnapclass.yaml + ``` + +2. Run the following command to view the information about the created VolumeSnapshotClass. + + ``` + kubectl get volumesnapshotclass + ``` + + The following is an example of the command output. + + ``` + NAME DRIVER DELETIONPOLICY AGE + mysnapclass csi.huawei.com Delete 25s + ``` + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md new file mode 100644 index 0000000..dd48670 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md @@ -0,0 +1,20 @@ +--- +title: "Managing a PVC" +linkTitle: "Managing a PVC" +description: +weight: 1 +--- + +Based on service requirements, files in containers need to be persistently stored on disks. When the containers are re-built or re-allocated to new nodes, the persistent data can still be used. + +To persistently store data on storage devices, you need to use the [PersistentVolume \(PV\)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) and [PersistentVolumeClaim \(PVC\)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) when provisioning containers. + +- PV: a piece of storage in the Kubernetes cluster that has been provisioned by an administrator or dynamically provisioned using a [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/). +- PVC: a request for storage by a user. A PVC consumes PV resources. A PVC can request specific size and access modes. For example, a PV can be mounted in ReadWriteOnce, ReadOnlyMany, or ReadWriteMany mode. For details, see [Access Modes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes). + +This section describes how to use Huawei CSI to create, expand the capacity of, and clone a PV/PVC, as well as create a PVC using a snapshot. + + + + + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md new file mode 100644 index 0000000..bc5779f --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md @@ -0,0 +1,45 @@ +--- +title: "Cloning a PVC" +linkTitle: "Cloning a PVC" +description: +weight: 3 +--- + +This section describes how to clone a PVC. + +When cloning a PVC, you need to specify the data source. The following is a simple example of cloning a PVC. In this example, **mypvc** is used as the data source and a PVC named **myclone** is created. + +```yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: myclone +spec: + storageClassName: mysc + dataSource: + name: mypvc + kind: PersistentVolumeClaim + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +``` + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- The specified **storageClassName** must be the same as the StorageClass of the source volume in **dataSource**. +>- The capacity of the clone volume must be greater than or equal to that of the source volume. Equal capacity is recommended. + +## Prerequisites{#section349216304616} + +The source PVC already exists in the system, and the backend where the source PVC resides supports cloning. For details about the storage devices that support cloning, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support cloning, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). + +## Procedure{#en-us_topic_0254212544_section319012981414} + +1. Run the following command to create a PVC based on the configuration file of the clone volume. + + ``` + kubectl create -f myclone.yaml + ``` + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md new file mode 100644 index 0000000..94c6900 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md @@ -0,0 +1,46 @@ +--- +title: "Creating a PVC Using a Snapshot" +linkTitle: "Creating a PVC Using a Snapshot" +description: +weight: 4 +--- + +This section describes how to create a PVC using a snapshot. + +When creating a PVC, you need to specify the data source. The following is a simple example of creating a PVC using a snapshot. In this example, **mysnapshot** is used as the data source and a PVC named **myrestore** is created. + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myrestore +spec: + storageClassName: mysc + dataSource: + name: mysnapshot + kind: VolumeSnapshot + apiGroup: snapshot.storage.k8s.io + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Gi +``` + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- The specified **storageClassName** must be the same as the StorageClass of the snapshot source volume in **dataSource**. +>- The capacity of the clone volume must be greater than or equal to that of the snapshot. Equal capacity is recommended. + +## Prerequisites{#en-us_topic_0254212585_section0772716133710} + +A snapshot already exists in the system, and the backend where the snapshot resides supports cloning. For details about the storage devices that support PVC creation using a snapshot, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support PVC creation using a snapshot, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). + +## Procedure{#en-us_topic_0254212585_section1882544631619} + +1. Run the following command to create a PVC based on the configuration file for creating a volume using a snapshot. + + ``` + kubectl create -f myrestore.yaml + ``` + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md new file mode 100644 index 0000000..18521a8 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md @@ -0,0 +1,17 @@ +--- +title: "Creating a PVC" +linkTitle: "Creating a PVC" +description: +weight: 1 +--- + +Huawei CSI allows storage resources \(LUNs or file systems\) to be created on Huawei storage and provided for containers based on user settings. For details about the supported features, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) or [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). + +A PVC can be created in dynamic volume provisioning or static volume provisioning mode. + +- Dynamic volume provisioning does not require a PV to be created in advance. Huawei CSI automatically creates resources required by a PV on storage devices based on a StorageClass. In addition, you can create a PV when creating a PVC. +- Static volume provisioning requires the administrator to create required resources on a storage device in advance and use existing resources by creating a PV. In addition, you can specify the associated PV when creating a PVC. + + + + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md new file mode 100644 index 0000000..5fc7c9f --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md @@ -0,0 +1,113 @@ +--- +title: "Dynamic Volume Provisioning" +linkTitle: "Dynamic Volume Provisioning" +description: +weight: 1 +--- + +Dynamic volume provisioning allows storage volumes to be created on demand. Dynamic volume provisioning depends on the StorageClass objects. The cluster administrator can define multiple StorageClass objects as required and specify a StorageClass that meets service requirements when declaring a PV or PVC. When applying for resources from Huawei storage devices, Huawei CSI creates storage resources that meet service requirements based on the preset StorageClass. + +To implement dynamic volume provisioning, perform the following steps: + +- Configuring a StorageClass +- Configuring a PVC + +## Configuring a StorageClass{#section176901147144516} + +1. Create a StorageClass configuration file, for example, **mysc.yaml**, based on service requirements by referring to [StorageClass Configuration Examples in Typical Dynamic Volume Provisioning Scenarios](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios) and [StorageClass Parameters for Dynamic Volume Provisioning](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning). +2. Run the following command to create a StorageClass using the configuration file. + + ``` + kubectl apply -f mysc.yaml + ``` + +3. Run the following command to view the information about the created StorageClass. + + ``` + kubectl get sc mysc + ``` + + The following is an example of the command output. + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate true 8s + ``` + +## Configuring a PVC{#section17522101915500} + +1. Based on service requirements, modify specific parameters by referring to the description in this section and the PVC configuration file example to generate the PVC configuration file to be created, for example, the **mypvc.yaml** file in this example. + + ```yaml + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mypvc + spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + storageClassName: mysc + resources: + requests: + storage: 100Gi + ``` + +2. Run the following command to create a PVC using the configuration file. + + ``` + kubectl create -f mypvc.yaml + ``` + +3. After a period of time, run the following command to view the information about the created PVC. + + ``` + kubectl get pvc mypvc + ``` + + The following is an example of the command output. If the PVC status is **Bound**, the PVC has been created and can be used by a Pod. + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) + >- After the PVC is created, if the PVC is in the **Pending** state after a long time \(for example, one minute\), refer to [When a PVC Is Created, the PVC Is in the Pending State](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state). + >- You are advised to create or delete a maximum of 100 PVCs in a batch. + +## Using a PVC{#section8172141413917} + +After a PVC is created, you can use the PVC to create a Pod. The following is a simple example of using a PVC. In this example, the created Pod uses the newly created _mypvc_. + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + selector: + matchLabels: + app: nginx + replicas: 2 + template: + metadata: + labels: + app: nginx + spec: + containers: + - image: nginx:alpine + name: container-0 + volumeMounts: + - mountPath: /tmp + name: pvc-mypvc + restartPolicy: Always + volumes: + - name: pvc-mypvc + persistentVolumeClaim: + claimName: mypvc # name of PVC +``` + + + + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md new file mode 100644 index 0000000..076b229 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md @@ -0,0 +1,155 @@ +--- +title: "PVC Parameters for Dynamic Volume Provisioning" +linkTitle: "PVC Parameters for Dynamic Volume Provisioning" +description: +weight: 3 +--- + +After configuring a StorageClass, you can use the StorageClass to configure a PVC. For details about the PVC configuration template, see example file **pvc**_\*_**.yaml** in the **examples** directory in Huawei CSI software package. + +**Table 1** Parameters in the pvc\*.yaml file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

metadata.name

+

User-defined name of a PVC object.

+

Yes

+

-

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

spec.volumeMode

+

Volume mode. This parameter is optional. When LUN volumes are used, the following types are supported:

+
  • Filesystem: local file system.
  • Block: raw device.
+

No

+

Filesystem

+

This parameter takes effect when a PV is mounted. The default value is Filesystem.

+
  • Filesystem indicates that a container accesses a PV using a local file system. The local file system type is specified by the fsType field in the specified StorageClass. Storage of the Dtree type also uses this parameter.
  • Block indicates that a PV is accessed in raw volume mode.
+

spec.storageClassName

+

Name of the StorageClass object.

+

Yes

+

-

+

Name of the StorageClass object required by services.

+

spec.resources.requests.storage

+

Size of the volume to be created. The format is ***Gi and the unit is GiB. The size must be an integer multiple of 512 bytes.

+

Yes

+

10Gi

+

The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see Table 2. If XFS file systems are used, see Table 3. If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version.

+

If the PVC capacity does not meet the specifications, a PVC or Pod may fail to be created due to the limitations of storage specifications or host file system specifications.

+

spec.accessModes

+

Access mode of the volume.

+
  • RWO (ReadWriteOnce): A volume can be mounted to a node in read/write mode. This mode also allows multiple Pods running on the same node to access the volume.
  • ROX (ReadOnlyMany): A volume can be mounted to multiple nodes in read-only mode.
  • RWX (ReadWriteMany): A volume can be mounted to multiple nodes in read/write mode.
  • RWOP (ReadWriteOncePod): A volume can only be mounted to a single Pod in read/write mode. Kubernetes 1.22 and later versions support this feature.
+

Yes

+

ReadWriteOnce

+
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
+
+ +**Table 2** ext4 capacity specifications + + + + + + + + + + + + + + + + + + + +

Storage Type

+

Storage Specifications

+

ext4 Specifications

+

CSI Specifications

+

OceanStor Dorado 6.1.2

+

512 Ki to 256 Ti

+

50 Ti

+

512 Ki to 50 Ti

+

OceanStor Pacific series 8.1.0

+

64 Mi to 512 Ti

+

50 Ti

+

64 Mi to 50 Ti

+
+ +**Table 3** XFS capacity specifications + + + + + + + + + + + + + + + + + + + +

Storage Type

+

Storage Specifications

+

XFS Specifications

+

CSI Specifications

+

OceanStor Dorado 6.1.2

+

512 Ki to 256 Ti

+

500 Ti

+

512 Ki to 500 Ti

+

OceanStor Pacific series 8.1.0

+

64 Mi to 512 Ti

+

500 Ti

+

64 Mi to 500 Ti

+
+ diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md new file mode 100644 index 0000000..ce1c897 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md @@ -0,0 +1,310 @@ +--- +title: "StorageClass Configuration Examples in Typical Dynamic Volume Provisioning Scenarios" +linkTitle: "StorageClass Configuration Examples in Typical Dynamic Volume Provisioning Scenarios" +description: +weight: 1 +--- + +A [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/) provides administrators with methods to describe a storage "class". Different types may map to a different group of capability definitions. Kubernetes cluster users can dynamically provision volumes based on a StorageClass. + +If SAN storage is used, refer to example file **/examples/sc-lun.yaml**. If NAS storage is used, refer to example file **/examples/sc-fs.yaml**. + +For details about how to configure a StorageClass in typical scenarios, see the following examples: + +- [Setting the Backend and Storage Pool in a StorageClass](#section114859014540) +- [Setting the NFS Access Mode in a StorageClass](#section128347019144) +- [Setting a Dtree Type in a StorageClass](#section1642719478395) +- [Setting the Local File System Access Mode in a StorageClass](#section1155962772514) +- [Setting the DPC Access Mode in a StorageClass](#section022191784519) +- [Setting an Application Type in a StorageClass](#section576688153313) +- [Setting a Soft Quota in a StorageClass](#section73983205817) +- [Setting HyperMetro in a StorageClass](#section12170214277) +- [Setting the Permission on a Mount Directory in a StorageClass](#section156891316272) +- [Setting QoS in a StorageClass](#section1016612587584) +- [Configuring a StorageClass on the CCE or CCE Agile Platform](#section132301459161017) + +## Setting the Backend and Storage Pool in a StorageClass{#section114859014540} + +If multiple Huawei backends are configured in a Kubernetes cluster or a Huawei backend provides multiple storage pools, you are advised to configure the specified backend and storage pool information in the StorageClass. This prevents Huawei CSI from randomly selecting backends and storage pools and ensures that the storage device where the volume resides complies with the plan. + +For details about how to set the backend and storage pool for SAN storage, see the following configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "san-181" # Enter the storage backend name. + pool: "pool001" # Enter the storage pool name + volumeType: lun + allocType: thin +``` + +For details about how to set the backend and storage pool for NAS storage, see the following configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "san-181" # Enter the storage backend name. + pool: "pool001" # Enter the storage pool name + volumeType: fs + allocType: thin + authClient: "*" +``` + +## Setting the NFS Access Mode in a StorageClass{#section128347019144} + +When a container uses an NFS file system as a storage resource, refer to the following configuration example. In this example, NFS version 4.1 is specified for mounting. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-nas-181 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "192.168.0.10;192.168.0.0/24;myserver1.test" +mountOptions: + - nfsvers=4.1 # Specify the version 4.1 for NFS mounting. +``` + +## Setting a Dtree Type in a StorageClass{#section1642719478395} + +When a container uses a Dtree as a storage resource, refer to the following configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-dtree + volumeType: dtree # Set the volume type to dtree. + allocType: thin + authClient: "*" +mountOptions: + - nfsvers=4.1 +``` + +## Setting the Local File System Access Mode in a StorageClass{#section1155962772514} + +If a container uses a LUN of enterprise storage or distributed storage as a storage resource and a file system needs to be formatted as a local file system, refer to the following example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-lun-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs +``` + +## Setting the DPC Access Mode in a StorageClass{#section022191784519} + +If a container uses OceanStor Pacific series storage and the storage supports DPC-based access, you can configure mounting parameters for DPC-based access in the StorageClass. In this example, **acl** is used as the authentication parameter for mounting, and **cnflush** is used to set the asynchronous disk flushing mode. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-dpc-101 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "*" +mountOptions: + - acl # Set the authentication parameter. + - cnflush # Set the asynchronous disk flushing mode. +``` + +## Setting an Application Type in a StorageClass{#section576688153313} + +When a container uses a LUN of OceanStor Dorado as the storage, if the default application type of the storage cannot meet the I/O model requirements of some services \(for example, the container provides the database OLAP service\), you can configure an application type in the StorageClass to improve storage performance. For details about the application types to be used, see the product documentation of the corresponding storage product. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-lun-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs + applicationType: Oracle_OLAP # Set the application type. +``` + +## Setting a Soft Quota in a StorageClass{#section73983205817} + +If a container uses a file system of OceanStor Pacific series as the storage, you can configure a soft quota in the StorageClass. The following is a configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-pacific-101 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "*" + storageQuota: '{"spaceQuota": "softQuota", "gracePeriod": 100}' # Configure the soft quota. +mountOptions: + - nfsvers=3 +``` + +## Setting QoS in a StorageClass{#section1016612587584} + +When containers use enterprise storage or distributed storage as storage resources, you can set QoS for the storage resources used by containers to ensure that the storage read and write operations of these containers meet certain service levels. + +Storage devices of different models or versions support different QoS settings. For details about how to find the configuration items of the corresponding storage devices, see [Table 2](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning#table74841513116). In this example, the backend is OceanStor Dorado. For other storage devices, refer to this example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-qos-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs + qos: '{"IOTYPE": 2, "MINIOPS": 1000}' # Configure QoS. +``` + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>- vStore users of OceanStor V5 cannot configure QoS policies. +>- The QoS configuration takes effect only on the newly created PVC. QoS cannot be added automatically for PVCs with the same StorageClass name that have been provisioned. + +## Setting HyperMetro in a StorageClass{#section12170214277} + +When a container uses an NFS HyperMetro file system as a storage resource, refer to the following configuration example. In this example, the used backend supports HyperMetro, and **hyperMetro** is set to **true**. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-hypermetro-dorado-181 + pool: pool001 + volumeType: fs + hyperMetro: "true" # Provision HyperMetro volumes. + allocType: thin + authClient: "*" +``` + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>- Before provisioning a NAS HyperMetro volume, you need to configure the HyperMetro relationship between two storage devices, including the remote device, HyperMetro domain, and the like. The HyperMetro domain of the file system can only work in HyperMetro active-active \(AA\) mode. For details about the configuration operation, see the product documentation of the corresponding storage model. +>- If a storage device is faulty, the logical management port may fail over. In this case, you need to manually clear the corresponding storage resources after deleting the NAS HyperMetro volume. + +## Setting the Permission on a Mount Directory in a StorageClass{#section156891316272} + +To modify the permission on a mount directory in a container, you can configure the directory permission in a StorageClass. The following is a configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + volumeType: fs + allocType: thin + authClient: "*" + fsPermission: "777" + rootSquash: "no_root_squash" # Only NAS storage supports this parameter. + allSquash: "no_all_squash" # Only NAS storage supports this parameter. +``` + +After the StorageClass configuration is complete, perform the following steps to create a StorageClass. + +1. Run the following command to create a StorageClass based on the .yaml file. + + ``` + kubectl create -f mysc.yaml + ``` + +2. Run the following command to view the information about the created StorageClass. + + ``` + kubectl get sc + ``` + + The following is an example of the command output. + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate false 34s + ``` + + After creating a StorageClass, you can use the StorageClass to create a PV or PVC. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>Pay attention to the following when using a StorageClass: +>- Modifications to a StorageClass do not take effect on existing PVs. You need to delete these PVs and create them again using the modified StorageClass to apply the modified parameters. + +## Configuring a StorageClass on the CCE or CCE Agile Platform{#section132301459161017} + +Create a StorageClass of the NAS type on the CCE or CCE Agile platform. The following is a configuration example. The value of **provisioner** must be the same as that of **driverName** in the **values.yaml** file. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc + annotations: + storageclass.kubernetes.io/storageType: file +provisioner: csi.oceanstor.com +allowVolumeExpansion: true +parameters: + volumeType: fs + allocType: thin + authClient: "*" +``` + +Create a StorageClass of the Block type on the CCE or CCE Agile platform. The following is a configuration example. The value of **provisioner** must be the same as that of **driverName** in the **values.yaml** file. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc + annotations: + storageclass.kubernetes.io/storageType: block +provisioner: csi.oceanstor.com +allowVolumeExpansion: true +parameters: + volumeType: lun + allocType: thin +``` + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md new file mode 100644 index 0000000..134afb7 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md @@ -0,0 +1,612 @@ +--- +title: "StorageClass Parameters for Dynamic Volume Provisioning" +linkTitle: "StorageClass Parameters for Dynamic Volume Provisioning" +description: +weight: 2 +--- + +**Table 1** StorageClass configuration parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

metadata.name

+

User-defined name of a StorageClass object.

+

Yes

+

-

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

provisioner

+

Name of the provisioner.

+

Yes

+

csi.huawei.com

+

Set this parameter to the driver name set during Huawei CSI installation.

+

The value is the same as that of driverName in the values.yaml file.

+

reclaimPolicy

+

Reclamation policy. The following types are supported:

+
  • Delete: Resources are automatically reclaimed.
  • Retain: Resources are manually reclaimed.
+

No

+

Delete

+
  • Delete: When a PV/PVC is deleted, resources on the storage device are also deleted.
  • Retain: When a PV/PVC is deleted, resources on the storage device are not deleted.
+

allowVolumeExpansion

+

Whether to allow volume expansion. If this parameter is set to true, the capacity of the PV that uses the StorageClass can be expanded.

+

No

+

false

+

This function can only be used to expand PV capacity but cannot be used to reduce PV capacity.

+

The PV capacity expansion function is supported in Kubernetes 1.14 (alpha) and later versions.

+

parameters.backend

+

Name of the backend where the resource to be created is located.

+

No

+

-

+

If this parameter is not set, Huawei CSI will randomly select a backend that meets the capacity requirements to create resources.

+

You are advised to specify a backend to ensure that the created resource is located on the expected backend.

+

parameters.pool

+

Name of the storage resource pool where the resource to be created is located. If this parameter is set, parameters.backend must also be specified.

+

No

+

-

+

If this parameter is not set, Huawei CSI will randomly select a storage pool that meets the capacity requirements from the selected backend to create resources. You are advised to specify a storage pool to ensure that the created resource is located in the expected storage pool.

+

parameters.volumeType

+

Type of the volume to be created. The following types are supported:

+
  • lun: A LUN is provisioned on the storage side.
  • fs: A file system is provisioned on the storage side.
  • dtree: A volume of the Dtree type is provisioned on the storage side.
+

Yes

+

-

+
  • If NAS storage is used, this parameter must be set to fs.
  • If SAN storage is used, this parameter must be set to lun.
  • If NAS storage of the Dtree type is used, this parameter must be set to dtree.
+

parameters.allocType

+

Allocation type of the volume to be created. The following types are supported:

+
  • thin: Not all required space is allocated during creation. Instead, the space is dynamically allocated based on the usage.
  • thick: All required space is allocated during creation.
+

No

+

-

+

If this parameter is not specified, thin will be used. Not all required space is allocated during creation. Instead, the space is dynamically allocated based on the usage.

+

OceanStor Dorado/OceanStor Dorado V3 does not support thick.

+

parameters.fsType

+

Type of a host file system. The supported types are:

+
  • ext2
  • ext3
  • ext4
  • xfs
+

No

+

ext4

+

This parameter is valid only when volumeType of a StorageClass is set to lun and volumeMode of a PVC is set to Filesystem.

+

parameters.authClient

+

IP address of the NFS client that can access the volume. This parameter is mandatory when volumeType is set to fs.

+

You can enter the client host name (a full domain name is recommended), client IP address, or client IP address segment.

+

Conditionally mandatory

+

-

+

The asterisk (*) can be used to indicate any client. If you are not sure about the IP address of the access client, you are advised to use the asterisk (*) to prevent the client access from being rejected by the storage system.

+

If the client host name is used, you are advised to use the full domain name.

+

The IP addresses can be IPv4 addresses, IPv6 addresses, or a combination of IPv4 and IPv6 addresses.

+

You can enter multiple host names, IP addresses, or IP address segments and separate them with semicolons (;) or spaces or by pressing Enter. Example: 192.168.0.10;192.168.0.0/24;myserver1.test

+

parameters.cloneSpeed

+

Cloning speed. The value ranges from 1 to 4.

+

No

+

3

+

4 indicates the highest speed. This parameter is available when you clone a PVC or create a PVC using a snapshot. For details, see Cloning a PVC or Creating a PVC Using a Snapshot.

+

parameters.applicationType

+

Application type name for creating a LUN or NAS when the backend is OceanStor Dorado.

+

No

+

-

+
  • If the value of volumeType is lun, log in to DeviceManager and choose Services > Block Service > LUN Groups > LUNs > Create to obtain the application type name.
  • If the value of volumeType is fs, log in to DeviceManager and choose Services > File Service > File Systems > Create to obtain the application type name.
+

parameters.qos

+

LUN/NAS QoS settings of the PV on the storage side.

+

The value of the parameter is JSON character strings in dictionary format. A character string is enclosed by single quotation marks and the dictionary key by double quotation marks. Example: '{"maxMBPS": 999, "maxIOPS": 999}'

+

No

+

-

+

For details about the supported QoS configurations, see Table 2.

+

parameters.storageQuota

+

Quota of a PV on the storage device. This parameter is valid only when NAS is used for connecting to OceanStor Pacific series storage.

+

The value of the parameter is JSON character strings in dictionary format. A character string is enclosed by single quotation marks and the dictionary key by double quotation marks. Example: '{"spaceQuota": "softQuota", "gracePeriod": 100}'

+

No

+

-

+

For details about the supported quota configurations, see Table 3.

+

parameters.hyperMetro

+

Whether a HyperMetro volume is to be created. This parameter needs to be configured when the backend is of the HyperMetro type.

+
  • "true": The created volume is a HyperMetro volume. If the storage backend is a HyperMetro backend, the value must be true.
  • "false": The created volume is a common volume.
+

Conditionally mandatory

+

false

+

When the used backend is a HyperMetro backend and a HyperMetro volume needs to be provisioned, set this parameter to true. If this parameter is set to false, services may be interrupted if the logical management port connected to the backend fails over.

+

parameters.metroPairSyncSpeed

+

Data synchronization speed of a HyperMetro pair. The value ranges from 1 to 4.

+

The value can be:

+
  • 1: low
  • 2: medium
  • 3: high
  • 4: highest
+

No

+

-

+

The configuration takes effect when a HyperMetro volume is created.

+

Note:

+
  • If this parameter is not configured, the storage speed of the HyperMetro pair is determined by the storage device.
  • The highest synchronization speed may increase the host latency.
+

parameters.fsPermission

+

Permission on the directory mounted to a container.

+

No

+

-

+

For details about the configuration format, refer to the Linux permission settings, for example, 777 and 755.

+

All SAN storage devices are supported. Only the following NAS storage devices are supported: OceanStor Dorado, OceanStor, and OceanStor Pacific 8.1.2 and later versions.

+

parameters.rootSquash

+

Controls the root permission of the client.

+

The value can be:

+
  • root_squash: The client cannot access the storage system as user root. If a client accesses the storage system as user root, the client will be mapped as an anonymous user.
  • no_root_squash: A client can access the storage system as user root and has the permission of user root.
+

No

+

-

+

Only NAS storage is supported.

+

parameters.allSquash

+

Whether to retain the user ID (UID) and group ID (GID) of a shared directory.

+

The value can be:

+
  • all_squash: The UID and GID of the shared directory are mapped to anonymous users.
  • no_all_squash: The UID and GID of the shared directory are retained.
+

No

+

-

+

Only NAS storage is supported.

+

parameters.accesskrb5

+

Configures the krb5 security protocol.

+
  • read_only: read-only
  • read_write: read and write
  • none: no permission
+

No

+

-

+

During mounting, you can specify the sec parameter in mountOptions.

+

parameters.accesskrb5i

+

Configures the krb5i security protocol.

+
  • read_only: read-only
  • read_write: read and write
  • none: no permission
+

No

+

-

+

During mounting, you can specify the sec parameter in mountOptions.

+

parameters.accesskrb5p

+

Configures the krb5p security protocol.

+
  • read_only: read-only
  • read_write: read and write
  • none: no permission
+

No

+

-

+

During mounting, you can specify the sec parameter in mountOptions.

+

parameters.snapshotDirectoryVisibility

+

Whether the snapshot directory is visible.

+

The value can be:

+
  • visible: The snapshot directory is visible.
  • invisible: The snapshot directory is invisible.
+

No

+

-

+

Only NAS storage is supported.

+

parameters.reservedSnapshotSpaceRatio

+

Configures reserved snapshot space.

+

Value type: character string

+

Value range: 0 to 50

+

No

+

-

+

OceanStor Dorado 6.1.5+ and OceanStor 6.1.5+ NAS storage devices are supported.

+

parameters.description

+

Configures the description of the created file system or LUN.

+

Value type: character string

+

The value contains 0 to 255 characters.

+

No

+

-

+

Only enterprise storage file systems and LUNs are supported.

+

mountOptions.nfsvers

+

NFS mount option on the host. The following mount option is supported:

+

nfsvers: protocol version for NFS mounting. The value can be 3, 4, 4.0, 4.1, or 4.2.

+

No

+

-

+

This parameter is optional after the -o parameter when the mount command is executed on the host. The value is in list format.

+

If the NFS version is specified for mounting, NFS 3, 4.0, 4.1, and 4.2 protocols are supported (the protocol must be supported and enabled on storage devices). If nfsvers is set to 4, the latest protocol version NFS 4 may be used for mounting due to different OS configurations, for example, 4.2. If the 4.0 protocol is required, you are advised to set nfsvers to 4.0.

+

mountOptions.acl

+

The DPC namespace supports the ACL function. The DPC client supports POSIX ACL, NFSv4 ACL, and NT ACL authentication.

+

No

+

-

+

The descriptions of acl, aclonlyposix, cnflush, and cflush are for reference only. For details about the parameters, see OceanStor Pacific Series Product Documentation and choose Configuration > Basic Service Configuration Guide for File > Configuring Basic Services (DPC Scenario) > Accessing a DPC Share on a Client > Step 2.

+

mountOptions.aclonlyposix

+

The DPC namespace supports POSIX ACL, and the DPC client supports POSIX ACL authentication.

+

The following protocols support POSIX ACL: DPC, NFSv3, and HDFS. If NFSv4 ACL or NT ACL is used, the DPC client cannot identify the ACL of this type. As a result, the ACL of this type does not take effect.

+

No

+

-

+

If aclonlyposix and acl are used together, only acl takes effect. That is, the namespace supports the ACL function.

+

mountOptions.cnflush

+

Asynchronous disk flushing mode. That is, data is not flushed to disks immediately when files in the namespace are closed.

+

No

+

-

+

Asynchronous flushing mode: When a file is closed, data in the cache is not flushed to storage media in synchronous mode. Instead, data is written from the cache to the storage media in asynchronous flushing mode. After the write service is complete, data is flushed from the cache to disks periodically based on the flushing period. In a multi-client scenario, if concurrent operations are performed on the same file, the file size update is affected by the disk flushing period. That is, the file size is updated only after the disk flushing is complete. Generally, the update is completed within several seconds. Synchronous I/Os are not affected by the disk flushing period.

+

mountOptions.cflush

+

Synchronous disk flushing mode. That is, data is flushed to disks immediately when files in the namespace are closed.

+

No

+

-

+

By default, the synchronous disk flushing mode is used.

+

mountOptions.sec

+

Kerberos 5 protocol for mounting NFS file systems.

+

No

+

-

+
  • If Kerberos 5 is used, set this parameter to krb5.
  • If Kerberos 5i is used, set this parameter to krb5i.
  • If Kerberos 5p is used, set this parameter to krb5p.
  • Kerberos supports only NFSv4.0 or NFSv4.1.
+

mountOptions.proto

+

Transmission protocol used for NFS mounting.

+

The value can be rdma.

+

No

+

-

+
  • Ensure that NFS over RDMA is enabled on the storage system.
  • NAS storage of OceanStor Dorado 6.1.7 or later is supported.
+

mountOptions.port

+

Protocol port used for NFS mounting.

+

Conditionally mandatory

+

-

+

If the transmission protocol is rdma, set this parameter to 20049.

+

mountOptions.discard

+

Automatically triggers the Trim or Discard operation when a file system is mounted. This operation instructs a block device to release unused blocks.

+

No

+

-

+

The xfs and ext4 file systems are supported.

+
+ +**Table 2** Supported QoS configurations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Storage Type

+

Parameter

+

Description

+

Remarks

+

OceanStor V5

+

IOTYPE

+

Read/write type.

+

This parameter is optional. If it is not specified, the default value of the storage backend is used. For details, see related storage documents.

+

The value can be:

+
  • 0: read I/O
  • 1: write I/O
  • 2: read and write I/Os
+

MAXBANDWIDTH

+

Maximum bandwidth. This is a restriction policy parameter.

+

The value is an integer greater than 0, expressed in MB/s.

+

MINBANDWIDTH

+

Minimum bandwidth. This is a protection policy parameter.

+

The value is an integer greater than 0, expressed in MB/s.

+

MAXIOPS

+

Maximum IOPS. This is a restriction policy parameter.

+

The value is an integer greater than 0.

+

MINIOPS

+

Minimum IOPS. This is a protection policy parameter.

+

The value is an integer greater than 0.

+

LATENCY

+

Maximum latency. This is a protection policy parameter.

+

The value is an integer greater than 0, expressed in ms.

+

OceanStor Dorado V3

+

IOTYPE

+

Read/write type.

+

The value can be:

+
  • 2: read and write I/Os
+

MAXBANDWIDTH

+

Maximum bandwidth. This is a restriction policy parameter.

+

The value is an integer ranging from 1 to 999999999, expressed in MB/s.

+

MAXIOPS

+

Maximum IOPS. This is a restriction policy parameter.

+

The value is an integer ranging from 100 to 999999999.

+

OceanStor Dorado/OceanStor

+

IOTYPE

+

Read/write type.

+

The value can be:

+
  • 2: read and write I/Os
+

MAXBANDWIDTH

+

Maximum bandwidth. This is a restriction policy parameter.

+

The value is an integer ranging from 1 to 999999999, expressed in MB/s.

+

MINBANDWIDTH

+

Minimum bandwidth. This is a protection policy parameter.

+

The value is an integer ranging from 1 to 999999999, expressed in MB/s.

+

MAXIOPS

+

Maximum IOPS. This is a restriction policy parameter.

+

The value is an integer ranging from 100 to 999999999.

+

MINIOPS

+

Minimum IOPS. This is a protection policy parameter.

+

The value is an integer ranging from 100 to 999999999.

+

LATENCY

+

Maximum latency. This is a protection policy parameter.

+

The value can be 0.5 or 1.5, expressed in ms.

+

FusionStorage/OceanStor Pacific series

+

maxMBPS

+

Maximum bandwidth. This is a restriction policy parameter.

+

This parameter is mandatory. The value is an integer greater than 0, expressed in MB/s. For details about the maximum value, see the actual limit of the storage device. For example, the maximum value of OceanStor Pacific NAS is 1073741824.

+

maxIOPS

+

Maximum IOPS. This is a restriction policy parameter.

+

This parameter is mandatory. The value is an integer greater than 0. For details about the maximum value, see the actual limit of the storage device. For example, the maximum value of OceanStor Pacific NAS is 1073741824000.

+
+ +**Table 3** Supported quota configurations + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Remarks

+

spaceQuota

+

File quota type.

+

This parameter is mandatory. Only softQuota or hardQuota can be configured.

+

gracePeriod

+

Grace period allowed when the soft quota is configured.

+

This parameter is conditionally optional only when spaceQuota is set to softQuota.

+

The value is an integer ranging from 0 to 4294967294.

+
+ diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md new file mode 100644 index 0000000..c82e56b --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md @@ -0,0 +1,98 @@ +--- +title: "Manage Volume Provisioning" +linkTitle: "Manage Volume Provisioning" +description: +weight: 2 +--- + +Manage Volume Provisioning allows administrators to use resources created on storage as PVs and supports features of dynamic volumes, such as capacity expansion, snapshot, and clone. This is a custom capability of Huawei CSI. This feature applies to the following scenarios: + +- In the reconstruction containerized applications, existing storage volumes need to be used. +- The Kubernetes cluster is rebuilt. +- Storage data is migrated in disaster recovery \(DR\) scenarios. + +>![](/css-docs/public_sys-resources/en-us/icon-note.gif) +>In scenarios where multiple Kubernetes clusters are deployed, when Manage Volume Provisioning is used to manage the same storage resource, management operations performed on the PVC corresponding to the resource in any cluster will not be synchronized to other clusters. +>For example, when you expand the capacity of a PVC in a cluster, the capacity of the corresponding PVC in other clusters will not be automatically expanded. In this case, you need to manually expand the capacity in other clusters by running the expansion commands in [Expanding the Capacity of a PVC](/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc). + +## Prerequisites{#section65071656132313} + +- You have registered the storage where the volume to be managed resides with CSI. +- You have logged in to the storage device to obtain the name and capacity of the volume to be managed. + +## Configuring a StorageClass{#section19289935145} + +1. Create a StorageClass configuration file, for example, **mysc.yaml**, based on service requirements by referring to [StorageClass Configuration Examples in Typical Manage Volume Provisioning Scenarios](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios) and [StorageClass Parameters for Manage Volume Provisioning](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning). +2. Run the following command to create a StorageClass using the configuration file. + + ``` + kubectl apply -f mysc.yaml + ``` + +3. Run the following command to view the information about the created StorageClass. + + ``` + kubectl get sc mysc + ``` + + The following is an example of the command output. + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate true 8s + ``` + +## Configuring a PVC{#section1836215261144} + +1. Based on service requirements, modify specific parameters by referring to the description in this section and the PVC configuration file example to generate the PVC configuration file to be created, for example, the **mypvc.yaml** file in this example. + + ```yaml + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mypvc + annotations: + csi.huawei.com/manageVolumeName: "*" # Enter the storage resource name. + csi.huawei.com/manageBackendName: "*" # Enter the storage backend name. + labels: + provisioner: csi.huawei.com + spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + storageClassName: mysc + resources: + requests: + storage: 100Gi + ``` + +2. Run the following command to create a PVC using the configuration file. + + ``` + kubectl create -f mypvc.yaml + ``` + +3. After a period of time, run the following command to view the information about the created PVC. + + ``` + kubectl get pvc mypvc + ``` + + The following is an example of the command output. If the PVC status is **Bound**, the PVC has been created and can be used by a Pod. + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-notice.gif) + >- After the PVC is created, if the PVC is in the **Pending** state after a long time \(for example, one minute\), refer to [When a PVC Is Created, the PVC Is in the Pending State](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state). + >- You are advised to create or delete a maximum of 100 PVCs in a batch. + +## Using a PVC{#section847932614377} + +The use method is the same as that for dynamic volume provisioning in [Using a PVC](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning#section8172141413917). + + + + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md new file mode 100644 index 0000000..531f4a8 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md @@ -0,0 +1,184 @@ +--- +title: "PVC Parameters for Manage Volume Provisioning" +linkTitle: "PVC Parameters for Manage Volume Provisioning" +description: +weight: 3 +--- + +After configuring a StorageClass, you can use the StorageClass to configure a PVC. For details about the PVC configuration template, see example file **pvc-manager.yaml** in the **examples** directory in Huawei CSI software package. + +**Table 1** Parameters in the pvc-manager.yaml file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

metadata.annotations

+

PVC object annotations. Set the following parameters:

+
  • Driver name/manageVolumeName: volume name on the storage.
  • Driver name/manageBackendName: name of the backend to which the volume belongs.
+

Yes

+

csi.huawei.com/manageVolumeName: * csi.huawei.com/manageBackendName: *

+
  • For details about how to obtain Driver name, see Table 4.
  • Driver name/manageVolumeName: name of an existing volume on the storage. Only English characters are supported.
  • Driver name/manageBackendName: name of the storage backend in CSI.
+

You can run the oceanctl get backend -n huawei-csi command to obtain the backend name.

+

metadata.labels

+

PVC object labels.

+

No

+

-

+

Format: provisioner: Driver name specified during installation

+

Example: provisioner: csi.huawei.com

+

This parameter takes effect when a PVC is created. It is used to listen to PVC resources and obtain information about metadata.annotations.

+

metadata.name

+

User-defined name of a PVC object.

+

Yes

+

-

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

spec.volumeMode

+

Volume mode. This parameter is optional. When LUN volumes are used, the following types are supported:

+
  • Filesystem: local file system.
  • Block: raw device.
+
NOTE:

This parameter takes effect when a PV is mounted. The use method of this parameter must be the same as that of the managed volume.

+
  • If a volume is used as a raw volume before being managed, volumeMode must be set to Block.
  • If a volume is used in ext2, ext3, or ext4 mode before being managed, volumeMode must be set to Filesystem and fsType in the StorageClass must be set to ext2, ext3, or ext4.
  • If a volume is used in XFS mode before being managed, volumeMode must be set to Filesystem and fsType in the StorageClass must be set to xfs.
+
+

No

+

Filesystem

+

This parameter takes effect when a PV is mounted.

+
  • Filesystem indicates that a container accesses a PV using a local file system. The local file system type is specified by the fsType field in the specified StorageClass.
  • Block indicates that a PV is accessed in raw volume mode.
+

spec.storageClassName

+

Name of the StorageClass object.

+

Yes

+

-

+

The configuration of the StorageClass must be the same as that of the managed volume.

+

spec.resources.requests.storage

+

Size of the volume to be created. The format is ***Gi and the unit is GiB. The size must be an integer multiple of 512 bytes.

+

Yes

+

-

+

The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see Table 2. If XFS file systems are used, see Table 3. If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version.

+

If the PVC capacity does not meet the specifications, a PVC or Pod may fail to be created due to the limitations of storage specifications or host file system specifications.

+

spec.accessModes

+

Access mode of the volume.

+
  • RWO (ReadWriteOnce): A volume can be mounted to a node in read/write mode. This mode also allows multiple Pods running on the same node to access the volume.
  • ROX (ReadOnlyMany): A volume can be mounted to multiple nodes in read-only mode.
  • RWX (ReadWriteMany): A volume can be mounted to multiple nodes in read/write mode.
  • RWOP (ReadWriteOncePod): A volume can only be mounted to a single Pod in read/write mode. Kubernetes 1.22 and later versions support this feature.
+

Yes

+

ReadWriteOnce

+
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
+
+ +**Table 2** ext4 capacity specifications + + + + + + + + + + + + + + + + + + + +

Storage Type

+

Storage Specifications

+

ext4 Specifications

+

CSI Specifications

+

OceanStor Dorado 6.1.2

+

512 Ki to 256 Ti

+

50 Ti

+

512 Ki to 50 Ti

+

OceanStor Pacific series 8.1.0

+

64 Mi to 512 Ti

+

50 Ti

+

64 Mi to 50 Ti

+
+ +**Table 3** XFS capacity specifications + + + + + + + + + + + + + + + + + + + +

Storage Type

+

Storage Specifications

+

XFS Specifications

+

CSI Specifications

+

OceanStor Dorado 6.1.2

+

512 Ki to 256 Ti

+

500 Ti

+

512 Ki to 500 Ti

+

OceanStor Pacific series 8.1.0

+

64 Mi to 512 Ti

+

500 Ti

+

64 Mi to 500 Ti

+
+ diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md new file mode 100644 index 0000000..4116587 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md @@ -0,0 +1,155 @@ +--- +title: "StorageClass Configuration Examples in Typical Manage Volume Provisioning Scenarios" +linkTitle: "StorageClass Configuration Examples in Typical Manage Volume Provisioning Scenarios" +description: +weight: 1 +--- + +For details about how to configure a StorageClass in typical Manage Volume Provisioning scenarios, see the following examples: + +- [Setting the Backend and Storage Pool in a StorageClass](#section114859014540) +- [Setting the NFS Access Mode in a StorageClass](#section128347019144) +- [Setting the Local File System Access Mode in a StorageClass](#section1155962772514) +- [Setting the DPC Access Mode in a StorageClass](#section022191784519) +- [Setting the Permission on a Mount Directory in a StorageClass](#section1356811882616) + +## Setting the Backend and Storage Pool in a StorageClass{#section114859014540} + +If multiple Huawei backends are configured in a Kubernetes cluster or a Huawei backend provides multiple storage pools, you are advised to configure the specified backend and storage pool information in the StorageClass. This prevents Huawei CSI from randomly selecting backends and storage pools and ensures that the storage device where the volume resides complies with the plan. + +For details about how to set the backend and storage pool for SAN storage, see the following configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "iscsi-san-181" + pool: "pool001" + volumeType: lun + allocType: thin +``` + +For details about how to set the backend and storage pool for NAS storage, see the following configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "iscsi-nas-181" + pool: "pool001" + volumeType: fs + allocType: thin + authClient: "*" +``` + +## Setting the NFS Access Mode in a StorageClass{#section128347019144} + +When a container uses an NFS file system as a storage resource, refer to the following configuration example. In this example, NFS version 4.1 is specified for mounting. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-nas-181 + pool: pool001 + volumeType: fs + allocType: thin +mountOptions: + - nfsvers=4.1 # Specify the version 4.1 for NFS mounting. +``` + +## Setting the Local File System Access Mode in a StorageClass{#section1155962772514} + +If a container uses a LUN of enterprise storage or distributed storage as a storage resource and a file system needs to be formatted as a local file system, refer to the following example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-lun-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs +``` + +## Setting the DPC Access Mode in a StorageClass{#section022191784519} + +If a container uses OceanStor Pacific series storage and the storage supports DPC-based access, you can configure mounting parameters for DPC-based access in the StorageClass. In this example, **acl** is used as the authentication parameter for mounting, and **cnflush** is used to set the asynchronous disk flushing mode. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-dpc-101 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "*" +mountOptions: + - acl # Set the authentication parameter. + - cnflush # Set the asynchronous disk flushing mode. +``` + +## Setting the Permission on a Mount Directory in a StorageClass{#section1356811882616} + +To modify the permission on a mount directory in a container, you can configure the directory permission in a StorageClass. The following is a configuration example. + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + volumeType: fs + allocType: thin + authClient: "*" + fsPermission: "777" # Set the directory permission. +``` + +After the StorageClass configuration is complete, perform the following steps to create a StorageClass. + +1. Run the following command to create a StorageClass based on the .yaml file. + + ``` + kubectl create -f mysc.yaml + ``` + +2. Run the following command to view the information about the created StorageClass. + + ``` + kubectl get sc + ``` + + The following is an example of the command output. + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate false 34s + ``` + + After creating a StorageClass, you can use the StorageClass to create a PV or PVC. + +>![](/css-docs/public_sys-resources/en-us/icon-notice.gif) +>In the Manage Volume Provisioning mode, pay attention to the following when using a StorageClass: +>- Modifications to a StorageClass do not take effect on existing PVs. You need to delete these PVs and create them again using the modified StorageClass to apply the modified parameters. + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md new file mode 100644 index 0000000..22fe98d --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md @@ -0,0 +1,243 @@ +--- +title: "StorageClass Parameters for Manage Volume Provisioning" +linkTitle: "StorageClass Parameters for Manage Volume Provisioning" +description: +weight: 2 +--- + +A [StorageClass](https://kubernetes.io/docs/concepts/storage/storage-classes/) provides administrators with methods to describe a storage "class". Different types may map to a different group of capability definitions. Kubernetes cluster users can dynamically provision volumes based on a StorageClass. + +A StorageClass supports the following parameters. + +If SAN storage is used, refer to example file **/examples/sc-lun.yaml**. If NAS storage is used, refer to example file **/examples/sc-fs.yaml**. + +**Table 1** StorageClass configuration parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

metadata.name

+

User-defined name of a StorageClass object.

+

Yes

+

-

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

provisioner

+

Name of the provisioner.

+

Yes

+

csi.huawei.com

+

Set this parameter to the driver name set during Huawei CSI installation.

+

The value is the same as that of driverName in the values.yaml file.

+

reclaimPolicy

+

Reclamation policy. The following types are supported:

+
  • Delete: Resources are automatically reclaimed.
  • Retain: Resources are manually reclaimed.
+

Yes

+

-

+
  • Delete: When a PV/PVC is deleted, resources on the storage device are also deleted.
  • Retain: When a PV/PVC is deleted, resources on the storage device are not deleted.
+

allowVolumeExpansion

+

Whether to allow volume expansion. If this parameter is set to true, the capacity of the PV that uses the StorageClass can be expanded.

+

No

+

false

+

This function can only be used to expand PV capacity but cannot be used to reduce PV capacity.

+

The PV capacity expansion function is supported in Kubernetes 1.14 (alpha) and later versions.

+

parameters.backend

+

Name of the backend where the resource to be created is located.

+

No

+

-

+

If this parameter is not set, Huawei CSI will randomly select a backend that meets the capacity requirements to create resources.

+

You are advised to specify a backend to ensure that the created resource is located on the expected backend.

+

parameters.volumeType

+

Type of the volume to be created. The following types are supported:

+
  • lun: A LUN is provisioned on the storage side.
  • fs: A file system is provisioned on the storage side.
+

Yes

+

-

+
  • If NAS storage is used, this parameter must be set to fs.
  • If SAN storage is used, this parameter must be set to lun.
+

parameters.fsType

+

Type of a host file system. The supported types are:

+
  • ext2
  • ext3
  • ext4
  • xfs
+

No

+

ext4

+

This parameter is valid only when volumeType of a StorageClass is set to lun and volumeMode of a PVC is set to Filesystem.

+

parameters.applicationType

+

Application type name for creating a LUN or NAS when the backend is OceanStor Dorado.

+
NOTE:

If an application type has been configured before a volume is managed, the value of applicationType must be the same as the configured application type.

+
+

No

+

-

+
  • If the value of volumeType is lun, log in to DeviceManager and choose Services > Block Service > LUN Groups > LUNs > Create to obtain the application type name.
  • If the value of volumeType is fs, log in to DeviceManager and choose Services > File Service > File Systems > Create to obtain the application type name.
+

parameters.fsPermission

+

Permission on the directory mounted to a container.

+

+

No

+

-

+

For details about the configuration format, refer to the Linux permission settings, for example, 777 and 755.

+

This parameter is available when volumeType is set to lun.

+

mountOptions.nfsvers

+

NFS mount option on the host. The following mount option is supported:

+

nfsvers: protocol version for NFS mounting. The value can be 3, 4, 4.0, 4.1, or 4.2.

+

No

+

-

+

This parameter is optional after the -o parameter when the mount command is executed on the host. The value is in list format.

+

If the NFS version is specified for mounting, NFS 3, 4.0, 4.1, and 4.2 protocols are supported (the protocol must be supported and enabled on storage devices). If nfsvers is set to 4, the latest protocol version NFS 4 may be used for mounting due to different OS configurations, for example, 4.2. If the 4.0 protocol is required, you are advised to set nfsver:ws to 4.0.

+

mountOptions.acl

+

The DPC namespace supports the ACL function. The DPC client supports POSIX ACL, NFSv4 ACL, and NT ACL authentication.

+

No

+

-

+

The descriptions of acl, aclonlyposix, cnflush, and cflush are for reference only. For details about the parameters, see OceanStor Pacific Series Product Documentation and choose Configuration > Basic Service Configuration Guide for File > Configuring Basic Services (DPC Scenario) > Accessing a DPC Share on a Client > Step 2.

+

mountOptions.aclonlyposix

+

The DPC namespace supports POSIX ACL, and the DPC client supports POSIX ACL authentication.

+

The following protocols support POSIX ACL: DPC, NFSv3, and HDFS. If NFSv4 ACL or NT ACL is used, the DPC client cannot identify the ACL of this type. As a result, the ACL of this type does not take effect.

+

No

+

-

+

If aclonlyposix and acl are used together, only acl takes effect. That is, the namespace supports the ACL function.

+

mountOptions.cnflush

+

Asynchronous disk flushing mode. That is, data is not flushed to disks immediately when files in the namespace are closed.

+

No

+

-

+

Asynchronous flushing mode: When a file is closed, data in the cache is not flushed to storage media in synchronous mode. Instead, data is written from the cache to the storage media in asynchronous flushing mode. After the write service is complete, data is flushed from the cache to disks periodically based on the flushing period. In a multi-client scenario, if concurrent operations are performed on the same file, the file size update is affected by the disk flushing period. That is, the file size is updated only after the disk flushing is complete. Generally, the update is completed within several seconds. Synchronous I/Os are not affected by the disk flushing period.

+

mountOptions.cflush

+

Synchronous disk flushing mode. That is, data is flushed to disks immediately when files in the namespace are closed.

+

No

+

-

+

By default, the synchronous disk flushing mode is used.

+

mountOptions.sec

+

Kerberos 5 protocol for mounting NFS file systems.

+

No

+

-

+
  • If Kerberos 5 is used, set this parameter to krb5.
  • If Kerberos 5i is used, set this parameter to krb5i.
  • If Kerberos 5p is used, set this parameter to krb5p.
  • Kerberos supports only NFSv4.0 or NFSv4.1.
+

mountOptions.proto

+

Transmission protocol used for NFS mounting.

+

The value can be rdma.

+

No

+

-

+
  • Ensure that NFS over RDMA is enabled on the storage system.
  • NAS storage of OceanStor Dorado 6.1.7 or later is supported.
+

mountOptions.port

+

Protocol port used for NFS mounting.

+

Conditionally mandatory

+

-

+

If the transmission protocol is rdma, set this parameter to 20049.

+

mountOptions.discard

+

Automatically triggers the Trim or Discard operation when a file system is mounted. This operation instructs a block device to release unused blocks.

+

No

+

-

+

The xfs and ext4 file systems are supported.

+
+ diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md new file mode 100644 index 0000000..721fd7c --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md @@ -0,0 +1,113 @@ +--- +title: "Static Volume Provisioning" +linkTitle: "Static Volume Provisioning" +description: +weight: 3 +--- + +Static volume provisioning allows administrators to use a resource created on the storage side as a PV for containers in the cluster. + +To implement static volume provisioning, perform the following steps: + +- Configuring a PV +- Configuring a PVC + +## Prerequisites{#section4107171112475} + +A storage resource, such as a LUN or file system, required by the PV to be created exists on the storage device. If the storage resource is a file system, you also need to create the share and client information of the file system. + +## Configuring a PV{#section1994861643814} + +1. Prepare the PV configuration file **mypv.yaml**. The following is an example. For details about other parameters, see [PV Parameters for Static Volume Provisioning](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning). + + ```yaml + kind: PersistentVolume + apiVersion: v1 + metadata: + name: mypv + spec: + volumeMode: Filesystem + storageClassName: "" # The value must be to "". + accessModes: + - ReadWriteOnce + csi: + driver: csi.huawei.com # Enter the CSI driver name. + volumeHandle: iscsi-dorado-181.lun0001 # Enter the volume name. + fsType: xfs # Set the file system type. + capacity: + storage: 100Gi + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >In the configuration file for static volume provisioning, **storageClassName** must be set to **""**. Otherwise, Kubernetes will use the default StorageClass. + +2. Run the following command to create a PV based on the prepared .yaml file. + + ``` + kubectl create -f mypv.yaml + ``` + +3. After a period of time, run the following command to view the information about the created PV. + + ``` + kubectl get pv + ``` + + The following is an example of the command output. If the PV status is **Available**, the PV is successfully created. + + ``` + NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE + mypv 100Gi RWO Retain Available 4s + ``` + +## Configuring a PVC{#section166021742104214} + +After a PV is created in static volume provisioning mode, you can create a PVC based on the PV for containers. + +1. Prepare the PVC configuration file. The following example is a PVC configuration file for static volume provisioning. + + ```yaml + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mypvc + spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + resources: + requests: + storage: 100Gi + volumeName: mypv # Enter the name of the corresponding PV. + ``` + +2. Run the following command to create a PVC based on the configured .yaml file. + + ``` + kubectl create -f mypvc.yaml + ``` + +3. After a period of time, run the following command to view the information about the created PVC. + + ``` + kubectl get pvc + ``` + + The following is an example of the command output. If the PVC status is **Bound**, the PVC is successfully created. + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO 12s + ``` + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- After the PVC is created, if the PVC is in the **Pending** state after a long time \(for example, one minute\), refer to [When a PVC Is Created, the PVC Is in the Pending State](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state). + >- You are advised to create or delete a maximum of 100 PVCs in a batch. + +## Using a PVC{#section2949728204519} + +The use method is the same as that for dynamic volume provisioning in [Using a PVC](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning#section8172141413917). + + + diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md new file mode 100644 index 0000000..e45e1e2 --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md @@ -0,0 +1,179 @@ +--- +title: "PV Parameters for Static Volume Provisioning" +linkTitle: "PV Parameters for Static Volume Provisioning" +description: +weight: 1 +--- + +**Table 1** Static volume provisioning parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

metadata.name

+

User-defined name of a PV object.

+

Yes

+

-

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

spec.volumeMode

+

Volume mode. This parameter is optional. When LUN volumes are used, the following types are supported:

+
  • Filesystem: local file system.
  • Block: raw device.
+

No

+

Filesystem

+

This parameter takes effect when a PV is mounted. The default value is Filesystem.

+
  • Filesystem indicates that a container accesses a PV using a local file system. The local file system type is specified by the fsType field in the specified StorageClass.
  • Block indicates that a PV is accessed in raw volume mode.
+

spec.storageClassName

+

Name of the StorageClass object. This parameter is mandatory.

+

Yes

+

-

+

Set the parameter to an empty string, that is, enter "".

+

spec.accessModes

+

Access mode of the volume.

+
  • RWO (ReadWriteOnce): A volume can be mounted to a node in read/write mode. This mode also allows multiple Pods running on the same node to access the volume.
  • ROX (ReadOnlyMany): A volume can be mounted to multiple nodes in read-only mode.
  • RWX (ReadWriteMany): A volume can be mounted to multiple nodes in read/write mode.
  • RWOP (ReadWriteOncePod): A volume can only be mounted to a single Pod in read/write mode. Kubernetes 1.22 and later versions support this feature.
+

Yes

+

ReadWriteOnce

+
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
+

spec.csi.driver

+

CSI driver name.

+

Yes

+

csi.huawei.com

+

Set this parameter to the driver name set during Huawei CSI installation.

+

spec.csi.volumeHandle

+

Unique identifier of a storage resource. This parameter is mandatory.

+

Format: <backendName>.<volume-name>

+

Yes

+

-

+

The value of this parameter consists of the following parts:

+
  • <backendName>: indicates the name of the backend where the volume resides. You can run the following command to obtain the configured backend information.

    oceanctl get backend

    +
  • <volume-name>: indicates the name of a resource (LUN/file system) on the storage. You can obtain the value from DeviceManager.
+

spec.csi.fsType

+

Type of a host file system. This parameter is optional. The supported types are:

+
  • ext2
  • ext3
  • ext4
  • xfs
+

No

+

-

+

If this parameter is not set, the default value ext4 is used. This parameter is available only when volumeMode is set to Filesystem.

+

spec.capacity.storage

+

Volume size.

+

Yes

+

100Gi

+

Ensure that the size is the same as that of the corresponding resource on the storage. Kubernetes will not invoke CSI to check whether the value of this parameter is correct. Therefore, the PV can be successfully created even if its capacity is inconsistent with that of the corresponding resource on the storage.

+

spec.mountOptions.nfsvers

+

NFS mount option on the host. The following mount option is supported:

+

nfsvers: protocol version for NFS mounting. The value can be 3, 4, 4.0, 4.1, or 4.2.

+

No

+

-

+

This parameter is optional after the -o parameter when the mount command is executed on the host. The value is in list format.

+

If the NFS version is specified for mounting, NFS 3, 4.0, 4.1, and 4.2 protocols are supported (the protocol must be supported and enabled on storage devices). If nfsvers is set to 4, the latest protocol version NFS 4 may be used for mounting due to different OS configurations, for example, 4.2. If the 4.0 protocol is required, you are advised to set nfsvers to 4.0.

+

spec.mountOptions.acl

+

The DPC namespace supports the ACL function. The DPC client supports POSIX ACL, NFSv4 ACL, and NT ACL authentication.

+

No

+

-

+

The descriptions of acl, aclonlyposix, cnflush, and cflush are for reference only. For details about the parameters, see OceanStor Pacific Series Product Documentation and choose Configuration > Basic Service Configuration Guide for File > Configuring Basic Services (DPC Scenario) > Accessing a DPC Share on a Client > Step 2.

+

spec.mountOptions.aclonlyposix

+

The DPC namespace supports POSIX ACL, and the DPC client supports POSIX ACL authentication.

+

The following protocols support POSIX ACL: DPC, NFSv3, and HDFS. If NFSv4 ACL or NT ACL is used, the DPC client cannot identify the ACL of this type. As a result, the ACL of this type does not take effect.

+

No

+

-

+

If aclonlyposix and acl are used together, only acl takes effect. That is, the namespace supports the ACL function.

+

spec.mountOptions.cnflush

+

Asynchronous disk flushing mode. That is, data is not flushed to disks immediately when files in the namespace are closed.

+

No

+

-

+

Asynchronous flushing mode: When a file is closed, data in the cache is not flushed to storage media in synchronous mode. Instead, data is written from the cache to the storage media in asynchronous flushing mode. After the write service is complete, data is flushed from the cache to disks periodically based on the flushing period. In a multi-client scenario, if concurrent operations are performed on the same file, the file size update is affected by the disk flushing period. That is, the file size is updated only after the disk flushing is complete. Generally, the update is completed within several seconds. Synchronous I/Os are not affected by the disk flushing period.

+

spec.mountOptions.cflush

+

Synchronous disk flushing mode. That is, data is flushed to disks immediately when files in the namespace are closed.

+

No

+

-

+

By default, the synchronous disk flushing mode is used.

+
+ diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md new file mode 100644 index 0000000..aaffb7b --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md @@ -0,0 +1,96 @@ +--- +title: "PVC Parameters for Static Volume Provisioning" +linkTitle: "PVC Parameters for Static Volume Provisioning" +description: +weight: 2 +--- + +**Table 1** PVC parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Parameter

+

Description

+

Mandatory

+

Default Value

+

Remarks

+

metadata.name

+

User-defined name of a PVC object.

+

Yes

+

-

+

Take Kubernetes v1.22.1 as an example. The value can contain digits, lowercase letters, hyphens (-), and periods (.), and must start and end with a letter or digit.

+

spec.accessModes

+

Access mode of the volume.

+
  • RWO (ReadWriteOnce): A volume can be mounted to a node in read/write mode. This mode also allows multiple Pods running on the same node to access the volume.
  • ROX (ReadOnlyMany): A volume can be mounted to multiple nodes in read-only mode.
  • RWX (ReadWriteMany): A volume can be mounted to multiple nodes in read/write mode.
  • RWOP (ReadWriteOncePod): A volume can only be mounted to a single Pod in read/write mode. Kubernetes 1.22 and later versions support this feature.
+

Yes

+

ReadWriteOnce

+
  • RWO/ROX/RWOP: supported by all types of volumes. RWOP is supported only by Kubernetes 1.22 and later versions. Check whether this feature is enabled for your Kubernetes cluster by referring to Enabling the ReadWriteOncePod Feature Gate.
  • The support for RWX is as follows: +
+

spec.volumeMode

+

Volume mode.

+

No

+

Filesystem

+

This parameter is optional. The value can be Filesystem or Block. The default value is Filesystem. This parameter takes effect when a Pod is created. Filesystem indicates that a file system is created on a PVC to access the storage. Block indicates that a raw volume is used to access the storage.

+

spec.resources.requests.storage

+

Size of the volume to be created.

+

Yes

+

-

+

Size of the volume to be created. The format is ***Gi and the unit is GiB.

+

The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see Table 2. If XFS file systems are used, see Table 3. If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version.

+

If the PVC capacity does not meet the specifications, a PVC or Pod may fail to be created due to the limitations of storage specifications or host file system specifications.

+

When a PVC is created using a static PV and the PVC capacity is smaller than the capacity of the bound PV, the PVC capacity is set to the capacity of the bound PV. If the PVC capacity is greater than the capacity of the bound PV, the PVC cannot be created.

+

spec.volumeName

+

Name of the PV object.

+

Yes

+

-

+

This parameter is mandatory when a PVC is created statically.

+

spec.storageClassName

+

Name of the StorageClass object.

+

Yes

+

-

+

When a PVC is created, an empty character string is transferred. If this parameter is not set, the default StorageClass object name will be used.

+
+ diff --git a/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md new file mode 100644 index 0000000..988c0ba --- /dev/null +++ b/content/en/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md @@ -0,0 +1,88 @@ +--- +title: "Expanding the Capacity of a PVC" +linkTitle: "Expanding the Capacity of a PVC" +description: +weight: 2 +--- + +When the capacity of a PVC used by a container is insufficient, you need to expand the capacity of the PVC. + +## Prerequisites{#en-us_topic_0254162571_section07036257166} + +- A PVC has been created, the backend to which it resides exists and supports capacity expansion. +- For details about the storage devices that support capacity expansion, see [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515) and [Table 2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255). For details about the Kubernetes versions that support capacity expansion, see [Kubernetes Feature Matrix](/docs/compatibility-and-features/kubernetes-feature-matrix). +- The csi-resizer service is enabled for huawei-csi-controller. + + ``` + kubectl describe deploy huawei-csi-controller -n huawei-csi | grep csi-resizer + ``` + + If the following information is displayed, the csi-resizer service is enabled. + + ```yaml + csi-resizer: + Image: k8s.gcr.io/sig-storage/csi-resizer:v1.4.0 + ``` + +## Procedure{#en-us_topic_0254162571_section152212156464} + +1. Run the following command to check whether the StorageClass supports capacity expansion. In the preceding command, _mysc_ indicates the name of the StorageClass to be queried. + + ``` + kubectl get sc mysc + ``` + + The following is an example of the command output. + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate true 172m + ``` + + If the value of **ALLOWVOLUMEEXPANSION** is **true**, the current StorageClass supports capacity expansion. In this case, go to [3](#en-us_topic_0254162571_li1143318914115). + +2. Run the following command to change the value of **allowVolumeExpansion** to **true**. In the preceding command, _mysc_ indicates the name of the StorageClass to be modified. + + ``` + kubectl patch sc mysc --patch '{"allowVolumeExpansion":true}' + ``` + +3. Run the following command to query the StorageClass name of the PVC. In the preceding command, _mypvc_ indicates the name of the PVC to be expanded. + + ``` + kubectl get pvc mypvc + ``` + + The following is an example of the command output. + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-3383be36-537c-4cb1-8f32-a415fa6ba384 2Gi RW0 mysc 145m + ``` + +4. Run the following command to expand the capacity. + + ``` + kubectl patch pvc mypvc -p '{"spec":{"resources":{"requests":{"storage":"120Gi"}}}}' + ``` + + In the preceding command, _mypvc_ indicates the name of the PVC to be expanded, and _120Gi_ indicates the capacity after expansion. Change the values based on the site requirements. + + >![](/css-docs/public_sys-resources/en-us/icon-note.gif) + >- The PVC capacity depends on storage specifications and host specifications. For example, OceanStor Dorado 6.1.2 or OceanStor Pacific series 8.1.0 is connected to CentOS 7. If ext4 file systems are used, see [Table 2](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#en-us_topic_0150885187_table178824527142). If XFS file systems are used, see [Table 3](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#en-us_topic_0150885187_table101951367104). If NFS or raw devices are used, the capacity must meet the specifications of the used Huawei storage device model and version. + >- If the PVC capacity does not meet the specifications, a PVC or Pod may fail to be created due to the limitations of storage specifications or host file system specifications. + >- If the capacity expansion fails because the target capacity exceeds the storage pool capacity, see [Failed to Expand the PVC Capacity Because the Target Capacity Exceeds the Storage Pool Capacity](/docs/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity). + +5. Run the following command to check whether the capacity modification takes effect. + + ``` + kubectl get pvc + ``` + + The following is an example of the command output. If the value of **CAPACITY** is changed to the specified capacity, the capacity expansion is successful. + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-3383be36-537c-4cb1-8f32-a415fa6ba384 120Gi RWO mysc 24s + ``` + diff --git a/content/zh-cn/docs/_index.md b/content/zh-cn/docs/_index.md index 5a5743c..592eba9 100644 --- a/content/zh-cn/docs/_index.md +++ b/content/zh-cn/docs/_index.md @@ -7,6 +7,6 @@ weight: 20 您可以通过以下链接,获取PDF版用户指南: - + PDF下载 diff --git "a/content/zh-cn/docs/\345\211\215\350\250\200/_index.md" b/content/zh-cn/docs/about-this-document/_index.md similarity index 99% rename from "content/zh-cn/docs/\345\211\215\350\250\200/_index.md" rename to content/zh-cn/docs/about-this-document/_index.md index 3085c7f..85e5e06 100644 --- "a/content/zh-cn/docs/\345\211\215\350\250\200/_index.md" +++ b/content/zh-cn/docs/about-this-document/_index.md @@ -1,7 +1,7 @@ --- title: "前言" linkTitle: "前言" -description: +description: weight: 1 --- diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/_index.md" b/content/zh-cn/docs/advanced-features/_index.md similarity index 100% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/_index.md" rename to content/zh-cn/docs/advanced-features/_index.md diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/_index.md" b/content/zh-cn/docs/advanced-features/configuring-alua/_index.md similarity index 100% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/_index.md" rename to content/zh-cn/docs/advanced-features/configuring-alua/_index.md diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/_index.md" b/content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md similarity index 100% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/_index.md" rename to content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" b/content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md similarity index 97% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" rename to content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md index 1858c62..649fca5 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" +++ b/content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md @@ -9,11 +9,11 @@ weight: 2 针对不同的操作系统,ALUA配置可能有所不同。进入[华为技术支持](https://support.huawei.com/enterprise/zh/index.html),在搜索输入框中输入“主机连通性指南”,单击搜索。在搜索结果中,选择对应操作系统的主机连通性指南。结合实际需要根据指南的说明进行ALUA配置。华为CSI将在华为存储上对该主机的启动器应用您设置的配置项。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >已经发放的Pod的节点不会主动更改ALUA信息,需要通过在该节点重新发放Pod才会变更主机ALUA配置。 >分布式存储非双活场景,存储系统自身为Active/Active模式,选择“启用ALUA”没有实际意义,建议选择存储默认的“禁用ALUA”。因此不建议对分布式存储配置ALUA参数。 -华为CSI支持的分布式存储的ALUA参数见[表 分布式存储ALUA参数说明](#table17219165595413)。 +华为CSI支持的分布式存储的ALUA参数见[表1](#table17219165595413)。 **表 1** 分布式存储ALUA参数说明 diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" b/content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md similarity index 97% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" rename to content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md index e185285..26a2020 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\200\232\350\277\207Helm\351\205\215\347\275\256ALUA\347\211\271\346\200\247/\351\205\215\347\275\256\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\220\216\347\253\257\347\232\204ALUA\345\217\202\346\225\260.md" +++ b/content/zh-cn/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md @@ -9,12 +9,12 @@ weight: 1 针对不同的操作系统,ALUA配置可能有所不同。进入[华为技术支持](https://support.huawei.com/enterprise/zh/index.html),在搜索输入框中输入“主机连通性指南”,单击搜索。在搜索结果中,选择对应操作系统的主机连通性指南。结合实际需要根据指南的说明进行ALUA配置。华为CSI将在华为存储上对该主机的启动器应用您设置的配置项。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >已经发放的Pod的节点不会主动更改ALUA信息,需要通过在该节点重新发放Pod才会变更主机ALUA配置。 ## OceanStor V5系列和OceanStor Dorado V3系列存储后端的ALUA参数{#section16218353201717} -华为CSI支持的OceanStor V5系列和OceanStor Dorado V3系列存储的ALUA参数见[表 华为CSI支持的OceanStor V5系列和OceanStor Dorado V3系列存储的ALUA参数说明](#zh-cn_topic_0000001299863718_zh-cn_topic_0000001199142540_table106361351202112)。 +华为CSI支持的OceanStor V5系列和OceanStor Dorado V3系列存储的ALUA参数见[表1](#zh-cn_topic_0000001299863718_zh-cn_topic_0000001199142540_table106361351202112)。 **表 1** 华为CSI支持的OceanStor V5系列和OceanStor Dorado V3系列存储的ALUA参数说明 @@ -100,9 +100,9 @@ parameters: ## OceanStor和OceanStor Dorado系列存储后端的ALUA参数{#section1629834120204} -华为CSI支持的OceanStor和OceanStor Dorado系列存储的ALUA参数见[表 OceanStor和OceanStor Dorado系列存储的ALUA参数说明](#zh-cn_topic_0000001352783505_zh-cn_topic_0000001198982584_table7143850202411)。 +华为CSI支持的OceanStor和OceanStor Dorado系列存储的ALUA参数见[表2](#zh-cn_topic_0000001352783505_zh-cn_topic_0000001198982584_table7143850202411)。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >OceanStor和OceanStor Dorado系列存储在默认情况下启动器主机访问模式即为“均衡模式”,因此不建议对OceanStor和OceanStor Dorado系列存储配置ALUA参数。 **表 2** OceanStor和OceanStor Dorado系列存储的ALUA参数说明 diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/_index.md" b/content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/_index.md similarity index 97% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/_index.md" rename to content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/_index.md index 06f0f48..ffd3b55 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/_index.md" +++ b/content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/_index.md @@ -27,7 +27,7 @@ weight: 2 node03 Ready worker 42d v1.22.3 ``` -3. 执行以下命令,给worker节点配置拓扑标签。其中 _nodename_ 为worker节点名称, _key_ 和 _value_ 参数说明请参考[表 参数说明](#zh-cn_topic_0000001200451233_table1261817418166)。 +3. 执行以下命令,给worker节点配置拓扑标签。其中_ nodename _为worker节点名称, key 和 value 参数说明请参考[表1](#zh-cn_topic_0000001200451233_table1261817418166)。 ``` kubectl label node = @@ -63,7 +63,7 @@ weight: 2
- >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- 拓扑标签必须以topology.kubernetes.io开头。拓扑标签示例: > - 示例1:topology.kubernetes.io/region=China-west > - 示例2:topology.kubernetes.io/zone=ChengDu diff --git a/content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md b/content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md new file mode 100644 index 0000000..fe1ca8a --- /dev/null +++ b/content/zh-cn/docs/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md @@ -0,0 +1,147 @@ +--- +title: "通过Helm配置存储拓扑感知" +linkTitle: "通过Helm配置存储拓扑感知" +description: +weight: 1 +--- + +## 操作步骤{#zh-cn_topic_0000001352573769_section748483471312} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +3. 进入后端服务配置目录/examples/backend/下,备份backend.yaml文件 + + ``` + cp backend.yaml backend.yaml.bak + ``` + +4. 执行 **vi backend.yaml** 命令打开文件,按需求配置拓扑感知,示例如下所示。修改完成后,按 **Esc** 并输入 **:wq!** ,保存修改。 + + ```yaml + storage: "oceanstor-san" + name: "dorado-iscsi-155" + namespace: "huawei-csi" + urls: + - "https://192.168.129.155:8088" + pools: + - "StoragePool001" + parameters: + protocol: "iscsi" + portals: + - "10.10.30.20" + - "10.10.30.21" + supportedTopologies: + - { "topology.kubernetes.io/region": "China-west", "topology.kubernetes.io/zone": "ChengDu" } + - { "topology.kubernetes.io/region": "China-south","topology.kubernetes.io/zone": "ShenZhen" } + maxClientThreads: "30" + ``` + +5. 执行以下命令删除待修改存储后端,其中“dorado-iscsi-155”为存储后端名称。 + + ``` + oceanctl delete backend dorado-iscsi-155 -n huawei-csi + ``` + +6. 执行以下命令创建存储后端。 + + ``` + oceanctl create backend -f ../examples/backend/backend.yaml -i yaml + ``` + + 根据命令提示输入存储用户名和密码。 + + ``` + Please enter this backend user name:admin + Please enter this backend password: + ``` + +7. 执行** vi StorageClass.yaml** 命令,修改yaml文件。按 **I** 或 **Insert** 进入编辑状态,在yaml文件下增加相关参数,详细参数说明请参见[表1](#zh-cn_topic_0000001352573769_table118458471087)。修改完成后,按 **Esc** 并输入 **:wq!** ,保存修改。 + + 在StorageClass.yaml文件中添加以下配置项。 + + - 示例1: 在StorageClass中配置zone和region信息 + + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: example-storageclass + provisioner: csi.huawei.com + parameters: + volumeType: lun + allocType: thin + volumeBindingMode: WaitForFirstConsumer + allowedTopologies: + - matchLabelExpressions: + - key: topology.kubernetes.io/zone + values: + - ChengDu + - key: topology.kubernetes.io/region + values: + - China-west + ``` + + - 示例2: 在StorageClass中配置协议信息 + + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: protocol-example-storageclass + provisioner: csi.huawei.com + parameters: + volumeType: lun + allocType: thin + volumeBindingMode: WaitForFirstConsumer + allowedTopologies: + - matchLabelExpressions: + - key: topology.kubernetes.io/protocol.iscsi + values: + - csi.huawei.com + ``` + + **表 1** 参数说明 + + + + + + + + + + + + + + + + + + +

参数名

+

参数描述

+

备注

+

volumeBindingMode

+

PersistentVolume绑定方式,用于控制何时进行PersistentVolume动态资源调配和绑定。

+

可配置“WaitForFirstConsumer”“Immediate”

+

“WaitForFirstConsumer”:表示延迟PersistentVolume的绑定和调配,直到创建使用PVC的Pod。

+

“Immediate”:表示创建PVC后,立即发生PersistentVolume绑定和调配。

+

allowedTopologies.matchLabelExpressions

+

拓扑信息标签,用于过滤CSI后端和Kubernetes节点。如果匹配失败,会导致PVC或Pod无法创建。

+

配置时需要同时按照固定格式配置“key”“value”.

+

“key”:可支持配置“topology.kubernetes.io/zone”“topology.kubernetes.io/region”

+

topology.kubernetes.io/protocol.<protocol>, 其中<protocol>为协议类型, 例如:iscsi, fc, nfs等。

+

“value”

+

“key”如果是“topology.kubernetes.io/zone”“topology.kubernetes.io/region”“value”值需要和前提条件中设置的拓扑标签保持一致。

+

“key”如果是topology.kubernetes.io/protocol.<protocol>“value”值固定为“csi.huawei.com”

+
+ +8. 执行以下命令,基于该yaml文件创建StorageClass。 + + ``` + kubectl create -f StorgeClass.yaml + ``` + +9. 使用该StorageClass创建具有拓扑能力的PVC,详细操作请参考[动态卷供应PVC参数说明](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning)。 + diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/_index.md" b/content/zh-cn/docs/advanced-features/pvc-change/_index.md similarity index 100% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/_index.md" rename to content/zh-cn/docs/advanced-features/pvc-change/_index.md diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/_index.md" b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md similarity index 97% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/_index.md" rename to content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md index 541ffe8..c9fabae 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/_index.md" +++ b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/_index.md @@ -41,7 +41,7 @@ PVC变更特性使用CRD实现,当前资源说明如下。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- VolumeModifyClaim资源支持创建/删除/查询,不支持更新。 >- VolumeModifyContent资源仅支持查询,用于展示单个PVC变更详情,请勿手动创建/删除/修改。 >- VolumeModifyContent资源被VolumeModifyClaim管理,请勿手动管理VolumeModifyContent资源。 diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/_index.md" b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md similarity index 64% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/_index.md" rename to content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md index 9c648d4..70401bd 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/_index.md" +++ b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md @@ -7,7 +7,7 @@ weight: 1 ## 前提条件{#section5216334164716} -待变更PVC关联的存储后端已经组成双活存储后端,若未组成双活存储后端,请参考[手动更新存储后端](/docs/存储后端管理/管理存储后端/更新存储后端/手动更新存储后端)章节配置。 +待变更PVC关联的存储后端已经组成双活存储后端,若未组成双活存储后端,请参考[手动更新存储后端](/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend)章节配置。 diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264\350\265\204\346\272\220.md" b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md similarity index 80% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264\350\265\204\346\272\220.md" rename to content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md index 0014b6b..03b7303 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264\350\265\204\346\272\220.md" +++ b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md @@ -7,7 +7,7 @@ weight: 2 本章节介绍如何基于已配置的PVC变更文件创建PVC变更资源。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- 仅支持双活AA模式。 >- 如果变更场景为普通卷变更为双活卷,则仅支持变更主站点端存储卷。 >- 创建PVC变更资源期间,请勿使用华为CSI管理PVC。 @@ -22,5 +22,5 @@ weight: 2 kubectl create -f volumemodifyclaim.yaml ``` -3. 参考[查询PVC变更](/docs/高级特性/PVC变更/配置PVC变更/查询PVC变更)查询创建结果。 +3. 参考[查询PVC变更](/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change)查询创建结果。 diff --git a/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md new file mode 100644 index 0000000..a0e6c1e --- /dev/null +++ b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md @@ -0,0 +1,134 @@ +--- +title: "准备PVC变更文件" +linkTitle: "准备PVC变更文件" +description: +weight: 1 +--- + +## PVC变更文件说明{#section45675517546} + +PVC变更文件样例模板为/examples/volumemodifyclaim.yaml,具体配置项如下表所示: + +**表 1** 参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

备注

+

apiVersion

+

API组,string类型

+

+

xuanwu.huawei.io/v1

+

固定填写xuanwu.huawei.io/v1

+

kind

+

资源的类型,string类型

+

+

VolumeModifyClaim

+

固定填写VolumeModifyClaim

+

metadata.name

+

集群资源对象的名称,string类型

+

+

-

+

名称必须满足DNS 子域名的命名规则,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以小写字母数字字符开头和结尾,最大长度不超过63个字符。

+

注意:在PVC变更过程中,会对原StorageClass进行备份,备份StorageClass的名称为“<原StorageClass名称><VolumeModifyClaim名称>”,且需符合StorageClass命名规则。

+

spec.source.kind

+

数据源类型,string类型

+

+

StorageClass

+

仅支持设置为:StorageClass

+

spec.source.name

+

数据源名称,string类型

+

+

-

+

仅支持设置StorageClass名称

+

spec.parameters.hyperMetro

+

是否将普通卷变更为双活卷。当前取值仅支持"true"。

+

+

-

+

仅支持主站点普通存储卷变更为双活存储卷。

+

spec.parameters.metroPairSyncSpeed

+

双活Pair同步速率。支持配置为1~4。

+

可选值:

+
  • 1:低
  • 2:中
  • 3:高
  • 4:最高
+

+

-

+

当且仅当spec.parameters.hyperMetro为"true"时生效。

+

注意:

+
  • 未配置该参数时,双活Pair存储速率由存储决定。
  • 最高速率同步时可能导致主机时延增大。
+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- spec.source.kind和spec.source.name用于指定卷变更范围,例如配置为StorageClass和对应名称时,将会变更使用目标StorageClass发放的所有的处于Bound状态的PVC。 +>- 当所有关联的PVC完成变更后,华为CSI会替换原有的StorageClass,并增加VolumeModifyClaim的spec.parameters参数,使得PVC满足StorageClass定义。 + +典型场景配置请参考如下示例: + +## 变更普通卷为双活卷{#section637055131612} + +配置变更普通卷为双活卷示例如下: + +```yaml +apiVersion: xuanwu.huawei.io/v1 +kind: VolumeModifyClaim +metadata: + name: myvmc +spec: + source: + kind: StorageClass + name: mysc + parameters: + hyperMetro: "true" +``` + diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\240\351\231\244PVC\345\217\230\346\233\264.md" b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md similarity index 80% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\240\351\231\244PVC\345\217\230\346\233\264.md" rename to content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md index fe93847..f83ac53 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\240\351\231\244PVC\345\217\230\346\233\264.md" +++ b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md @@ -5,7 +5,7 @@ description: weight: 3 --- ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 当VolumeModifyClaim的STATUS值为Creating时,删除VolumeModifyClaim资源,将会在存储侧删除此次变更创建的资源,然后移除集群资源。在删除后,如果继续使用原有的StorageClass进行PVC管理,需要将关联的存储后端恢复为非双活存储后端。 >- 当VolumeModifyClaim的STATUS值为Pending或Completed时,删除VolumeModifyClaim资源,仅会移除集群资源,不会和存储交互,即不会在存储侧删除变更创建的资源。 >- VolumeModifyContent被VolumeModifyClaim管理,请勿手动管理VolumeModifyContent资源。 @@ -17,11 +17,11 @@ weight: 3 ## 操作步骤{#section694142182112} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 执行以下命令,删除PVC变更。其中 _vmc-name_ 为VolumeModifyClaim资源名称。 +2. 执行 命令,删除PVC变更。其中 _vmc-name_ 为VolumeModifyClaim资源名称。 ``` kubectl delete volumemodifyclaims ``` -3. 参考[创建PVC变更资源](/docs/高级特性/PVC变更/配置PVC变更/创建PVC变更/创建PVC变更资源)查询删除结果。 +3. 参考[创建PVC变更资源](/docs/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource)查询删除结果。 diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\346\237\245\350\257\242PVC\345\217\230\346\233\264.md" b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md similarity index 98% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\346\237\245\350\257\242PVC\345\217\230\346\233\264.md" rename to content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md index 09c8e6a..f334574 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\346\237\245\350\257\242PVC\345\217\230\346\233\264.md" +++ b/content/zh-cn/docs/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md @@ -12,7 +12,7 @@ weight: 2 使用kubectl查询VolumeModifyClaim步骤如下。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 执行以下命令,查询PVC变更。其中 _vmc-name_ 为VolumeModifyClaim资源名称。 +2. 执行以下命令,查询PVC变更。其中 _vmc-name_ 为VolumeModifyClaim资源名称。 ``` kubectl get volumemodifyclaims -owide @@ -78,7 +78,7 @@ weight: 2 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >VolumeModifyClaim支持使用kubectl查看Events信息,当VolumeModifyClaim无法满足创建要求,或者创建过程中出现错误时,服务端将记录Events信息。参考命令如下: >``` >kubectl describe volumemodifyclaims local-to-hypermetro @@ -150,7 +150,7 @@ VolumeModifyContent由VolumeModifyClaim资源创建,记录了单个PVC的变 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >VolumeModifyContent支持使用kubectl查看Events信息,当VolumeModifyContent无法满足创建要求,或者变更PVC出现错误时,服务端将记录Events信息。参考命令如下: >``` >kubectl describe volumemodifycontents myvmc-uid diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/_index.md" b/content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md similarity index 100% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/_index.md" rename to content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\346\211\213\345\212\250\346\226\271\345\274\217\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" b/content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md similarity index 83% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\346\211\213\345\212\250\346\226\271\345\274\217\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" rename to content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md index 986bf3b..8f9f04b 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\346\211\213\345\212\250\346\226\271\345\274\217\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" +++ b/content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md @@ -18,7 +18,7 @@ weight: 2 kubectl apply -f ./crds/volume-modify/ ``` -3. 执行以下命令。组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +3. 执行以下命令。组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` kubectl apply -f ./deploy/huawei-csi-controller-extender.yaml diff --git a/content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md b/content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md new file mode 100644 index 0000000..4b01a1f --- /dev/null +++ b/content/zh-cn/docs/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md @@ -0,0 +1,78 @@ +--- +title: "使用Helm开启PVC变更特性" +linkTitle: "使用Helm开启PVC变更特性" +description: +weight: 1 +--- + +## 前提条件{#section10631153612202} + +- 已使用Helm安装华为CSI。 +- 要求华为CSI v4.6.0及以上版本。 + +## 操作步骤{#section1361061612118} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令检查PVC变更特性是否开启。 + + 其中helm-huawei-csi为安装时指定的Helm Chart名称,huawei-csi为安装时指定的Helm Chart命名空间。组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + helm get values helm-huawei-csi -n huawei-csi -a | grep volumeModify -A 1 + ``` + + 命令结果示例如下: + + - 若回显内容为“enabled: true”,则表示特性开启,可跳过后续步骤。 + - 若回显内容为“enabled: false”,请按照后续步骤开启PVC变更特性。 + + ```yaml + volumeModify: + enabled: false + ``` + +3. 进入/helm/esdk目录,执行命令,配置卷变更CRD。 + + ``` + # kubectl apply -f ./crds/volume-modify/ + customresourcedefinition.apiextensions.k8s.io/volumemodifyclaims.xuanwu.huawei.io configured + customresourcedefinition.apiextensions.k8s.io/volumemodifycontents.xuanwu.huawei.io configured + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >如回显中存在“Warning: resource customresourcedefinitions/volumemodifycontents.xuanwu.huawei.io is missing the kubectl.kubernetes.io/last-applied-configuration...”提示,可忽略该提示。该提示出现原因是由于Helm安装应用时使用的是kubectl create命令而不是kubectl apply命令。 + +4. 执行以下命令,获取原有服务配置文件。 + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +5. 执行**vi update-values.yaml**命令打开[4](#li1230915254221)中获取的文件,修改以下配置。修改完成后,按**Esc**,并输入**:wq!**,保存修改。 + + ```yaml + csiExtender: + volumeModify: + enabled: true + ``` + +6. 执行以下命令更新华为CSI服务。 + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./update-values.yaml + ``` + +7. 执行命令检查服务是否启动。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 命令结果示例如下,其中huawei-csi为华为CSI部署命名空间。 + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 10/10 Running 0 24m + huawei-csi-node-tqs87 3/3 Running 0 20m + ``` + diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/_index.md" b/content/zh-cn/docs/appendix/_index.md similarity index 100% rename from "content/zh-cn/docs/\351\231\204\345\275\225/_index.md" rename to content/zh-cn/docs/appendix/_index.md diff --git a/content/zh-cn/docs/appendix/communication-matrix.md b/content/zh-cn/docs/appendix/communication-matrix.md new file mode 100644 index 0000000..22751cb --- /dev/null +++ b/content/zh-cn/docs/appendix/communication-matrix.md @@ -0,0 +1,165 @@ +--- +title: "通信矩阵" +linkTitle: "通信矩阵" +description: +weight: 4 +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

源设备

+

CSI controller所在主机

+

CSI controller所在主机

+

CSI node所在主机

+

Kubernetes master节点

+

源IP

+

源设备IP

+

源设备IP

+

源设备IP

+

源设备IP

+

源端口

+

1024~65536

+

1024~65536

+

1024~65536

+

1024~65536

+

目的设备

+

存储设备

+

CSI controller所在主机

+

CSI node所在主机

+

CSI controller所在主机

+

目的IP

+

存储阵列管理IP

+

目的设备IP

+

目的设备IP

+

目的设备IP

+

目的端口(监听)

+

8088

+

9808

+

9800

+

4433

+

协议

+

TCP

+

TCP

+

TCP

+

TCP

+

端口说明

+

用于卷创建/管理/删除等一系列动作

+

用于Kubernetes对CSI controller的健康检查

+

用于Kubernetes对CSI node的健康检查

+

用于调用webhook校验

+

监听端口是否可更改

+

+

+

+

+

认证方式

+

用户名/密码

+

证书认证

+

证书认证

+

证书认证

+

加密方式

+

TLS 1.3/TLS 1.2

+

TLS 1.3/TLS 1.2

+

TLS 1.3/TLS 1.2

+

TLS 1.3/TLS 1.2

+

所属平面

+

OM

+

运维面

+

运维面

+

运维面

+

特殊场景

+

+

+

+

+

备注

+

源端口部分放开即可

+

-

+

-

+

可参考CSI用户指南修改webhook端口

+
+ diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/\351\205\215\347\275\256\350\207\252\345\256\232\344\271\211\346\235\203\351\231\220.md" b/content/zh-cn/docs/appendix/configuring-custom-permissions.md similarity index 99% rename from "content/zh-cn/docs/\351\231\204\345\275\225/\351\205\215\347\275\256\350\207\252\345\256\232\344\271\211\346\235\203\351\231\220.md" rename to content/zh-cn/docs/appendix/configuring-custom-permissions.md index 6ae1ba9..bb6404c 100644 --- "a/content/zh-cn/docs/\351\231\204\345\275\225/\351\205\215\347\275\256\350\207\252\345\256\232\344\271\211\346\235\203\351\231\220.md" +++ b/content/zh-cn/docs/appendix/configuring-custom-permissions.md @@ -9,10 +9,10 @@ weight: 5 针对不同的存储资源,请参考以下配置: -- NAS相关资源请参考[表 NAS相关资源最小权限说明](#table66121923174916)配置最小权限。 -- SAN相关资源请参考[表 SAN相关资源最小权限说明](#table51362243359)配置最小权限。 +- NAS相关资源请参考[表1](#table66121923174916)配置最小权限。 +- SAN相关资源请参考[表2](#table51362243359)配置最小权限。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >可参考存储文档:《[OceanStor Dorado 6000, Dorado 18000系列 产品文档](https://support.huawei.com/hedex/hdx.do?docid=EDOC1100214749&id=ZH-CN_TOPIC_0000001640708705)》配置自定义角色权限。 **表 1** NAS相关资源最小权限说明 diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" b/content/zh-cn/docs/appendix/example-alua-configuration-policy-of-distributed-storage.md similarity index 53% rename from "content/zh-cn/docs/\351\231\204\345\275\225/\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" rename to content/zh-cn/docs/appendix/example-alua-configuration-policy-of-distributed-storage.md index 828288d..90cfde7 100644 --- "a/content/zh-cn/docs/\351\231\204\345\275\225/\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" +++ b/content/zh-cn/docs/appendix/example-alua-configuration-policy-of-distributed-storage.md @@ -18,7 +18,7 @@ parameters: pathType: non_optimal_path ``` -对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置分布式存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置分布式存储后端的ALUA参数)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 +对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置分布式存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 **例2**.配置文件如下: @@ -33,7 +33,7 @@ parameters: pathType: non_optimal_path ``` -对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置分布式存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置分布式存储后端的ALUA参数)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 +对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置分布式存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 **例3**.配置文件如下: @@ -48,5 +48,5 @@ parameters: pathType: non_optimal_path ``` -根据[配置分布式存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置分布式存储后端的ALUA参数)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 +根据[配置分布式存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-Dorado-ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" b/content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md similarity index 50% rename from "content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-Dorado-ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" rename to content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md index ba7574f..aa8ecd8 100644 --- "a/content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-Dorado-ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" +++ b/content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md @@ -18,7 +18,7 @@ parameters: hyperMetroPathOptimized: 0 ``` -对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置华为企业存储后端的ALUA参数)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 +对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 **例2**.配置文件如下: @@ -33,7 +33,7 @@ parameters: hyperMetroPathOptimized: 0 ``` -对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置华为企业存储后端的ALUA参数)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 +对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 **例3**.配置文件如下: @@ -48,5 +48,5 @@ parameters: hyperMetroPathOptimized: 0 ``` -根据[配置华为企业存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置华为企业存储后端的ALUA参数)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 +根据[配置华为企业存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-V5\347\263\273\345\210\227\345\222\214OceanStor-Dorado-V3\347\263\273\345\210\227ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" b/content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md similarity index 56% rename from "content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-V5\347\263\273\345\210\227\345\222\214OceanStor-Dorado-V3\347\263\273\345\210\227ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" rename to content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md index 664463e..eb2147d 100644 --- "a/content/zh-cn/docs/\351\231\204\345\275\225/OceanStor-V5\347\263\273\345\210\227\345\222\214OceanStor-Dorado-V3\347\263\273\345\210\227ALUA\347\211\271\346\200\247\351\205\215\347\275\256\347\255\226\347\225\245\346\240\267\344\276\213.md" +++ b/content/zh-cn/docs/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md @@ -22,7 +22,7 @@ parameters: PATHTYPE: 1 ``` -对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置华为企业存储后端的ALUA参数)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 +对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 **例2**.配置文件如下: @@ -41,7 +41,7 @@ parameters: PATHTYPE: 1 ``` -对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置华为企业存储后端的ALUA参数)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 +对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 **例3**.配置文件如下: @@ -60,5 +60,5 @@ parameters: PATHTYPE: 1 ``` -根据[配置华为企业存储后端的ALUA参数](/docs/高级特性/配置ALUA特性/通过Helm配置ALUA特性/配置华为企业存储后端的ALUA参数)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 +根据[配置华为企业存储后端的ALUA参数](/docs/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 diff --git a/content/zh-cn/docs/appendix/huawei-csi-resource-management.md b/content/zh-cn/docs/appendix/huawei-csi-resource-management.md new file mode 100644 index 0000000..9f12ffd --- /dev/null +++ b/content/zh-cn/docs/appendix/huawei-csi-resource-management.md @@ -0,0 +1,213 @@ +--- +title: "华为CSI资源管理" +linkTitle: "华为CSI资源管理" +description: +weight: 6 +--- + +本章节列举了华为CSI插件中每个容器所使用的资源请求和限制。其中单位说明请参考[Kubernetes 中的资源单位](https://kubernetes.io/zh-cn/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes)。 + +**表 1** 容器资源请求和限制 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Pod 名称

+

容器名称

+

CPU 请求

+

CPU 限制

+

Memory 请求

+

Memory 限制

+

huawei-csi-controller

+

huawei-csi-driver

+

50m

+

500m

+

128Mi

+

1Gi

+

storage-backend-sidecar

+

50m

+

300m

+

128Mi

+

512Mi

+

storage-backend-controller

+

50m

+

300m

+

128Mi

+

512Mi

+

huawei-csi-extender

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-attacher

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-provisioner

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-resize

+

50m

+

300m

+

128Mi

+

512Mi

+

csi-snapshotter

+

50m

+

300m

+

128Mi

+

512Mi

+

snapshot-controller

+

50m

+

300m

+

128Mi

+

512Mi

+

liveness-probe

+

10m

+

100m

+

128Mi

+

128Mi

+

huawei-csi-node

+

huawei-csi-driver

+

50m

+

500m

+

128Mi

+

1Gi

+

csi-node-driver-registrar

+

50m

+

300m

+

128Mi

+

128Mi

+

liveness-probe

+

10m

+

100m

+

128Mi

+

128Mi

+
+ +## 修改资源请求和限制{#section61471438195712} + +如果需要修改容器的资源请求和限制,以Helm安装华为CSI为例,可参考以下步骤 + +1. 使用Helm安装时进入/helm/esdk/templates 目录。手动部署时需要修改的文件在/manual/esdk/deploy目录,其中组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +2. 修改部署模板文件。 + + - Pod名称为huawei-csi-controller时,修改huawei-csi-controller.yaml文件。 + - Pod名称为huawei-csi-node时,修改huawei-csi-node.yaml文件。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >Pod名称的分类,请参考[表1](#table4106151116363)。 + + 以修改Pod名称为huawei-csi-node中huawei-csi-driver容器的资源请求为例,执行命令编辑配置文件,找到spec.template.spec.containes.name为huawei-csi-driver的容器。按需修改资源请求和限制。 + + ``` + vi huawei-csi-node.yaml + ``` + + 编辑如下内容。 + + ``` + containers + - name: huawei-csi-driver + ... + resources: + limits: + cpu: 500m + memory: 1Gi + requests: + cpu: 50m + memory: 128Mi + ``` + +3. 若华为CSI未安装,则参考[Kubernetes、OpenShift、Tanzu安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu)章节安装华为CSI后,资源请求和限制的修改生效。 +4. 若已安装华为CSI,则参考[升级华为CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu#section6841317173013)章节更新华为CSI后,资源请求和限制的修改生效。 + diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/_index.md" b/content/zh-cn/docs/common-operations/_index.md similarity index 100% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/_index.md" rename to content/zh-cn/docs/common-operations/_index.md diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/_index.md" b/content/zh-cn/docs/common-operations/collecting-information/_index.md similarity index 100% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/_index.md" rename to content/zh-cn/docs/common-operations/collecting-information/_index.md diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\346\227\245\345\277\227\346\224\266\351\233\206.md" b/content/zh-cn/docs/common-operations/collecting-information/collecting-logs.md similarity index 97% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\346\227\245\345\277\227\346\224\266\351\233\206.md" rename to content/zh-cn/docs/common-operations/collecting-information/collecting-logs.md index 2c9bdc7..411642d 100644 --- "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\346\227\245\345\277\227\346\224\266\351\233\206.md" +++ b/content/zh-cn/docs/common-operations/collecting-information/collecting-logs.md @@ -8,7 +8,7 @@ weight: 3 ## 前置检查{#section298992810393} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群内有oceanctl工具的节点。 -2. 执行以下命令,显示版本号为**v4.5.0**。 +2. 执行以下命令,显示版本号为**v4.6.0**。 ``` oceanctl version @@ -17,7 +17,7 @@ weight: 3 命令结果示例如下: ```yaml - Oceanctl Version: v4.5.0 + Oceanctl Version: v4.6.0 ``` 3. 执行oceanctl collect logs --help命令,返回信息如下。 diff --git a/content/zh-cn/docs/common-operations/collecting-information/obtaining-the-csi-version.md b/content/zh-cn/docs/common-operations/collecting-information/obtaining-the-csi-version.md new file mode 100644 index 0000000..6af19f0 --- /dev/null +++ b/content/zh-cn/docs/common-operations/collecting-information/obtaining-the-csi-version.md @@ -0,0 +1,39 @@ +--- +title: "如何获取CSI版本信息" +linkTitle: "如何获取CSI版本信息" +description: +weight: 1 +--- + +本章节指导用户如何查看CSI版本信息。 + +## 操作步骤{#section1883055741114} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查看huawei-csi-node所在节点信息。 + + ``` + kubectl get pod -A -owide | grep huawei-csi-node + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi huawei-csi-node-87mss 3/3 Running 0 6m41s 192.168.129.155 node-1 + huawei-csi huawei-csi-node-xp8cc 3/3 Running 0 6m41s 192.168.129.156 node-2 _huawei-csi_huawei-csi-driver-.log + vi huawei-csi-controller-_huawei-csi_huawei-csi-driver-.log ``` ## 查看huawei-csi-node服务的日志{#zh-cn_topic_0000001191906803_section66851055357} @@ -53,7 +53,7 @@ weight: 2 kubectl get pod -A -o wide | grep huawei ``` - 命令结果示例如下,其中IP为节点主机ip,NODE为节点主机名称。 + 命令结果示例如下,其中IP为节点主机IP地址,NODE为节点主机名称。 ``` NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES @@ -82,6 +82,6 @@ weight: 2 6. 执行以下命令, 查看容器标准输出日志。 ``` - vi huawei-csi-node-_huawei-csi_huawei-csi-driver-.log + vi huawei-csi-node-_huawei-csi_huawei-csi-driver-.log ``` diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\351\205\215\347\275\256\351\235\236root\347\224\250\346\210\267\350\256\277\351\227\256Kubernetes\351\233\206\347\276\244.md" b/content/zh-cn/docs/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md similarity index 100% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\351\205\215\347\275\256\351\235\236root\347\224\250\346\210\267\350\256\277\351\227\256Kubernetes\351\233\206\347\276\244.md" rename to content/zh-cn/docs/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\270\213\350\275\275\345\256\271\345\231\250\351\225\234\345\203\217.md" b/content/zh-cn/docs/common-operations/downloading-a-container-image.md similarity index 74% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\270\213\350\275\275\345\256\271\345\231\250\351\225\234\345\203\217.md" rename to content/zh-cn/docs/common-operations/downloading-a-container-image.md index 2574326..8dc69f6 100644 --- "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\270\213\350\275\275\345\256\271\345\231\250\351\225\234\345\203\217.md" +++ b/content/zh-cn/docs/common-operations/downloading-a-container-image.md @@ -7,13 +7,13 @@ weight: 3 ## 使用containerd下载容器镜像{#section15713611153419} -1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉取的镜像及其标签。 +1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉取的镜像及其标签。 ``` ctr image pull : ``` -2. 执行以下命令,导出镜像到文件。其中 _image:tag_ 表示需要导出的镜像,_file_ 表示镜像导出后的文件名称。 +2. 执行以下命令,导出镜像到文件。其中 _image:tag_ 表示需要导出的镜像,_file_ 表示镜像导出后的文件名称。 ``` ctr image export .tar : @@ -21,7 +21,7 @@ weight: 3 ## 使用Docker下载容器镜像{#section5466193511236} -1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉取的镜像及其标签。 +1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉去的镜像。 ``` docker pull : @@ -35,7 +35,7 @@ weight: 3 ## 使用Podman下载容器镜像{#section137495322810} -1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉取的镜像及其标签。 +1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉去的镜像。 ``` podman pull : diff --git a/content/zh-cn/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md b/content/zh-cn/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md new file mode 100644 index 0000000..d8b769e --- /dev/null +++ b/content/zh-cn/docs/common-operations/enabling-the-readwriteoncepod-feature-gate.md @@ -0,0 +1,70 @@ +--- +title: "开启ReadWriteOncePod功能门" +linkTitle: "开启ReadWriteOncePod功能门" +description: +weight: 6 +--- + +ReadWriteOnce访问模式是Kubernetes v1.22版本为PV和PVC引入的第四种访问模式。如果您使用ReadWriteOncePod访问模式的PVC创建一个Pod,Kubernetes会确保该Pod是整个集群中唯一可以读取或写入该PVC的Pod。 + +若Kubernetes版本小于v1.29,需要先在kube-apiserver、kube-scheduler和kubelet的feature-gates中开启ReadWriteOncePod特性才能使用。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>当前CCE或CCE Agile平台不支持开启ReadWriteOncePod功能门 + +## 操作步骤{#zh-cn_topic_0000001259843616_section137882216292} + +1. 为kube-apiserver启用ReadWriteOncePod功能门。 + 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 + 2. 执行**vi /etc/kubernetes/manifests/kube-apiserver.yaml**命令,按**I**或**Insert**进入编辑状态,为 kube-apiserver容器添加参数--feature-gates=ReadWriteOncePod=true。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + + ``` + ... + spec: + containers: + - command: + - kube-apiserver + - --feature-gates=ReadWriteOncePod=true + ... + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >在编辑完成后,Kubernetes会自动应用更新,不需要手动更新。 + +2. 为kube-scheduler启用ReadWriteOncePod功能门。 + 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 + 2. 执行**vi /etc/kubernetes/manifests/kube-scheduler.yaml**命令,按**I**或**Insert**进入编辑状态,为kube-scheduler容器添加参数--feature-gates=ReadWriteOncePod=true。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + + ``` + … + spec: + containers: + - command: + - kube-scheduler + - --feature-gates=ReadWriteOncePod=true + ... + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >在编辑完成后,Kubernetes会自动应用更新,不需要手动更新。 + +3. 为kubelet启用ReadWriteOncePod功能门。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) + >由于动态Kubelet配置功能在v1.22中已弃用,并且在v1.24中删除,因此集群中每个worker节点上的kubelet都需要执行以下操作。 + + 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意worker节点。 + 2. 执行**vi /var/lib/kubelet/config.yaml**命令,按**I**或**Insert**进入编辑状态,为KubeletConfiguration对象的featureGates字段添加ReadWriteOncePod: true,如果没有featureGates字段请一并添加。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + + ``` + apiVersion: kubelet.config.k8s.io/v1beta1 + featureGates: + ReadWriteOncePod: true + ... + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >kubelet配置文件的默认路径为/var/lib/kubelet/config.yaml,请根据实际情况填写。 + + 3. 在配置完成后,执行**systemctl restart kubelet**命令重启kubelet。 + diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\256\211\350\243\205Helm-3.md" b/content/zh-cn/docs/common-operations/installing-helm-3.md similarity index 100% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\256\211\350\243\205Helm-3.md" rename to content/zh-cn/docs/common-operations/installing-helm-3.md diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\256\346\224\271\346\227\245\345\277\227\350\276\223\345\207\272\346\250\241\345\274\217.md" b/content/zh-cn/docs/common-operations/modifying-the-log-output-mode.md similarity index 94% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\256\346\224\271\346\227\245\345\277\227\350\276\223\345\207\272\346\250\241\345\274\217.md" rename to content/zh-cn/docs/common-operations/modifying-the-log-output-mode.md index da2bf9e..d914f83 100644 --- "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\256\346\224\271\346\227\245\345\277\227\350\276\223\345\207\272\346\250\241\345\274\217.md" +++ b/content/zh-cn/docs/common-operations/modifying-the-log-output-mode.md @@ -10,13 +10,13 @@ huawei-csi支持两种日志输出模式,分别是file和console。file指的 ## 操作步骤{#section130112319346} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 进入/helm/esdk 目录,执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 进入/helm/esdk 目录,执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml ``` -3. 执行**vi update-values.yaml**命令打开[2](#li1037712113474)中获取的文件,修改配置项,修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 +3. 执行**vi update-values.yaml**命令打开[2](#li1037712113474)中获取的文件,修改配置项,修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 ```yaml # The CSI driver parameter configuration diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\346\233\264\346\226\260huawei-csi-controller\346\210\226huawei-csi-node\346\234\215\345\212\241.md" b/content/zh-cn/docs/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md similarity index 64% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\346\233\264\346\226\260huawei-csi-controller\346\210\226huawei-csi-node\346\234\215\345\212\241.md" rename to content/zh-cn/docs/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md index 0196c50..7a68857 100644 --- "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\346\233\264\346\226\260huawei-csi-controller\346\210\226huawei-csi-node\346\234\215\345\212\241.md" +++ b/content/zh-cn/docs/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md @@ -10,13 +10,13 @@ weight: 4 ## 操作步骤{#section1452416823017} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 进入/helm/esdk 目录,执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 进入/helm/esdk 目录,执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml ``` -3. 执行 **vi update-values.yaml** 命令打开[2](#li1037712113474)中获取的文件,参考[Helm values.yaml参数说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明)修改配置项,修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 +3. 执行 **vi update-values.yaml** 命令打开[2](#li1037712113474)中获取的文件,参考[Helm values.yaml参数说明](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm)修改配置项,修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 4. 执行以下命令更新华为CSI服务。 ``` diff --git "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/_index.md" b/content/zh-cn/docs/compatibility-and-features/_index.md similarity index 100% rename from "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/_index.md" rename to content/zh-cn/docs/compatibility-and-features/_index.md diff --git a/content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md b/content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md new file mode 100644 index 0000000..871dcff --- /dev/null +++ b/content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage.md @@ -0,0 +1,147 @@ +--- +title: "华为分布式存储兼容性" +linkTitle: "华为分布式存储兼容性" +description: +weight: 4 +--- + +华为CSI插件兼容华为OceanStor系列的分布式存储系统,具体支持的存储版本如下表所示: + +## 支持的华为分布式存储{#section723118313717} + +**表 1** 支持的华为分布式存储 + + + + + + + + + + + + + +

存储产品

+

版本

+

FusionStorage Block

+

8.0.1

+

OceanStor Pacific系列

+

8.1.0, 8.1.1, 8.1.2, 8.1.3, 8.1.5, 8.2.0

+
+ +## 华为分布式存储支持的特性{#section14115311203711} + +华为CSI插件针对华为分布式存储支持如下特性。 + +**表 2** 华为分布式存储支持的特性及约束 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

特性

+

FusionStorage Block

+

OceanStor Pacific系列

+

Static Provisioning

+

SAN:iSCSI/SCSI

+

SAN:iSCSI/SCSI

+

NAS:DPC2/NFS 3/4.13

+

Dynamic Provisioning

+

Manage Provisioning1

+

Expand Persistent Volume4

+

支持使用Dynamic Provisioning,Manage Provisioning方式创建的卷

+

Create VolumeSnapshot

+

支持使用Dynamic Provisioning,Manage Provisioning方式创建的SAN类型卷

+

Delete VolumeSnapshot

+

支持

+

仅支持SAN类型的卷快照

+

Restore VolumeSnapshot

+

支持

+

仅支持SAN类型的卷快照

+

Clone Persistent Volume

+

支持使用Dynamic Provisioning,Manage Provisioning方式创建的SAN类型卷

+

Raw Block Volume

+

仅支持SAN类型的卷

+

仅支持SAN类型的卷

+

Topology

+

支持

+

支持

+

Generic Ephemeral Inline Volumes

+

支持

+

支持

+

Access Mode

+

RWO/ROX/RWOP:所有类型卷均支持,RWOP在Kubernetes 1.22及以上版本支持。

+

RWX:仅Raw Block卷和NFS类型的卷支持。

+

QoS

+

支持

+

支持

+

软硬配额

+

不支持

+

仅支持NAS类型的卷

+

存储多租户

+

不支持

+

仅支持NAS类型的卷

+
+ +- 注释1 Manage Provisioning是华为CSI自定义的纳管卷特性,该特性支持将已有存储资源纳管至Kubernetes。不允许将一个存储资源纳管多次和针对同一个存储资源进行并发删除/创建操作。 +- 注释2 仅OceanStor Pacific系列 8.1.2及以后版本支持DPC。使用DPC时操作系统需同时满足[华为CSI支持的操作系统](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818)和OceanStor Pacific系列兼容性中DPC基本连通性支持的操作系统。 +- 注释3 仅OceanStor Pacific系列 8.1.2及以后版本支持NFS 4.1。OceanStor Pacific系列 8.2.0及以后版本支持NFS over RDMA,且使用NFS over RDMA时,仅支持NFS 3。 +- 注释4 发放的volumeType为lun且accessModes为ReadOnlyMany的PVC不支持扩容。 + diff --git a/content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md b/content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md new file mode 100644 index 0000000..1845770 --- /dev/null +++ b/content/zh-cn/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md @@ -0,0 +1,310 @@ +--- +title: "华为企业存储兼容性" +linkTitle: "华为企业存储兼容性" +description: +weight: 3 +--- + +华为CSI插件兼容华为OceanStor系列的全闪存存储和混合闪存存储,具体支持的存储版本如下表所示: + +## 支持的华为企业存储{#section6374917361} + +**表 1** 支持的华为企业存储 + + + + + + + + + + + + + + + + + + + +

存储产品

+

版本

+

OceanStor V5

+

V500R007, V500R007 Kunpeng

+

OceanStor Dorado V3

+

V300R002

+

OceanStor

+

6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8, V700R001C00

+

OceanStor Dorado

+

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8, V700R001C00

+
+ +## 华为企业存储支持的特性{#section0652122673620} + +华为CSI插件针对华为企业存储支持如下特性。 + +**表 2** 华为企业存储支持的特性及约束 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

特性

+

OceanStor V5

+

OceanStor Dorado V3

+

OceanStor

+

OceanStor Dorado

+

Static Provisioning

+

SAN:FC/iSCSI2

+

NAS:NFS 3

+

+

SAN:FC/iSCSI2

+

+

SAN:FC/iSCSI/NVMe over RoCE/NVMe over FC3

+

NAS:NFS 3/4.0/4.1/4.24

+

+

SAN:FC/iSCSI/NVMe over RoCE/NVMe over FC3

+

NAS:NFS 3/4.0/4.1/4.24

+

+

Dynamic Provisioning

+

Manage Provisioning1

+

Expand Persistent Volume5

+

支持使用Dynamic Provisioning,Manage Provisioning方式创建的卷

+

Create VolumeSnapshot

+

支持使用Dynamic Provisioning,Manage Provisioning方式创建的卷

+

Delete VolumeSnapshot

+

支持

+

支持

+

支持

+

支持

+

Restore VolumeSnapshot

+

支持

+

支持

+

SAN:支持

+

NAS:仅6.1.5及其之后版本支持

+

SAN:支持

+

NAS:仅6.1.5及其之后版本支持

+

Clone Persistent Volume

+

支持使用Dynamic Provisioning,Manage Provisioning方式创建的非双活卷

+

SAN:支持使用Dynamic Provisioning,Manage Provisioning方式创建的非双活卷

+

NAS:仅6.1.5及其之后版本支持使用Dynamic Provisioning,Manage Provisioning方式创建的卷

+

Raw Block Volume

+

仅支持SAN类型的卷

+

仅支持SAN类型的卷

+

仅支持SAN类型的卷

+

仅支持SAN类型的卷

+

Topology

+

支持

+

支持

+

支持

+

支持

+

Generic Ephemeral Volumes

+

支持

+

支持

+

支持

+

支持

+

Access Mode

+

RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。

+

RWX:仅Raw Block卷和NFS类型的卷支持

+

QoS

+

支持6

+

支持

+

支持

+

支持

+

应用类型

+

不涉及

+

不涉及

+

支持

+

支持

+

卷双活7

+

不支持

+

不涉及

+

仅支持NAS类型的卷

+

存储多租户

+

仅支持NAS类型的卷

+

不涉及

+

仅支持NAS类型的卷8

+
+ +- 注释1 Manage Provisioning是华为CSI自定义的纳管卷特性,该特性支持将已有存储资源纳管至Kubernetes。不允许将一个存储资源纳管多次和针对同一个存储资源进行并发删除/创建操作。 +- 注释2 若用户的容器平台部署在虚拟化环境中,则仅支持iSCSI组网。 +- 注释3 使用NVMe over RoCE或NVMe over FC时,worker节点nvme-cli工具版本不低于1.9,查询命令为:nvme version。 +- 注释4 仅OceanStor/OceanStor Dorado 6.1.0及以后版本支持NFS。仅OceanStor/OceanStor Dorado 6.1.3及以后版本支持NFS 4.1,OceanStor/OceanStor Dorado 6.1.7及以后版本支持NFS over RDMA,OceanStor/OceanStor Dorado 6.1.8及以后版本支持NFS 4.2。 +- 注释5 发放的volumeType为lun且accessModes为ReadOnlyMany的PVC不支持扩容。 +- 注释6 仅系统用户支持配置QoS。 +- 注释7 仅支持AA双活。 +- 注释8 仅OceanStor/OceanStor Dorado 6.1.3及以后版本支持多租户。 + +华为CSI插件针对华为企业存储Dtree特性支持如下表所示。 + +**表 3** Dtree支持的特性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

特性

+

支持情况

+

Static Provisioning

+

+

Dynamic Provisioning

+

+

Expand Persistent Volume

+

+

Access Mode

+

√ (RWX/RWO/ROX/RWOP:RWOP需Kubernetes 1.22版本以上支持。)

+

多租户

+

+

Create VolumeSnapshot

+

X

+

Delete VolumeSnapshot

+

X

+

Restore VolumeSnapshot

+

X

+

Clone Persistent Volume

+

X

+

QoS

+

X

+

卷双活

+

X

+

应用类型

+

X

+
+ +**表 4** Dtree支持的华为存储版本 + + + + + + + + + + +

存储产品

+

版本

+

OceanStor Dorado

+

6.1.0, 6.1.2, 6.1.3, 6.1.5, 6.1.6, 6.1.7, 6.1.8, V700R001C00

+
+ diff --git a/content/zh-cn/docs/compatibility-and-features/kubernetes-and-os-compatibility.md b/content/zh-cn/docs/compatibility-and-features/kubernetes-and-os-compatibility.md new file mode 100644 index 0000000..55c6d34 --- /dev/null +++ b/content/zh-cn/docs/compatibility-and-features/kubernetes-and-os-compatibility.md @@ -0,0 +1,244 @@ +--- +title: "Kubernetes及操作系统兼容性" +linkTitle: "Kubernetes及操作系统兼容性" +description: +weight: 1 +--- + +华为CSI插件支持如下容器管理平台: + +**表 1** 支持的容器管理平台 + + + + + + + + + + + + + + + + + + + + + + +

容器管理平台

+

版本

+

Kubernetes

+

1.16~1.31

+

Red Hat OpenShift Container Platform

+

4.6 EUS, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15, 4.16, 4.17

+

Tanzu Kubernetes Grid Integrated

+

TKGI 1.14.1, TKGI 1.15, TKGI 1.16, TKGI 1.17, TKGI 1.18

+

CCE Agile

+

22.3.2

+

CCE

+

22.9.5

+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 华为CSI对接Tanzu Kubernetes仅支持集中式存储NAS场景,相关FAQ请参见[对接Tanzu Kubernetes集群常见问题及解决方法](/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster)。 +>- 华为CSI对接CCE或CCE Agile仅支持集中式存储。 + +华为CSI插件支持的操作系统以及多路径信息如下表所示。 + +**表 2** 支持的主机操作系统及多路径软件版本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

操作系统名称

+

操作系统版本

+

原生DM-Multipath版本

+

华为UltraPath版本

+

CentOS x86_64

+

7.6, 7.7, 7.9

+

随OS自带,支持FC/iSCSI

+

UltraPath 31.1.0,支持FC/iSCSI

+

CentOS x86_64

+

8.2, 8.4

+

随OS自带,支持FC/iSCSI

+

UltraPath 31.1.0,支持FC/iSCSI

+

UltraPath-NVMe 31.1.RC8,支持NVMe over RoCE/NVMe over FC

+

CentOS ARM

+

7.6

+

随OS自带,支持FC/iSCSI

+

不支持

+

Rocky Linux x86_64

+

8.6

+

随OS自带,支持FC/iSCSI

+

UltraPath 31.2.1,支持NVMe over RoCE

+

SUSE 15 x86_64

+

SP2, SP3

+

随OS自带,支持FC/iSCSI

+

UltraPath 31.1.0,支持FC/iSCSI

+

UltraPath-NVMe 31.1.RC8,支持NVMe over RoCE/NVMe over FC

+

Red Hat CoreOS x86_64

+

4.6, 4.7, 4.8, 4.9, 4.10, 4.11, 4.12, 4.13, 4.14, 4.15, 4.16, 4.17

+

随OS自带,支持FC/iSCSI

+

不支持

+

Ubuntu x86_64

+

18.04, 20.04, 22.04

+

随OS自带,支持FC/iSCSI

+

不支持

+

Ubuntu ARM

+

22.04

+

随OS自带,支持FC/iSCSI

+

不支持

+

Kylin x86_64

+

7.6, V10 SP1, V10 SP2, V10 SP3

+

随OS自带,支持FC/iSCSI

+

UltraPath 31.2.0,支持FC/iSCSI1

+

Kylin ARM

+

V10 SP1, V10 SP2, V10 SP3

+

随OS自带,支持FC/iSCSI

+

UltraPath 31.3.0,支持iSCSI2

+

Debian x86_64

+

9, 11, 12

+

随OS自带,支持FC/iSCSI

+

不支持

+

EulerOS x86_64

+

V2R9, V2R10, V2R11, V2R12

+

随OS自带,支持FC/iSCSI

+

不支持

+

EulerOS ARM

+

V2R10, V2R12

+

随OS自带,支持FC/iSCSI

+

不支持

+

UOS x86_64

+

V20

+

随OS自带,支持FC/iSCSI

+

不支持

+

BC-Linux ARM

+

21.10

+

随OS自带,支持FC/iSCSI

+

不支持

+

Anolis OS3

+

8.8

+

随OS自带,支持iSCSI

+

不支持

+

OpenEuler x86_64

+

22.03 LTS SP1

+

随OS自带,支持iSCSI

+

不支持

+

Red Hat Enterprise Linux x86_64

+

8.6, 8.7, 8.8, 8.9, 8.10, 9.4

+

随OS自带,支持FC/iSCSI

+

不支持

+
+ +注释1 仅Kylin x86\_64 V10 SP2支持UltraPath 31.2.0。 + +注释2 仅Kylin ARM V10 SP3支持UltraPath 31.3.0。 + +注释3 Anolis OS仅支持OceanStor Pacific存储。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>因DM-Multipath在0.7版本存在执行multipathd show maps时可能无法回显所有的虚拟设备,因此建议使用0.8及以上版本。 +>DM-Multipath版本可以通过以下途径查询: +>- 如果使用的是rpm包,执行:rpm -qa | grep multipath或rpm -qa | grep device-mapper。 +>- 如果使用的是deb包,执行:dpkg -l | grep multipath。 + diff --git "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\347\211\271\346\200\247\347\237\251\351\230\265.md" b/content/zh-cn/docs/compatibility-and-features/kubernetes-feature-matrix.md similarity index 100% rename from "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\347\211\271\346\200\247\347\237\251\351\230\265.md" rename to content/zh-cn/docs/compatibility-and-features/kubernetes-feature-matrix.md diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/_index.md" b/content/zh-cn/docs/installation-and-deployment/_index.md similarity index 100% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/_index.md" rename to content/zh-cn/docs/installation-and-deployment/_index.md diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/_index.md" b/content/zh-cn/docs/installation-and-deployment/installation-preparations/_index.md similarity index 74% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/_index.md" rename to content/zh-cn/docs/installation-and-deployment/installation-preparations/_index.md index 4a113da..7563d64 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/_index.md" +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/_index.md @@ -11,9 +11,9 @@ weight: 1 在进行本章节所说明的操作前,请确保如下条件已经具备: -- 容器管理平台已部署完成并正常运行,且兼容性满足[Kubernetes及操作系统兼容性](/docs/兼容性和特性/Kubernetes及操作系统兼容性)章节的要求。 -- (企业存储必选)已完成对接华为企业存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足[华为企业存储兼容性](/docs/兼容性和特性/华为企业存储兼容性)章节的要求。 -- (分布式存储必选)已完成对接华为分布式存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足[华为分布式存储兼容性](/docs/兼容性和特性/华为分布式存储兼容性)章节的要求。 +- 容器管理平台已部署完成并正常运行,且兼容性满足[Kubernetes及操作系统兼容性](/docs/compatibility-and-features/kubernetes-and-os-compatibility)章节的要求。 +- (企业存储必选)已完成对接华为企业存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足[华为企业存储兼容性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage)章节的要求。 +- (分布式存储必选)已完成对接华为分布式存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足[华为分布式存储兼容性](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage)章节的要求。 - 完成华为存储和容器平台主机连通性配置,例如运行huawei-csi-controller的worker节点与待接入的存储设备的管理IP地址通信正常,运行huawei-csi-node的worker节点与待接入的存储设备的业务IP地址通信正常,iSCSI场景下允许使用ping命令进行连通性校验。 - 请确保操作系统的语言是英文。 - 请确保存储池、租户名称等相关存储资源名称是英文。 diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\345\244\232\350\267\257\345\276\204\351\205\215\347\275\256.md" b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md similarity index 84% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\345\244\232\350\267\257\345\276\204\351\205\215\347\275\256.md" rename to content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md index d4227e0..848aa3b 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\345\244\232\350\267\257\345\276\204\351\205\215\347\275\256.md" +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md @@ -7,21 +7,21 @@ weight: 5 当您计划在容器环境中使用FC/iSCSI/NVMe over RoCE/NVMe over FC协议对华为存储进行访问时,推荐您使用主机多路径软件增强主机和存储的链路冗余和性能。如果您不准备使用多路径软件,请跳过本章节。 -华为CSI软件支持对接的操作系统和多路径软件请参考[表 支持的主机操作系统及多路径软件版本](/docs/兼容性和特性/Kubernetes及操作系统兼容性#table133422378818)。 +华为CSI软件支持对接的操作系统和多路径软件请参考[表2](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818)。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- 如果您准备使用FC/iSCSI协议对接华为存储时,推荐使用操作系统自带的原生DM-Multipath。 >- 如果您准备使用NVMe over RoCE/NVMe over FC协议对接华为存储时,推荐使用华为自研的UltraPath-NVMe。 >- 如果您使用SCSI协议对接华为存储时,请关闭操作系统自带的DM-Multipath。 -**前提条件** +## 前提条件{#section43820464358} 主机多路径软件已经被正确的安装在主机上。 - 如果您使用的是操作系统自带的原生DM-Multipath,请咨询您的主机或操作系统提供商获取安装所需的资料和软件包。 -- 如果您使用的是华为自研的UltraPath或者UltraPath-NVMe,请联系华为工程师获取UltraPath或者UltraPath-NVMe的资料和软件包。软件包版本请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +- 如果您使用的是华为自研的UltraPath或者UltraPath-NVMe,请联系华为工程师获取UltraPath或者UltraPath-NVMe的资料和软件包。软件包版本请参考[表2](/docs/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818)。 -**操作步骤** +## 操作步骤{#section14674125816351} 1. 如果您使用iSCSI/FC协议对接华为企业存储,请参考[OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南](https://support.huawei.com/enterprise/zh/doc/EDOC1100112792/e369b5d4),对主机多路径进行配置和检查。 2. 如果您使用NVMe over RoCE/NVMe over FC协议对接华为企业存储,请参考[OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南](https://support.huawei.com/enterprise/zh/doc/EDOC1100112792/2bb03fdc),对主机多路径进行配置和检查。 @@ -37,6 +37,6 @@ weight: 5 如果配置不存在,请在/etc/multipath.conf文件开始处增加该配置项。 - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >user\_friendly\_names 和find\_multipaths 的参数作用请参考:[dm\_multipath/config\_file\_defaults](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/dm_multipath/config_file_defaults) diff --git a/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md new file mode 100644 index 0000000..ef817b1 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md @@ -0,0 +1,161 @@ +--- +title: "检查CSI依赖的镜像" +linkTitle: "检查CSI依赖的镜像" +description: +weight: 7 +--- + +华为CSI安装过程中需要依赖下表中的镜像,若集群中的所有worker节点已连接互联网且能够在线拉取镜像,则可跳过本章节。若集群中的节点无法连接互联网,则请根据使用的Kubernetes版本,下载对应的镜像文件并上传到镜像仓库中或者导入Kubernetes集群的所有worker节点中。 + +huawei-csi-controller服务依赖的sidecar镜像:livenessprobe、csi-provisioner、csi-attacher、csi-resizer、csi-snapshotter、snapshot-controller、storage-backend-controller、storage-backend-sidecar、huawei-csi-driver和huawei-csi-extender。huawei-csi-node服务依赖的sidecar镜像:livenessprobe、csi-node-driver-registrar和huawei-csi-driver。 + +关于每个镜像的功能和详情,请参考下表。 + +**表 1** Huawei CSI依赖的镜像 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

容器名称

+

容器镜像

+

K8s版本要求

+

功能描述

+

livenessprobe

+

registry.k8s.io/sig-storage/livenessprobe:v2.12.0

+

v1.16+

+

Kubernetes社区提供,提供用于监控CSI的健康状态,并上报给Kubernetes,使Kubernetes能够自动检测CSI程序的问题并重启Pod尝试修改该问题。

+

csi-resizer

+

registry.k8s.io/sig-storage/csi-resizer:v1.9.0

+

v1.16+

+

Kubernetes社区提供,在扩容PVC时,调用CSI给PVC提供更多的存储容量空间。

+

csi-node-driver-registrar

+

registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

+

v1.16+

+

Kubernetes社区提供,用于获取CSI信息,并通过kubelet的插件注册机制将节点注册到kubelet中,从而Kubernetes能够感知该节点与华为存储的对接。

+

csi-snapshotter

+

registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

+

v1.20+

+

Kubernetes社区提供,在创建/删除VolumeSnapshot时,调用CSI在存储侧完成快照的创建和删除。

+

registry.k8s.io/sig-storage/csi-snapshotter:v4.2.1

+

v1.17-v1.19

+

snapshot-controller

+

+

registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

+

v1.20+

+

Kubernetes社区提供,在创建/删除VolumeSnapshot时,监听Kubernetes API中关于VolumeSnapshot和VolumeSnapshotContent的对象,并触发csi-snapshotter在存储上完成快照的创建。

+

registry.k8s.io/sig-storage/snapshot-controller:v4.2.1

+

v1.17-v1.19

+

csi-provisioner

+

+

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

+

v1.20+

+

Kubernetes社区提供,用于完成PVC创建/删除。

+
  • 在创建PVC时,调用huawei-csi-controller服务在存储上创建LUN/文件系统作为PV。
  • 在删除PVC时,调用huawei-csi-controller服务在存储上删除该PV对应的LUN/文件系统。
+

registry.k8s.io/sig-storage/csi-provisioner:v3.0.0

+

v1.17-v1.19

+

quay.io/k8scsi/csi-provisioner:v1.4.0

+

v1.16.x

+

csi-attacher

+

+

registry.k8s.io/sig-storage/csi-attacher:v4.4.0

+

v1.17+

+

在创建/删除Pod时,调用huawei-csi-controller服务执行Publish/Unpublish Volume操作。

+

+

quay.io/k8scsi/csi-attacher:v1.2.1

+

v.1.16.x

+

storage-backend-controller

+

storage-backend-controller:4.6.0

+

v1.16+

+

华为CSI软件包提供、用于管理storageBackendClaim资源。

+

storage-backend-sidecar

+

storage-backend-sidecar:4.6.0

+

v1.16+

+

华为CSI软件包提供、用于管理storageBackendContent资源。

+

huawei-csi-driver

+

huawei-csi:4.6.0

+

v1.16+

+

华为CSI软件包提供、用于提供华为CSI支持的所有特性。

+

huawei-csi-extender

+

huawei-csi-extender:4.6.0

+

v1.16+

+

华为CSI软件包提供、用于提供华为CSI的扩展特性。

+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>集群若未连接互联网,需要手动下载容器镜像并上传到集群中,具体操作请参考[下载容器镜像](/docs/common-operations/downloading-a-container-image)。 + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\344\276\235\350\265\226\350\275\257\344\273\266\347\212\266\346\200\201.md" b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md similarity index 100% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\344\270\273\346\234\272\344\276\235\350\265\226\350\275\257\344\273\266\347\212\266\346\200\201.md" rename to content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md diff --git a/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md new file mode 100644 index 0000000..cde9d67 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md @@ -0,0 +1,105 @@ +--- +title: "检查华为存储上的用户配置" +linkTitle: "检查华为存储上的用户配置" +description: +weight: 3 +--- + +当华为存储接入容器平台后,华为CSI需要在华为存储上根据业务要求,管理存储资源,如创建卷、映射卷等操作。此时,华为CSI需要使用华为存储上已经创建的用户和华为存储进行通信。针对不同存储设备所需要的用户信息如下表所示。 + +**表 1** 存储对接CSI时使用的用户要求 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

存储类型

+

用户类型

+

角色

+

级别

+

类型

+

OceanStor V5

+

系统用户

+

管理员

+

管理员

+

本地用户

+

租户用户

+

租户管理员

+

管理员

+

本地用户

+

OceanStor Dorado V3

+

系统用户

+

管理员

+

管理员

+

本地用户

+

OceanStor

+

系统用户

+

管理员/自定义角色1

+

N/A

+

本地用户

+

OceanStor Dorado

+

系统用户

+

管理员/自定义角色1

+

N/A

+

本地用户

+

租户用户

+

租户管理员

+

N/A

+

本地用户

+

OceanStor Pacific系列

+

系统用户

+

管理员

+

N/A

+

本地用户

+
+ +- 注释1 使用自定义角色,需要给角色配置权限,最小权限请参考[配置自定义权限](/docs/appendix/configuring-custom-permissions)章节配置。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>不推荐使用“超级管理员”角色下的用户。 + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266.md" b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md similarity index 79% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266.md" rename to content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md index ef33a2b..98bf0a6 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266.md" +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md @@ -7,7 +7,7 @@ weight: 4 本章节介绍如何检查集群中卷快照依赖组件情况。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >由于Kubernetes v1.17.0之前不支持快照功能,如果部署快照CRD可能导致集群出现问题,因此在低于Kubernetes v1.17.0版本上部署华为CSI,请务必按照[Kubernetes低于v1.17.0](#section6894165917369)章节检查。 ## Kubernetes低于v1.17.0{#section6894165917369} @@ -28,7 +28,7 @@ Kubernetes低于v1.17.0时,部署快照时将会导致集群出现问题,请 test-node Ready 311d v1.16.0 ``` -2. 进入/helm/esdk/crds/snapshot-crds目录,执行以下命令,删除快照CRD安装文件。组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 进入/helm/esdk/crds/snapshot-crds目录,执行以下命令,删除快照CRD安装文件。组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` rm -rf ./huawei-csi-snapshot-crd-v1.yaml diff --git a/content/zh-cn/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md b/content/zh-cn/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md new file mode 100644 index 0000000..bf6eb81 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md @@ -0,0 +1,80 @@ +--- +title: "下载华为CSI软件包" +linkTitle: "下载华为CSI软件包" +description: +weight: 1 +--- + +本章节详细说明了下载方法以及软件包组件结构。 + +1. 打开浏览器,访问仓库地址:[https://github.com/Huawei/eSDK\_K8S\_Plugin/releases](https://github.com/Huawei/eSDK_K8S_Plugin/releases)。 +2. 根据CPU架构,下载对应的4.6.0版本软件包。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >软件包命名规范:插件名称(eSDK\_Huawei\_Storage\_Kubernetes\_CSI\_Plugin)+版本号+CPU架构。 + >CSI支持的CPU架构包括:X86、ARM和PPC64LE。 + +3. 将下载的软件包解压。软件包组件结构如下表所示。 + + **表 1** 软件包组件描述 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

组件

+

组件描述

+

image/huawei-csi-v4.6.0-arch.tar

+

huawei-csi-driver镜像,"arch"为CPU架构。

+

image/storage-backend-controller-v4.6.0-arch.tar

+

后端管理控制器镜像,"arch"为CPU架构。

+

image/storage-backend-sidecar-v4.6.0-arch.tar

+

后端管理sidecar镜像,"arch"为CPU架构。

+

image/huawei-csi-extender-v4.6.0-arch.tar

+

huawei-csi-extender镜像,"arch"为CPU架构。

+

bin/

+

华为提供的镜像使用的二进制文件。

+

bin/oceanctl

+

华为提供的命令行工具,可用于管理存储后端。

+

helm/

+

Helm工程,用于部署华为CSI。

+

manual/

+

用于手动安装部署华为CSI。

+

examples/

+

CSI使用过程中的yaml示例文件。

+

examples/backend

+

创建存储后端的yaml示例文件。

+
+ diff --git a/content/zh-cn/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md b/content/zh-cn/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md new file mode 100644 index 0000000..0d71927 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md @@ -0,0 +1,88 @@ +--- +title: "上传华为CSI镜像" +linkTitle: "上传华为CSI镜像" +description: +weight: 2 +--- + +华为提供huawei-csi镜像供用户使用,镜像文件获取请参考[下载华为CSI软件包](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package)。 + +为了后续在容器管理平台中可以使用CSI镜像,需要按照以下方式中的一种提前将CSI镜像导入到集群中: + +- 使用Docker工具,将CSI镜像上传至镜像仓库(推荐)。 +- 手动将CSI镜像导入到所有需要部署华为CSI的节点。 + +## 上传镜像到镜像仓库{#section93821739143119} + +安装华为CSI依赖如下华为提供的镜像文件,请按照说明依次导入并上传下列镜像文件,镜像文件获取请参考[下载华为CSI软件包](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package)。 + +- huawei-csi-v4.6.0-arch.tar +- storage-backend-controller-v4.6.0-_arch_.tar +- storage-backend-sidecar-v4.6.0-_arch_.tar +- huawei-csi-extender-v4.6.0-arch.tar + +**前提条件** + +已准备一台已安装Docker的Linux主机,且该主机支持访问镜像仓库。 + +**操作步骤** + +1. 执行以下命令,将CSI镜像导入当前节点。其中,arch为X86、ARM或PPC64LE。 + + ``` + docker load -i huawei-csi-v4.6.0-.tar + ``` + +2. 执行以下命令,添加镜像仓库地址到镜像标签。其中repo.huawei.com表示镜像仓库的地址。 + + ``` + docker tag huawei-csi:4.6.0 /huawei-csi:4.6.0 + ``` + +3. 执行以下命令,将CSI镜像上传到镜像仓库。其中repo.huawei.com表示镜像仓库的地址。 + + ``` + docker push /huawei-csi:4.6.0 + ``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 也可以使用containerd来进行镜像的导入和上传。 +>- CCE或CCE Agile平台请参考该平台用户手册完成镜像导入和上传。 + +## 上传镜像到本地节点{#section15439218133113} + +若镜像已上传至镜像仓库,则跳过本章节。 + +**前提条件** + +- 该节点已获取对应的华为CSI镜像文件,镜像文件获取请参考[下载华为CSI软件包](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package)。 +- 该节点已经安装Docker或其他容器引擎。 + +**操作步骤** + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录需要导入镜像的节点。 +2. 将Kubernetes CSI组件包中的"image"目录拷贝到当前节点的任意目录下。 +3. 执行**cd image**命令,进入到image的工作目录。工具路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +4. 执行命令依次将image目录下的所有华为CSI镜像导入至本地节点,其中 _name_ 参数是镜像tar包的名字。 + + 使用Docker容器引擎执行: + + ``` + docker load -i .tar + ``` + + 使用containerd容器引擎执行: + + ``` + ctr -n k8s.io image import .tar + ``` + + 使用Podman容器引擎执行: + + ``` + podman load -i .tar + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) + >当节点主机安装的是其他容器引擎时,请使用对应容器引擎的导入镜像命令。 + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/_index.md similarity index 69% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/_index.md index a7c7cba..3a91071 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/_index.md @@ -7,12 +7,12 @@ weight: 2 本章节介绍如何安装华为CSI。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) ->当前版本华为CSI添加了资源请求和限制,具体详情请参考[华为CSI资源管理](/docs/附录/华为CSI资源管理)。 +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>当前版本华为CSI添加了资源请求和限制,具体详情请参考[华为CSI资源管理](/docs/appendix/huawei-csi-resource-management)。 ## 前提条件{#zh-cn_topic_0000001324610777_section19453102010152} -- 已完成[安装前准备](/docs/安装部署/安装前准备)。 +- 已完成[安装前准备](/docs/installation-and-deployment/installation-preparations)。 - 集群的所有worker节点与待接入的存储设备的业务组网通信正常,iSCSI场景下允许使用ping命令进行连通性校验。 - 集群的所有worker节点已安装对应协议所需要的软件客户端,如iSCSI客户端、NFS客户端等。 diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md similarity index 93% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md index bd58299..0405ede 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md @@ -9,8 +9,8 @@ weight: 1 本章节介绍如何使用Helm 3安装部署华为CSI。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) ->- 华为CSI的安装支持root用户和非root用户。使用非root用户安装华为CSI时,需要保证当前用户能够访问Kubernetes集群的API Server,配置非root用户访问Kubernetes集群请参考[配置非root用户访问Kubernetes集群](/docs/常用操作/配置非root用户访问Kubernetes集群)。 +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 华为CSI的安装支持root用户和非root用户。使用非root用户安装华为CSI时,需要保证当前用户能够访问Kubernetes集群的API Server,配置非root用户访问Kubernetes集群请参考[配置非root用户访问Kubernetes集群](/docs/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user)。 >- 华为CSI必须在root用户权限下运行。 Helm是Kubernetes生态系统中的一个软件包管理工具,类似Ubuntu的APT、CentOS的YUM、或Python的pip一样,专门负责管理Kubernetes的应用资源。 diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md similarity index 79% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" rename to content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md index 757566e..4981a4f 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -8,17 +8,17 @@ weight: 1 ## 安装步骤{#section9426125115349} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录集群的任意master节点。 -2. 将Kubernetes CSI组件包中的"helm"目录拷贝到master节点的任意目录下。Helm工具路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 将Kubernetes CSI组件包中的"helm"目录拷贝到master节点的任意目录下。Helm工具路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 3. 进入到helm/esdk的工作目录下。 ``` cd helm/esdk ``` -4. 准备**values.yaml**文件,华为CSI已经在软件包的helm/esdk目录下提供了values.yaml模板文件,您也可以根据[Helm values.yaml参数说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明)修改参数对华为CSI进行定制。 +4. 准备**values.yaml**文件,华为CSI已经在软件包的helm/esdk目录下提供了values.yaml模板文件,您也可以根据[Helm values.yaml参数说明](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm)修改参数对华为CSI进行定制。 5. 安装前配置: - 若容器平台为Kubernetes,可跳过该步骤。 - - 若容器平台为Openshift,请根据[OpenShift平台安装配置](#section14977616204416)进行配置。 + - 若容器平台为OpenShift,请根据[OpenShift平台安装配置](#section14977616204416)进行配置。 - 若容器平台为Tanzu,请根据[Tanzu平台安装配置](#section9291624164514)进行配置。 6. 执行命令,更新存储后端CRD @@ -27,7 +27,7 @@ weight: 1 kubectl apply -f ./crds/backend/ ``` -7. **(可选)** 请务必按照[检查卷快照依赖组件](/docs/安装部署/安装前准备/检查卷快照依赖组件)章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考[表 controller配置项说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明#table813124411459)。 +7. **(可选)** 请务必按照[检查卷快照依赖组件](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考[表2](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459)。 ``` kubectl apply -f ./crds/snapshot-crds/ --validate=false @@ -39,7 +39,7 @@ weight: 1 helm install helm-huawei-csi ./ -n huawei-csi --create-namespace ``` - 命令执行结果如下: + 命令结果示例如下: ```yaml NAME: helm-huawei-csi @@ -50,7 +50,7 @@ weight: 1 TEST SUITE: None ``` -9. 完成huawei-csi服务部署后,可执行如下命令检查服务是否启动: +9. 完成huawei-csi服务部署后,可执行如下命令检查服务是否启动。 ``` kubectl get pod -n huawei-csi @@ -114,7 +114,7 @@ OpenShift平台请根据以下命令创建SecurityContextConstraints资源。 Tanzu平台请执行以下命令配置kubelet安装目录。 -1. 进入到安装包的helm/esdk目录下,执行命令打开配置文件,修改后保存。安装包目录请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +1. 进入到安装包的helm/esdk目录下,执行命令打开配置文件,修改后保存。安装包目录请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` vi values.yaml diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\271\263\345\217\260\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md similarity index 84% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\271\263\345\217\260\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" rename to content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md index 9d8a04f..42a3eab 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\271\263\345\217\260\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md @@ -1,18 +1,18 @@ --- -title: "CCE和CCE Agile平台安装华为CSI" -linkTitle: "CCE和CCE Agile平台安装华为CSI" +title: "CCE或CCE Agile平台安装华为CSI" +linkTitle: "CCE或CCE Agile平台安装华为CSI" description: weight: 2 --- -本章节介绍如何在CCE / CCE Agile平台安装华为CSI。 +本章节介绍如何在CCE或CCE Agile平台安装华为CSI。 ## 制作Helm安装包{#section2032812215509} -CCE和CCE Agile平台无法直接通过Helm安装华为CSI,需要手动制作Helm安装包后上传至平台模板市场进行安装。 +CCE或CCE Agile平台无法直接通过Helm安装华为CSI,需要手动制作Helm安装包后上传至平台模板市场进行安装。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录已部署Helm的任意节点。 -2. 将华为CSI组件包中的"helm"目录拷贝到节点的任意目录下。Helm工具路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 将华为CSI组件包中的"helm"目录拷贝到节点的任意目录下。Helm工具路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 3. 进入到helm的工作目录下。 ``` diff --git a/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md new file mode 100644 index 0000000..cafab65 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md @@ -0,0 +1,801 @@ +--- +title: "Helm values.yaml参数说明" +linkTitle: "Helm values.yaml参数说明" +description: +weight: 3 +--- + +在使用Helm安装CSI时,需要您根据部署时需要使用的特性准备Helm工程的values.yaml文件。华为CSI已经在软件包的helm/esdk目录下提供了values.yaml模板文件。 + +本章节将详细说明values.yaml中的配置项以及典型场景下的后端配置示例。 + +## images参数配置说明{#section128441143205716} + +values.yaml中的images配置项主要配置华为CSI运行时依赖的组件镜像信息。需要配置的参数如下: + +**表 1** images配置项说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

images.huaweiCSIService

+

huawei-csi镜像。

+

+

huawei-csi:4.6.0

+

images.storageBackendSidecar

+

华为后端管理sidecar镜像。

+

+

storage-backend-sidecar:4.6.0

+

images.storageBackendController

+

华为后端管理控制器镜像。

+

+

storage-backend-controller:4.6.0

+

images.huaweiCSIExtender

+

huawei-csi-extender镜像

+

+

huawei-csi-extender:4.6.0

+

images.sidecar.livenessProbe

+

livenessprobe sidecar镜像。

+

+

registry.k8s.io/sig-storage/livenessprobe:v2.12.0

+

images.sidecar.provisioner

+

csi-provisioner sidecar镜像。

+

+

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

+

images.sidecar.attacher

+

csi-attacher sidecar镜像。

+

+

registry.k8s.io/sig-storage/csi-attacher:v4.4.0

+

images.sidecar.resizer

+

csi-resizer sidecar镜像。

+

+

registry.k8s.io/sig-storage/csi-resizer:v1.9.0

+

images.sidecar.snapshotter

+

csi-snapshotter sidecar镜像。

+

+

registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

+

images.sidecar.snapshotController

+

snapshot-controller sidecar镜像。

+

+

registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

+

images.sidecar.registrar

+

csi-node-driver-registrar sidecar镜像。

+

+

registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- huaweiCSIService、storageBackendSidecar、storageBackendController、huaweiCSIExtender参数的值,请参考[上传华为CSI镜像](/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image)章节的说明,使用最终生成镜像的名称和版本。 +>- 其他sidecar镜像参数,请参考[检查CSI依赖的镜像](/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends)章节的说明,使用最终上传的镜像的名称和版本。 + +## controller参数配置说明{#section94006111587} + +controller配置项用于配置huawei-csi-controller组件的相关配置。 + +**表 2** controller配置项说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

备注

+

controller.controllerCount

+

huawei-csi-controller组件的副本数

+

+

1

+

Kubernetes版本低于v1.17时,由于Kubernetes社区提供的csi-provisioner sidecar镜像不支持--leader-election参数,只能通过单副本方式部署huawei-csi-controller组件。

+

因此,当Kubernetes版本低于v1.17版本时,该参数仅支持配置为1。

+

controller.volumeNamePrefix

+

PV名称的前缀,默认值为pvc,即创建的PV名称为:pvc-<uuid>。前缀必须满足DNS 子域名的命名规则,且PV名称总长度不得超过253个字符。

+

+

pvc

+

对应的provisioner参数名称为:--volume-name-prefix。

+

建议前缀不超过20个字符。

+

详细配置请参考配置PV名称前缀

+
  • 对接后端是OceanStor V5 SAN时,建议前缀不超过5个字符。
  • 对接后端是OceanStor V5 NAS存储时,前缀只能包含小写字母、'-',以及数字。
  • 对接后端是OceanStor Dorado和OceanStor存储时,前缀只能包含小写字母、'-',以及数字。
  • 对接后端是OceanStor Pacific系列存储时,前缀只能包含字母、数字、“_”、“-”和“.”,且总长度限制为58字符。
  • 对接后端是FusionStorage Block时,前缀只能包含字母、数字、“_”和“-”,且总长度限制为58字符。
+

controller.webhookPort

+

webhook服务使用的端口。

+

+

4433

+

如果存在端口冲突可修改为其他未占用的端口。

+

controller.snapshot.enabled

+

是否开启快照特性。

+

+

true

+

如果要使用快照相关功能,请开启该特性。

+

要求Kubernetes版本高于v1.17。

+

controller.resizer.enabled

+

是否开启扩容特性。

+

+

true

+

要求Kubernetes版本高于v1.16。

+

controller.nodeSelector

+

huawei-csi-controller的节点选择器。配置后huawei-csi-controller仅会调度到存在该标签的节点上。

+

+

-

+

节点选择器的详细说明请参考:将 Pod 分配给节点

+

controller.tolerations

+

huawei-csi-controller的污点容忍。配置后huawei-csi-controller能够容忍节点上存在该污点。

+

+

-

+

污点和容忍度的详细说明请参考:污点和容忍度

+

controller.livenessProbePort

+

huawei-csi-controller的存活性探针端口,用于健康检查。

+

+

9808

+

如果存在端口冲突可修改为其他未占用的端口

+

controller.csiExtender.volumeModify.enabled

+

是否开启PVC变更特性。

+

+

false

+

如果要PVC变更相关功能,请开启该特性。

+

controller.csiExtender.volumeModify.retryBaseDelay

+

PVC变更创建任务失败时的最小重试间隔。

+

+

5s

+

建议使用默认值。

+

controller.csiExtender.volumeModify.retryMaxDelay

+

PVC变更创建任务失败时的最大重试间隔。

+

+

5m

+

建议使用默认值。

+

controller.csiExtender.volumeModify.reconcileDelay

+

调协VolumeModifyClaim对象的间隔。

+

+

1s

+

建议使用默认值。

+

controller.exportCsiService.enabled

+

是否开启将CSI服务运行在Kubernetes集群的Service上。

+

+

false

+

开启后,Kubernetes集群内其他服务可通过gRPC访问CSI服务。

+

controller.exportCsiService.port

+

CSI服务运行在Kubernetes集群的Service时使用的端口。

+

+

9090

+

如果存在端口冲突可修改为其他未占用的端口。

+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>当controller.snapshot.enabled参数配置为true时,需要安装“helm/crd/snapshot-crds”目录下的卷快照CRD资源。 + +## node参数配置说明{#section374014171581} + +node配置项用于配置huawei-csi-node组件的相关配置。 + +**表 3** node配置项说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

备注

+

node.maxVolumesPerNode

+

节点可使用的华为CSI发放卷的最大数量。不定义或者配置为0时则认为不限制。

+

如果创建Pod时,指定 nodeName,则会忽略该配置。

+

+

100

+

详细说明请参考:Volume Limits

+

node.nodeSelector

+

huawei-csi-node的节点选择器。配置后huawei-csi-node仅会调度到存在该标签的节点上。

+

+

-

+

节点选择器的详细说明请参考:将 Pod 分配给节点

+

node.tolerations

+

huawei-csi-node的污点容忍。配置后huawei-csi-node能够容忍节点上存在该污点。

+

+
- key: "node.kubernetes.io/memory-pressure"
+  operator: "Exists"
+  effect: "NoExecute"
+- key: "node.kubernetes.io/disk-pressure"
+  operator: "Exists"
+  effect: "NoExecute"
+- key: "node.kubernetes.io/network-unavailable"
+  operator: "Exists"
+  effect: "NoExecute"
+

污点和容忍度的详细说明请参考:污点和容忍度

+

node.livenessProbePort

+

huawei-csi-node的存活性探针端口,用于健康检查。

+

+

9800

+

如果存在端口冲突可修改为其他未占用的端口

+

node.kubeletVolumeDevicesDirName

+

kubelet挂载块设备时的目录名称。

+

+

volumeDevices

+

当一个块设备被成功挂载之后,挂载路径的目录结构应该如下所示:

+
/var/lib/kubelet/plugins/kubernetes.io/csi/{kubeletVolumeDevicesDirName}/publish/{specName}/{podUID}
+
+ +## csiDriver参数配置说明{#section389443385812} + +csiDriver配置项包括了华为CSI运行时的基本配置,如华为驱动名称、多路径类型等配置信息。 + +**表 4** csiDriver配置项说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

备注

+

csiDriver.driverName

+

注册的驱动名称。

+

+

csi.huawei.com

+
  • 直接使用默认值。
  • 对于CCE Agile平台,需要修改该字段,例如:csi.oceanstor.com。
+

csiDriver.endpoint

+

通信端点。

+

+

/csi/csi.sock

+

直接使用默认值。

+

csiDriver.connectorThreads

+

最大并发扫盘/卸盘数。参数格式为整型,支持范围为1~10。

+

+

4

+

该值设置越大,同一时间单个节点中的针对多路径的扫盘、卸盘并发操作就越多。在使用DM-Multipath时,并发数过大可能会导致未知问题,影响整体时间。

+

csiDriver.volumeUseMultipath

+

是否使用多路径软件。参数格式为布尔值。

+

+

true

+

强烈建议开启多路径软件,以增强存储链路的冗余度和性能。

+

csiDriver.scsiMultipathType

+

存储协议为fc/iscsi时,使用的多路径软件。支持配置如下参数:

+
  • DM-multipath
  • HW-UltraPath
  • HW-UltraPath-NVMe
+

当volumeUseMultipath为true时必填。

+

DM-multipath

+

建议使用DM-multipath取值。

+

csiDriver.nvmeMultipathType

+

存储协议为roce/fc-nvme时,使用的多路径软件。仅支持配置HW-UltraPath-NVMe。

+

当volumeUseMultipath为true时必填。

+

HW-UltraPath-NVMe

+

-

+

csiDriver.scanVolumeTimeout

+

在主机上使用DM-Multipath多路径时,等待多路径聚合的超时时间,支持范围为1~600,单位秒。

+

+

3

+

-

+

csiDriver.execCommandTimeout

+

在主机上执行命令的超时时间

+

+

30

+

CSI插件在挂载,扩容盘符等场景下,需要运行一些主机命令,例如使用mount命令挂载文件系统。该配置用于控制执行单条命令的超时时间。

+

csiDriver.allPathOnline

+

是否检查DM-Multipath软件聚合的路径数等于实际在线的路径数,支持配置如下参数:

+
  • true:DM-Multipath软件聚合的路径数等于实际在线的路径数才满足盘符挂载条件。
  • false:默认不检查DM-Multipath软件聚合的路径数量,只要聚合出虚拟盘符,即满足盘符挂载条件。
+

当csiDriver.scsiMultipathType为DM-multipath时必填。

+

false

+

-

+

csiDriver.backendUpdateInterval

+

后端能力的更新时间间隔,支持范围60~600,单位秒。

+

+

60

+

-

+

csiDriver.controllerLogging.module

+

controller日志记录类型。支持配置如下参数:

+
  • file
  • console
+

+

file

+

使用file选项时,日志将被保留在节点指定的目录下,当CSI所在的Pod被销毁时,日志仍然被保留。

+

使用console选项时,日志将被保留在CSI所在Pod的临时空间中,当CSI所在的Pod被销毁时,日志也随之被销毁。

+

csiDriver.controllerLogging.level

+

controller日志输出级别。支持配置如下参数:

+
  • debug
  • info
  • warning
  • error
  • fatal
+

+

info

+

-

+

csiDriver.controllerLogging.fileDir

+

controller日志在file输出模式下的日志目录。

+

+

/var/log/huawei

+

请确保该目录下有足够的空间保留日志。空间大小建议不小于200 MB。

+

csiDriver.controllerLogging.fileSize

+

controller日志在file输出模式下单个日志文件大小。

+

+

20M

+

-

+

csiDriver.controllerLogging.maxBackups

+

controller日志在file输出模式下日志文件备份上限。

+

+

9

+

-

+

csiDriver.nodeLogging.module

+

node日志记录类型。支持配置如下参数:

+
  • file
  • console
+

+

file

+

使用file选项时,日志将被保留在节点指定的目录下,当CSI所在的Pod被销毁时,日志仍然被保留。

+

使用console选项时,日志将被保留在CSI所在Pod的临时空间中,当CSI所在的Pod被销毁时,日志也随之被销毁。

+

csiDriver.nodeLogging.level

+

node日志输出级别。支持配置如下参数:

+
  • debug
  • info
  • warning
  • error
  • fatal
+

+

info

+

-

+

csiDriver.nodeLogging.fileDir

+

node日志在file输出模式下的日志目录。

+

+

/var/log/huawei

+

请确保该目录下有足够的空间保留日志。空间大小建议不小于200 MB。

+

csiDriver.nodeLogging.fileSize

+

node日志在file输出模式下单个日志文件大小。

+

+

20M

+

-

+

csiDriver.nodeLogging.maxBackups

+

node日志在file输出模式下日志文件备份上限。

+

+

9

+

-

+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>如果您的容器环境已经部署了华为CSI,请确保csiDriver.driverName的设置和之前部署时的配置保持一致。否则会导致系统中已存在的有华为CSI发放的卷/快照无法被新部署的华为CSI管理。 + +## 其他参数配置说明{#section11500468593} + +其他配置项包括了CSI插件某些特性的开关或者镜像获取策略。 + +**表 5** 其他配置项说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

备注

+

kubernetes.namespace

+

华为CSI运行时所在Kubernetes命名空间,支持用户自定义。名称必须由小写字母、数字和“-”组成,例如:my-name、123-abc。

+

+

huawei-csi

+

-

+

kubeletConfigDir

+

kubelet工作目录。

+

+

/var/lib/kubelet

+
  • 直接使用默认值。
  • 对于Tanzu平台,需要修改该字段为/var/vcap/data/kubelet。
  • 对于CCE Agile平台,需要修改该字段为/mnt/paas/kubernetes/kubelet。
+

sidecarImagePullPolicy

+

sidecar镜像的拉取策略。

+

+

IfNotPresent

+

-

+

huaweiImagePullPolicy

+

huawei-csi镜像的拉取策略。

+

+

IfNotPresent

+

-

+

CSIDriverObject.isCreate

+

是否创建CSIDriver对象

+

+

false

+

CSIDriver特性在Kubernetes v1.18成为GA版本,因此要求Kubernetes版本高于v1.18,当Kubernetes版本低于 v1.18时,请设置该参数为false。

+

CSIDriverObject.attachRequired

+

CSI插件是否跳过attach操作。支持配置如下参数:

+
  • true:需要attach操作。
  • false:跳过attach操作。
+

+

true

+

参数attachRequired在Kubernetes v1.18支持配置。

+

如果CSIDriverObject.isCreate为true并且attachRequired参数设置为false时,huawei-csi插件将不会部署csi-attacher这个sidecar。

+
  • 使用NAS存储时支持配置为false。
  • 使用SAN存储时,请配置为true。
+

CSIDriverObject.fsGroupPolicy

+

基础卷是否支持在装载之前更改卷的所有权和权限。支持配置如下参数:

+
  • "ReadWriteOnceWithFSType":仅当定义了fsType并且卷的accessModes包含ReadWriteOnce时,才支持卷所有权和权限更改。
  • "File":Kubernetes可以使用fsGroup更改卷的权限和所有权,以匹配Pod安全策略中用户请求的fsGroup,而不管fsGroup或accessModes如何。
  • "None":将在不进行修改的情况下装载卷。
  • "null":将不设置fsGroupPolicy参数
+

+

null

+

参数fsGroupPolicy在Kubernetes v1.20支持配置,并且当CSIDriverObject.isCreate为true时该参数生效。

+

该特性在Kubernetes v1.20中为Beta版本,在Kubernetes v1.23成为GA版本,因此要求Kubernetes版本高于v1.20。

+

leaderElection.leaseDuration

+

领导者持续时间。

+

+

8s

+

仅多controller场景生效。

+

leaderElection.renewDeadline

+

领导者重新选举时间。

+

+

6s

+

仅多controller场景生效。

+

leaderElection.retryPeriod

+

领导者选举重试时间。

+

+

2s

+

仅多controller场景生效。

+
+ +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>请确保此kubernetes.namespace填入的命名空间在Kubernetes上已经存在,如果不存在请使用如下命令创建对应的命名空间。本例中,华为CSI运行的命名空间为“huawei-csi”。 +>``` +>kubectl create namespace huawei-csi +>``` + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md similarity index 56% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" rename to content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md index 401b815..3755d2f 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\256\211\350\243\205\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md @@ -7,7 +7,7 @@ weight: 2 本章节介绍如何手动安装华为CSI。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >手动安装华为CSI当前仅支持Kubernetes平台。 ## 安装步骤{#section113761618183018} @@ -20,7 +20,7 @@ weight: 2 kubectl create ns huawei-csi ``` -4. 进入到manual/esdk的工作目录下。具体路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +4. 进入到manual/esdk的工作目录下。具体路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` cd manual/esdk @@ -32,7 +32,7 @@ weight: 2 kubectl apply -f ./crds/backend/ ``` -6. **(可选)** 请务必按照[检查卷快照依赖组件](/docs/安装部署/安装前准备/检查卷快照依赖组件)章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果Kubernetes版本低于v1.17,跳过本步骤。 +6. **(可选)** 请务必按照[检查卷快照依赖组件](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果Kubernetes版本低于v1.17,跳过本步骤。 ``` kubectl apply -f ./crds/snapshot-crds/ --validate=false @@ -44,7 +44,13 @@ weight: 2 kubectl apply -f ./deploy/csidriver.yaml ``` -8. 执行命令安装huawei-csi-controller服务。如果Kubernetes版本低于v1.17,删除名称为csi-snapshotter和snapshot-controller的容器,并根据[检查CSI依赖的镜像](/docs/安装部署/安装前准备/检查CSI依赖的镜像)中的版本要求,修改其它容器镜像版本。 +8. 执行命令安装huawei-csi-controller服务。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >如果Kubernetes版本低于v1.17,需要对 _./deploy/huawei-csi-controller.yaml_ 文件进行如下修改: + >- Kubernetes版本低于v1.17时,不支持快照特性,删除名称为csi-snapshotter和snapshot-controller这两个与快照相关的容器配置。 + >- Kubernetes版本低于v1.17时,由于Kubernetes社区提供的csi-provisioner sidecar镜像不支持--leader-election参数,删除csi-provisioner容器leader-election参数配置,且仅支持单副本部署。 + >- 根据[检查CSI依赖的镜像](/docs/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends)中的版本要求,修改依赖的镜像版本。 ``` kubectl apply -f ./deploy/huawei-csi-controller.yaml @@ -72,8 +78,8 @@ weight: 2 huawei-csi-node-xrntc 3/3 Running 0 13m ``` ->![](/css-docs/public_sys-resources/zh/icon-note.gif) ->多副本controller部署场景下可以通过修改 _./deploy/huawei-csi-controller.yaml_ 文件中Deployment资源的spec.replica字段来指定副本个数,修改完成后,执行以下命令生效: +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>多副本controller部署场景下可以通过修改 _./deploy/huawei-csi-controller.yaml_ 文件中Deployment资源的spec.replica字段来指定副本个数,修改完成后,执行以下命令生效: >``` >kubectl apply -f ./deploy/huawei-csi-controller.yaml >``` diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md similarity index 88% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md index 0fad8da..2693d8f 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/_index.md @@ -7,7 +7,7 @@ weight: 3 本章节介绍如何卸载华为CSI。根据您安装时的方式,请使用不同的方式进行卸载。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。 diff --git a/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md new file mode 100644 index 0000000..5f231e5 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md @@ -0,0 +1,80 @@ +--- +title: "手动卸载华为CSI" +linkTitle: "手动卸载华为CSI" +description: +weight: 2 +--- + +本章节介绍如何手动卸载华为CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。 + +## 卸载huawei-csi-node服务{#section1012817231386} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令卸载 huawei-csi-node 服务,huawei-csi 替换为华为CSI所在的命名空间。 + + ``` + kubectl delete daemonset huawei-csi-node -n huawei-csi + ``` + +3. 执行以下命令检查服务是否已成功卸载(如果提示NotFound错误,表示已成功卸载)。 + + ``` + kubectl get daemonset huawei-csi-node -n huawei-csi + ``` + +## 卸载huawei-csi-controller服务{#section34281930180} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令卸载 huawei-csi-controller 服务,huawei-csi 替换为华为CSI所在的命名空间。 + + ``` + kubectl delete deployment huawei-csi-controller -n huawei-csi + ``` + +3. 执行以下命令检查服务是否已成功卸载(如果提示NotFound错误,表示已成功卸载)。 + + ``` + kubectl get deployment huawei-csi-controller -n huawei-csi + ``` + +## 卸载csidriver对象{#section4229471288} + +如果[安装时未使用CSIDriver特性](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi#li395973220487),可跳过本步骤。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令卸载csidriver对象。 + + ``` + kubectl delete csidriver csi.huawei.com + ``` + +3. 执行以下命令检查服务是否已成功卸载(如果提示NotFound错误,表示已成功卸载)。 + + ``` + kubectl get csidriver csi.huawei.com + ``` + +## 删除RBAC权限{#section111616512911} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 删除RBAC权限。 + + ``` + kubectl -n huawei-csi -l provisioner=csi.huawei.com delete ServiceAccount,Service,role,rolebinding,ClusterRole,ClusterRoleBinding + ``` + +## 其它资源卸载{#section1370361019919} + +1. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017)进行操作。 +2. 卸载webhook资源,请参考[卸载Webhook资源](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014)进行操作。 +3. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319)进行操作。 +4. (可选)卸载Lease资源,请参考[卸载Lease资源](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317)进行操作。 +5. (可选)执行以下命令,删除华为CSI所在的命名空间,这里以默认命名空间 huawei-csi 为例: + + ``` + kubectl delete ns huawei-csi + ``` + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md similarity index 100% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/\345\215\270\350\275\275CSI\344\276\235\350\265\226\347\273\204\344\273\266\346\234\215\345\212\241.md" b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md similarity index 94% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/\345\215\270\350\275\275CSI\344\276\235\350\265\226\347\273\204\344\273\266\346\234\215\345\212\241.md" rename to content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md index 4cad9b3..4facb0e 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/\345\215\270\350\275\275CSI\344\276\235\350\265\226\347\273\204\344\273\266\346\234\215\345\212\241.md" +++ b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md @@ -41,7 +41,7 @@ weight: 3 kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io ``` - 命令结果如下。 + 命令结果示例如下: ``` NAME WEBHOOKS AGE @@ -62,7 +62,7 @@ weight: 3 ## 卸载Snapshot依赖组件服务{#section48371491319} ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 请勿在存在快照时卸载Snapshot依赖组件服务,否则Kubernetes会自动删除所有的用户快照且无法恢复,请谨慎操作。详细说明请参见[删除 CustomResourceDefinition](https://kubernetes.io/zh/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#delete-a-customresourcedefinition)。 >- 请勿在CSI升级时卸载Snapshot依赖组件服务。 @@ -89,7 +89,7 @@ weight: 3 ## 卸载Lease资源{#section263805014317} -values.yaml文件中controller.controllerCount配置项的值大于1时,huawei-csi-controller将使用多副本部署,huawei-csi-controller服务的多副本使用Kubernetes的LeaderElection机制实现,该机制会创建Lease对象用于保存当前Holder信息。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤,若controller.controllerCount配置项的值等于1是时,可跳过本步骤。配置项描述可参考[表 controller配置项说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明#table813124411459)。 +values.yaml文件中controller.controllerCount配置项的值大于1时,huawei-csi-controller将使用多副本部署,huawei-csi-controller服务的多副本使用Kubernetes的LeaderElection机制实现,该机制会创建Lease对象用于保存当前Holder信息。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤,若controller.controllerCount配置项的值等于1是时,可跳过本步骤。配置项描述可参考[表2](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459)。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 2. 执行以下命令,查询Lease信息。 @@ -98,7 +98,7 @@ values.yaml文件中controller.controllerCount配置项的值大于1时,huawei kubectl get lease -n huawei-csi ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME HOLDER AGE diff --git a/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..6c2c326 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,26 @@ +--- +title: "CCE或CCE Agile卸载华为CSI" +linkTitle: "CCE或CCE Agile卸载华为CSI" +description: +weight: 2 +--- + +本章节介绍如何在CCE或CCE Agile平台卸载华为CSI,以CCE Agile v22.3.2为例。 + +## 操作步骤{#section1489941282414} + +1. 登录CCE Agile平台。 +2. 在主页单击“模板市场\> 模板实例 ”,进入模板实例页面。 +3. 选择华为CSI模板实例,单击“卸载”,在弹出的提示框中单击“确定”。 + + ![](/css-docs/figures/卸载-ch.png) + +4. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017)进行操作。 +5. 卸载webhook资源,请参考[卸载Webhook资源](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014)进行操作。 +6. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319)进行操作。 +7. (可选)执行以下命令,删除华为CSI所在的命名空间,这里以默认命名空间 huawei-csi 为例: + + ``` + kubectl delete ns huawei-csi + ``` + diff --git a/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..b0f2a60 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,40 @@ +--- +title: "Kubernetes、OpenShift、Tanzu卸载华为CSI" +linkTitle: "Kubernetes、OpenShift、Tanzu卸载华为CSI" +description: +weight: 1 +--- + +本章节介绍如何在Kubernetes、OpenShift、Tanzu平台卸载华为CSI。 + +## 操作步骤{#section9152125194710} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令卸载华为CSI,其中 _helm-huawei-csi_ 是自定义的Helm Chart名称,_huawei-csi_ 是该Helm Chart所在的命名空间。该卸载命令将会卸载华为CSI的huawei-csi-controller、huawei-csi-node和RBAC资源。 + + ``` + helm uninstall helm-huawei-csi -n huawei-csi + ``` + + 卸载命令执行后,还需要检查卸载是否成功。其中 _huawei-csi_ 为chart所在的命名空间。 + + ``` + helm list -n huawei-csi + ``` + + 命令结果示例如下,如果回显为空,则表示服务卸载成功。 + + ``` + NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION + ``` + +3. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017)进行操作。 +4. 卸载webhook资源,请参考[卸载Webhook资源](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014)进行操作。 +5. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319)进行操作。 +6. (可选)卸载Lease资源,请参考[卸载Lease资源](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317)进行操作。 +7. (可选)执行以下命令,删除华为CSI所在的命名空间,这里以默认命名空间 huawei-csi 为例: + + ``` + kubectl delete ns huawei-csi + ``` + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md similarity index 59% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md index 2c500c3..217f3ea 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md @@ -7,8 +7,8 @@ weight: 4 本章节介绍如何升级/回退华为CSI。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) ->当前版本华为CSI添加了资源请求和限制,具体详情请参考[华为CSI资源管理](/docs/附录/华为CSI资源管理)。 +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>当前版本华为CSI添加了资源请求和限制,具体详情请参考[华为CSI资源管理](/docs/appendix/huawei-csi-resource-management)。 diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/_index.md" b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md similarity index 100% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/_index.md" rename to content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\233\236\351\200\200\345\215\216\344\270\272CSI-1.md" b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md similarity index 57% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\233\236\351\200\200\345\215\216\344\270\272CSI-1.md" rename to content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md index 7246f29..4d4305a 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\233\236\351\200\200\345\215\216\344\270\272CSI-1.md" +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md @@ -5,9 +5,9 @@ description: weight: 2 --- -请参考[手动卸载华为CSI](/docs/安装部署/卸载华为CSI/手动卸载华为CSI)卸载CSI,然后下载安装升级之前版本的CSI。 +请参考[手动卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI,然后下载安装升级之前版本的CSI。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 在升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 >- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 >- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 @@ -19,6 +19,6 @@ weight: 2 ## 操作步骤{#section7449184616111} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 参考[手动卸载华为CSI](/docs/安装部署/卸载华为CSI/手动卸载华为CSI)卸载CSI。 -3. 参考[手动安装华为CSI](/docs/安装部署/安装华为CSI/手动安装华为CSI)重新安装原版本的CSI。 +2. 参考[手动卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI。 +3. 参考[手动安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi)重新安装原版本的CSI。 diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md new file mode 100644 index 0000000..9ab44f2 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md @@ -0,0 +1,39 @@ +--- +title: "升级华为CSI" +linkTitle: "升级华为CSI" +description: +weight: 1 +--- + +本章节介绍如何手动升级华为CSI。 + +升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 部分2.x版本CSI已经下架,若升级失败,可能无法回退到已下架版本的CSI。 +>- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 +>- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 + +## 2.x和3.x版本的CSI升级至4.6.0版本{#section260220843210} + +如果您从2.x和3.x版本的CSI升级至4.6.0版本,请按照以下操作步骤升级: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行命令备份后端信息到configmap.json文件中。OpenShift平台使用**oc**替换**kubectl**命令。 + + ``` + kubectl get cm huawei-csi-configmap -n huawei-csi -o json > configmap.json + ``` + +3. 参考[手动卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI。 +4. 参考[手动安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi)安装当前版本的CSI。 +5. 将[2](#li1699321211285)中备份的后端信息,按照[管理存储后端](/docs/storage-backend-management/managing-storage-backends)章节的说明安装。 + +## 从4.x版本的CSI升级至4.6.0版本。{#section173369363219} + +如果您从4.x版本的CSI升级至4.6.0版本,请按照以下操作步骤升级: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 参考[手动卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI。 +3. 参考[手动安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi)安装当前版本的CSI。 + diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..e52d080 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md @@ -0,0 +1,9 @@ +--- +title: "使用Helm升级/回退华为CSI" +linkTitle: "使用Helm升级/回退华为CSI" +description: +weight: 1 +--- + + + diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md new file mode 100644 index 0000000..5b739bb --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md @@ -0,0 +1,16 @@ +--- +title: "回退华为CSI" +linkTitle: "回退华为CSI" +description: +weight: 2 +--- + +如果您从2.x和3.x版本的CSI升级至4.6.0版本失败,需要回退时,请参考[Helm卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm)卸载CSI,然后下载安装升级之前版本的CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 在升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 +>- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 +>- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 + + + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md similarity index 53% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" rename to content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md index f9c0eb4..1fe114d 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md @@ -1,11 +1,11 @@ --- -title: "CCE和CCE Agile回退华为CSI" -linkTitle: "CCE和CCE Agile回退华为CSI" +title: "CCE或CCE Agile回退华为CSI" +linkTitle: "CCE或CCE Agile回退华为CSI" description: weight: 2 --- ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 在升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 >- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 >- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 @@ -17,6 +17,6 @@ weight: 2 ## 操作步骤{#section7449184616111} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 参考[操作步骤](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/CCE和CCE-Agile卸载华为CSI#section1489941282414)卸载CSI。 -3. 参考[CCE和CCE Agile平台安装华为CSI](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/CCE和CCE-Agile平台安装华为CSI)重新安装原版本的CSI。 +2. 参考[操作步骤](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile#section1489941282414)卸载CSI。 +3. 参考[CCE或CCE Agile平台安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform)重新安装原版本的CSI。 diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..4d2e978 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,48 @@ +--- +title: "Kubernetes、OpenShift、Tanzu回退华为CSI" +linkTitle: "Kubernetes、OpenShift、Tanzu回退华为CSI" +description: +weight: 1 +--- + +## 前提条件{#section12493103133711} + +- 已使用Helm 3完成CSI的更新。 + +## 操作步骤{#section1015846181614} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 进入到helm/esdk的工作目录下,目录路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + cd helm/esdk + ``` + +3. 执行命令,查看Helm部署CSI服务的历史版本。 + + ``` + helm history helm-huawei-csi -n huawei-csi + ``` + + 命令结果示例如下: + + ``` + REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION + 1 Mon Jan 8 04:15:40 2024 superseded esdk-4.4.0 4.4.0 Install complete + 2 Mon Jan 8 04:16:12 2024 deployed esdk-4.6.0 4.6.0 Upgrade complete + ``` + +4. 执行命令,回退CSI服务到指定版本。 + + 其中,revision-number为[3](#li92161141175717)查询到的版本号。例如版本为:1。 + + ``` + helm rollback helm-huawei-csi -n huawei-csi 1 + ``` + + 命令结果示例如下,回显中有Rollback was a success,则表示回退CSI服务到指定版本成功。 + + ``` + Rollback was a success! Happy Helming! + ``` + diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md new file mode 100644 index 0000000..2eeca01 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md @@ -0,0 +1,25 @@ +--- +title: "升级华为CSI" +linkTitle: "升级华为CSI" +description: +weight: 1 +--- + +本章节介绍如何升级华为CSI。 + +如果您从2.x版本升级至4.6.0版本,请参考旧版本用户指南卸载CSI,然后参考[使用Helm安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm)章节安装华为CSI。 + +如果您从2.x或3.x版本升级至4.6.0版本,请参考[从2.x或3.x升级至4.x版本](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x)章节升级华为CSI。 + +如果您从4.x版本升级至4.6.0版本,请参考[Kubernetes、OpenShift、Tanzu升级华为CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu)章节升级华为CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 部分2.x版本CSI已经下架,若升级失败,可能无法回退到已下架版本的CSI。 +>- 从2.x或3.x版本或4.x版本升级至4.6.0版本,可能存在旧版本已发放Pod重新挂载时失败的问题,具体请参考[从2.x或3.x升级至4.x版本](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x) +>- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 +>- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 +>- 升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 + + + + diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md new file mode 100644 index 0000000..36bfc82 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md @@ -0,0 +1,31 @@ +--- +title: "从2.x或3.x升级至4.x版本" +linkTitle: "从2.x或3.x升级至4.x版本" +description: +weight: 1 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>在CSI 2.x或3.x 版本中,使用块存储时,与存储建立映射的操作是在huawei-csi-node服务进行的,所以huawei-csi-node服务需要和存储管理网络通信。又由于huawei-csi-node服务是以DaemonSet部署的,在集群中每个节点都会部署一个huawei-csi-node服务,这样部署模型导致了在大规模集群下,每个huawei-csi-node服务都会向存储发起请求,可能导致存储连接数被占满,使得huawei-csi-node不能提供正常服务。 +>在CSI 4.x版本优化了该部署模型,将与存储建立映射操作迁移至huawei-csi-controller服务,huawei-csi-node服务不再需要和存储管理网络通信,降低了华为CSI依赖的组网复杂度,同时huawei-csi-controller服务以Deployment形式部署,副本数根据客户可靠性要求设置,一般情况下,副本数为1\~3。所以极大的减少了华为CSI与存储的连接数量,使得华为CSI服务能够接入大规模集群。 +>**该架构变化可能会导致一个问题**:升级后,使用2.x或3.x发放的工作负载,升级CSI至4.x版本之后,如果产生了一次新的挂载流程,并且CO(Container Orchestration system)未调用华为CSI提供的huawei-csi-controller服务,会导致挂载失败。问题请参考[创建Pod失败,Events日志显示“publishInfo doesn't exist”](/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log)。 + +## 备份存储后端配置{#section3200825558} + +如果您已按照以上须知评估风险后,确认需要从2.x或3.x版本的CSI升级至4.6.0版本,请按照以下操作步骤备份存储后端配置: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令备份后端信息到configmap.json文件中。OpenShift平台使用**oc**替换**kubectl**命令。 + + ``` + kubectl get cm huawei-csi-configmap -n huawei-csi -o json > configmap.json + ``` + +## 升级华为CSI{#section1413511233612} + +请按照[升级华为CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu#section6841317173013)中的步骤进行升级。 + +## 配置存储后端{#section496812169812} + +请将[备份存储后端配置](#section3200825558)中备份的后端信息,按照[管理存储后端](/docs/storage-backend-management/managing-storage-backends)章节的说明配置存储后端,存储后端配置成功后,请务必按照以上须知所述的风险处理方法进行操作,避免Pod在漂移过程中出现问题。 + diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..743c2eb --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,16 @@ +--- +title: "CCE或CCE Agile升级华为CSI" +linkTitle: "CCE或CCE Agile升级华为CSI" +description: +weight: 3 +--- + +## 前提条件{#zh-cn_topic_0000001275627010_zh-cn_topic_0000001232767941_section19453102010152} + +已下载新版本CSI的软件包。 + +## 操作步骤{#section7449184616111} + +1. 参考[CCE或CCE Agile卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile)卸载CSI。 +2. 参考[CCE或CCE Agile平台安装华为CSI](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform)安装新版本的CSI。 + diff --git a/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..b61e0c1 --- /dev/null +++ b/content/zh-cn/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,214 @@ +--- +title: "Kubernetes、OpenShift、Tanzu升级华为CSI" +linkTitle: "Kubernetes、OpenShift、Tanzu升级华为CSI" +description: +weight: 2 +--- + +## 前提条件{#section12493103133711} + +- 旧版本华为CSI使用Helm安装。 +- 新版本华为CSI镜像已制作完成,并且按照[上传华为CSI镜像](/docs/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image)章节说明,上传到镜像仓库或者导入到所有节点。 + +## 升级华为CSI{#section6841317173013} + +如果您旧版本CSI使用Helm部署,请按照以下操作步骤升级华为CSI。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 将目标版本CSI组件包拷贝到master节点的任意目录下。 +3. 进入到helm/esdk的工作目录下,目录路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + cd helm/esdk + ``` + +4. 执行**kubectl apply -f** ./crds/backend/命令,更新存储后端CRD + + ``` + kubectl apply -f ./crds/backend/ + ``` + +5. **(可选)** 请务必按照[检查卷快照依赖组件](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节检查快照依赖组件,确认无误后执行执行**kubectl apply -f** ./crds/snapshot-crds/ **--validate=false**命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考[表2](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459)。 + + ``` + kubectl apply -f ./crds/snapshot-crds/ --validate=false + ``` + +6. 执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。 + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +7. 执行**vi update-values.yaml**命令打开[6](#li1037712113474)中获取的文件,修改images配置项,更新镜像至最新版本。需要修改的参数请参考[表1](#table1554616217465)。 + + **表 1** images配置项 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

容器名称

+

描述

+

K8s版本要求

+

修改为

+

storage-backend-controller

+

huawei-csi镜像。

+

v1.16+

+

storage-backend-controller:4.6.0

+

storage-backend-sidecar

+

华为后端管理storageBackendContent资源的镜像

+

v1.16+

+

storage-backend-sidecar:4.6.0

+

huawei-csi-driver

+

华为后端管理storageBackendClaim资源的镜像。

+

v1.16+

+

huawei-csi:4.6.0

+

huawei-csi-extender

+

huawei-csi-extender镜像

+

v1.16+

+

huawei-csi-extender:4.6.0

+

images.sidecar.livenessProbe

+

livenessprobe sidecar镜像。

+

v1.16+

+

registry.k8s.io/sig-storage/livenessprobe:v2.12.0

+

images.sidecar.resizer

+

csi-resizer sidecar镜像。

+

v1.16+

+

registry.k8s.io/sig-storage/csi-resizer:v1.9.0

+

images.sidecar.registrar

+

csi-node-driver-registrar sidecar镜像。

+

v1.16+

+

registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0

+

images.sidecar.snapshotter

+

csi-snapshotter sidecar镜像。

+

v1.20+

+

registry.k8s.io/sig-storage/csi-snapshotter:v6.3.0

+

v1.17-v1.19

+

registry.k8s.io/sig-storage/csi-snapshotter:v4.2.1

+

images.sidecar.snapshotController

+

+

snapshot-controller sidecar镜像。

+

v1.20+

+

registry.k8s.io/sig-storage/snapshot-controller:v6.3.0

+

v1.17-v1.19

+

registry.k8s.io/sig-storage/snapshot-controller:v4.2.1

+

images.sidecar.provisioner

+

+

csi-provisioner sidecar镜像。

+

v1.20+

+

registry.k8s.io/sig-storage/csi-provisioner:v3.6.0

+

v1.17-v1.19

+

registry.k8s.io/sig-storage/csi-provisioner:v3.0.0

+

v1.16.x

+

quay.io/k8scsi/csi-provisioner:v1.4.0

+

images.sidecar.attacher

+

+

csi-attacher sidecar镜像。

+

v1.17+

+

registry.k8s.io/sig-storage/csi-attacher:v4.4.0

+

v.1.16.x

+

quay.io/k8scsi/csi-attacher:v1.2.1

+
+ +8. (可选)在升级过程中如需自定义更新配置项信息或者需要新增配置信息,可参考[Helm values.yaml参数说明](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm)修改update-values.yaml文件中配置信息。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >升级时,如果update-values.yaml与values.yaml配置文件中存在相同配置项,update-values.yaml中的配置将会优先生效。 + +9. 执行以下命令,升级华为CSI。其中helm-huawei-csi为指定的Helm Chart名称,huawei-csi为指定的Helm Chart命名空间,update-values.yaml为步骤[6](#li1037712113474)中获取的文件。 + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./values.yaml -f ./update-values.yaml + ``` + +10. 完成huawei-csi服务部署后,执行命令检查服务是否启动。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 命令结果示例如下,Pod状态为“Running“表明服务启动成功。 + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 Running 0 24m + huawei-csi-controller-6dfcc4b79f-csphc 9/9 Running 0 24m + huawei-csi-node-g6f4k 3/3 Running 0 20m + huawei-csi-node-tqs87 3/3 Running 0 20m + ``` + diff --git a/content/zh-cn/docs/overview/_index.md b/content/zh-cn/docs/overview/_index.md new file mode 100644 index 0000000..12213e4 --- /dev/null +++ b/content/zh-cn/docs/overview/_index.md @@ -0,0 +1,26 @@ +--- +title: "概述" +linkTitle: "概述" +description: +weight: 2 +--- + +容器存储接口([Container Storage Interface](https://github.com/container-storage-interface/spec/blob/master/spec.md#container-storage-interface)),简称 CSI,是一种行业标准,用于将块和文件存储系统暴露给 Kubernetes 等容器编排系统 \(CO\) 上的容器工作负载。华为CSI插件用于和华为企业存储和分布式存储产品进行通信,为Kubernetes的容器工作负载提供存储服务。是华为企业存储和分布式存储在Kubernetes环境中使用的必须插件。 + +Kubernetes通过其官方维护的一系列sidecar组件负责注册监听Kubernetes对象资源,并在需要的时候通过gRPC发起对CSI Driver调用,华为CSI Driver将sidecar发起的调用在华为存储上实施,如创建一个[持久卷(Persistent Volume,PV)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)的操作被实施为在华为存储上创建一个LUN/文件系统。Kubernetes、华为CSI以及华为存储的整体结构如下图所示: + +**图 1** CSI整体架构 +![](/css-docs/figures/CSI整体架构.png "CSI整体架构") + +华为CSI主要有两大组件,分别为huawei-csi-controller和huawei-csi-node: + +- huawei-csi-controller:包含Controller Service和Identity Service,以Deployment方式运行的一个或多个Pod,主要负责与华为存储交互,使用RESTful方式进行通信,因此运行huawei-csi-controller组件的节点需要连通存储的管理面网络。 +- huawei-csi-node:包含Node Service和Identity Service,以DaemonSet方式运行在Kubernetes工作节点上的Pod,用于在工作节点上对华为存储提供的LUN/文件系统资源进行挂载和卸载等操作,因此运行huawei-csi-node组件的节点需要连通存储的业务面网络。 + +华为CSI的部署模型如下所示: + +**图 2** CSI部署模型 +![](/css-docs/figures/CSI部署模型.png "CSI部署模型") + +本文档主要介绍华为CSI V4.6.0插件的安装部署和使用。 + diff --git "a/content/zh-cn/docs/\345\277\253\351\200\237\345\274\200\345\247\213/_index.md" b/content/zh-cn/docs/quick-start/_index.md similarity index 75% rename from "content/zh-cn/docs/\345\277\253\351\200\237\345\274\200\345\247\213/_index.md" rename to content/zh-cn/docs/quick-start/_index.md index e28bbbc..dc43a74 100644 --- "a/content/zh-cn/docs/\345\277\253\351\200\237\345\274\200\345\247\213/_index.md" +++ b/content/zh-cn/docs/quick-start/_index.md @@ -16,29 +16,29 @@ weight: 3 使用前请先了解对接的华为存储、容器平台和主机操作系统相关的兼容性以及支持的特性。 -[兼容性和特性](/docs/兼容性和特性) +[兼容性和特性](/docs/compatibility-and-features) ## 安装前准备{#section1698093774519} 安装华为CSI前,需要对容器平台、主机等环境做相关配置准备。 -[安装前准备](/docs/安装部署/安装前准备) +[安装前准备](/docs/installation-and-deployment/installation-preparations) ## 安装部署{#section48621535144915} 华为CSI提供了Helm和手动安装两种安装方式,并适用于包含Kubernetes、OpenShift等不同的容器平台。 -[安装部署](/docs/安装部署) +[安装部署](/docs/installation-and-deployment) ## 创建存储后端{#section18261514524} 在使用华为CSI前,需要先创建存储后端资源。 -[创建存储后端](/docs/存储后端管理/管理存储后端/创建存储后端) +[创建存储后端](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend) ## 使用华为CSI{#section1855354751020} 现在,您可以开始使用华为CSI进行PVC管理了。 -[使用华为CSI](/docs/使用华为CSI) +[使用华为CSI](/docs/using-huawei-csi) diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/_index.md" b/content/zh-cn/docs/storage-backend-management/_index.md similarity index 94% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/_index.md" rename to content/zh-cn/docs/storage-backend-management/_index.md index 44e18ae..b480fa8 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/_index.md" +++ b/content/zh-cn/docs/storage-backend-management/_index.md @@ -15,7 +15,7 @@ weight: 6 - oceanctl工具依赖kubectl(Kubernetes平台)或oc(OpenShift平台)命令,因此需要在可执行kubectl或oc命令的节点运行。 - 默认情况下,执行oceanctl命令的用户需要有/var/log目录的读写权限。如果没有该目录权限,可通过“--log-dir=/path/to/custom”指定有权限目录作为日志文件目录。 - oceanctl创建后端的命名空间默认为huawei-csi。 -- oceanctl命令详细说明请参考[oceanctl命令说明](/docs/存储后端管理/oceanctl命令说明)。 +- oceanctl命令详细说明请参考[oceanctl命令说明](/docs/storage-backend-management/description-of-oceanctl-commands)。 diff --git a/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md new file mode 100644 index 0000000..951328b --- /dev/null +++ b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/_index.md @@ -0,0 +1,16 @@ +--- +title: "新增证书到存储后端" +linkTitle: "新增证书到存储后端" +description: +weight: 2 +--- + +本章节介绍如何创建证书到存储后端,如果有对服务登录存储添加证书校验的需要,可以参考本章节新增证书,当前支持根据crt文件或者pem文件创建证书到存储后端。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>创建证书到存储后端前,须提前将准备好的证书导入存储阵列。 + + + + + diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\233\345\273\272\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257.md" b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md similarity index 95% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\233\345\273\272\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257.md" rename to content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md index 03f9ab0..5793dce 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\233\345\273\272\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257.md" +++ b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md @@ -18,7 +18,7 @@ weight: 1 oceanctl get backend ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL @@ -38,7 +38,7 @@ weight: 1 oceanctl get cert -b backend-1 ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAMESPACE NAME BOUNDBACKEND diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md similarity index 91% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" rename to content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md index fda364d..687790e 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" +++ b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md @@ -5,7 +5,7 @@ description: weight: 4 --- -## 删除证书步骤{#section14609953142910} +## 操作步骤{#section14609953142910} 1. 执行以下命令获取存储后端。 @@ -13,7 +13,7 @@ weight: 4 oceanctl get backend ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL @@ -27,7 +27,7 @@ weight: 4 oceanctl get cert -b backend-1 ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAMESPACE NAME BOUNDBACKEND diff --git a/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md new file mode 100644 index 0000000..b6ee655 --- /dev/null +++ b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md @@ -0,0 +1,9 @@ +--- +title: "查询存储后端证书" +linkTitle: "查询存储后端证书" +description: +weight: 2 +--- + +请根据[查询存储后端证书](/docs/storage-backend-management/description-of-oceanctl-commands#section11544144412475)所示命令对存储后端证书进行查询。 + diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md similarity index 79% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" rename to content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md index a141573..eb6cecd 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" +++ b/content/zh-cn/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md @@ -5,9 +5,9 @@ description: weight: 3 --- -更新证书前请准备好新的证书文件,并参考本章节更新存储后端证书。如果不再使用证书,请参考[删除存储后端证书](/docs/存储后端管理/新增证书到存储后端(可选)/删除存储后端证书)章节移除存储后端上的证书。 +更新证书前请准备好新的证书文件,并参考本章节更新存储后端证书。如果不再使用证书,请参考[删除存储后端证书](/docs/storage-backend-management/adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate)章节移除存储后端上的证书。 -## 更新证书步骤{#section127643118416} +## 操作步骤{#section127643118416} 1. 执行以下命令获取存储后端。 @@ -15,7 +15,7 @@ weight: 3 oceanctl get backend ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL @@ -29,7 +29,7 @@ weight: 3 oceanctl get cert -b backend-1 ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAMESPACE NAME BOUNDBACKEND diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/oceanctl\345\221\275\344\273\244\350\257\264\346\230\216.md" b/content/zh-cn/docs/storage-backend-management/description-of-oceanctl-commands.md similarity index 94% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/oceanctl\345\221\275\344\273\244\350\257\264\346\230\216.md" rename to content/zh-cn/docs/storage-backend-management/description-of-oceanctl-commands.md index e7e2837..0f81ca7 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/oceanctl\345\221\275\344\273\244\350\257\264\346\230\216.md" +++ b/content/zh-cn/docs/storage-backend-management/description-of-oceanctl-commands.md @@ -57,10 +57,10 @@ weight: 3 oceanctl create backend -f /path/to/backend.yaml -i yaml --not-validate-name ``` -- 执行以下命令创建存储后端,并指定provisioner,其中“csi.oceanstor.com”是安装时指定的驱动名称,详情可以参考[4](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/CCE和CCE-Agile平台安装华为CSI#li4307135252018)。 +- 执行以下命令创建存储后端,并指定provisioner,其中“csi.oceanstor.com”是安装时指定的驱动名称,详情可以参考[4](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform#li4307135252018)。 - >![](/css-docs/public_sys-resources/zh/icon-note.gif) - >仅在CCE / CCE Agile平台创建后端时使用该命令。 + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >仅在CCE或CCE Agile平台创建后端时使用该命令。 ``` oceanctl create backend -f /path/to/backend.yaml -i yaml --provisioner=csi.oceanstor.com diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/_index.md similarity index 51% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" rename to content/zh-cn/docs/storage-backend-management/managing-storage-backends/_index.md index 9bbad2d..2bdc90a 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/_index.md @@ -7,9 +7,9 @@ weight: 1 本章节介绍如何创建存储后端,当前支持根据配置的后端yaml文件和导出的configmap.json文件两种方式创建后端。 -如果通过新增后端yaml文件创建后端,请参考[典型场景存储后端配置文件示例](/docs/存储后端管理/管理存储后端/创建存储后端/典型场景存储后端配置文件示例)章节配置后端文件。 +如果通过新增后端yaml文件创建后端,请参考[典型场景存储后端配置文件示例](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios)章节配置后端文件。 -如果已存在导出的configmap.json文件,请参考[创建存储后端](/docs/存储后端管理/管理存储后端/创建存储后端)章节创建存储后端。 +如果已存在导出的configmap.json文件,请参考[创建存储后端](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend)章节创建存储后端。 diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md similarity index 87% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" rename to content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md index 16b0e35..68ec118 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md @@ -5,7 +5,7 @@ description: weight: 1 --- ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >1. 使用oceanctl创建存储后端时,输入的账号和秘钥信息保存在[Secret](https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/)对象中,建议客户容器平台根据供应商或者K8s社区的建议自行对Secret进行加密。K8s社区对Secret加密可参考[启用静态加密](https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/encrypt-data/)。 >2. 通过json文件创建后端时,旧版本的backend名称中可能存在大写字母或"\_"字符。如果出现这种情况,旧的名称将会被重映射为一个新的名称,映射过程自动发生,不会影响原有功能。例如“ABC\_123”将会被映射为“abc-123-fd68e”,具体映射规则如下: > - 大写字母转换成小写字母。 @@ -13,9 +13,9 @@ weight: 1 > - 末尾追加5位Hash码。 >3. 当存储后端对接租户时,在存储后端创建完成后,不允许修改租户名称。 -## 创建后端步骤{#section193534374443} +## 操作步骤{#section193534374443} -1. 参考[典型场景存储后端配置文件示例](/docs/存储后端管理/管理存储后端/创建存储后端/典型场景存储后端配置文件示例)章节准备后端配置文件,如backend.yaml,若需创建多个后端,请使用'"---"分隔。 +1. 参考[典型场景存储后端配置文件示例](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios)章节准备后端配置文件,如backend.yaml,若需创建多个后端,请使用'"---"分隔。 ``` storage: "oceanstor-san" @@ -53,7 +53,7 @@ weight: 1 oceanctl create backend -f /path/to/backend.yaml -i yaml ``` - 命令结果如下: + 命令结果示例如下: ``` NUMBER CONFIGURED NAME STORAGE URLS @@ -82,7 +82,7 @@ weight: 1 oceanctl get backend ``` - 命令结果示例如下,后端状态为“Bound“则创建成功: + 命令结果示例如下,后端状态为“Bound“则创建成功。 ``` NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\205\270\345\236\213\345\234\272\346\231\257\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md similarity index 91% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\205\270\345\236\213\345\234\272\346\231\257\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" rename to content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md index ce7dfa6..47f0532 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\205\270\345\236\213\345\234\272\346\231\257\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\346\226\207\344\273\266\347\244\272\344\276\213.md" +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md @@ -5,7 +5,7 @@ description: weight: 1 --- -典型场景的backend配置请参考下列示例,详细的参数配置请参考[存储后端配置项说明](/docs/存储后端管理/管理存储后端/创建存储后端/存储后端配置项说明)。 +典型场景的backend配置请参考下列示例,详细的参数配置请参考[存储后端配置项说明](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters)。 - [配置iSCSI协议类型的存储后端](#section9560112218344) - [配置FC协议类型的存储后端](#section4385132433717) @@ -19,8 +19,8 @@ weight: 1 ## 配置iSCSI协议类型的存储后端{#section9560112218344} ->![](/css-docs/public_sys-resources/zh/icon-note.gif) ->如果要使用iSCSI协议类型,请确保在安装华为CSI前,主机上已安装iSCSI客户端,可通过[检查主机依赖软件状态](/docs/安装部署/安装前准备/检查主机依赖软件状态)章节检查。如未安装iSCSI客户端,请在安装iSCSI客户端之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>如果要使用iSCSI协议类型,请确保在安装华为CSI前,主机上已安装iSCSI客户端,可通过[检查主机依赖软件状态](/docs/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software)章节检查。如未安装iSCSI客户端,请在安装iSCSI客户端之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: >``` >kubectl delete pods -n huawei-csi -l app=huawei-csi-node >``` @@ -65,7 +65,7 @@ maxClientThreads: "30" ## 配置FC协议类型的存储后端{#section4385132433717} ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >如果要使用FC协议类型,请确保在安装华为CSI前,主机和存储的FC网络已联通,如未FC网络未打通,请在打通FC网络之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: >``` >kubectl delete pods -n huawei-csi -l app=huawei-csi-node @@ -89,7 +89,7 @@ maxClientThreads: "30" ## 配置NVMe over RoCE协议类型的存储后端{#section887724419372} ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >如果要使用NVMe over RoCE协议类型,请确保在安装华为CSI前,主机和存储的NVMe over RoCE网络已联通,如未NVMe over RoCE网络未打通,请在打通NVMe over RoCE网络之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: >``` >kubectl delete pods -n huawei-csi -l app=huawei-csi-node @@ -227,7 +227,7 @@ maxClientThreads: "30" ## 配置双活类型的存储后端{#section175945335494} ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- 配置NAS双活前,需要在两台存储设备之间配置双活关系,包含远端设备、双活域等,仅支持文件系统双活域工作模式为双活AA模式,配置操作请参考对应存储型号的产品文档。 >- 对接NAS双活后端的账号必须为存储租户的租户管理员账号。 >- 除NAS双活后端外,其他后端的管理URL不能配置为在已建立双活关系的租户的逻辑管理端口的URL。 diff --git a/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md new file mode 100644 index 0000000..e632688 --- /dev/null +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md @@ -0,0 +1,199 @@ +--- +title: "存储后端配置项说明" +linkTitle: "存储后端配置项说明" +description: +weight: 2 +--- + +后端配置文件样例模板为/examples/backend/backend.yaml,该文件为一个示例文件,具体配置项如下表所示: + +**表 1** backend配置项说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

描述

+

必选参数

+

默认值

+

备注

+

storage

+

存储服务类型。

+
  • 企业存储提供SAN存储时填写oceanstor-san。
  • 企业存储提供NAS存储时填写oceanstor-nas。
  • 企业存储提供Dtree类型的NAS存储时填写oceanstor-dtree。
  • 分布式存储提供SAN存储时填写fusionstorage-san。
  • 分布式存储提供NAS存储时填写fusionstorage-nas。
+

+

oceanstor-nas

+

一个后端只允许提供一种存储服务。如果单套华为存储系统可以同时提供SAN和NAS的存储服务时,可以配置创建多个后端,每个后端使用不同的存储服务类型。

+

name

+

存储后端名称。支持小写字母、数字和特殊字符"-",且需要以字母或数字开头,最多63个字符。

+

+

-

+

请保证存储后端名称唯一。

+

namespace

+

命名空间。

+

+

-

+

存储后端必须与华为CSI在相同的命名空间中。

+

vstoreName

+

存储侧的租户名称。当对接后端是OceanStor V5存储,需要在指定租户下发放资源时,需要指定该参数。

+

条件必选

+

-

+

仅对接后端是OceanStor V5且需要支持租户时,需要指定该参数。

+

accountName

+

存储侧的账户名称。当对接资源是OceanStor Pacific NAS存储,需要在指定账户下发放NAS资源时,需要指定该参数。

+

条件必选

+

-

+

仅对接后端是OceanStor Pacific NAS存储且需要支持账号时,需要指定该参数。

+

urls

+

存储设备的管理URL。参数格式为列表。支持按照域名或者IP+端口的方式进行配置。仅支持IPv4。

+

+

-

+

当对接后端是OceanStor或OceanStor Dorado存储,需要在指定租户下发放资源时,该参数配置为指定租户的逻辑管理端口URL。

+

pools

+

存储设备的存储池。参数格式为列表。

+

条件必选

+

-

+

storage为oceanstor-dtree时, 可以不填。

+

parameters.protocol

+

存储协议。参数格式为字符串。

+
  • iscsi
  • fc
  • roce
  • fc-nvme
  • nfs
  • dpc
  • scsi
+

+

-

+
  • 使用iscsi时,请确保对接的计算节点已安装iSCSI客户端。
  • 使用nfs时,请确保对接的计算节点已安装NFS客户端工具。
  • 使用fc-nvme/roce时,请确保对接的计算节点已安装nvme-cli工具,工具版本仅支持1.x且版本不低于1.9。
  • 使用dpc时,请确保对接的计算节点已安装DPC客户端,并已在待接入存储上添加为DPC计算节点。
  • 使用scsi时,请确保对接的计算节点已安装分布式存储VBS客户端。
+

parameters.portals

+

业务访问端口。节点会使用该端口对存储资源进行读写访问。参数格式为一个列表

+

iscsi,roce协议支持配置多个端口,nfs协议仅支持配置一个端口,fc、fc-nvme、dpc协议无需配置业务端口,scsi协议的端口形式为字典格式,key为主机名称,value为IP地址,仅支持IPv4。

+

条件必选

+

-

+
  • 使用租户/账户对接后端时,此时portals必须配置为租户/账户所拥有的逻辑端口信息。
  • 如果使用nfs协议,支持填写为域名地址。
+

parameters.ALUA

+

存储后端ALUA参数配置。当工作节点使用操作系统原生多路径,且启用了ALUA时,需要进行配置。

+

条件必选

+

-

+

如果主机多路径配置启用了ALUA,请确保后端ALUA配置和主机的ALUA配置一致。

+

ALUA详细配置请参考通过Helm配置ALUA特性

+

parameters.parentname

+

当前存储上的某一个文件系统名称,在此文件系统下创建Dtree。

+

storage为oceanstor-dtree时必选。

+

条件必选

+

-

+

请到DeviceManager文件系统界面查询。

+

metrovStorePairID

+

双活租户Pair ID。

+

当需要创建PV在存储侧支持NAS双活特性时,该字段必填。此时需要填入待创建的PV所归属的存储侧双活租户Pair ID。

+

条件必选

+

-

+

双活租户Pair ID请到DeviceManager界面查询。

+

metroBackend

+

双活对端的后端名称。参数格式为字符串。

+

当需要创建PV在存储侧支持NAS双活特性时,该字段必填。此时需要填入准备和当前后端组成双活的另一个后端名称。

+

条件必选

+

-

+

组对的两个后端都必须将对方名称填入。这两个后端组成双活关系后,不允许再和其他后端组成双活关系。

+

supportedTopologies

+

存储拓扑感知配置。参数格式为列表类型的JSON。

+

条件必选

+

-

+

如果启用存储拓扑感知,需要配置该参数。具体请参考通过Helm配置存储拓扑感知

+

maxClientThreads

+

同时连接到存储后端的最大连接数。

+

+

30

+

范围1~30,如果不配置该参数,或参数值不在规定范围内,则取用默认值30。

+
+ diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257.md" b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md similarity index 94% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257.md" rename to content/zh-cn/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md index 9fd34e3..add5fe0 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\240\351\231\244\345\255\230\345\202\250\345\220\216\347\253\257.md" +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md @@ -5,7 +5,7 @@ description: weight: 4 --- ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >正在执行卷管理操作期间,请勿删除存储后端。 ## 删除后端示例{#section20764568435} diff --git a/content/zh-cn/docs/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md new file mode 100644 index 0000000..0e21197 --- /dev/null +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md @@ -0,0 +1,9 @@ +--- +title: "查询存储后端" +linkTitle: "查询存储后端" +description: +weight: 2 +--- + +请参考[查询存储后端](/docs/storage-backend-management/description-of-oceanctl-commands#section1746114212110)节,使用oceanctl命令查询存储后端信息。 + diff --git a/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md new file mode 100644 index 0000000..2d91f50 --- /dev/null +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md @@ -0,0 +1,13 @@ +--- +title: "更新存储后端" +linkTitle: "更新存储后端" +description: +weight: 3 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 当前使用oceanctl更新存储后端信息时,仅支持更新存储后端密码。 +>- 若在存储侧更新了后端的账号密码,CSI插件会因登录失败而重试,可能会导致账号被锁定。如果账号被锁定,请参考[存储侧更新密码后账户被锁定](/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info)章节修改。 + + + diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/\346\211\213\345\212\250\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257.md" b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md similarity index 55% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/\346\211\213\345\212\250\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257.md" rename to content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md index 60dc248..47012c0 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/\346\211\213\345\212\250\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257.md" +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md @@ -5,7 +5,7 @@ description: weight: 2 --- ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- PVC发放需要基于已配置的存储后端,因此当存储后端已经发放PVC时,请勿随便修改存储后端。 >- 名称是存储后端的唯一标识,已发放PVC的存储后端不允许修改名称。 >- 存储后端修改后,新增配置仅作用于新发放的卷。 @@ -13,6 +13,6 @@ weight: 2 ## 操作步骤{#section1223254955011} -1. 参考[删除存储后端](/docs/存储后端管理/管理存储后端/删除存储后端)章节,删除待修改存储后端。 -2. 参考[创建存储后端](/docs/存储后端管理/管理存储后端/创建存储后端)章节,创建同名存储后端,存储后端名称不可变更。 +1. 参考[删除存储后端](/docs/storage-backend-management/managing-storage-backends/deleting-a-storage-backend)章节,删除待修改存储后端。 +2. 参考[创建存储后端](/docs/storage-backend-management/managing-storage-backends/creating-a-storage-backend)章节,创建同名存储后端,存储后端名称不可变更。 diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/oceanctl\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\345\257\206\347\240\201.md" b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md similarity index 93% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/oceanctl\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\345\257\206\347\240\201.md" rename to content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md index 2547a3e..36c43de 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/oceanctl\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257\345\257\206\347\240\201.md" +++ b/content/zh-cn/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md @@ -13,7 +13,7 @@ weight: 1 oceanctl update backend -h ``` - 命令结果如下: + 命令结果示例如下: ``` Update a backend for Ocean Storage in Kubernetes @@ -40,7 +40,7 @@ weight: 1 oceanctl update backend backend-1 --password ``` - 根据提示输入新的用户名和密码: + 根据提示输入用户名和新密码: ``` Please enter this backend user name:admin diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/_index.md" b/content/zh-cn/docs/troubleshooting/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/_index.md" rename to content/zh-cn/docs/troubleshooting/_index.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/_index.md" b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/_index.md" rename to content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\346\234\252\345\210\233\345\273\272PSP\346\235\203\351\231\220\345\257\274\350\207\264Pod\346\227\240\346\263\225\345\210\233\345\273\272.md" b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md similarity index 95% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\346\234\252\345\210\233\345\273\272PSP\346\235\203\351\231\220\345\257\274\350\207\264Pod\346\227\240\346\263\225\345\210\233\345\273\272.md" rename to content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md index 1f68e4b..f801b7a 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\346\234\252\345\210\233\345\273\272PSP\346\235\203\351\231\220\345\257\274\350\207\264Pod\346\227\240\346\263\225\345\210\233\345\273\272.md" +++ b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md @@ -16,7 +16,7 @@ weight: 1 ## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 执行**vi** _psp-use.yaml_ 命令, 创建psp-use.yaml文件。 +2. 执行**vi** _psp-use.yaml_ 命令, 创建psp-use.yaml文件。 ``` vi psp-use.yaml diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271livenessprobe\345\256\271\345\231\250\347\232\204\351\273\230\350\256\244\347\253\257\345\217\243.md" b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md similarity index 86% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271livenessprobe\345\256\271\345\231\250\347\232\204\351\273\230\350\256\244\347\253\257\345\217\243.md" rename to content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md index 4946aa9..187da02 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271livenessprobe\345\256\271\345\231\250\347\232\204\351\273\230\350\256\244\347\253\257\345\217\243.md" +++ b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md @@ -30,5 +30,5 @@ huawei-csi-controller的livenessprobe容器的默认端口(9808)与已有的 livenessProbePort: 9809 ``` -3. 使用Helm更新华为CSI,具体信息请参考[升级华为CSI](/docs/安装部署/升级-回退华为CSI/使用Helm升级-回退华为CSI/升级华为CSI)。 +3. 使用Helm更新华为CSI,具体信息请参考[升级华为CSI](/docs/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi)。 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271\344\270\273\346\234\272\346\214\202\350\275\275\347\202\271.md" b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\344\277\256\346\224\271\344\270\273\346\234\272\346\214\202\350\275\275\347\202\271.md" rename to content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\345\210\233\345\273\272\344\270\264\346\227\266\345\215\267\345\244\261\350\264\245.md" b/content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\257\271\346\216\245Tanzu-Kubernetes\351\233\206\347\276\244\345\270\270\350\247\201\351\227\256\351\242\230\345\217\212\350\247\243\345\206\263\346\226\271\346\263\225/\345\210\233\345\273\272\344\270\264\346\227\266\345\215\267\345\244\261\350\264\245.md" rename to content/zh-cn/docs/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" rename to content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/_index.md diff --git a/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md new file mode 100644 index 0000000..63c05be --- /dev/null +++ b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md @@ -0,0 +1,80 @@ +--- +title: "启动huawei-csi服务时,服务启动异常, 状态显示InvalidImageName" +linkTitle: "启动huawei-csi服务时,服务启动异常, 状态显示InvalidImageName" +description: +weight: 3 +--- + +## 现象描述{#zh-cn_topic_0000001205368783_section1566717121452} + +启动huawei-csi时,无法启动huawei-csi服务(huawei-csi-controller服务或者huawei-csi-node服务),使用kubectl get pod -A | grep huawei命令查看,显示状态为InvalidImageName + +``` +kubectl get pod -A | grep huawei +``` + +命令结果示例如下: + +``` +huawei-csi huawei-csi-controller-fd5f97768-qlldc 6/9 InvalidImageName 0 16s +huawei-csi huawei-csi-node-25txd 2/3 InvalidImageName 0 15s +``` + +## 根因分析{#zh-cn_topic_0000001205368783_section1425013451056} + +controller和node的yaml配置文件中,配置Huawei CSI的镜像版本号错误。例如: + +``` + ... + - name: huawei-csi-driver + image: huawei-csi:4.6.0 + ... +``` + +## 解决措施或规避方法{#zh-cn_topic_0000001205368783_section350653016492} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,修改huawei-csi-node服务的配置文件。按**I**或**Insert**进入编辑状态,修改相关参数。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + + ``` + kubectl edit daemonset huawei-csi-node -o yaml -n=huawei-csi + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- 示例yaml文件中huawei-csi-driver的参数image配置项,修改华为CSI镜像huawei-csi:4.6.0。 + > ``` + > containers: + > ... + > - name: huawei-csi-driver + > image: huawei-csi:4.6.0 + > ``` + +3. 执行以下命令,修改huawei-csi-controller服务的配置文件。按**I**或**Insert**进入编辑状态,修改相关参数。修改完成后,按**Esc**,并输入 **:wq!** ,保存修改。 + + ``` + kubectl edit deployment huawei-csi-controller -o yaml -n=huawei-csi + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- 示例yaml文件中huawei-csi-driver的参数image配置项,修改华为CSI镜像huawei-csi:4.6.0。 + > ``` + > containers: + > ... + > - name: huawei-csi-driver + > image: huawei-csi:4.6.0 + > ``` + +4. 等待huawei-csi-node和huawei-csi-controller服务启动。 +5. 执行以下命令,查看huawei csi服务是否启动。 + + ``` + kubectl get pod -A | grep huawei + ``` + + 命令结果示例如下,Pod状态为“Running“说明服务启动成功。 + + ``` + huawei-csi huawei-csi-controller-58799449cf-zvhmv 9/9 Running 0 2m29s + huawei-csi huawei-csi-node-7fxh6 3/3 Running 0 12m + ``` + diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi-node\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257\344\270\272-var-lib-iscsi-is-not-a-directory.md" b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md similarity index 85% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi-node\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257\344\270\272-var-lib-iscsi-is-not-a-directory.md" rename to content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md index 4d8a1de..2ae4230 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi-node\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257\344\270\272-var-lib-iscsi-is-not-a-directory.md" +++ b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md @@ -16,7 +16,7 @@ huawei-csi-node中容器内部无/var/lib/iscsi目录。 ## 解决措施或规避方法{#zh-cn_topic_0000001086137838_section350653016492} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 3. 进入下一级目录templates,找到huawei-csi-node.yaml文件。 ``` @@ -32,10 +32,10 @@ huawei-csi-node中容器内部无/var/lib/iscsi目录。 5. 执行以下命令升级Helm chart。升级命令将更新Deployment、DaemonSet和RBAC资源。其中,helm-huawei-csi为自定义的chart名称,huawei-csi为自定义的命名空间。 ``` - helm upgrade helm-huawei-csi ./ -n huawei-csi values.yaml + helm upgrade helm-huawei-csi ./ -n huawei-csi -f values.yaml ``` - 命令结果示例如下。 + 命令结果示例如下: ``` Release "helm-huawei-csi" has been upgraded. Happy Helming! diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250\345\215\216\344\270\272CSI\346\234\215\345\212\241\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257-etc-localtime-is-not-a-file.md" b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md similarity index 84% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250\345\215\216\344\270\272CSI\346\234\215\345\212\241\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257-etc-localtime-is-not-a-file.md" rename to content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md index 3c72aa9..da6fe13 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250\345\215\216\344\270\272CSI\346\234\215\345\212\241\345\244\261\350\264\245-\346\217\220\347\244\272\351\224\231\350\257\257-etc-localtime-is-not-a-file.md" +++ b/content/zh-cn/docs/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md @@ -22,7 +22,7 @@ weight: 2 kubectl get pod -n huawei-csi ``` - 命令结果示例如下。其中,huawei-csi为CSI服务部署的命名空间。 + 命令结果示例如下,其中huawei-csi为CSI服务部署的命名空间。 ``` NAME READY STATUS RESTARTS AGE @@ -38,7 +38,7 @@ weight: 2 kubectl describe pod huawei-csi-controller-6dfcc4b79f-9vjtq -n huawei-csi ``` - 命令结果示例如下。其中,_huawei-csi-controller-6dfcc4b79f-9vjtq_ 为[2](#li131611149192013)中查找到的状态显示为“ContainerCreating”的Pod名称,huawei-csi为该Pod所在的命名空间。 + 命令结果示例如下。其中,_huawei-csi-controller-6dfcc4b79f-9vjtq_ 为[2](#li131611149192013)中查找到的状态显示为“ContainerCreating”的Pod名称,huawei-csi为该Pod所在的命名空间。 ``` ... @@ -49,7 +49,7 @@ weight: 2 Warning FailedMount 33s (x8 over 96s) kubelet MountVolume.SetUp failed for volume "host-time" : hostPath type check failed: /etc/localtime is not a file ``` -4. 执行命令**cd /helm/esdk/templates**,进入到CSI的安装包路径下。路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +4. 执行命令**cd /helm/esdk/templates**,进入到CSI的安装包路径下。路径请参见[表1](/docs/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 5. 以huawei-csi-controller.yaml文件为例,执行以下命令,查看文件内容。 ``` @@ -74,14 +74,14 @@ weight: 2 ... ``` -6. 参考[Helm卸载华为CSI](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI)卸载服务后,重新安装服务。 +6. 参考[Helm卸载华为CSI](/docs/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm)卸载服务后,重新安装服务。 7. 执行以下命令,查看华为CSI服务Pod运行状态为Running。 ``` kubectl get pod -n huawei-csi ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME READY STATUS RESTARTS AGE diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" b/content/zh-cn/docs/troubleshooting/pod-issues/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/_index.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-Events\346\227\245\345\277\227\346\230\276\347\244\272-publishInfo-doesn-t-exist.md" b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md similarity index 94% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-Events\346\227\245\345\277\227\346\230\276\347\244\272-publishInfo-doesn-t-exist.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md index 83bbe82..998c16c 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-Events\346\227\245\345\277\227\346\230\276\347\244\272-publishInfo-doesn-t-exist.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md @@ -28,7 +28,7 @@ weight: 6 kubectl get pod error-pod -n error-pod-in-namespace -owide ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES @@ -44,13 +44,13 @@ weight: 6 Kubernetes调用CSI插件完成卷映射时,将使用VolumeAttachment资源保存映射信息,用于表示将指定的卷从指定的节点上附加或分离。由于该问题是由于publishInfo不存在导致,因此可通过查看VolumeAttachment资源信息排查集群中其他工作负载是否存在该问题。具体步骤如下: 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 执行以下命令,获取VolumeAttachment信息,并保留ATTACHER字段为csi.huawei.com的资源,其中csi.huawei.com为华为CSI驱动名称,可在values.yaml文件中配置,配置项为csiDriver.driverName,配置项详情描述参考[表 csiDriver配置项说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明#table188162213437)。 +2. 执行以下命令,获取VolumeAttachment信息,并保留ATTACHER字段为csi.huawei.com的资源,其中csi.huawei.com为华为CSI驱动名称,可在values.yaml文件中配置,配置项为csiDriver.driverName,配置项详情描述参考[表4](/docs/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table188162213437)。 ``` kubectl get volumeattachments.storage.k8s.io ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME ATTACHER PV NODE ATTACHED AGE @@ -63,7 +63,7 @@ Kubernetes调用CSI插件完成卷映射时,将使用VolumeAttachment资源保 kubectl get volumeattachments.storage.k8s.io csi-47abxx -o yaml ``` - 命令结果示例如下。 + 命令结果示例如下: ``` kind: VolumeAttachment diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\350\266\205\346\227\266.md" b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md similarity index 88% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\350\266\205\346\227\266.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md index 7d76a50..8721e21 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\350\266\205\346\227\266.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md @@ -7,7 +7,7 @@ weight: 4 ## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} -创建Pod时,Pod一直处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/常用操作/信息收集/如何查看华为CSI日志)),日志显示执行mount命令超时。 +创建Pod时,Pod一直处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)),日志显示执行mount命令超时。 ## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} @@ -25,14 +25,14 @@ weight: 4 - 尝试使用NFSv4.0及以上协议。 - 参考[社区修改方案](https://github.com/containerd/containerd/issues/3201),将LimitNOFILE参数值修改为合适的值。该方案将会重启容器运行时,请评估对业务的影响。 -4. 在挂载失败的宿主机手动挂载该文件系统,如果时间超过30秒,需要用户自行排查该宿主机到存储节点网络是否存在问题。mount命令示例如下 +4. 在挂载失败的宿主机手动挂载该文件系统,如果时间超过30秒,需要用户自行排查该宿主机到存储节点网络是否存在问题。mount命令示例如下: - 执行以下命令创建测试目录。 ``` mkdir /tmp/test_mount ``` - - 执行mount命令,挂载文件系统,并观察耗时,其中ip:nfs\_share\_path可以从huawei-csi-node日志中获取,详情请参考[如何查看华为CSI日志](/docs/常用操作/信息收集/如何查看华为CSI日志) + - 执行mount命令,挂载文件系统,并观察耗时,其中ip:nfs\_share\_path可以从huawei-csi-node日志中获取,详情请参考[如何查看华为CSI日志](/docs/common-operations/collecting-information/viewing-huawei-csi-logs) ``` time mount ip:nfs_share_path /tmp/test_mount diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\345\244\261\350\264\245.md" b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md similarity index 66% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\345\244\261\350\264\245.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md index 37a1cc3..bc5860e 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245-\346\227\245\345\277\227\346\230\276\347\244\272\346\211\247\350\241\214mount\345\221\275\344\273\244\345\244\261\350\264\245.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md @@ -7,7 +7,7 @@ weight: 5 ## 现象描述{#section16564369537} -NAS场景下,创建Pod时,Pod一直处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/常用操作/信息收集/如何查看华为CSI日志)),日志显示执行mount命令失败。 +NAS场景下,创建Pod时,Pod一直处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)),日志显示执行mount命令失败。 ## 根因分析{#section135642617536} @@ -16,5 +16,5 @@ NAS场景下,创建Pod时,Pod一直处于ContainerCreating状态,此时查 ## 解决措施或规避方法{#section75642613539} - 开启存储侧的NFS 3/4.0/4.1/4.2协议,重新尝试默认挂载。 -- 直接指定可用的NFS协议进行挂载,参考[动态卷供应典型场景StorageClass配置示例](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应典型场景StorageClass配置示例)。 +- 直接指定可用的NFS协议进行挂载,参考[动态卷供应典型场景StorageClass配置示例](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)。 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\351\225\277\346\227\266\351\227\264\345\244\204\344\272\216ContainerCreating\347\212\266\346\200\201.md" b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md similarity index 66% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\351\225\277\346\227\266\351\227\264\345\244\204\344\272\216ContainerCreating\347\212\266\346\200\201.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md index dd80958..c003b5e 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\351\225\277\346\227\266\351\227\264\345\244\204\344\272\216ContainerCreating\347\212\266\346\200\201.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md @@ -7,7 +7,7 @@ weight: 3 ## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} -创建Pod时,Pod长时间处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/常用操作/信息收集/如何查看华为CSI日志)),huawei-csi-node的日志中无创建Pod的日志记录,执行**kubectl get volumeattachment**命令后,PV列无该Pod使用的PV名称。在等待较长时间后(超过十分钟),Pod正常创建,Pod状态变为Running状态。 +创建Pod时,Pod长时间处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)),huawei-csi-node的日志中无创建Pod的日志记录,执行**kubectl get volumeattachment**命令后,PV列无该Pod使用的PV名称。在等待较长时间后(超过十分钟),Pod正常创建,Pod状态变为Running状态。 ## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245\346\210\226\351\207\215\345\220\257kubelet\345\220\216-\346\227\245\345\277\227\346\230\276\347\244\272\346\214\202\350\275\275\347\202\271\345\267\262\345\255\230\345\234\250.md" b/content/zh-cn/docs/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md similarity index 74% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245\346\210\226\351\207\215\345\220\257kubelet\345\220\216-\346\227\245\345\277\227\346\230\276\347\244\272\346\214\202\350\275\275\347\202\271\345\267\262\345\255\230\345\234\250.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md index 079d1be..bd7ac8d 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\345\244\261\350\264\245\346\210\226\351\207\215\345\220\257kubelet\345\220\216-\346\227\245\345\277\227\346\230\276\347\244\272\346\214\202\350\275\275\347\202\271\345\267\262\345\255\230\345\234\250.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md @@ -7,7 +7,7 @@ weight: 7 ## 现象描述{#section16564369537} -创建Pod时,Pod一直处于ContainerCreating状态,或者重启kubelet后,日志中显示挂载点已存在。此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/常用操作/信息收集/如何查看华为CSI日志)),日志提示错误为:The mount /var/lib/kubelet/pods/xxx/mount is already exist, but the source path is not /var/lib/kubelet/plugins/kubernetes.io/xxx/globalmount +创建Pod时,Pod一直处于ContainerCreating状态,或者重启kubelet后,日志中显示挂载点已存在。此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)),日志提示错误为:The mount /var/lib/kubelet/pods/xxx/mount is already exist, but the source path is not /var/lib/kubelet/plugins/kubernetes.io/xxx/globalmount ## 根因分析{#section135642617536} diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\351\233\206\347\276\244\344\270\255worker\350\212\202\347\202\271\345\256\225\346\234\272\345\271\266\346\201\242\345\244\215\345\220\216-Pod\345\256\214\346\210\220failover-\344\275\206\346\230\257Pod\346\211\200\345\234\250\346\272\220\344\270\273\346\234\272\345\207\272\347\216\260\347\233\230\347\254\246\346\256\213\347\225\231.md" b/content/zh-cn/docs/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md similarity index 92% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\351\233\206\347\276\244\344\270\255worker\350\212\202\347\202\271\345\256\225\346\234\272\345\271\266\346\201\242\345\244\215\345\220\216-Pod\345\256\214\346\210\220failover-\344\275\206\346\230\257Pod\346\211\200\345\234\250\346\272\220\344\270\273\346\234\272\345\207\272\347\216\260\347\233\230\347\254\246\346\256\213\347\225\231.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md index ffb248f..0474924 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\351\233\206\347\276\244\344\270\255worker\350\212\202\347\202\271\345\256\225\346\234\272\345\271\266\346\201\242\345\244\215\345\220\216-Pod\345\256\214\346\210\220failover-\344\275\206\346\230\257Pod\346\211\200\345\234\250\346\272\220\344\270\273\346\234\272\345\207\272\347\216\260\347\233\230\347\254\246\346\256\213\347\225\231.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md @@ -40,7 +40,7 @@ worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是 `- 38:0:0:1 sdj 8:64 failed faulty running ``` - - **是** =\> 继续执行[步骤1.2](#zh-cn_topic_0000001133091104_li4217105512811)。 + - **是** =\> 继续执行[步骤1.2](#zh-cn_topic_0000001133091104_li4217105512811)。 - **否** =\> 不涉及。 2. 执行以下命令,判断残留的DM多路径设备是否可读。 @@ -49,17 +49,17 @@ worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是 dd if=/dev/dm-12 of=/dev/null count=1 bs=1M iflag=direct ``` - 命令结果示例如下。如果返回结果为:Input/output error,且读取数据为“0 bytes \(0 B\) copied”,表示该设备不可读。其中,_dm-xx_ 为[步骤1.1](#zh-cn_topic_0000001133091104_li177163210119)查到的设备号。 + 命令结果示例如下。如果返回结果为:Input/output error,且读取数据为“0 bytes \(0 B\) copied”,表示该设备不可读。其中,_dm-xx_为[步骤1.1](#zh-cn_topic_0000001133091104_li177163210119)查到的设备号: ``` - dd: error reading ‘/dev/dm-12’: Input/output error + dd: error reading '/dev/dm-12': Input/output error 0+0 records in 0+0 records out 0 bytes (0 B) copied, 0.0236862 s, 0.0 kB/s ``` - **是** =\> **记录残留的dm-xx设备以及关联磁盘号(见[步骤1.1](#zh-cn_topic_0000001133091104_li177163210119)),执行清理步骤**。 - - **命令卡死** =\> 继续执行[步骤1.3](#zh-cn_topic_0000001133091104_li6716192111111) + - **命令卡死** =\> 继续执行[步骤1.3](#zh-cn_topic_0000001133091104_li6716192111111) - **其他** =\> 联系技术支持。 3. 在另一窗口再次登录该节点。 @@ -69,7 +69,7 @@ worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是 ps -ef | grep dm-12 | grep -w dd ``` - 命令结果示例如下。 + 命令结果示例如下: ``` root 21725 9748 0 10:33 pts/10 00:00:00 dd if=/dev/dm-12 of=/dev/null count=1 bs=10M iflag=direct @@ -117,7 +117,7 @@ worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是 multipath -ll ``` - 命令结果示例如下。残留的dm-12已消失。 + 命令结果示例如下,残留的dm-12已消失: ``` mpathb (3618cf24100f8f457014a764c000001f6) dm-3 HUAWEI ,XSG1 @@ -138,7 +138,7 @@ worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是 ls -l /sys/block/ ``` - 命令结果示例如下。SCSI磁盘sdi/sdj均已消失。 + 命令结果示例如下,SCSI磁盘sdi/sdj均已消失: ``` total 0 @@ -160,7 +160,7 @@ worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是 ls -l /dev/disk/by-id/ ``` - 命令结果示例如下。SCSI磁盘sdi/sdj均已消失。 + 命令结果示例如下,SCSI磁盘sdi/sdj均已消失: ``` total 0 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Kubernetes\345\271\263\345\217\260\347\254\254\344\270\200\346\254\241\346\220\255\345\273\272\346\227\266-iscsi_tcp\346\234\215\345\212\241\346\262\241\346\234\211\346\255\243\345\270\270\345\220\257\345\212\250-\345\257\274\350\207\264\345\210\233\345\273\272Pod\345\244\261\350\264\245.md" b/content/zh-cn/docs/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md similarity index 97% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Kubernetes\345\271\263\345\217\260\347\254\254\344\270\200\346\254\241\346\220\255\345\273\272\346\227\266-iscsi_tcp\346\234\215\345\212\241\346\262\241\346\234\211\346\255\243\345\270\270\345\220\257\345\212\250-\345\257\274\350\207\264\345\210\233\345\273\272Pod\345\244\261\350\264\245.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md index 1f5c4b0..0e64053 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Kubernetes\345\271\263\345\217\260\347\254\254\344\270\200\346\254\241\346\220\255\345\273\272\346\227\266-iscsi_tcp\346\234\215\345\212\241\346\262\241\346\234\211\346\255\243\345\270\270\345\220\257\345\212\250-\345\257\274\350\207\264\345\210\233\345\273\272Pod\345\244\261\350\264\245.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md @@ -17,7 +17,7 @@ weight: 9 lsmod | grep iscsi | grep iscsi_tcp ``` -命令结果示例如下。 +命令结果示例如下: ``` iscsi_tcp 18333 6 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Pod\346\214\202\350\275\275\345\215\267\347\233\256\345\275\225\346\217\220\347\244\272I-O-error.md" b/content/zh-cn/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/Pod\346\214\202\350\275\275\345\215\267\347\233\256\345\275\225\346\217\220\347\244\272I-O-error.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\344\270\272ContainerCreating.md" b/content/zh-cn/docs/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md similarity index 70% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\344\270\272ContainerCreating.md" rename to content/zh-cn/docs/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md index dc02587..b839919 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/Pod\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272Pod\346\227\266-Pod\347\232\204\347\212\266\346\200\201\344\270\272ContainerCreating.md" +++ b/content/zh-cn/docs/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md @@ -7,7 +7,7 @@ weight: 2 ## 现象描述{#zh-cn_topic_0000001163875516_section1566717121452} -执行完成Pod的创建操作,一段时间后,Pod的状态仍然处于ContainerCreating,查看具体日志信息(详情请参考[如何查看华为CSI日志](/docs/常用操作/信息收集/如何查看华为CSI日志)),报错“Fibre Channel volume device not found”。 +执行完成Pod的创建操作,一段时间后,Pod的状态仍然处于ContainerCreating,查看具体日志信息(详情请参考[如何查看华为CSI日志](/docs/common-operations/collecting-information/viewing-huawei-csi-logs)),报错“Fibre Channel volume device not found”。 ## 根因分析{#zh-cn_topic_0000001163875516_section1425013451056} @@ -22,7 +22,7 @@ weight: 2 kubectl get pod -o wide ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES @@ -30,6 +30,6 @@ weight: 2 ``` 3. 删除Pod。 -4. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的 _node1_ 节点。_node1_ 节点为[2](#zh-cn_topic_0000001163875516_li134903196550)中查询的节点。 -5. 移除盘符残留,详情请参考[解决措施或规避方法](/docs/故障处理/Pod相关问题/集群中worker节点宕机并恢复后-Pod完成failover-但是Pod所在源主机出现盘符残留#zh-cn_topic_0000001133091104_section350653016492)。 +4. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的_node1_节点。_node1_ 节点为[2](#zh-cn_topic_0000001163875516_li134903196550)中查询的节点。 +5. 移除盘符残留,详情请参考[解决措施或规避方法](/docs/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source#zh-cn_topic_0000001133091104_section350653016492)。 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" b/content/zh-cn/docs/troubleshooting/pvc-issues/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" rename to content/zh-cn/docs/troubleshooting/pvc-issues/_index.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\240\351\231\244PVC\345\211\215-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" b/content/zh-cn/docs/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md similarity index 96% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\240\351\231\244PVC\345\211\215-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" rename to content/zh-cn/docs/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md index 2c19e16..be2a81b 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\240\351\231\244PVC\345\211\215-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" +++ b/content/zh-cn/docs/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md @@ -33,7 +33,7 @@ weight: 2 ``` 3. 根据PVC详细信息中Events信息,执行相应操作。 - - 如果由原因1导致PVC处于Pending状态,可以执行 **kubectl delete pvc** _mypvc_ 命令,删除PVC。 + - 如果由原因1导致PVC处于Pending状态,可以执行 **kubectl delete pvc **_mypvc_ 命令,删除PVC。 ```yaml Events: @@ -42,7 +42,7 @@ weight: 2 Warning ProvisioningFailed 0s (x15 over 3m24s) persistentvolume-controller storageclass.storage.k8s.io "mysc" not found ``` - - 如果由原因2导致PVC处于Pending状态,可以执行 **kubectl delete pvc** _mypvc_ 命令,删除PVC。 + - 如果由原因2导致PVC处于Pending状态,可以执行** kubectl delete pvc **_mypvc_ 命令,删除PVC。 ``` Events: @@ -52,7 +52,7 @@ weight: 2 Warning ProvisioningFailed 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = failed to select pool, the capability filter failed, error: failed to select pool, the final filter field: replication, parameters map[allocType:thin replication:True size:1099511627776 volumeType:lun]. please check your storage class ``` - - 如果由原因3导致PVC处于Pending状态,可以执行 **kubectl delete pvc** _mypvc_ 命令,删除PVC。 + - 如果由原因3导致PVC处于Pending状态,可以执行** kubectl delete pvc** _mypvc_ 命令,删除PVC。 ``` Events: diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\351\200\232\347\224\250\344\270\264\346\227\266\345\215\267\346\211\251\345\256\271\345\244\261\350\264\245.md" b/content/zh-cn/docs/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\351\200\232\347\224\250\344\270\264\346\227\266\345\215\267\346\211\251\345\256\271\345\244\261\350\264\245.md" rename to content/zh-cn/docs/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/PVC\346\211\251\345\256\271\347\232\204\347\233\256\346\240\207\345\256\271\351\207\217\350\266\205\350\277\207\345\255\230\345\202\250\346\261\240\345\256\271\351\207\217\345\257\274\350\207\264\346\211\251\345\256\271\345\244\261\350\264\245.md" b/content/zh-cn/docs/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/PVC\346\211\251\345\256\271\347\232\204\347\233\256\346\240\207\345\256\271\351\207\217\350\266\205\350\277\207\345\255\230\345\202\250\346\261\240\345\256\271\351\207\217\345\257\274\350\207\264\346\211\251\345\256\271\345\244\261\350\264\245.md" rename to content/zh-cn/docs/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272PVC\346\227\266-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" b/content/zh-cn/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md similarity index 88% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272PVC\346\227\266-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" rename to content/zh-cn/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md index 19bb57a..6da0a0f 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/PVC\347\233\270\345\205\263\351\227\256\351\242\230/\345\210\233\345\273\272PVC\346\227\266-PVC\347\232\204\347\212\266\346\200\201\344\270\272Pending.md" +++ b/content/zh-cn/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md @@ -43,8 +43,8 @@ weight: 1 ``` 1. 删除PVC。 - 2. 创建StorageClass,可参考[动态卷供应典型场景StorageClass配置示例](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应典型场景StorageClass配置示例)。 - 3. 创建新的PVC,可参考[动态卷供应PVC参数说明](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应PVC参数说明)。 + 2. 创建StorageClass,可参考[动态卷供应典型场景StorageClass配置示例](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)。 + 3. 创建新的PVC,可参考[动态卷供应PVC参数说明](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning)。 - 如果由原因2导致PVC处于Pending状态,执行以下步骤。 @@ -59,8 +59,8 @@ weight: 1 1. 删除PVC。 2. 删除StorageClass。 3. 根据Events信息修改StorageClass.yaml文件。 - 4. 创建StorageClass,详细请参考[动态卷供应典型场景StorageClass配置示例](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应典型场景StorageClass配置示例)。 - 5. 创建新的PVC,详情请参考[动态卷供应PVC参数说明](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应PVC参数说明)。 + 4. 创建StorageClass,详细请参考[动态卷供应典型场景StorageClass配置示例](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)。 + 5. 创建新的PVC,详情请参考[动态卷供应PVC参数说明](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning)。 - 如果由原因3导致PVC处于Pending状态,请联系华为工程师处理。 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" b/content/zh-cn/docs/troubleshooting/storage-backend-issues/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/_index.md" rename to content/zh-cn/docs/troubleshooting/storage-backend-issues/_index.md diff --git a/content/zh-cn/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md b/content/zh-cn/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md new file mode 100644 index 0000000..4de8efb --- /dev/null +++ b/content/zh-cn/docs/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md @@ -0,0 +1,34 @@ +--- +title: "使用oceanctl工具获取存储后端时,ONLINE字段值为false" +linkTitle: "使用oceanctl工具获取存储后端时,ONLINE字段值为false" +description: +weight: 2 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +执行下列命令,查看存储后端状态: + +``` +oceanctl get backend +``` + +存储后端ONLINE字段值为false: + +``` +NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE Url +huawei-csi backend-201-nas-nfs nfs oceanstor-nas XXXXXXXXXXXXXX000006 Bound false https://192.168.129.157:8088 +``` + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +CSI使用创建存储后端时输入的账户和密码登录存储后端,若因为下列原因登录失败,则会将ONLINE字段值设置为false: + +1. 账户密码错误:该原因可能是在存储侧修改密码后,未在Kubernetes集群侧更新导致。参考下列[解决措施或规避方法](#section155945247573)进行解决。 +2. 账户被锁定:该问题请参考[存储侧更新密码后账户被锁定](/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info)解决 + +## 解决措施或规避方法{#section155945247573} + +1. 获取最新的账户密码。 +2. 按照[oceanctl更新存储后端密码](/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl)所示,更新存储后端密码。 + diff --git a/content/zh-cn/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md b/content/zh-cn/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md new file mode 100644 index 0000000..e896bac --- /dev/null +++ b/content/zh-cn/docs/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md @@ -0,0 +1,107 @@ +--- +title: "使用oceanctl工具创建后端失败,报错:context deadline exceeded" +linkTitle: "使用oceanctl工具创建后端失败,报错:context deadline exceeded" +description: +weight: 1 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +用户使用oceanctl工具创建存储后端失败,控制台回显:“failed to call webhook: xxx :context deadline exceeded; error: exist status 1”。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +创建存储后端时,将会调用CSI提供的webhook服务校验与存储管理网络的连通性和存储账号密码信息,出现该问题原因可能是以下两种原因: + +- 华为CSI校验存储管理网络连通性失败。 +- kube-apiserver和CSI webhook通信异常。 + +## 华为CSI校验存储管理网络连通性失败{#section17680127184319} + +请按照以下步骤检查是否是华为CSI校验存储管理网络连通性失败。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行命令,获取CSI服务信息。其中,huawei-csi为CSI服务部署的命名空间。 + + ``` + kubectl get pod -n huawei-csi -owide + ``` + + 命令结果示例如下: + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi-controller-xxx 9/9 Running 0 19h host-ip1 host-1 + huawei-csi-node-mnqbz 3/3 Running 0 19h host-ip1 host-1 + ``` + +3. 登录huawei-csi-controller所在节点,如[2](#li1895283018493)中的host-1。 +4. 进入到/var/log/huawei目录。 + + ```yaml + # cd /var/log/huawei + ``` + +5. 查看storage-backend-controller日志,以连接存储超时为例。 + + ``` + tail -n 1000 storage-backend-controller + ``` + + 日志示例如下: + + ``` + 2024-01-01 06:30:44.280661 1 [INFO]: Try to login https://192.168.129.155:8088/deviceManager/rest + 2024-01-01 06:31:44.281626 1 [ERROR]: Send request method: POST, Url: https://192.168.129.155:8088/deviceManager/rest/xx/sessions, error: Post "https://192.168.129.155:8088/deviceManager/rest/xx/sessions": context deadline exceeded (Client.Timeout exceeded while awaiting headers) + 2024-01-01 06:31:44.281793 1 [WARNING]: Login https://192.168.129.155:8088/deviceManager/rest error due to connection failure, gonna try another Url + 2024-01-01 06:31:44.291668 1 [INFO]: Finished validateCreate huawei-csi/backend-test. + 2024-01-01 06:31:44.291799 1 [ERROR]: Failed to validate StorageBackendClaim, error: unconnected + ``` + +6. 如果日志中有相关登录超时、登录失败或者请求耗时较长,请检查宿主机和存储连通性或网络情况。 +7. 如果日志中没有收到任何请求,则是kube-apiserver和CSI webhook通信异常。 + +## kube-apiserver和CSI webhook通信异常{#section56891019204012} + +联系Kubernetes平台管理员查看kube-apiserver与CSI webhook网络问题。例如kube-apiserver存在HTTPS代理时可能无法访问CSI webhook服务。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>临时规避方案中,将会删除webhook资源,该资源用于在创建存储后端时校验输入的账户信息是否正确和能否和存储建立连接,因此删除该资源仅影响创建后端时的校验,无其他功能影响,但需要注意以下几点。 +>- 请保证huawei-csi-controller服务所在宿主机能和存储通信。 +>- 请保证输入的账号密码正确。 + +1. 可执行以下命令查看CSI webhook信息。 + + ``` + kubectl get validatingwebhookconfiguration storage-backend-controller.xuanwu.huawei.io + ``` + + 命令结果示例如下: + + ``` + NAME WEBHOOKS AGE + storage-backend-controller.xuanwu.huawei.io 1 4d22h + ``` + +2. 联系Kubernetes平台管理员检查kube-apiserver与CSI webhook是否存在通信异常。 +3. 临时规避方案:可执行以下命令删除webhook。 + + ``` + kubectl delete validatingwebhookconfiguration storage-backend-controller.xuanwu.huawei.io + ``` + +4. 创建存储后端,可参考[管理存储后端](/docs/storage-backend-management/managing-storage-backends)。 +5. 如果kube-apiserver与CSI webhook通信恢复正常,需要重建webhook,执行以下命令,重启CSI Controller,通过指定“**--replicas=\***”恢复CSI Controller的副本数,下例为恢复至1个,请根据实际情况修改。 + + 先将副本数修改为0。 + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=0 + ``` + + 再将副本数恢复为原数量。 + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=1 + ``` + diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\345\255\230\345\202\250\344\276\247\346\233\264\346\226\260\345\257\206\347\240\201\345\220\216\350\264\246\346\210\267\350\242\253\351\224\201\345\256\232.md" b/content/zh-cn/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md similarity index 93% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\345\255\230\345\202\250\344\276\247\346\233\264\346\226\260\345\257\206\347\240\201\345\220\216\350\264\246\346\210\267\350\242\253\351\224\201\345\256\232.md" rename to content/zh-cn/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md index f0b076f..555a9dc 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\345\255\230\345\202\250\344\276\247\346\233\264\346\226\260\345\257\206\347\240\201\345\220\216\350\264\246\346\210\267\350\242\253\351\224\201\345\256\232.md" +++ b/content/zh-cn/docs/troubleshooting/storage-backend-issues/the-value-of-the-online-field-is-false-when-the-oceanctl-tool-is-used-to-obtain-storage-backend-info.md @@ -28,6 +28,6 @@ CSI登录存储时使用存储后端配置的账户和密码,当存储侧修 kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=1 ``` -4. 使用oceanctl工具修改存储后端密码,修改后端密码请参考[更新存储后端](/docs/存储后端管理/管理存储后端/更新存储后端)章节。 +4. 使用oceanctl工具修改存储后端密码,修改后端密码请参考[更新存储后端](/docs/storage-backend-management/managing-storage-backends/updating-a-storage-backend)章节。 5. 使用admin账户登录存储,修改登录策略,以OceanStor Dorado存储为例,在DeviceManager管理界面,选择“设置 \> 用户与安全 \> 安全策略 \>登录策略 \>修改\>密码锁定”,恢复密码锁定。 diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/docs/using-huawei-csi/_index.md similarity index 90% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/docs/using-huawei-csi/_index.md index 38ee70f..0110da0 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/docs/using-huawei-csi/_index.md @@ -7,7 +7,7 @@ weight: 7 本章节主要介绍如何使用华为CSI对PV、快照的生命周期进行管理。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 使用华为CSI进行卷管理操作期间,请勿删除存储后端。 >- 在映射block卷时,华为CSI会自动创建创建主机、主机组、LUN组等这些卷映射需要的关联对象,以及映射视图。如果手动在存储上创建了这些对象,会影响华为CSI的映射逻辑,请确保在使用华为CSI映射卷前删除这些对象。 diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/_index.md" b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/_index.md similarity index 100% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/_index.md" rename to content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/_index.md diff --git a/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md new file mode 100644 index 0000000..e7231e5 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md @@ -0,0 +1,9 @@ +--- +title: "检查卷快照依赖组件信息" +linkTitle: "检查卷快照依赖组件信息" +description: +weight: 1 +--- + +如果您需要在容器环境中使用卷快照以及卷快照关联的特性,请通过[检查卷快照依赖组件](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)检查您的环境是否部署了卷快照依赖组件以及卷快照api-versions信息。 + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshot.md" b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md similarity index 88% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshot.md" rename to content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md index e2ce062..081e99f 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshot.md" +++ b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md @@ -37,7 +37,7 @@ VolumeSnapshot的配置文件示例如下: - VolumeSnapshot中api-versions信息,请和创建VolumeSnapshotClass使用的版本保持一致。 -实际参数可以参考[表 VolumeSnapshot参数说明](#zh-cn_topic_0254162579_table14111735169)中的说明修改。 +实际参数可以参考[表1](#zh-cn_topic_0254162579_table14111735169)中的说明修改。 **表 1** VolumeSnapshot参数说明 @@ -76,8 +76,8 @@ VolumeSnapshot的配置文件示例如下: ## 前提条件{#section1236201420471} -- 源PVC存在,且PVC所在的backend存在支持创建VolumeSnapshot。支持创建VolumeSnapshot的存储请参考[表 华为企业存储支持的特性及约束](/docs/兼容性和特性/华为企业存储兼容性#table14995183994515)和[表 华为分布式存储支持的特性及约束](/docs/兼容性和特性/华为分布式存储兼容性#table175022559255),支持创建VolumeSnapshot的Kubernetes版本请参考[表 Kubernetes版本与支持的特性](/docs/兼容性和特性/Kubernetes特性矩阵#table134589135522)。 -- 华为CSI运行所依赖的卷快照组件CRD已经安装。具体信息请参考[检查卷快照依赖组件](/docs/安装部署/安装前准备/检查卷快照依赖组件)章节说明。 +- 源PVC存在,且PVC所在的backend存在支持创建VolumeSnapshot。支持创建VolumeSnapshot的存储请参考[表2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)和[表2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255),支持创建VolumeSnapshot的Kubernetes版本请参考[表1](/docs/compatibility-and-features/kubernetes-feature-matrix#table134589135522)。 +- 华为CSI运行所依赖的卷快照组件CRD已经安装。具体信息请参考[检查卷快照依赖组件](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节说明。 - 系统中已经存在使用华为CSI的VolumeSnapshotClass。 ## 操作步骤{#section1678012285209} diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshotClass.md" b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md similarity index 91% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshotClass.md" rename to content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md index e7eb834..f3311c0 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\351\205\215\347\275\256VolumeSnapshotClass.md" +++ b/content/zh-cn/docs/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md @@ -35,7 +35,7 @@ VolumeSnapshotClass对象的名称很重要,是用户可以请求特定类的 - 如果您的环境中api-versions同时支持v1和v1beta1,我们推荐您使用v1版本。 -实际参数可以参考[表 VolumeSnapshotClass参数说明](#zh-cn_topic_0254162578_table189495491346)中的说明修改。由于当前华为CSI还不支持在VolumeSnapshotClass中设置自定义参数(parameters),因此建议只创建一个VolumeSnapshotClass,供所有快照使用。 +实际参数可以参考[表1](#zh-cn_topic_0254162578_table189495491346)中的说明修改。由于当前华为CSI还不支持在VolumeSnapshotClass中设置自定义参数(parameters),因此建议只创建一个VolumeSnapshotClass,供所有快照使用。 **表 1** VolumeSnapshotClass参数说明 @@ -75,7 +75,7 @@ VolumeSnapshotClass对象的名称很重要,是用户可以请求特定类的 ## 前提条件{#section549623219322} -华为CSI支持快照且运行所依赖的卷快照组件CRD已经安装。具体CRD信息请参考[检查卷快照依赖组件](/docs/安装部署/安装前准备/检查卷快照依赖组件)章节说明,支持创建VolumeSnapshot的Kubernetes版本请参考[表 Kubernetes版本与支持的特性](/docs/兼容性和特性/Kubernetes特性矩阵#table134589135522)。 +华为CSI支持快照且运行所依赖的卷快照组件CRD已经安装。具体CRD信息请参考[检查卷快照依赖组件](/docs/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节说明,支持创建VolumeSnapshot的Kubernetes版本请参考[表1](/docs/compatibility-and-features/kubernetes-feature-matrix#table134589135522)。 ## 操作步骤{#section187667882011} diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/_index.md" b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/_index.md similarity index 100% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/_index.md" rename to content/zh-cn/docs/using-huawei-csi/managing-a-pvc/_index.md diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md new file mode 100644 index 0000000..ceb6c54 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md @@ -0,0 +1,45 @@ +--- +title: "克隆PVC" +linkTitle: "克隆PVC" +description: +weight: 3 +--- + +本章节描述如何克隆PVC。 + +在克隆PVC时,需要指定数据源。如下示例是一个简单的克隆PVC示例,在该示例中,使用“mypvc”作为数据源,新创建了一个名叫“myclone”的PVC。 + +```yaml +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: myclone +spec: + storageClassName: mysc + dataSource: + name: mypvc + kind: PersistentVolumeClaim + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 指定的storageClassName必须和dataSource中的源卷的StorageClass需一致。 +>- 克隆卷的容量必须不小于源卷容量,建议和源卷容量保持一致。 + +## 前提条件{#section349216304616} + +系统中已经存在源PVC,且源PVC所在的backend存在支持克隆。支持克隆的存储请参考[华为企业存储支持的特性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620)和[华为企业存储支持的特性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620),支持克隆的Kubernetes版本请参考[Kubernetes特性矩阵](/docs/compatibility-and-features/kubernetes-feature-matrix)。 + +## 操作步骤{#zh-cn_topic_0254212544_section319012981414} + +1. 执行以下命令,基于克隆卷的配置文件创建PVC。 + + ``` + kubectl create -f myclone.yaml + ``` + diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md new file mode 100644 index 0000000..a187403 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md @@ -0,0 +1,46 @@ +--- +title: "从快照创建PVC" +linkTitle: "从快照创建PVC" +description: +weight: 4 +--- + +本章节描述如何从快照创建PVC。 + +在创建这个PVC时,需要指定数据源。如下示例是一个简单的从快照创建PVC示例,在该示例中,使用快照“mysnapshot”作为数据源,新创建了一个名叫“myrestore”的PVC。 + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myrestore +spec: + storageClassName: mysc + dataSource: + name: mysnapshot + kind: VolumeSnapshot + apiGroup: snapshot.storage.k8s.io + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 100Gi +``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 指定的storageClassName必须和dataSource中的快照源卷的StorageClass需一致。 +>- 克隆卷的容量必须不小于快照容量,建议和快照容量保持一致。 + +## 前提条件{#zh-cn_topic_0254212585_section0772716133710} + +系统中已经存在快照,且快照所在的backend存在支持克隆。支持快照创建PVC的存储请参考[华为企业存储支持的特性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620)和[华为企业存储支持的特性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620),支持快照创建PVC的Kubernetes版本请参考[Kubernetes特性矩阵](/docs/compatibility-and-features/kubernetes-feature-matrix)。 + +## 操作步骤{#zh-cn_topic_0254212585_section1882544631619} + +1. 执行以下命令,基于从快照创建卷的配置文件创建PVC。 + + ``` + kubectl create -f myrestore.yaml + ``` + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/_index.md" b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md similarity index 69% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/_index.md" rename to content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md index f9d3741..3e9e25e 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/_index.md" +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md @@ -5,7 +5,7 @@ description: weight: 1 --- -华为CSI支持在华为存储上创建存储资源(LUN/文件系统),并根据用户的设置供给容器使用。具体支持的特性请参考[表 华为企业存储支持的特性及约束](/docs/兼容性和特性/华为企业存储兼容性#table14995183994515)或者[表 华为分布式存储支持的特性及约束](/docs/兼容性和特性/华为分布式存储兼容性#table175022559255)。 +华为CSI支持在华为存储上创建存储资源(LUN/文件系统),并根据用户的设置供给容器使用。具体支持的特性请参考[表2](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)或者[表2](/docs/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255)。 创建PVC的方式分为动态卷供应和静态卷供应。 diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md new file mode 100644 index 0000000..6e4eee6 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md @@ -0,0 +1,116 @@ +--- +title: "动态卷供应" +linkTitle: "动态卷供应" +description: +weight: 1 +--- + +动态卷供应(Dynamic Volume Provisioning)允许按需创建存储卷。动态卷供应依赖StorageClass对象。 集群管理员可以根据需要定义多个StorageClass对象,在声明PV或者PVC时,指定满足业务要求的StorageClass。华为CSI在从华为存储设备上申请资源时,会根据StorageClass的预置定义,创建满足业务要求的存储资源。 + +为了完成动态卷供应,需要完成如下两步: + +- 配置StorageClass +- 配置PVC + +## 配置StorageClass{#section176901147144516} + +1. 根据业务需要,参考[动态卷供应典型场景StorageClass配置示例](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)和[动态卷供应StorageClass参数说明](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning),创建StorageClass配置文件,如本例中的mysc.yaml文件。 +2. 执行命令,使用配置文件创建StorageClass。 + + ``` + kubectl apply -f mysc.yaml + ``` + +3. 执行命令,查看已创建的StorageClass信息。 + + ``` + kubectl get sc mysc + ``` + + 命令结果示例如下: + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate true 8s + ``` + +## 配置PVC{#section17522101915500} + +1. 根据业务需要,参考本节描述和PVC配置文件示例,修改具体参数,生成本次需要创建的PVC配置文件,如本例中mypvc.yaml文件。 + + ```yaml + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mypvc + spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + storageClassName: mysc + resources: + requests: + storage: 100Gi + ``` + +2. 执行命令,使用配置文件创建PVC。 + + ``` + kubectl create -f mypvc.yaml + ``` + +3. 等待一段时间后,执行以下命令,查看已经创建的PVC信息。 + + ``` + kubectl get pvc mypvc + ``` + + 命令结果示例如下,如果PVC的状态是“Bound”时,则说明该PVC已经创建成功,后续可以被Pod使用。 + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) + >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state)。 + >- 建议每批次最多批量创建/删除100个PVC。 + +## 使用PVC{#section8172141413917} + +在完成PVC创建后,就可以使用PVC来创建Pod。如下示例是一个简单的使用PVC示例,在该示例中,创建的Pod使用了刚刚创建的_ mypvc_。 + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment +spec: + selector: + matchLabels: + app: nginx + replicas: 2 + template: + metadata: + labels: + app: nginx + spec: + containers: + - image: nginx:alpine + name: container-0 + volumeMounts: + - mountPath: /tmp + name: pvc-mypvc + restartPolicy: Always + volumes: + - name: pvc-mypvc + persistentVolumeClaim: + claimName: mypvc # name of PVC +``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>若批量使用PVC创建Pod,Pod长时间处于ContainerCreating状态,且huawei-csi-node服务状态为OOMKilled,说明当前huawei-csi-node服务内存不足。请根据[表1](/docs/appendix/huawei-csi-resource-management#table4106151116363)章节,将huawei-csi-node内存限制增大。 + + + + diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md new file mode 100644 index 0000000..5bcd3af --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md @@ -0,0 +1,155 @@ +--- +title: "动态卷供应PVC参数说明" +linkTitle: "动态卷供应PVC参数说明" +description: +weight: 3 +--- + +在完成配置StorageClass以后,就可以用该StorageClass来配置PVC。PVC的配置模板请参考华为CSI软件包中的examples目录下的pvc\*.yaml文件示例。 + +**表 1** pvc\*.yaml文件示例参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

说明

+

必选参数

+

默认值

+

备注

+

metadata.name

+

自定义的PVC对象名称。

+

+

-

+

以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。

+

spec.volumeMode

+

卷模式。可选参数。 当使用LUN类型的卷时,支持配置以下类型:

+
  • Filesystem:本地文件系统。
  • Block:裸设备。
+

+

Filesystem

+

该参数在挂载PV时生效,默认为Filesystem。

+
  • Filesystem表示在容器通过一个本地文件系统访问PV,本地文件系统类型为指定StorageClass中的fsType字段指定, Dtree类型存储也使用此参数进行描述。
  • Block表示使用裸卷的方式访问访问PV。
+

spec.storageClassName

+

StorageClass对象名称。

+

+

-

+

业务需要的StorageClass对象名称。

+

spec.resources.requests.storage

+

指定待创建卷大小,格式为***Gi,单位为GiB。需要满足大小为512字节的整数倍。

+

+

10Gi

+

PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

+

如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。

+

spec.accessModes

+

指定卷访问模式。

+
  • RWO(ReadWriteOnce):卷可以被一个节点以读写方式挂载。 该模式也允许运行在同一节点上的多个 Pod 访问卷。
  • ROX(ReadOnlyMany):卷可以被多个节点以只读方式挂载。
  • RWX(ReadWriteMany):卷可以被多个节点以读写方式挂载。
  • RWOP(ReadWriteOncePod):卷只能被单个 Pod 以读写方式挂载。该特性需要 Kubernetes 1.22 以上版本。
+

+

ReadWriteOnce

+
  • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。Kubernetes 1.29版本以下需要参考开启ReadWriteOncePod功能门章节开启该特性。
  • RWX支持情况如下: +
+
+ +**表 2** ext4容量的规格 + + + + + + + + + + + + + + + + + + + +

存储类型

+

存储规格限制

+

ext4规格限制

+

CSI规格限制

+

OceanStor Dorado

+

512Ki~256Ti

+

50Ti

+

512Ki~50Ti

+

OceanStor Pacific系列

+

64Mi~512Ti

+

50Ti

+

64Mi~50Ti

+
+ +**表 3** XFS容量的规格 + + + + + + + + + + + + + + + + + + + +

存储类型

+

存储规格限制

+

XFS规格限制

+

CSI规格限制

+

OceanStor Dorado

+

512Ki~256Ti

+

500Ti

+

512Ki~500Ti

+

OceanStor Pacific系列

+

64Mi~512Ti

+

500Ti

+

64Mi~500Ti

+
+ diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md new file mode 100644 index 0000000..d593c2c --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md @@ -0,0 +1,310 @@ +--- +title: "动态卷供应典型场景StorageClass配置示例" +linkTitle: "动态卷供应典型场景StorageClass配置示例" +description: +weight: 1 +--- + +[存储类(StorageClass)](https://kubernetes.io/docs/concepts/storage/storage-classes/)为管理员提供了描述存储 "类" 的方法。 不同的类型可能会映射到一组不同的能力定义。Kubernetes集群用户可基于StorageClass进行动态卷制备。 + +使用SAN存储时可参考示例文件/examples/sc-lun.yaml,使用NAS存储时可参考示例文件/examples/sc-fs.yaml。 + +典型场景下StorageClass配置请参考如下示例: + +- [StorageClass中设置后端和存储池](#section114859014540) +- [StorageClass中设置NFS访问方式](#section128347019144) +- [StorageClass中设置Dtree类型](#section1642719478395) +- [StorageClass中设置本地文件系统访问方式](#section1155962772514) +- [StorageClass中设置DPC访问方式](#section022191784519) +- [StorageClass中设置应用类型](#section576688153313) +- [StorageClass中设置软配额](#section73983205817) +- [StorageClass中设置双活](#section12170214277) +- [StorageClass中设置挂载目录权限](#section156891316272) +- [StorageClass中设置QoS](#section1016612587584) +- [CCE或CCE Agile平台中配置StorageClass](#section132301459161017) + +## StorageClass中设置后端和存储池{#section114859014540} + +如果在一个Kubernetes集群中配置了多个华为后端,或者一个华为后端提供多个存储池,建议在StorageClass中配置指定的后端和存储池信息,避免华为CSI随机选择后端和存储池,导致卷所在的存储不符合规划。 + +SAN存储设置后端和存储池可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "san-181" # 存储后端名称 + pool: "pool001" # 存储池名称 + volumeType: lun + allocType: thin +``` + +NAS存储设置后端和存储池可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "nas-181" # 存储后端名称 + pool: "pool001" # 存储池名称 + volumeType: fs + allocType: thin + authClient: "*" +``` + +## StorageClass中设置NFS访问方式{#section128347019144} + +容器使用NFS文件系统作为存储资源时,可以参考如下配置示例。该示例中,NFS挂载时指定版本为4.1。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-nas-181 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "192.168.0.10;192.168.0.0/24;myserver1.test" +mountOptions: + - nfsvers=4.1 # NFS挂载时指定版本为4.1 +``` + +## StorageClass中设置Dtree类型{#section1642719478395} + +容器使用Dtree作为存储资源时,可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-dtree + volumeType: dtree # 卷类型配置为 dtree + allocType: thin + authClient: "*" +mountOptions: + - nfsvers=4.1 +``` + +## StorageClass中设置本地文件系统访问方式{#section1155962772514} + +容器使用企业存储或者分布式存储的LUN作为存储资源时,且需要格式化文件系统为本地文件系统时,可以参考如下示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-lun-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs +``` + +## StorageClass中设置DPC访问方式{#section022191784519} + +当容器使用OceanStor Pacific系列存储,且存储支持DPC协议访问时,可以在StorageClass中配置DPC访问的挂载参数。本例中设置挂载时使用“**acl**”做鉴权参数,使用“**cnflush**”为设置异步刷盘模式。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-dpc-101 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "*" +mountOptions: + - acl # 鉴权参数 + - cnflush # 设置异步刷盘模式 +``` + +## StorageClass中设置应用类型{#section576688153313} + +当容器使用OceanStor Dorado存储的LUN作为存储时,如果使用存储默认的应用类型无法满足某些业务的I/O模型要求(如容器对外提供数据库OLAP服务),可以在StorageClass中配置应用类型,提升存储性能。具体需要使用的应用类型请参考对应存储产品的产品文档说明。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-lun-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs + applicationType: Oracle_OLAP # 配置应用类型 +``` + +## StorageClass中设置软配额{#section73983205817} + +当容器使用OceanStor Pacific系列存储的文件系统作为存储时,可以在StorageClass中配置软配额信息,可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-pacific-101 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "*" + storageQuota: '{"spaceQuota": "softQuota", "gracePeriod": 100}' # 配置软配额 +mountOptions: + - nfsvers=3 +``` + +## StorageClass中设置QoS{#section1016612587584} + +容器使用企业存储或者分布式存储作为存储资源时,可以为容器使用的存储资源设置QoS,从而保证这些容器对存储读写满足一定的服务等级。 + +不同型号或版本的存储支持的QoS设置不同,请参考[表2](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning#table74841513116)找到对应存储的配置项。本示例中的后端是OceanStor Dorado存储,其他存储可以参考本例设置。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-qos-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs + qos: '{"IOTYPE": 2, "MINIOPS": 1000}' # 配置QoS +``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- OceanStor V5 租户用户不支持配置QoS策略。 +>- 配置QoS后只能在新建的PVC上生效;对于同名StorageClass已经发放的PVC,不能自动添加QoS + +## StorageClass中设置双活{#section12170214277} + +容器使用NFS双活文件系统作为存储资源时,可以参考如下配置示例。该示例中,使用的后端是支持双活的后端,且配置“**hyperMetro**”参数为“true”。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-hypermetro-dorado-181 + pool: pool001 + volumeType: fs + hyperMetro: "true" # 发放双活卷 + allocType: thin + authClient: "*" +``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 发放NAS双活卷前,需要在两台存储设备之间配置双活关系,包含远端设备、双活域等,仅支持文件系统双活域工作模式为双活AA模式,配置操作请参考对应存储型号的产品文档。 +>- 若存储发生故障,逻辑管理端口可能产生漂移,在漂移状态下删除NAS双活卷后,需手动清理对应的存储资源。 + +## StorageClass中设置挂载目录权限{#section156891316272} + +当需要修改容器内挂载目录的权限时,可以在StorageClass中配置目录权限信息,可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + volumeType: fs + allocType: thin + authClient: "*" + fsPermission: "777" + rootSquash: "no_root_squash" # 仅NAS存储支持该参数 + allSquash: "no_all_squash" # 仅NAS存储支持该参数 +``` + +完成StorageClass配置后,进行如下步骤创建StorageClass。 + +1. 执行以下命令,基于该yaml文件创建StorageClass。 + + ``` + kubectl create -f mysc.yaml + ``` + +2. 执行以下命令,查看当前已经创建的StorageClass信息。 + + ``` + kubectl get sc + ``` + + 命令结果示例如下: + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate false 34s + ``` + + 创建StorageClass后,就可以使用该StorageClass进行创建PV或者PVC。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>在StorageClass的使用中请注意如下事项: +>- **针对StorageClass进行的修改将不会在已经创建的PV上生效。您需要删除这些PV,并重新使用修改后的StorageClass创建才能应用修改的参数。** + +## CCE或CCE Agile平台中配置StorageClass{#section132301459161017} + +在CCE或CCE Agile平台中创建NAS类型StorageClass,可以参考如下配置示例。其中provisioner保持和values.yaml文件中driverName一致。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc + annotations: + storageclass.kubernetes.io/storageType: file +provisioner: csi.oceanstor.com +allowVolumeExpansion: true +parameters: + volumeType: fs + allocType: thin + authClient: "*" +``` + +在CCE或CCE Agile平台中创建Block类型StorageClass,可以参考如下配置示例。其中provisioner保持和values.yaml文件中driverName一致。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc + annotations: + storageclass.kubernetes.io/storageType: block +provisioner: csi.oceanstor.com +allowVolumeExpansion: true +parameters: + volumeType: lun + allocType: thin +``` + diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md new file mode 100644 index 0000000..2f30161 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md @@ -0,0 +1,625 @@ +--- +title: "动态卷供应StorageClass参数说明" +linkTitle: "动态卷供应StorageClass参数说明" +description: +weight: 2 +--- + +**表 1** StorageClass配置参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

说明

+

必选参数

+

默认值

+

备注

+

metadata.name

+

自定义的StorageClass对象名称。

+

+

-

+

以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。

+

provisioner

+

制备器名称。

+

+

csi.huawei.com

+

该字段需要指定为安装华为CSI时设置的驱动名称。

+

取值和values.yaml文件中driverName一致。

+

reclaimPolicy

+

回收策略。支持如下类型:

+
  • Delete:自动回收资源。
  • Retain:手动回收资源
+

+

Delete

+
  • Delete:删除PV/PVC时会关联删除存储上的资源。
  • Retain:删除PV/PVC时不会删除存储上的资源。
+

allowVolumeExpansion

+

是否允许卷扩展。参数设置为true 时,使用该StorageClass的PV可以进行扩容操作。

+

+

false

+

此功能仅可用于扩容PV,不能用于缩容PV。

+

扩容PV功能在Kubernetes 1.14 (alpha)后才支持

+

parameters.backend

+

待创建资源所在的后端名称。

+

+

-

+

如果不设置,华为CSI随机选择一个满足容量要求的后端创建资源。

+

建议指定后端,确保创建的资源在预期的后端上。

+

parameters.pool

+

待创建资源所在的存储资源池名称。如果设置,则必须设置parameters.backend。

+

+

-

+

如果不设置,华为CSI会在所选后端上随机选择一个满足容量要求的存储池创建资源。建议指定存储池,确保创建的资源在预期的存储池上。

+

parameters.volumeType

+

待创建卷类型。支持如下类型:

+
  • lun:存储侧发放的资源是LUN。
  • fs:存储侧发放的资源是文件系统。
  • dtree:存储侧发放的资源是Dtree类型的卷
+

+

-

+
  • 使用NAS存储时,必须配置为fs。
  • 使用SAN存储时,必须配置为lun。
  • 使用Dtree类型的NAS存储时,必须配置为dtree
+

parameters.allocType

+

待创建卷的分配类型。支持如下类型:

+
  • thin:创建时不会分配所有需要的空间,而是根据使用情况动态分配。
  • thick:创建时分配所有需要的空间。
+

+

-

+

传空相当于传thin,创建时不会分配所有需要的空间,而是根据使用情况动态分配。

+

OceanStor Dorado/OceanStor Dorado V3 不支持thick

+

parameters.fsType

+

主机文件系统类型。支持类型为:

+
  • ext2
  • ext3
  • ext4
  • xfs
+

+

ext4

+

仅当StorageClass的volumeType设置为“lun”,且PVC的volumeMode配置为“Filesystem”时生效。

+

parameters.authClient

+

可访问该卷的NFS客户端IP地址信息,在指定volumeType为“fs”时必选。

+

支持输入客户端主机名称(建议使用全称域名)、客户端IP地址、客户端IP地址段。

+

条件必选

+

-

+

可以使用“*”表示任意客户端。当您不确定访问客户端IP信息时,建议使用“*”防止客户端访问被存储拒绝。

+

当使用客户端主机名称时建议使用全称域名。

+

IP地址支持IPv4、IPv6地址或两者的混合IP地址。

+

可以同时输入多个主机名称、IP地址或IP地址段,以英文分号,空格或按回车键隔开。如示例:"192.168.0.10;192.168.0.0/24;myserver1.test"

+

parameters.cloneSpeed

+

克隆速度。支持配置为1~4。

+

+

3

+

4速度最快。配置克隆PVC或从快照创建PVC时生效,参考克隆PVC从快照创建PVC

+

parameters.applicationType

+

后端为OceanStor Dorado存储时,指定创建LUN/NAS时的应用类型名称。

+

+

-

+
  • “volumeType”为“lun”时,在DeviceManager管理界面,选择“服务 > 块服务 > LUN组 > LUN > 创建 > 应用类型”,获取应用类型名称。
  • “volumeType”为“fs”时,在DeviceManager管理界面,选择“服务 > 文件服务 > 文件系统 > 创建 > 应用类型”,获取应用类型名称。
+

parameters.qos

+

PV在存储侧的LUN/NAS的QoS设置。

+

配置项值是字典格式的JSON字符串(字符串两边由单引号修饰,字典key由双引号修饰)。如:'{"maxMBPS": 999, "maxIOPS": 999}'

+

+

-

+

支持的QoS配置请参考表2说明。

+

parameters.storageQuota

+

PV在存储侧配额设置。仅在对接OceanStor Pacific系列存储使用NAS时生效。

+

配置项值是字典格式的JSON字符串(字符串两边由单引号修饰,字典key由双引号修饰)。如:'{"spaceQuota": "softQuota", "gracePeriod": 100}'

+

+

-

+

支持的配额配置请参考表3说明。

+

parameters.hyperMetro

+

是否创建双活卷。当使用的后端是双活类型的后端需要配置。

+
  • "true":创建的卷为双活卷。对接存储后端为双活后端时,该值必须为true。
  • "false":创建的卷为普通卷。
+

条件必选

+

false

+

当使用的后端是双活类型的后端,且需要发放双活卷时,设置该参数为"true",若设置为"false",在后端对接的逻辑管理端口漂移的场景下,有业务中断的风险。

+

parameters.metroPairSyncSpeed

+

双活Pair同步速率。支持配置为1~4。

+

可选值:

+
  • 1:低
  • 2:中
  • 3:高
  • 4:最高
+

+

-

+

配置创建双活卷时生效。

+

注意:

+
  • 未配置该参数时,双活Pair存储速率由存储决定。
  • 最高速率同步时可能导致主机时延增大。
+

parameters.fsPermission

+

挂载到容器内的目录权限。

+

+

-

+

配置格式参考Linux权限设置,如“777”、“755”等。

+

支持所有的SAN存储,NAS存储仅支持OceanStor Dorado 、OceanStor、OceanStor Pacific 8.1.2及之后版本的存储设备。

+

parameters.rootSquash

+

用于设置是否允许客户端的root权限。

+

可选值:

+
  • root_squash:表示不允许客户端以root用户访问,客户端使用root用户访问时映射为匿名用户。
  • no_root_squash:表示允许客户端以root用户访问,保留root用户的权限。
+

+

-

+

仅支持NAS存储。

+

parameters.allSquash

+

用于设置是否保留共享目录的UID和GID。

+

可选值:

+
  • all_squash:表示共享目录的UID和GID映射为匿名用户。
  • no_all_squash:表示保留共享目录的UID和GID。
+

+

-

+

仅支持NAS存储。

+

parameters.accesskrb5

+

用于配置krb5安全协议。

+
  • read_only:只读
  • read_write:读写
  • none:无权限
+

+

-

+

挂载时,可以在mountOptions中指定参数sec。

+

parameters.accesskrb5i

+

用于配置krb5i安全协议。

+
  • read_only:只读
  • read_write:读写
  • none:无权限
+

+

-

+

挂载时,可以在mountOptions中指定参数sec。

+

parameters.accesskrb5p

+

用于配置krb5p安全协议。

+
  • read_only:只读
  • read_write:读写
  • none:无权限
+

+

-

+

挂载时,可以在mountOptions中指定参数sec。

+

parameters.snapshotDirectoryVisibility

+

用于设置快照目录是否可见。

+

可选值:

+
  • visible:表示快照目录可见。
  • invisible:表示快照目录不可见。
+

+

-

+

仅支持NAS存储。

+

parameters.reservedSnapshotSpaceRatio

+

用于配置快照预留空间。

+

参数类型:字符串

+

取值范围:"0"~"50"

+

+

-

+

支持OceanStor Dorado 6.1.5+、OceanStor 6.1.5+的NAS存储。

+

parameters.disableVerifyCapacity

+

是否禁用卷容量校验,禁用后将不校验卷容量是否为扇区大小整数倍。

+

可选值:

+
  • "true": 禁用卷容量校验。
  • "false": 开启卷容量校验。
+

+

"false"

+
  • OceanStor Dorado和OceanStor的扇区大小为512 B。
  • OceanStor Pacific的扇区大小为1 MiB。
+

parameters.description

+

用于配置创建的文件系统/LUN的描述信息。

+

参数类型:字符串

+

长度限制:0-255

+

+

-

+

仅支持企业存储文件系统及LUN。

+

mountOptions.nfsvers

+

主机侧NFS挂载选项。支持如下挂载选项:

+

nfsvers:挂载NFS时的协议版本。支持配置的参数值为“3”,“4”,“4.0”,“4.1”和”4.2”。

+

+

-

+

在主机执行mount命令时-o参数后的可选选项。列表格式。

+

指定NFS版本挂载时,当前支持NFS 3/4.0/4.1/4.2协议(需存储设备支持且开启)。当配置参数为nfsvers=4时,因为操作系统配置的不同,实际挂载可能为NFS 4的最高版本协议,如4.2,当需要使用4.0协议时,建议配置nfsvers=4.0。

+

mountOptions.acl

+

DPC命名空间支持ACL功能。DPC客户端支持POSIX ACL、NFSv4 ACL、NT ACL的鉴权行为。

+

+

-

+

acl、aclonlyposix、cnflush、cflush参数描述仅供参考,详细参数说明请参考《OceanStor Pacific系列 产品文档》 > 配置 > 文件服务基础业务配置指南 > 配置基础业务(DPC场景) > 客户端访问DPC共享 > 步骤2。

+

mountOptions.aclonlyposix

+

DPC命名空间支持POSIX ACL功能,DPC客户端支持POSIX ACL的鉴权行为。

+

支持POSIX ACL的协议有:DPC、NFSv3、HDFS。如使用NFSv4 ACL或NT ACL,会导致DPC客户端无法识别该类型的ACL,从而导致该类型的ACL不会生效。

+

+

-

+

aclonlyposix与acl参数同时使用时,仅acl参数生效,即命名空间支持ACL功能。

+

mountOptions.cnflush

+

异步刷盘模式,即关闭命名空间下的文件时不会立即刷盘。

+

+

-

+

异步刷盘模式,当文件关闭时不会同步将Cache的数据持久化到存储介质中,而是通过Cache异步刷盘的方式将数据写入存储介质,Cache的后台刷盘将在写业务完成后根据刷盘周期定时刷盘。在多客户端场景下,对同一文件进行并行操作,文件Size的更新会受刷盘周期的影响,即当刷盘动作完成后才会更新文件的Size,更新通常会在数秒内完成。同步I/O不受刷盘周期影响。

+

mountOptions.cflush

+

同步刷盘模式,即关闭命名空间下的文件时立即刷盘。

+

+

-

+

默认使用同步刷盘模式。

+

mountOptions.sec

+

用于指定Kerberos 5协议挂载NFS文件系统。

+

+

-

+
  • 使用Kerberos 5协议时,请配置krb5。
  • 使用Kerberos 5i协议时,请配置krb5i。
  • 使用Kerberos 5p协议时,请配置krb5p。
  • Kerberos仅支持NFSv4.0及以上版本的NFS协议。
  • Oceanstor Dorado和Oceanstor 6.1.3及以上版本支持Kerberos。
+

mountOptions.proto

+

指定NFS挂载时使用的传输协议。

+

支持配置参数值为:“rdma”。

+

+

-

+
  • 确保存储系统已启用NFS over RDMA。
  • 华为企业存储支持OceanStor Dorado 6.1.7及以上的NAS存储。
  • 华为分布式支持OceanStor Pacific 8.2.0及以后的NAS存储。当分布式存储使用NFS over RDMA时,mountOptions.nfsvers参数必须配置为"3"。
+

mountOptions.port

+

指定NFS挂载时使用的协议端口

+

条件必选

+

-

+

传输协议方式使用“rdma”时,请设置为:20049。

+

mountOptions.discard

+

挂载文件系统时自动触发Trim/Discard操作。该操作会通知块设备释放未使用的块

+

+

-

+

支持xfs、ext4文件系统。

+
+ +**表 2** 支持的QoS配置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

存储类型

+

参数名

+

参数描述

+

备注

+

OceanStor V5

+

IOTYPE

+

控制读写类型。

+

可选参数(未明确指定将使用后端存储默认值,具体参考相关存储资料)。

+

有效值如下:

+
  • 0:读I/O
  • 1:写I/O
  • 2:读写I/O
+

MAXBANDWIDTH

+

最大带宽限制策略。

+

单位MB/s,有效值为>0的整数。

+

MINBANDWIDTH

+

最小带宽保护策略。

+

单位MB/s,有效值为>0的整数。

+

MAXIOPS

+

最大IOPS限制策略。

+

有效值为>0的整数。

+

MINIOPS

+

最小IOPS保护策略。

+

有效值为>0的整数。

+

LATENCY

+

最大时延保护策略。

+

单位ms,有效值为>0的整数。

+

OceanStor Dorado V3

+

IOTYPE

+

控制读写类型。

+

有效值如下:

+
  • 2:读写I/O
+

MAXBANDWIDTH

+

最大带宽限制策略。

+

单位MB/s,整数, 范围1~999999999。

+

MAXIOPS

+

最大IOPS限制策略。

+

类型为整数, 范围100~999999999。

+

OceanStor Dorado/OceanStor

+

IOTYPE

+

控制读写类型。

+

有效值如下:

+
  • 2:读写I/O
+

MAXBANDWIDTH

+

最大带宽限制策略。

+

单位MB/s,类型为整数, 范围1~999999999。

+

MINBANDWIDTH

+

最小带宽保护策略。

+

单位MB/s,类型为整数, 范围1~999999999。

+

MAXIOPS

+

最大IOPS限制策略。

+

类型为整数, 范围100~999999999。

+

MINIOPS

+

最小IOPS保护策略。

+

类型为整数, 范围100~999999999。

+

LATENCY

+

最大时延保护策略。

+

单位ms,仅支持配置0.5或1.5。

+

FusionStorage/OceanStor Pacific系列

+

maxMBPS

+

最大带宽限制策略。

+

必填。有效值为大于0的整数,单位MB/s。最大值请参考存储设备实际限制,如OceanStor Pacific NAS最大值为1073741824。

+

maxIOPS

+

最大IOPS限制策略。

+

必填。有效值为大于0的整数。最大值请参考存储设备实际限制,如OceanStor Pacific NAS最大值为1073741824000。

+
+ +**表 3** 支持的配额配置 + + + + + + + + + + + + + + + + +

参数名

+

参数描述

+

备注

+

spaceQuota

+

文件配额类型。

+

必选。仅支持配置“softQuota”或者“hardQuota”

+

gracePeriod

+

配置软配额时,允许的超限天数。

+

条件可选,当“spaceQuota”配置为“softQuota”时可选。

+

类型为整数,支持范围为0~4294967294。

+
+ diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/_index.md" b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md similarity index 73% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/_index.md" rename to content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md index 6daa250..7423e9a 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/_index.md" +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md @@ -11,9 +11,9 @@ weight: 2 - 重建Kubernetes集群。 - 容灾场景下,对存储数据进行迁移。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >在多Kubernetes集群场景下,使用纳管卷特性对同一存储资源进行管理时,在任一集群中对该资源对应的PVC进行管理操作后,不会同步到其他集群中。 ->例如:在某一集群中对PVC进行扩容时,其他集群对应的PVC不会自动扩容,需要在其他集群中手动根据[扩容PVC](/docs/使用华为CSI/PVC管理/扩容PVC)中的扩容命令进行扩容。 +>例如:在某一集群中对PVC进行扩容时,其他集群对应的PVC不会自动扩容,需要在其他集群中手动根据[扩容PVC](/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc)中的扩容命令进行扩容。 ## 前提条件{#section65071656132313} @@ -22,7 +22,7 @@ weight: 2 ## 配置StorageClass{#section19289935145} -1. 根据业务需要,参考[动态卷供应典型场景StorageClass配置示例](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应典型场景StorageClass配置示例)和[动态卷供应StorageClass参数说明](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应StorageClass参数说明),创建StorageClass配置文件,如本例从的mysc.yaml文件。 +1. 根据业务需要,参考[纳管卷供应典型场景StorageClass配置示例](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios)和[纳管卷供应StorageClass参数说明](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning),创建StorageClass配置文件,如本例中的mysc.yaml文件。 2. 执行命令,使用配置文件创建StorageClass。 ``` @@ -78,20 +78,20 @@ weight: 2 kubectl get pvc mypvc ``` - 命令结果示例如下。如果PVC的状态是“Bound”时,则说明该PVC已经创建成功,后续可以被Pod使用。 + 命令结果示例如下,如果PVC的状态是“Bound”时,则说明该PVC已经创建成功,后续可以被Pod使用。 ``` NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s ``` - >![](/css-docs/public_sys-resources/zh/icon-notice.gif) - >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/docs/故障处理/PVC相关问题/创建PVC时-PVC的状态为Pending)。 + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) + >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state)。 >- 建议每批次最多批量创建/删除100个PVC。 ## 使用PVC{#section847932614377} -与动态卷供应[使用PVC](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应#section8172141413917)方式相同。 +与动态卷供应[使用PVC](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning#section8172141413917)方式相同。 diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md new file mode 100644 index 0000000..4d46014 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md @@ -0,0 +1,184 @@ +--- +title: "纳管卷供应PVC参数说明" +linkTitle: "纳管卷供应PVC参数说明" +description: +weight: 3 +--- + +在完成配置StorageClass以后,就可以用该StorageClass来配置PVC。PVC的配置模板请参考华为CSI软件包中的examples目录下的pvc-manager.yaml文件示例。 + +**表 1** pvc-manager.yaml文件示例参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

说明

+

必选参数

+

默认值

+

备注

+

metadata.annotations

+

PVC对象的注释。配置以下参数:

+
  • 驱动名称/manageVolumeName:卷在存储侧的名称。
  • 驱动名称/manageBackendName:卷所属后端的名称。
+

+

csi.huawei.com/manageVolumeName: * csi.huawei.com/manageBackendName: *

+
  • 驱动名称获取请参考表4
  • 驱动名称/manageVolumeName:为存储上已有卷的名称,除英文字符外,其他国家字符不支持。
  • 驱动名称/manageBackendName:CSI中存储后端的名称。
+

可执行oceanctl get backend -n huawei-csi命令获取后端名称。

+

metadata.labels

+

PVC对象的标签。

+

+

-

+

格式:provisioner: 安装时指定的驱动名称。

+

例如 provisioner: csi.huawei.com。

+

该参数在创建PVC时生效,用于监听PVC资源,获取metadata.annotations信息。

+

metadata.name

+

自定义的PVC对象名称。

+

+

-

+

以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。

+

spec.volumeMode

+

卷模式。可选参数。 当使用LUN类型的卷时,支持配置以下类型:

+
  • Filesystem:本地文件系统。
  • Block:裸设备。
+
说明:

该参数在挂载PV时生效,需要与纳管卷的使用方式保持一致。

+
  • 如果卷纳管之前是以裸卷方式使用,volumeMode必须配置为Block。
  • 如果卷纳管之前是以ext2/ext3/ext4方式使用,volumeMode必须配置为Filesystem,且StorageClass中fsType必须指定为ext2/ext3/ext4。
  • 如果卷纳管之前是以XFS方式使用,volumeMode必须配置为Filesystem,且StorageClass中fsType必须指定为xfs。
+
+

+

Filesystem

+

该参数在挂载PV时生效。

+
  • Filesystem表示在容器通过一个本地文件系统访问PV,本地文件系统类型为指定StorageClass中的fsType字段指定。
  • Block表示使用裸卷的方式访问访问PV。
+

spec.storageClassName

+

StorageClass对象名称。

+

+

-

+

StorageClass的配置需要与纳管卷的配置保持一致。

+

spec.resources.requests.storage

+

指定待创建卷大小,格式为***Gi,单位为GiB。需要满足大小为512字节的整数倍。

+

+

-

+

PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

+

如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。

+

spec.accessModes

+

指定卷访问模式。

+
  • RWO(ReadWriteOnce):卷可以被一个节点以读写方式挂载。 该模式也允许运行在同一节点上的多个 Pod 访问卷。
  • ROX(ReadOnlyMany):卷可以被多个节点以只读方式挂载。
  • RWX(ReadWriteMany):卷可以被多个节点以读写方式挂载。
  • RWOP(ReadWriteOncePod):卷只能被单个 Pod 以读写方式挂载。该特性需要 Kubernetes 1.22 以上版本。
+

+

ReadWriteOnce

+
  • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。Kubernetes 1.29版本以下需要参考开启ReadWriteOncePod功能门章节开启该特性。
  • RWX支持情况如下: +
+
+ +**表 2** ext4容量的规格 + + + + + + + + + + + + + + + + + + + +

存储类型

+

存储规格限制

+

ext4规格限制

+

CSI规格限制

+

OceanStor Dorado

+

512Ki~256Ti

+

50Ti

+

512Ki~50Ti

+

OceanStor Pacific系列

+

64Mi~512Ti

+

50Ti

+

64Mi~50Ti

+
+ +**表 3** XFS容量的规格 + + + + + + + + + + + + + + + + + + + +

存储类型

+

存储规格限制

+

XFS规格限制

+

CSI规格限制

+

OceanStor Dorado

+

512Ki~256Ti

+

500Ti

+

512Ki~500Ti

+

OceanStor Pacific系列

+

64Mi~512Ti

+

500Ti

+

64Mi~500Ti

+
+ diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md similarity index 97% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" rename to content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md index 62e9868..9dc8590 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md @@ -140,7 +140,7 @@ parameters: kubectl get sc ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE @@ -149,7 +149,7 @@ parameters: 创建StorageClass后,就可以使用该StorageClass进行创建PV或者PVC。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >在纳管卷供应场景下,StorageClass的使用中请注意如下事项: >- **针对StorageClass进行的修改将不会在已经创建的PV上生效。您需要删除这些PV,并重新使用修改后的StorageClass创建才能应用修改的参数。** diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md new file mode 100644 index 0000000..0bef401 --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md @@ -0,0 +1,243 @@ +--- +title: "纳管卷供应StorageClass参数说明" +linkTitle: "纳管卷供应StorageClass参数说明" +description: +weight: 2 +--- + +[存储类(StorageClass)](https://kubernetes.io/docs/concepts/storage/storage-classes/)为管理员提供了描述存储 "类" 的方法。 不同的类型可能会映射到一组不同的能力定义。Kubernetes集群用户可基于StorageClass进行动态卷制备。 + +StorageClass支持配置如下参数信息。 + +使用SAN存储时可参考示例文件/examples/sc-lun.yaml,使用NAS存储时可参考示例文件/examples/sc-fs.yaml。 + +**表 1** StorageClass配置参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

参数

+

说明

+

必选参数

+

默认值

+

备注

+

metadata.name

+

自定义的StorageClass对象名称。

+

+

-

+

以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。

+

provisioner

+

制备器名称。

+

+

csi.huawei.com

+

该字段需要指定为安装华为CSI时设置的驱动名。

+

取值和values.yaml文件中driverName一致。

+

reclaimPolicy

+

回收策略。支持如下类型:

+
  • Delete:自动回收资源。
  • Retain:手动回收资源
+

+

-

+
  • Delete:删除PV/PVC时会关联删除存储上的资源。
  • Retain:删除PV/PVC时不会删除存储上的资源。
+

allowVolumeExpansion

+

是否允许卷扩展。参数设置为true 时,使用该StorageClass的PV可以进行扩容操作。

+

+

false

+

此功能仅可用于扩容PV,不能用于缩容PV。

+

扩容PV功能在Kubernetes 1.14 (alpha)后才支持

+

parameters.backend

+

待创建资源所在的后端名称。

+

+

-

+

如果不设置,华为CSI随机选择一个满足容量要求的后端创建资源。

+

建议指定后端,确保创建的资源在预期的后端上。

+

parameters.volumeType

+

待创建卷类型。支持如下类型:

+
  • lun:存储侧发放的资源是LUN。
  • fs:存储侧发放的资源是文件系统。
+

+

-

+
  • 使用NAS存储时,必须配置为fs。
  • 使用SAN存储时,必须配置为lun。
+

parameters.fsType

+

主机文件系统类型。支持类型为:

+
  • ext2
  • ext3
  • ext4
  • xfs
+

+

ext4

+

仅当StorageClass的volumeType设置为“lun”,且PVC的volumeMode配置为“Filesystem”时生效。

+

parameters.applicationType

+

后端为OceanStor Dorado存储时,指定创建LUN/NAS时的应用类型名称。

+
说明:

若卷纳管前已配置应用类型,applicationType必须与已配置的应用类型保持一致。

+
+

+

-

+
  • “volumeType”为“lun”时,在DeviceManager管理界面,选择“服务 > 块服务 > LUN组 > LUN > 创建 > 应用类型”,获取应用类型名称。
  • “volumeType”为“fs”时,在DeviceManager管理界面,选择“服务 > 文件服务 > 文件系统 > 创建 > 应用类型”,获取应用类型名称。
+

parameters.fsPermission

+

挂载到容器内的目录权限。

+

+

+

-

+

配置格式参考Linux权限设置,如“777”、“755”等。

+

支持所有的SAN存储,NAS存储仅支持OceanStor Dorado 、OceanStor、OceanStor Pacific 8.1.2及之后版本的存储设备。

+

mountOptions.nfsvers

+

主机侧NFS挂载选项。支持如下挂载选项:

+

nfsvers:挂载NFS时的协议版本。支持配置的参数值为“3”,“4”,“4.0”,“4.1”和”4.2”。

+

+

-

+

在主机执行mount命令时-o参数后的可选选项。列表格式。

+

指定NFS版本挂载时,当前支持NFS 3/4.0/4.1/4.2协议(需存储设备支持且开启)。当配置参数为nfsvers=4时,因为操作系统配置的不同,实际挂载可能为NFS 4的最高版本协议,如4.2,当需要使用4.0协议时,建议配置nfsver:ws=4.0。

+

mountOptions.acl

+

DPC命名空间支持ACL功能。DPC客户端支持POSIX ACL、NFSv4 ACL、NT ACL的鉴权行为。

+

+

-

+

acl、aclonlyposix、cnflush、cflush参数描述仅供参考,详细参数说明请参考《OceanStor Pacific系列 产品文档》 > 配置 > 文件服务基础业务配置指南 > 配置基础业务(DPC场景) > 客户端访问DPC共享 > 步骤2。

+

mountOptions.aclonlyposix

+

DPC命名空间支持POSIX ACL功能,DPC客户端支持POSIX ACL的鉴权行为。

+

支持POSIX ACL的协议有:DPC、NFSv3、HDFS。如使用NFSv4 ACL或NT ACL,会导致DPC客户端无法识别该类型的ACL,从而导致该类型的ACL不会生效。

+

+

-

+

aclonlyposix与acl参数同时使用时,仅acl参数生效,即命名空间支持ACL功能。

+

mountOptions.cnflush

+

异步刷盘模式,即关闭命名空间下的文件时不会立即刷盘。

+

+

-

+

异步刷盘模式,当文件关闭时不会同步将Cache的数据持久化到存储介质中,而是通过Cache异步刷盘的方式将数据写入存储介质,Cache的后台刷盘将在写业务完成后根据刷盘周期定时刷盘。在多客户端场景下,对同一文件进行并行操作,文件Size的更新会受刷盘周期的影响,即当刷盘动作完成后才会更新文件的Size,更新通常会在数秒内完成。同步I/O不受刷盘周期影响。

+

mountOptions.cflush

+

同步刷盘模式,即关闭命名空间下的文件时立即刷盘。

+

+

-

+

默认使用同步刷盘模式。

+

mountOptions.sec

+

用于指定Kerberos 5协议挂载NFS文件系统。

+

+

-

+
  • 使用Kerberos 5协议时,请配置krb5。
  • 使用Kerberos 5i协议时,请配置krb5i。
  • 使用Kerberos 5p协议时,请配置krb5p。
  • Kerberos仅支持NFSv4.0及以上版本的NFS协议。
+

mountOptions.proto

+

指定NFS挂载时使用的传输协议。

+

支持配置参数值为:“rdma”。

+

+

-

+
  • 确保存储系统已启用NFS over RDMA。
  • 华为企业存储支持OceanStor Dorado 6.1.7及以上的NAS存储。
  • 华为分布式支持OceanStor Pacific 8.2.0及以后的NAS存储。当分布式存储使用NFS over RDMA时,mountOptions.nfsvers参数必须配置为"3"。
+

mountOptions.port

+

指定NFS挂载时使用的协议端口

+

条件必选

+

-

+

传输协议方式使用“rdma”时,请设置为:20049。

+

mountOptions.discard

+

挂载文件系统时自动触发Trim/Discard操作。该操作会通知块设备释放未使用的块

+

+

-

+

支持xfs、ext4文件系统。

+
+ diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md similarity index 83% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" rename to content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md index 71b71f8..6e982f5 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md @@ -18,7 +18,7 @@ weight: 3 ## 配置PV{#section1994861643814} -1. 准备PV配置文件mypv.yaml,示例如下,其他配置参数请参考[静态卷供应PV参数说明](/docs/使用华为CSI/PVC管理/创建PVC/静态卷供应/静态卷供应PV参数说明)。 +1. 准备PV配置文件mypv.yaml,示例如下,其他配置参数请参考[静态卷供应PV参数说明](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning)。 ```yaml kind: PersistentVolume @@ -31,14 +31,14 @@ weight: 3 accessModes: - ReadWriteOnce csi: - driver: csi.huawei.com # csi驱动名称 + driver: csi.huawei.com # CSI驱动名称 volumeHandle: iscsi-dorado-181.lun0001 # 卷名称 fsType: xfs # 文件系统类型 capacity: storage: 100Gi ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >静态卷供应的配置文件中,storageClassName参数必须配置为‘“”’,如果不配置,Kubernetes会使用系统默认的StorageClass。 2. 执行以下命令,基于准备好的yaml文件创建PV。 @@ -101,13 +101,13 @@ weight: 3 mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO 12s ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) - >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/docs/故障处理/PVC相关问题/创建PVC时-PVC的状态为Pending)。 + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/docs/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state)。 >- 建议每批次最多批量创建/删除100个PVC。 ## 使用PVC{#section2949728204519} -与动态卷供应[使用PVC](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应#section8172141413917)方式相同。 +与动态卷供应[使用PVC](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning#section8172141413917)方式相同。 diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PV\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md similarity index 96% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PV\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md index 8afa26b..7b42538 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PV\345\217\202\346\225\260\350\257\264\346\230\216.md" +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md @@ -64,7 +64,7 @@ weight: 1

ReadWriteOnce

-
  • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
  • RWX支持情况如下: +
    • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
    • RWX支持情况如下:
    diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md new file mode 100644 index 0000000..ae86e4d --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md @@ -0,0 +1,96 @@ +--- +title: "静态卷供应PVC参数说明" +linkTitle: "静态卷供应PVC参数说明" +description: +weight: 2 +--- + +**表 1** PVC参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    参数

    +

    说明

    +

    必选参数

    +

    默认值

    +

    备注

    +

    metadata.name

    +

    自定义的PVC对象名称。

    +

    +

    -

    +

    以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。

    +

    spec.accessModes

    +

    指定卷访问模式。

    +
    • RWO(ReadWriteOnce):卷可以被一个节点以读写方式挂载。 该模式也允许运行在同一节点上的多个 Pod 访问卷。
    • ROX(ReadOnlyMany):卷可以被多个节点以只读方式挂载。
    • RWX(ReadWriteMany):卷可以被多个节点以读写方式挂载。
    • RWOP(ReadWriteOncePod):卷只能被单个 Pod 以读写方式挂载。该特性需要 Kubernetes 1.22 以上版本。
    +

    +

    ReadWriteOnce

    +
    • RWO/ROX/RWOP:所有类型卷均支持,RWOP需Kubernetes 1.22版本以上支持。Kubernetes 1.29版本以下需要参考开启ReadWriteOncePod功能门章节开启该特性。
    • RWX支持情况如下: +
    +

    spec.volumeMode

    +

    卷模式。

    +

    +

    Filesystem

    +

    可选, 支持Filesystem或Block, 默认为Filesystem。该参数在创建Pod时生效,其中Filesystem表示在PVC上创建一个文件系统访问存储, Block表示使用裸卷的方式访问存储。

    +

    spec.resources.requests.storage

    +

    指定待创建卷大小。

    +

    +

    -

    +

    指定待创建卷大小,格式为***Gi,单位为GiB。

    +

    PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

    +

    如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。

    +

    在通过静态PV创建PVC时,若PVC容量小于绑定PV容量,最终PVC容量大小为绑定PV容量,若PVC容量大于绑定PV容量,PVC将无法被创建。

    +

    spec.volumeName

    +

    PV对象名称。

    +

    +

    -

    +

    静态创建PVC时必选。

    +

    spec.storageClassName

    +

    StorageClass对象名称。

    +

    +

    -

    +

    创建PVC时传空字符串,不设置该参数会使用默认的StorageClass对象名称。

    +
    + diff --git a/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md new file mode 100644 index 0000000..0d11c6a --- /dev/null +++ b/content/zh-cn/docs/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md @@ -0,0 +1,88 @@ +--- +title: "扩容PVC" +linkTitle: "扩容PVC" +description: +weight: 2 +--- + +当容器使用的PVC容量不足时,需要对该PVC进行扩容操作。 + +## 前提条件{#zh-cn_topic_0254162571_section07036257166} + +- PVC已创建,所在的backend存在且支持扩容。 +- 支持扩容的存储请参考[华为企业存储支持的特性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620)和[华为企业存储支持的特性](/docs/compatibility-and-features/compatibility-with-huawei-enterprise-storage#section0652122673620),支持扩容的Kubernetes版本请参考[Kubernetes特性矩阵](/docs/compatibility-and-features/kubernetes-feature-matrix)。 +- huawei-csi-controller启用了csi-resizer服务。 + + ``` + kubectl describe deploy huawei-csi-controller -n huawei-csi | grep csi-resizer + ``` + + 命令回显示例如下则说明已启用csi-resizer服务。 + + ```yaml + csi-resizer: + Image: k8s.gcr.io/sig-storage/csi-resizer:v1.4.0 + ``` + +## 操作步骤{#zh-cn_topic_0254162571_section152212156464} + +1. 执行命令,查询StorageClass是否支持扩容。其中,_mysc_ 为需要查看的StorageClass名称。 + + ``` + kubectl get sc mysc + ``` + + 命令结果示例如下: + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate true 172m + ``` + + 如果ALLOWVOLUMEEXPANSION的值为true,表示当前StorageClass已经支持扩容,请跳转至步骤[3](#zh-cn_topic_0254162571_li1143318914115)。 + +2. 执行以下命令,将“allowVolumeExpansion“的值修改为“true“。其中,_mysc_ 为需要修改的StorageClass名称。 + + ``` + kubectl patch sc mysc --patch '{"allowVolumeExpansion":true}' + ``` + +3. 执行命令,查询PVC的StorageClass名称。其中,_mypvc_ 为需要扩容的PVC名称。 + + ``` + kubectl get pvc mypvc + ``` + + 命令结果示例如下: + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-3383be36-537c-4cb1-8f32-a415fa6ba384 2Gi RW0 mysc 145m + ``` + +4. 执行以下命令进行扩容。 + + ``` + kubectl patch pvc mypvc -p '{"spec":{"resources":{"requests":{"storage":"120Gi"}}}}' + ``` + + 其中,"_mypvc_"是需要扩容的PVC名称,“_120Gi_”是扩容后的容量大小。请根据实际情况进行替换。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见[表2](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#zh-cn_topic_0150885187_table178824527142);当使用的是XFS文件系统时,容量限制见[表3](/docs/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#zh-cn_topic_0150885187_table101951367104)。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。 + >- 如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。 + >- 如果扩容的目标容量超过存储池容量导致扩容失败,请参考[PVC扩容的目标容量超过存储池容量导致扩容失败](/docs/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity)。 + +5. 执行命令,检查容量修改是否生效。 + + ``` + kubectl get pvc + ``` + + 命令结果示例如下,如果CAPACITY字段已变更为指定容量,说明扩容成功。 + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-3383be36-537c-4cb1-8f32-a415fa6ba384 120Gi RWO mysc 24s + ``` + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266\344\277\241\346\201\257.md" "b/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266\344\277\241\346\201\257.md" deleted file mode 100644 index 58a4567..0000000 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/\345\210\233\345\273\272VolumeSnapshot/\346\243\200\346\237\245\345\215\267\345\277\253\347\205\247\344\276\235\350\265\226\347\273\204\344\273\266\344\277\241\346\201\257.md" +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "检查卷快照依赖组件信息" -linkTitle: "检查卷快照依赖组件信息" -description: -weight: 1 ---- - -如果您需要在容器环境中使用卷快照以及卷快照关联的特性,请通过[检查卷快照依赖组件](/docs/安装部署/安装前准备/检查卷快照依赖组件)检查您的环境是否部署了卷快照依赖组件以及卷快照api-versions信息。 - diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" "b/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" deleted file mode 100644 index d64edd1..0000000 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257\350\257\201\344\271\246.md" +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "查询存储后端证书" -linkTitle: "查询存储后端证书" -description: -weight: 2 ---- - -请根据[查询存储后端证书](/docs/存储后端管理/oceanctl命令说明#section11544144412475)所示命令对存储后端证书进行查询。 - diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257.md" "b/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257.md" deleted file mode 100644 index 9943438..0000000 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\237\245\350\257\242\345\255\230\345\202\250\345\220\216\347\253\257.md" +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: "查询存储后端" -linkTitle: "查询存储后端" -description: -weight: 2 ---- - -请参考[查询存储后端](/docs/存储后端管理/oceanctl命令说明#section1746114212110)节,使用oceanctl命令查询存储后端信息。 - diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" "b/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" deleted file mode 100644 index 922cf5c..0000000 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "使用Helm升级/回退华为CSI" -linkTitle: "使用Helm升级/回退华为CSI" -description: -weight: 1 ---- - -如果您从2.x版本升级至4.5.0版本,请参考旧版本用户指南卸载CSI,然后参考[使用Helm安装华为CSI](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI)章节安装华为CSI。 - -如果您从2.x或3.x版本升级至4.5.0版本,请参考[从2.x或3.x升级至4.x版本](/docs/安装部署/升级-回退华为CSI/使用Helm升级-回退华为CSI/升级华为CSI/从2-x或3-x升级至4-x版本)章节升级华为CSI。 - -如果您从4.x版本升级至4.5.0版本,请参考[Kubernetes、OpenShift、Tanzu升级华为CSI](/docs/安装部署/升级-回退华为CSI/使用Helm升级-回退华为CSI/升级华为CSI/Kubernetes-OpenShift-Tanzu升级华为CSI)章节升级华为CSI。 - - - diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" "b/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" deleted file mode 100644 index 1c24e8f..0000000 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: "CCE和CCE Agile升级华为CSI" -linkTitle: "CCE和CCE Agile升级华为CSI" -description: -weight: 3 ---- - -## 前提条件{#zh-cn_topic_0000001275627010_zh-cn_topic_0000001232767941_section19453102010152} - -已下载新版本CSI的软件包。 - -## 操作步骤{#section7449184616111} - -1. 参考[CCE和CCE Agile卸载华为CSI](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/CCE和CCE-Agile卸载华为CSI)卸载CSI。 -2. 参考[CCE和CCE Agile平台安装华为CSI](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/CCE和CCE-Agile平台安装华为CSI)安装新版本的CSI。 - diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" "b/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" deleted file mode 100644 index c7e3ffd..0000000 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/CCE\345\222\214CCE-Agile\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "CCE和CCE Agile卸载华为CSI" -linkTitle: "CCE和CCE Agile卸载华为CSI" -description: -weight: 2 ---- - -本章节介绍如何在CCE / CCE Agile平台卸载华为CSI,以CCE Agile v22.3.2为例。 - -## 操作步骤{#section1489941282414} - -1. 登录CCE Agile平台。 -2. 在主页单击“模板市场\> 模板实例 ”,进入模板实例页面。 -3. 选择华为CSI模板实例,单击“卸载”,在弹出的提示框中单击“确定”。 - - ![](/css-docs/figures/卸载-ch.png) - -4. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section870813403017)进行操作。 -5. 卸载webhook资源,请参考[卸载Webhook资源](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section871155813014)进行操作。 -6. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section48371491319)进行操作。 - diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" "b/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" deleted file mode 100644 index b3d2e5c..0000000 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/Helm\345\215\270\350\275\275\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Kubernetes、OpenShift、Tanzu卸载华为CSI" -linkTitle: "Kubernetes、OpenShift、Tanzu卸载华为CSI" -description: -weight: 1 ---- - -本章节介绍如何在Kubernetes、OpenShift、Tanzu平台卸载华为CSI。 - -## 操作步骤{#section9152125194710} - -1. [卸载huawei-csi-host-info对象](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section870813403017)使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 执行以下命令卸载华为CSI,_helm-huawei-csi_ 是自定义的Helm Chart名称,_huawei-csi_ 是该Helm Chart所在的命名空间。该卸载命令将会卸载华为CSI的huawei-csi-controller、huawei-csi-node和RBAC资源。 - - ``` - helm uninstall helm-huawei-csi -n huawei-csi - ``` - - 卸载命令执行后,还需要检查卸载是否成功。其中,_huawei-csi_ 为chart所在的命名空间。 - - ``` - helm list -n huawei-csi - ``` - - 命令结果示例如下,如果回显为空,则表示服务卸载成功。 - - ``` - NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION - ``` - -3. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section870813403017)进行操作。 -4. 卸载webhook资源,请参考[卸载Webhook资源](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section871155813014)进行操作。 -5. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section48371491319)进行操作。 -6. (可选)卸载Lease资源,请参考[卸载Lease资源](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section263805014317)进行操作。 - diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/\351\200\232\344\277\241\347\237\251\351\230\265.md" "b/content/zh-cn/docs/\351\231\204\345\275\225/\351\200\232\344\277\241\347\237\251\351\230\265.md" deleted file mode 100644 index 28d4405..0000000 --- "a/content/zh-cn/docs/\351\231\204\345\275\225/\351\200\232\344\277\241\347\237\251\351\230\265.md" +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: "通信矩阵" -linkTitle: "通信矩阵" -description: -weight: 4 ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    源设备

    -

    源IP

    -

    源端口

    -

    目的设备

    -

    目的IP

    -

    目的端口 (监听)

    -

    协议

    -

    端口说明

    -

    监听端口是否可更改

    -

    认证方式

    -

    加密方式

    -

    所属平面

    -

    特殊场景

    -

    CSI controller所在主机

    -

    源设备IP

    -

    1024~65536

    -

    存储设备

    -

    存储阵列管理IP

    -

    8088

    -

    TCP

    -

    用于卷创建/管理/删除等一系列动作

    -

    -

    用户名/密码

    -

    TLS 1.3/TLS 1.2

    -

    OM

    -

    -

    CSI controller所在主机

    -

    源设备IP

    -

    1024~65536

    -

    CSI controller所在主机

    -

    目的设备IP

    -

    9808

    -

    TCP

    -

    用于k8s对CSI controller的健康检查

    -

    -

    证书认证

    -

    TLS 1.3/TLS 1.2

    -

    运维面

    -

    -

    CSI node所在主机

    -

    源设备IP

    -

    1024~65536

    -

    CSI node所在主机

    -

    目的设备IP

    -

    9800

    -

    TCP

    -

    用于k8s对CSI node的健康检查

    -

    -

    证书认证

    -

    TLS 1.3/TLS 1.2

    -

    运维面

    -

    -

    k8s master节点

    -

    源设备IP

    -

    1024~65536

    -

    CSI controller所在主机

    -

    目的设备IP

    -

    4433

    -

    TCP

    -

    用于调用webhook校验

    -

    -

    证书认证

    -

    TLS 1.3/TLS 1.2

    -

    运维面

    -

    -
    - diff --git a/content/zh-cn/v4.5.0/_index.md b/content/zh-cn/v4.5.0/_index.md new file mode 100644 index 0000000..fccf6e8 --- /dev/null +++ b/content/zh-cn/v4.5.0/_index.md @@ -0,0 +1,11 @@ +--- +title: "华为容器存储套件" +linkTitle: v4.5.0 +weight: 20 +--- + +您可以通过以下链接,获取PDF版用户指南: + + + PDF下载 + diff --git a/content/zh-cn/v4.5.0/about-this-document/_index.md b/content/zh-cn/v4.5.0/about-this-document/_index.md new file mode 100644 index 0000000..85e5e06 --- /dev/null +++ b/content/zh-cn/v4.5.0/about-this-document/_index.md @@ -0,0 +1,55 @@ +--- +title: "前言" +linkTitle: "前言" +description: +weight: 1 +--- + +## 读者对象{#zh-cn_topic_0150885097_section1582418311113} + +本文档主要适用于以下读者对象: + +- 技术支持工程师 +- 运维工程师 +- 具备存储和Kubernetes基础知识的工程师 + +## 符号约定{#zh-cn_topic_0150885097_section992586151412} + +在本文中可能出现下列标志,它们所代表的含义如下。 + + + + + + + + + + + + + + + + + + + + + + +

    符号

    +

    说明

    +

    +

    表示如不避免则将会导致死亡或严重伤害的具有高等级风险的危害。

    +

    +

    表示如不避免则可能导致死亡或严重伤害的具有中等级风险的危害。

    +

    +

    表示如不避免则可能导致轻微或中度伤害的具有低等级风险的危害。

    +

    +

    用于传递设备或环境安全警示信息。如不避免则可能会导致设备损坏、数据丢失、设备性能降低或其它不可预知的结果。

    +

    “须知”不涉及人身伤害。

    +

    +

    对正文中重点信息的补充说明。

    +

    “说明”不是安全警示信息,不涉及人身、设备及环境伤害信息。

    +
    diff --git a/content/zh-cn/v4.5.0/advanced-features/_index.md b/content/zh-cn/v4.5.0/advanced-features/_index.md new file mode 100644 index 0000000..e0e0996 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/_index.md @@ -0,0 +1,10 @@ +--- +title: "高级特性" +linkTitle: "高级特性" +description: +weight: 8 +--- + + + + diff --git a/content/zh-cn/v4.5.0/advanced-features/configuring-alua/_index.md b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/_index.md new file mode 100644 index 0000000..1909780 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/_index.md @@ -0,0 +1,10 @@ +--- +title: "配置ALUA特性" +linkTitle: "配置ALUA特性" +description: +weight: 1 +--- + +ALUA(Asymmetric Logical Unit Access,非对称逻辑单元访问),是一种多目标器端口访问模型。在多路径状态下,ALUA标准提供了一种将卷的Active/Passive模型呈现给主机的方式。同时还提供了端口的可访问状态切换接口,可用来实现卷工作控制器切换等。例如,卷在一个控制器故障时,可以将该控制器的端口置为Unavailable,支持ALUA的主机多路径软件收到该状态后,会将I/O切换到另一端控制器。 + + diff --git a/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md new file mode 100644 index 0000000..d438405 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/_index.md @@ -0,0 +1,9 @@ +--- +title: "通过Helm配置ALUA特性" +linkTitle: "通过Helm配置ALUA特性" +description: +weight: 1 +--- + + + diff --git a/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md new file mode 100644 index 0000000..649fca5 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend.md @@ -0,0 +1,65 @@ +--- +title: "配置分布式存储后端的ALUA参数" +linkTitle: "配置分布式存储后端的ALUA参数" +description: +weight: 2 +--- + +华为分布式存储针对ALUA的配置请参考产品对应的主机连通性指南文档说明。 + +针对不同的操作系统,ALUA配置可能有所不同。进入[华为技术支持](https://support.huawei.com/enterprise/zh/index.html),在搜索输入框中输入“主机连通性指南”,单击搜索。在搜索结果中,选择对应操作系统的主机连通性指南。结合实际需要根据指南的说明进行ALUA配置。华为CSI将在华为存储上对该主机的启动器应用您设置的配置项。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>已经发放的Pod的节点不会主动更改ALUA信息,需要通过在该节点重新发放Pod才会变更主机ALUA配置。 +>分布式存储非双活场景,存储系统自身为Active/Active模式,选择“启用ALUA”没有实际意义,建议选择存储默认的“禁用ALUA”。因此不建议对分布式存储配置ALUA参数。 + +华为CSI支持的分布式存储的ALUA参数见[表1](#table17219165595413)。 + +**表 1** 分布式存储ALUA参数说明 + + + + + + + + + + + + + + + + + + + + +

    参数名

    +

    参数描述

    +

    备注

    +

    HostName

    +

    HostName的值为worker节点的主机名,如HostName1、HostName2。

    +

    主机名通常使用 cat /etc/hostname 可获取。支持正则表达式方式匹配,如当HostName=“*”时,该条配置对任意主机名的主机生效。可参考《正则表达式》

    +

    当计算节点的主机名可已匹配多条ALUA配置选项,会根据匹配的精确度进行排序,使用第一条ALUA配置选项。排序规则见ALUA配置项匹配主机名的规则

    +

    switchoverMode

    +

    切换模式。必选,取值为:

    +
    • Disable_alua:禁用ALUA
    • Enable_alua:启用ALUA
    +

    非双活场景,存储系统自身为Active/Active模式,选择“启用ALUA”没有实际意义,建议选择“禁用ALUA”。当前华为CSI未支持SAN双活场景,请谨慎启用ALUA。

    +

    pathType

    +

    路径类型。条件必选,取值为:

    +
    • optimal_path:优选路径
    • non_optimal_path:非优选路径
    +

    切换模式为启动ALUA时需要设置该选项。

    +
    + +## ALUA配置项匹配主机名的规则{#section81474196587} + +- 如果设置的主机名规则精确匹配的业务节点主机名,则使用该主机名规则对应的ALUA配置项。 + + 如配置项1中主机名规则为“\*”,配置项2中的主机名规则为“^myhost01$”。当计算节点的主机名是“myhost01”时,精确匹配配置项2,华为CSI将使用配置项2中的配置应用到存储侧。 + +- 如果设置的主机名规则无法精确匹配的业务节点主机名,则直接使用正则匹配到的第一条ALUA配置项。 + + 如配置项1中主机名规则为“myhost0\[0-9\]”,配置项2中的主机名规则为“myhost0\[5-9\]”,配置项1的优先级高于配置项2。当计算节点的主机名是“myhost06”时,两个配置项均可以匹配,此时华为CSI将使用配置项1中的配置应用到存储侧。 + diff --git a/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md new file mode 100644 index 0000000..26a2020 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend.md @@ -0,0 +1,178 @@ +--- +title: "配置华为企业存储后端的ALUA参数" +linkTitle: "配置华为企业存储后端的ALUA参数" +description: +weight: 1 +--- + +华为企业存储针对ALUA的配置请参考产品对应的主机连通性指南文档说明。 + +针对不同的操作系统,ALUA配置可能有所不同。进入[华为技术支持](https://support.huawei.com/enterprise/zh/index.html),在搜索输入框中输入“主机连通性指南”,单击搜索。在搜索结果中,选择对应操作系统的主机连通性指南。结合实际需要根据指南的说明进行ALUA配置。华为CSI将在华为存储上对该主机的启动器应用您设置的配置项。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>已经发放的Pod的节点不会主动更改ALUA信息,需要通过在该节点重新发放Pod才会变更主机ALUA配置。 + +## OceanStor V5系列和OceanStor Dorado V3系列存储后端的ALUA参数{#section16218353201717} + +华为CSI支持的OceanStor V5系列和OceanStor Dorado V3系列存储的ALUA参数见[表1](#zh-cn_topic_0000001299863718_zh-cn_topic_0000001199142540_table106361351202112)。 + +**表 1** 华为CSI支持的OceanStor V5系列和OceanStor Dorado V3系列存储的ALUA参数说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    参数名

    +

    参数描述

    +

    备注

    +

    HostName

    +

    主机名规则。必填,可使用正则表达式。

    +

    主机名通常使用 cat /etc/hostname 可获取。支持正则表达式方式匹配,如当HostName=“*”时,该条配置对任意主机名的主机生效。可参考《正则表达式》

    +

    当计算节点的主机名可已匹配多条ALUA配置选项,会根据匹配的精确度进行排序,使用第一条ALUA配置选项。排序规则见ALUA配置项匹配主机名的规则

    +

    MULTIPATHTYPE

    +

    多路径类型。必填,取值为:

    +
    • 0:不使用第三方多路径
    • 1:使用第三方多路径
    +

    --

    +

    FAILOVERMODE

    +

    启动器的切换模式。条件必选,取值为:

    +
    • 0:旧版本ALUA
    • 1:通用ALUA
    • 2:不使用ALUA
    • 3:特殊模式ALUA
    +

    当使用第三方多路径时该参数才需要指定。请参考连通性指南的说明,配置启动器的切换模式。

    +

    SPECIALMODETYPE

    +

    启动器的特殊模式类型。条件必选,取值为:

    +
    • 0:特殊模式0
    • 1:特殊模式1
    • 2:特殊模式2
    • 3:特殊模式3
    +

    当启动器的切换模式为“特殊模式ALUA”时该参数才需要指定。请参考连通性指南的说明,配置启动器的特殊模式类型。

    +

    PATHTYPE

    +

    启动器的路径类型。条件必选,取值为:

    +
    • 0:优选路径
    • 1:非优选路径
    +

    当使用第三方多路径时该参数才需要指定。请参考连通性指南的说明,配置启动器的路径类型。

    +
    + +以OceanStor 18500 V5存储对接Red Hat操作系统为例,主机连通性指南见[《华为SAN存储在Red Hat系统下的主机连通性指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1000150152)。 + +如下ALUA设置示例,是非双活存储场景下,OceanStor 18500 V5存储的Red Hat操作系统的连通性指南的推荐设置。本例中假设Kubernetes集群中计算节点“myhost01”的操作系统是RHEL 5.x,其他计算节点操作系统均为RHEL 7.x。根据推荐,RHEL 5.x的切换模式应该为“不使用ALUA”,RHEL 7.x的切换模式应该为“通用ALUA”。 + +```yaml +storage: oceanstor-san +name: oceanstor-iscsi-155 +urls: + - https://192.168.129.155:8088 + - https://192.168.129.156:8088 +pools: + - StoragePool001 +parameters: + protocol: iscsi + portals: + - 192.168.128.120 + - 192.168.128.121 + ALUA: + ^myhost01$: + MULTIPATHTYPE: 1 + FAILOVERMODE: 2 + PATHTYPE: 0 + "*": + MULTIPATHTYPE: 1 + FAILOVERMODE: 1 + PATHTYPE: 0 +``` + +## OceanStor和OceanStor Dorado系列存储后端的ALUA参数{#section1629834120204} + +华为CSI支持的OceanStor和OceanStor Dorado系列存储的ALUA参数见[表2](#zh-cn_topic_0000001352783505_zh-cn_topic_0000001198982584_table7143850202411)。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>OceanStor和OceanStor Dorado系列存储在默认情况下启动器主机访问模式即为“均衡模式”,因此不建议对OceanStor和OceanStor Dorado系列存储配置ALUA参数。 + +**表 2** OceanStor和OceanStor Dorado系列存储的ALUA参数说明 + + + + + + + + + + + + + + + + + + + + +

    参数名

    +

    参数描述

    +

    备注

    +

    HostName

    +

    主机名规则。必填,可使用正则表达式。

    +

    主机名通常使用 cat /etc/hostname 可获取。支持正则表达式方式匹配,如当HostName=“*”时,该条配置对任意主机名的主机生效。可参考《正则表达式》

    +

    当计算节点的主机名可已匹配多条ALUA配置选项,会根据匹配的精确度进行排序,使用第一条ALUA配置选项。排序规则见ALUA配置项匹配主机名的规则

    +

    accessMode

    +

    主机访问模式。必填,取值为:

    +
    • 0:均衡模式
    • 1:非对称模式
    +

    非双活场景下建议使用均衡模式。当前华为CSI未支持SAN双活场景,请谨慎使用非对称模式。

    +

    hyperMetroPathOptimized

    +

    双活场景下,主机在当前阵列的路径是否优选。取值为:

    +
    • 1:是
    • 0:否
    +

    当主机访问模式设置为非对称模式时,才需要配置该参数。

    +

    当前华为CSI未支持SAN双活场景,请谨慎使用非对称模式。

    +
    + +以OceanStor Dorado 18500存储对接Red Hat操作系统为例,主机连通性指南见[《OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100112792/e369b5d4)。 + +如下ALUA设置示例,是非双活存储场景下,OceanStor Dorado 18500存储的Red Hat操作系统的连通性指南的推荐设置。 + +```yaml +storage: "oceanstor-san" +name: "dorado-iscsi-155" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "iscsi" + portals: + - "192.168.128.120" + - "192.168.128.121" + ALUA: + "*": + accessMode: 0 +``` + +## ALUA配置项匹配主机名的规则{#section81474196587} + +- 如果设置的主机名规则精确匹配的业务节点主机名,则使用该主机名规则对应的ALUA配置项。 + + 如配置项1中主机名规则为“\*”,配置项2中的主机名规则为“^myhost01$”。当计算节点的主机名是“myhost01”时,精确匹配配置项2,华为CSI将使用配置项2中的配置应用到存储侧。 + +- 如果设置的主机名规则无法精确匹配的业务节点主机名,则直接使用正则匹配到的第一条ALUA配置项。 + + 如配置项1中主机名规则为“myhost0\[0-9\]”,配置项2中的主机名规则为“myhost0\[5-9\]”,配置项1的优先级高于配置项2。当计算节点的主机名是“myhost06”时,两个配置项均可以匹配,此时华为CSI将使用配置项1中的配置应用到存储侧。 + diff --git a/content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md b/content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md new file mode 100644 index 0000000..ffd3b55 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/_index.md @@ -0,0 +1,88 @@ +--- +title: "配置存储拓扑感知" +linkTitle: "配置存储拓扑感知" +description: +weight: 2 +--- + +在Kubernetes集群中,可以根据节点的拓扑标签以及存储后端支持的拓扑能力调度和发放资源。 + +## 前提条件{#zh-cn_topic_0000001200451233_section12171124814413} + +需要在集群中的worker节点完成拓扑的标签配置,标签配置方法如下: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查看当前集群中的worker节点信息。 + + ``` + kubectl get node + ``` + + 命令结果示例如下: + + ``` + NAME STATUS ROLES AGE VERSION + node01 Ready controlplane,etcd,worker 42d v1.22.3 + node02 Ready worker 42d v1.22.3 + node03 Ready worker 42d v1.22.3 + ``` + +3. 执行以下命令,给worker节点配置拓扑标签。其中_ nodename _为worker节点名称, key 和 value 参数说明请参考[表1](#zh-cn_topic_0000001200451233_table1261817418166)。 + + ``` + kubectl label node = + ``` + + **表 1** 参数说明 + + + + + + + + + + + + + + + + +

    参数名

    +

    参数描述

    +

    备注

    +

    <key>

    +

    拓扑标签的唯一标识。

    +

    可支持配置:zone,region,protocol.<protocol>

    +

    其中<protocol>可支持配置iscsi, nfs, fc, roce。

    +

    <value>

    +

    拓扑标签的参数值。

    +

    “key”如果是“zone”“region”“value”值为自定义参数。

    +

    “key”如果是protocol.<protocol>“value”值固定为“csi.huawei.com”

    +
    + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- 拓扑标签必须以topology.kubernetes.io开头。拓扑标签示例: + > - 示例1:topology.kubernetes.io/region=China-west + > - 示例2:topology.kubernetes.io/zone=ChengDu + > - 示例3:topology.kubernetes.io/protocol.iscsi=csi.huawei.com + > - 示例4:topology.kubernetes.io/protocol.fc=csi.huawei.com + >- 同一节点上拓扑标签中同一个key只能支持一个value值。 + >- 如果同一节点上拓扑标签中同时配置多个protocol,配置StorageClass时,StorageClass只需要满足其中一个protocol即可。 + >- 如果同一节点上拓扑标签中同时配置region和zone,配置StorageClass时,StorageClass需要满足全部筛选条件。 + +4. 执行命令, 查看当前集群中所有worker节点的标签信息。 + + ``` + kubectl get nodes -o=jsonpath='{range .items[*]}[{.metadata.name}, {.metadata.labels}]{"\n"}{end}' | grep --color "topology.kubernetes.io" + ``` + + 命令结果示例如下: + + ``` + [node01,"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"node01","kubernetes.io/os":"linux","node-role.kubernetes.io/controlplane":"true","node-role.kubernetes.io/etcd":"true","node-role.kubernetes.io/worker":"true","topology.kubernetes.io/zone":"ChengDu"}] + ``` + + diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/\351\200\232\350\277\207Helm\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245.md" b/content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md similarity index 92% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/\351\200\232\350\277\207Helm\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245.md" rename to content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md index 2b5efbc..73b6432 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245/\351\200\232\350\277\207Helm\351\205\215\347\275\256\345\255\230\345\202\250\346\213\223\346\211\221\346\204\237\347\237\245.md" +++ b/content/zh-cn/v4.5.0/advanced-features/configuring-storage-topology-awareness/configuring-storage-topology-awareness-using-helm.md @@ -8,14 +8,14 @@ weight: 1 ## 操作步骤{#zh-cn_topic_0000001352573769_section748483471312} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 3. 进入后端服务配置目录/examples/backend/下,备份backend.yaml文件 ``` cp backend.yaml backend.yaml.bak ``` -4. 执行**vi **backend.yaml命令打开文件,按需求配置拓扑感知,示例如下所示。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 +4. 执行**vi **backend.yaml命令打开文件,按需求配置拓扑感知,示例如下所示。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 ```yaml storage: "oceanstor-san" @@ -55,9 +55,9 @@ weight: 1 Please enter this backend password: ``` -7. 执行**vi StorageClass.yaml**命令,修改yaml文件。按**I**或**Insert**进入编辑状态,在yaml文件下增加相关参数,详细参数说明请参见[表 参数说明](#zh-cn_topic_0000001352573769_table118458471087)。修改完成后,按**Esc**,并输入 **:wq!** ,保存修改。 +7. 执行** vi StorageClass.yaml **命令,修改yaml文件。按**I**或**Insert**进入编辑状态,在yaml文件下增加相关参数,详细参数说明请参见[表1](#zh-cn_topic_0000001352573769_table118458471087)。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 - 在StorageClass.yaml文件中添加以下配置项。拓扑 + 在StorageClass.yaml文件中添加以下配置项。 - 示例1: 在StorageClass中配置zone和region信息 @@ -130,7 +130,7 @@ weight: 1

    “value”

    -

    “key”如果是“topology.kubernetes.io/zone”“topology.kubernetes.io/region”“value”值需要和前提条件中设置的拓扑标签保持一致。

    +

    “key”如果是“topology.kubernetes.io/zone”“topology.kubernetes.io/region”“value”值需要和前提条件中设置的拓扑标签保持一致。

    “key”如果是topology.kubernetes.io/protocol.<protocol>“value”值固定为“csi.huawei.com”

    @@ -143,5 +143,5 @@ weight: 1 kubectl create -f StorgeClass.yaml ``` -9. 使用该StorageClass创建具有拓扑能力的PVC,详细操作请参考[动态卷供应PVC参数说明](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应PVC参数说明)。 +9. 使用该StorageClass创建具有拓扑能力的PVC,详细操作请参考[动态卷供应PVC参数说明](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning)。 diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/_index.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/_index.md new file mode 100644 index 0000000..3a92275 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/_index.md @@ -0,0 +1,11 @@ +--- +title: "PVC变更" +linkTitle: "PVC变更" +description: +weight: 3 +--- + +本章节介绍如何使用华为CSI完成PVC变更。 + + + diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md new file mode 100644 index 0000000..c9fabae --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/_index.md @@ -0,0 +1,51 @@ +--- +title: "配置PVC变更" +linkTitle: "配置PVC变更" +description: +weight: 2 +--- + +PVC变更特性使用CRD实现,当前资源说明如下。 + +**表 1** 资源说明 + + + + + + + + + + + + + + + + + + + +

    NAME

    +

    APIVERSION

    +

    NAMESPACED

    +

    KIND

    +

    volumemodifyclaims

    +

    xuanwu.huawei.io/v1

    +

    false

    +

    VolumeModifyClaim

    +

    volumemodifycontents

    +

    xuanwu.huawei.io/v1

    +

    false

    +

    VolumeModifyContent

    +
    + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- VolumeModifyClaim资源支持创建/删除/查询,不支持更新。 +>- VolumeModifyContent资源仅支持查询,用于展示单个PVC变更详情,请勿手动创建/删除/修改。 +>- VolumeModifyContent资源被VolumeModifyClaim管理,请勿手动管理VolumeModifyContent资源。 + + + + diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md new file mode 100644 index 0000000..5bd2311 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/_index.md @@ -0,0 +1,13 @@ +--- +title: "创建PVC变更" +linkTitle: "创建PVC变更" +description: +weight: 1 +--- + +## 前提条件{#section5216334164716} + +待变更PVC关联的存储后端已经组成双活存储后端,若未组成双活存储后端,请参考[手动更新存储后端](/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend)章节配置。 + + + diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md new file mode 100644 index 0000000..0a82629 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource.md @@ -0,0 +1,26 @@ +--- +title: "创建PVC变更资源" +linkTitle: "创建PVC变更资源" +description: +weight: 2 +--- + +本章节介绍如何基于已配置的PVC变更文件创建PVC变更资源。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- 仅支持双活AA模式。 +>- 如果变更场景为普通卷变更为双活卷,则仅支持变更主站点端存储卷。 +>- 创建PVC变更资源期间,请勿使用华为CSI管理PVC。 +>- 不支持对同一个PVC创建多个VolumeModifyClaim资源,若存在对目标PVC的多次变更,请在单次变更完成之后再执行。 + +## 操作步骤{#section694142182112} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,创建PVC变更。 + + ``` + kubectl create -f volumemodifyclaim.yaml + ``` + +3. 参考[查询PVC变更](/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change)查询创建结果。 + diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\207\206\345\244\207PVC\345\217\230\346\233\264\346\226\207\344\273\266.md" b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md similarity index 99% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\207\206\345\244\207PVC\345\217\230\346\233\264\346\226\207\344\273\266.md" rename to content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md index 86ade50..ced15d7 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\351\205\215\347\275\256PVC\345\217\230\346\233\264/\345\210\233\345\273\272PVC\345\217\230\346\233\264/\345\207\206\345\244\207PVC\345\217\230\346\233\264\346\226\207\344\273\266.md" +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/preparing-a-pvc-change-file.md @@ -108,7 +108,7 @@ PVC变更文件样例模板为/examples/volumemodifyclaim.yaml,具体配置项 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- spec.source.kind和spec.source.name用于指定卷变更范围,例如配置为StorageClass和对应名称时,将会变更使用目标StorageClass发放的所有的处于Bound状态的PVC。 >- 当所有关联的PVC完成变更后,华为CSI会替换原有的StorageClass,并增加VolumeModifyClaim的spec.parameters参数,使得PVC满足StorageClass定义。 diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md new file mode 100644 index 0000000..c66ffa7 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/deleting-a-pvc-change.md @@ -0,0 +1,27 @@ +--- +title: "删除PVC变更" +linkTitle: "删除PVC变更" +description: +weight: 3 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 当VolumeModifyClaim的STATUS值为Creating时,删除VolumeModifyClaim资源,将会在存储侧删除此次变更创建的资源,然后移除集群资源。在删除后,如果继续使用原有的StorageClass进行PVC管理,需要将关联的存储后端恢复为非双活存储后端。 +>- 当VolumeModifyClaim的STATUS值为Pending或Completed时,删除VolumeModifyClaim资源,仅会移除集群资源,不会和存储交互,即不会在存储侧删除变更创建的资源。 +>- VolumeModifyContent被VolumeModifyClaim管理,请勿手动管理VolumeModifyContent资源。 +>- 若待变更PVC中已有部分PVC满足变更要求,当批量变更失败时,会移除掉所有PVC的变更,导致已满足变更条件的PVC不再满足。 +>- 若待变更PVC已经在存储侧被手动管理,则可能导致变更失败。使用变更特性时,请勿手动管理存储卷。 + +当前章节介绍如何使用kubectl删除PVC变更,基于步骤如下。 + +## 操作步骤{#section694142182112} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行 命令,删除PVC变更。其中 _vmc-name_ 为VolumeModifyClaim资源名称。 + + ``` + kubectl delete volumemodifyclaims + ``` + +3. 参考[创建PVC变更资源](/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/creating-a-pvc-change/creating-a-pvc-change-resource)查询删除结果。 + diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md new file mode 100644 index 0000000..f334574 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/configuring-pvc-changes/querying-a-pvc-change.md @@ -0,0 +1,158 @@ +--- +title: "查询PVC变更" +linkTitle: "查询PVC变更" +description: +weight: 2 +--- + +本章节介绍如何使用Kubectl查询PVC变更状态,当前华为CSI通过CRD提供以下API。 + +## 查询VolumeModifyClaim{#section8423141610284} + +使用kubectl查询VolumeModifyClaim步骤如下。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查询PVC变更。其中 _vmc-name_ 为VolumeModifyClaim资源名称。 + + ``` + kubectl get volumemodifyclaims -owide + ``` + + 命令结果示例如下: + + ``` + NAME STATUS READY SOURCEKIND SOURCENAME STARTEDAT COMPLETEDAT AGE + myvmc Completed 1/1 StorageClass mysc 2024-06-06T03:19:13Z 2024-06-06T03:19:16Z 2m2s + ``` + + **表 1** 回显说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    名称

    +

    说明

    +

    NAME

    +

    VolumeModifyClaim资源名称。

    +

    STATUS

    +

    VolumeModifyClaim资源状态,可取值如下:

    +
    • Pending:初始状态。
    • Creating:VolumeModifyClaim完成基本校验,且服务端已经接收变更任务,但是该任务还未执行完成。
    • Completed:所有关联的PVC均完成变更。
    • Rollback:关联的PVC部分完成变更时,用户执行了删除PVC变更操作。
    • Deleting:关联的PVC全部完成变更时,用户执行了删除PVC变更操作。
    +

    READY

    +

    完成变更PVC数量/全部待变更PVC数量。

    +

    SOURCEKIND

    +

    数据源类型,例如StorageClass。

    +

    SOURCENAME

    +

    数据源名称,例如StorageClass名称。

    +

    STARTEDAT

    +

    变更开始时间,指服务端接收该任务并开始处理的时间戳。

    +

    COMPLETEDAT

    +

    变更完成时间,指所有关联的PVC均完成变更后的时时间戳,仅STATUS为Completed时,存在该值。

    +

    AGE

    +

    VolumeModifyClaim从创建至当前的存活时间。

    +
    + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>VolumeModifyClaim支持使用kubectl查看Events信息,当VolumeModifyClaim无法满足创建要求,或者创建过程中出现错误时,服务端将记录Events信息。参考命令如下: +>``` +>kubectl describe volumemodifyclaims local-to-hypermetro +>``` + +## 查询VolumeModifyContent{#section215854219281} + +VolumeModifyContent由VolumeModifyClaim资源创建,记录了单个PVC的变更详情,使用kubectl查询VolumeModifyContent步骤如下。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行命令,查询PVC变更。其中myvmc-uid为VolumeModifyContent资源名称。 + + ``` + kubectl get volumemodifycontents myvmc-uid -owide + ``` + + 命令结果示例如下: + + ``` + NAME STATUS MODIFYCLAIMNAME SOURCEVOLUME STARTEDAT COMPLETEDAT AGE + myvmc-uid Completed myvmc default/mypvc 2024-06-06T03:19:07Z 2024-06-06T03:19:09Z 36m + ``` + + **表 2** 回显说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    名称

    +

    说明

    +

    NAME

    +

    VolumeModifyContent资源名称,格式为:VolumeModifyClaim名称-关联PVC的UID。

    +

    STATUS

    +

    VolumeModifyContent资源状态,可取值如下:

    +
    • Pending:初始状态。
    • Creating:VolumeModifyContent完成基本校验,且服务端已经接收变更任务,但是该任务还未执行完成。
    • Completed:关联的PVC完成变更。
    • Rollback:正在回滚PVC变更。
    +

    MODIFYCLAIMNAME

    +

    关联的VolumeModifyClaim名称。

    +

    SOURCEVOLUME

    +

    关联的PVC信息,格式为:命名空间名称/PVC名称。

    +

    STARTEDAT

    +

    PVC变更开始时间,指服务端接收该任务并开始处理的时间戳。

    +

    COMPLETEDAT

    +

    PVC变更完成时间,指所有关联的PVC均完成变更后的时时间戳,仅STATUS为Completed时,存在该值。

    +

    AGE

    +

    即VolumeModifyContent从创建至当前的存活时间。

    +
    + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>VolumeModifyContent支持使用kubectl查看Events信息,当VolumeModifyContent无法满足创建要求,或者变更PVC出现错误时,服务端将记录Events信息。参考命令如下: +>``` +>kubectl describe volumemodifycontents myvmc-uid +>``` + diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md new file mode 100644 index 0000000..a72c3ee --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/_index.md @@ -0,0 +1,11 @@ +--- +title: "开启PVC变更特性" +linkTitle: "开启PVC变更特性" +description: +weight: 1 +--- + +当前华为CSI安装时默认关闭PVC变更特性,如需要使用该特性,请按照以下步骤开启。 + + + diff --git a/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md b/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md new file mode 100644 index 0000000..586ed96 --- /dev/null +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-manually.md @@ -0,0 +1,40 @@ +--- +title: "手动方式开启PVC变更特性" +linkTitle: "手动方式开启PVC变更特性" +description: +weight: 2 +--- + +## 前提条件{#section10631153612202} + +已使用手动方式安装华为CSI。 + +## 操作步骤{#section810241682811} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 进入manual/esdk工作目录下,执行以下命令,配置卷变更CRD。 + + ``` + kubectl apply -f ./crds/volume-modify/ + ``` + +3. 执行以下命令。组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + kubectl apply -f ./deploy/huawei-csi-controller-extender.yaml + ``` + +4. 执行命令检查服务是否启动。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 命令结果示例如下,其中huawei-csi为华为CSI部署命名空间。 + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 10/10 Running 0 24m + huawei-csi-node-tqs87 3/3 Running 0 24m + ``` + diff --git "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\344\275\277\347\224\250Helm\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" b/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md similarity index 91% rename from "content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\344\275\277\347\224\250Helm\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" rename to content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md index b266a7f..a664440 100644 --- "a/content/zh-cn/docs/\351\253\230\347\272\247\347\211\271\346\200\247/PVC\345\217\230\346\233\264/\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247/\344\275\277\347\224\250Helm\345\274\200\345\220\257PVC\345\217\230\346\233\264\347\211\271\346\200\247.md" +++ b/content/zh-cn/v4.5.0/advanced-features/pvc-change/enabling-the-pvc-change-feature/enabling-the-pvc-change-feature-using-helm.md @@ -15,7 +15,7 @@ weight: 1 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 2. 执行以下命令检查PVC变更特性是否开启。 - 其中helm-huawei-csi为安装时指定的Helm Chart名称,huawei-csi为安装时指定的Helm Chart命名空间。组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 + 其中helm-huawei-csi为安装时指定的Helm Chart名称,huawei-csi为安装时指定的Helm Chart命名空间。组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` helm get values helm-huawei-csi -n huawei-csi -a | grep volumeModify -A 1 @@ -39,7 +39,7 @@ weight: 1 customresourcedefinition.apiextensions.k8s.io/volumemodifycontents.xuanwu.huawei.io configured ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >如回显中存在“Warning: resource customresourcedefinitions/volumemodifycontents.xuanwu.huawei.io is missing the kubectl.kubernetes.io/last-applied-configuration...”提示,可忽略该提示。该提示出现原因是由于Helm安装应用时使用的是kubectl create命令而不是kubectl apply命令。 4. 执行以下命令,获取原有服务配置文件。 diff --git a/content/zh-cn/v4.5.0/appendix/_index.md b/content/zh-cn/v4.5.0/appendix/_index.md new file mode 100644 index 0000000..3bd8e54 --- /dev/null +++ b/content/zh-cn/v4.5.0/appendix/_index.md @@ -0,0 +1,13 @@ +--- +title: "附录" +linkTitle: "附录" +description: +weight: 11 +--- + + + + + + + diff --git a/content/zh-cn/v4.5.0/appendix/communication-matrix.md b/content/zh-cn/v4.5.0/appendix/communication-matrix.md new file mode 100644 index 0000000..22751cb --- /dev/null +++ b/content/zh-cn/v4.5.0/appendix/communication-matrix.md @@ -0,0 +1,165 @@ +--- +title: "通信矩阵" +linkTitle: "通信矩阵" +description: +weight: 4 +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    源设备

    +

    CSI controller所在主机

    +

    CSI controller所在主机

    +

    CSI node所在主机

    +

    Kubernetes master节点

    +

    源IP

    +

    源设备IP

    +

    源设备IP

    +

    源设备IP

    +

    源设备IP

    +

    源端口

    +

    1024~65536

    +

    1024~65536

    +

    1024~65536

    +

    1024~65536

    +

    目的设备

    +

    存储设备

    +

    CSI controller所在主机

    +

    CSI node所在主机

    +

    CSI controller所在主机

    +

    目的IP

    +

    存储阵列管理IP

    +

    目的设备IP

    +

    目的设备IP

    +

    目的设备IP

    +

    目的端口(监听)

    +

    8088

    +

    9808

    +

    9800

    +

    4433

    +

    协议

    +

    TCP

    +

    TCP

    +

    TCP

    +

    TCP

    +

    端口说明

    +

    用于卷创建/管理/删除等一系列动作

    +

    用于Kubernetes对CSI controller的健康检查

    +

    用于Kubernetes对CSI node的健康检查

    +

    用于调用webhook校验

    +

    监听端口是否可更改

    +

    +

    +

    +

    +

    认证方式

    +

    用户名/密码

    +

    证书认证

    +

    证书认证

    +

    证书认证

    +

    加密方式

    +

    TLS 1.3/TLS 1.2

    +

    TLS 1.3/TLS 1.2

    +

    TLS 1.3/TLS 1.2

    +

    TLS 1.3/TLS 1.2

    +

    所属平面

    +

    OM

    +

    运维面

    +

    运维面

    +

    运维面

    +

    特殊场景

    +

    +

    +

    +

    +

    备注

    +

    源端口部分放开即可

    +

    -

    +

    -

    +

    可参考CSI用户指南修改webhook端口

    +
    + diff --git a/content/zh-cn/v4.5.0/appendix/configuring-custom-permissions.md b/content/zh-cn/v4.5.0/appendix/configuring-custom-permissions.md new file mode 100644 index 0000000..bb6404c --- /dev/null +++ b/content/zh-cn/v4.5.0/appendix/configuring-custom-permissions.md @@ -0,0 +1,328 @@ +--- +title: "配置自定义权限" +linkTitle: "配置自定义权限" +description: +weight: 5 +--- + +## 自定义角色配置{#section366214517918} + +针对不同的存储资源,请参考以下配置: + +- NAS相关资源请参考[表1](#table66121923174916)配置最小权限。 +- SAN相关资源请参考[表2](#table51362243359)配置最小权限。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>可参考存储文档:《[OceanStor Dorado 6000, Dorado 18000系列 产品文档](https://support.huawei.com/hedex/hdx.do?docid=EDOC1100214749&id=ZH-CN_TOPIC_0000001640708705)》配置自定义角色权限。 + +**表 1** NAS相关资源最小权限说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    权限对象

    +

    父级对象

    +

    读写权限

    +

    功能说明

    +

    workload_type

    +

    file_storage_service

    +

    只读

    +

    查询应用类型

    +

    file_system

    +

    file_storage_service

    +

    读写

    +

    管理文件系统

    +

    fs_snapshot

    +

    file_storage_service

    +

    读写

    +

    管理文件系统快照

    +

    quota

    +

    file_storage_service

    +

    读写

    +

    管理文件系统配额

    +

    nfs_service

    +

    file_storage_service

    +

    只读

    +

    查询NFS服务

    +

    share

    +

    file_storage_service

    +

    读写

    +

    管理NFS共享

    +

    dtree

    +

    file_storage_service

    +

    读写

    +

    管理dtree

    +

    hyper_metro_pair

    +

    hyper_metro

    +

    读写

    +

    创建文件系统双活Pair

    +

    hyper_metro_domain

    +

    hyper_metro

    +

    只读

    +

    查询文件系统双活域信息

    +

    remote_device

    +

    local_data_protection

    +

    只读

    +

    查询远端设备信息

    +

    storage_pool

    +

    pool

    +

    只读

    +

    查询存储池信息

    +

    smart_qos

    +

    resource_performance_tuning

    +

    读写

    +

    管理SmartQoS策略

    +

    system

    +

    system

    +

    只读

    +

    查询存储设备信息(仅所属组为系统组时需要配置)

    +

    vstore

    +

    vstore

    +

    只读

    +

    查询租户信息

    +

    port

    +

    network

    +

    只读

    +

    查询逻辑端口信息

    +
    + +**表 2** SAN相关资源最小权限说明 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    权限对象

    +

    父级对象

    +

    读写权限

    +

    功能说明

    +

    remote_device

    +

    local_data_protection

    +

    只读

    +

    查询远端设备信息

    +

    hyper_clone

    +

    local_data_protection

    +

    读写

    +

    管理Clone Pair

    +

    lun_snapshot

    +

    local_data_protection

    +

    读写

    +

    管理LUN快照

    +

    workload_type

    +

    lun

    +

    只读

    +

    查询应用类型

    +

    lun

    +

    lun

    +

    读写

    +

    管理LUN

    +

    host

    +

    mapping_view

    +

    读写

    +

    管理主机

    +

    host_group

    +

    mapping_view

    +

    读写

    +

    管理主机组

    +

    initiator

    +

    mapping_view

    +

    读写

    +

    管理启动器

    +

    lun_group

    +

    mapping_view

    +

    读写

    +

    管理LUN组

    +

    mapping_view

    +

    mapping_view

    +

    读写

    +

    管理映射视图

    +

    target

    +

    mapping_view

    +

    只读

    +

    查询iSCSI启动器

    +

    port

    +

    network

    +

    只读

    +

    查询逻辑端口

    +

    storage_pool

    +

    pool

    +

    只读

    +

    查询存储池信息

    +

    smart_qos

    +

    resource_performance_tuning

    +

    读写

    +

    管理SmartQoS策略

    +

    system

    +

    system

    +

    只读

    +

    查询存储设备信息(仅所属组为系统组时需要配置)

    +

    vstore

    +

    vstore

    +

    只读

    +

    查询租户信息

    +
    + diff --git a/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md b/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md new file mode 100644 index 0000000..d4b0177 --- /dev/null +++ b/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-distributed-storage.md @@ -0,0 +1,52 @@ +--- +title: "分布式存储ALUA特性配置策略样例" +linkTitle: "分布式存储ALUA特性配置策略样例" +description: +weight: 3 +--- + +**例1**.配置文件如下: + +```yaml +parameters: + ALUA: + "*": + switchoverMode: Enable_alua + pathType: optimal_path + node1: + switchoverMode: Enable_alua + pathType: non_optimal_path +``` + +对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置分布式存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 + +**例2**.配置文件如下: + +```yaml +parameters: + ALUA: + node[0-9]: + switchoverMode: Enable_alua + pathType: optimal_path + node[5-7]: + switchoverMode: Enable_alua + pathType: non_optimal_path +``` + +对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置分布式存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 + +**例3**.配置文件如下: + +```yaml +parameters: + ALUA: + node1$: + switchoverMode: Enable_alua + pathType: optimal_path + node10$: + switchoverMode: Enable_alua + pathType: non_optimal_path +``` + +根据[配置分布式存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-distributed-storage-backend)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 + diff --git a/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md b/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md new file mode 100644 index 0000000..69a0304 --- /dev/null +++ b/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-dorado.md @@ -0,0 +1,52 @@ +--- +title: "OceanStor Dorado ALUA特性配置策略样例" +linkTitle: "OceanStor Dorado ALUA特性配置策略样例" +description: +weight: 2 +--- + +**例1**.配置文件如下: + +``` +parameters: + ALUA: + "*": + accessMode: 1 + hyperMetroPathOptimized: 1 + node1: + accessMode: 1 + hyperMetroPathOptimized: 0 +``` + +对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 + +**例2**.配置文件如下: + +```yaml +parameters: + ALUA: + node[0-9]: + accessMode: 1 + hyperMetroPathOptimized: 1 + node[5-7]: + accessMode: 1 + hyperMetroPathOptimized: 0 +``` + +对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 + +**例3**.配置文件如下: + +```yaml +parameters: + node1$: + node[0-9]: + accessMode: 1 + hyperMetroPathOptimized: 1 + node10$: + accessMode: 1 + hyperMetroPathOptimized: 0 +``` + +根据[配置华为企业存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 + diff --git a/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md b/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md new file mode 100644 index 0000000..0a8cc49 --- /dev/null +++ b/content/zh-cn/v4.5.0/appendix/example-alua-configuration-policy-of-oceanstor-v5-and-oceanstor-dorado-v3.md @@ -0,0 +1,64 @@ +--- +title: "OceanStor V5系列和OceanStor Dorado V3系列ALUA特性配置策略样例" +linkTitle: "OceanStor V5系列和OceanStor Dorado V3系列ALUA特性配置策略样例" +description: +weight: 1 +--- + +**例1**.配置文件如下: + +```yaml +parameters: + ALUA: + "*": + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 0 + node1: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 1 +``` + +对于主机名为“node1”,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,优先级顺序为第2条配置段(HostName为"node1")高于第1条配置段(HostName为"\*")。 + +**例2**.配置文件如下: + +```yaml +parameters: + ALUA: + node[0-9]: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 0 + node[5-7]: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 1 +``` + +对于主机名为“node6”的主机,上述ALUA配置段都能用于配置启动器。根据[配置华为企业存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,选择第一条ALUA配置段来配置启动器。 + +**例3**.配置文件如下: + +```yaml +parameters: + ALUA: + node$: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 0 + node10$: + MULTIPATHTYPE: 1 + FAILOVERMODE: 3 + SPECIALMODETYPE: 0 + PATHTYPE: 1 +``` + +根据[配置华为企业存储后端的ALUA参数](/v4.5.0/advanced-features/configuring-alua/configuring-alua-using-helm/configuring-alua-parameters-for-a-huawei-enterprise-storage-backend)中的配置策略规则,对于主机名为“node1”的主机,选择第一条ALUA配置段来配置启动器;对于主机名为“node10”的主机,选择第二条ALUA配置段来配置启动器。^表示匹配字符串的开头,$表示匹配字符串的结尾。 + diff --git "a/content/zh-cn/docs/\351\231\204\345\275\225/\345\215\216\344\270\272CSI\350\265\204\346\272\220\347\256\241\347\220\206.md" b/content/zh-cn/v4.5.0/appendix/huawei-csi-resource-management.md similarity index 94% rename from "content/zh-cn/docs/\351\231\204\345\275\225/\345\215\216\344\270\272CSI\350\265\204\346\272\220\347\256\241\347\220\206.md" rename to content/zh-cn/v4.5.0/appendix/huawei-csi-resource-management.md index 0450e56..b184859 100644 --- "a/content/zh-cn/docs/\351\231\204\345\275\225/\345\215\216\344\270\272CSI\350\265\204\346\272\220\347\256\241\347\220\206.md" +++ b/content/zh-cn/v4.5.0/appendix/huawei-csi-resource-management.md @@ -178,14 +178,14 @@ weight: 6 如果需要修改容器的资源请求和限制,以Helm安装华为CSI为例,可参考以下步骤 -1. 使用Helm安装时进入/helm/esdk/templates 目录。手动部署时需要修改的文件在/manual/esdk/deploy目录,其中组件包路径请参考[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +1. 使用Helm安装时进入/helm/esdk/templates 目录。手动部署时需要修改的文件在/manual/esdk/deploy目录,其中组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 2. 修改部署模板文件。 - Pod名称为huawei-csi-controller时,修改huawei-csi-controller.yaml文件。 - Pod名称为huawei-csi-node时,修改huawei-csi-node.yaml文件。 - >![](/css-docs/public_sys-resources/zh/icon-note.gif) - >Pod名称的分类,请参考[表 容器资源请求和限制](#table4106151116363)。 + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >Pod名称的分类,请参考[表1](#table4106151116363)。 以修改Pod名称为huawei-csi-node中huawei-csi-driver容器的资源请求为例,执行命令编辑配置文件,找到spec.template.spec.containes.name为huawei-csi-driver的容器。按需修改资源请求和限制。 @@ -208,6 +208,6 @@ weight: 6 memory: 128Mi ``` -3. 若华为CSI未安装,则参考[Kubernetes、OpenShift、Tanzu安装华为CSI](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Kubernetes-OpenShift-Tanzu安装华为CSI)章节安装华为CSI后,资源请求和限制的修改生效。 -4. 若已安装华为CSI,则参考[升级华为CSI](/docs/安装部署/升级-回退华为CSI/使用Helm升级-回退华为CSI/升级华为CSI/Kubernetes-OpenShift-Tanzu升级华为CSI#section6841317173013)章节更新华为CSI后,资源请求和限制的修改生效。 +3. 若华为CSI未安装,则参考[Kubernetes、OpenShift、Tanzu安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu)章节安装华为CSI后,资源请求和限制的修改生效。 +4. 若已安装华为CSI,则参考[升级华为CSI](/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu#section6841317173013)章节更新华为CSI后,资源请求和限制的修改生效。 diff --git a/content/zh-cn/v4.5.0/common-operations/_index.md b/content/zh-cn/v4.5.0/common-operations/_index.md new file mode 100644 index 0000000..9ef84cc --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/_index.md @@ -0,0 +1,14 @@ +--- +title: "常用操作" +linkTitle: "常用操作" +description: +weight: 9 +--- + + + + + + + + diff --git a/content/zh-cn/v4.5.0/common-operations/collecting-information/_index.md b/content/zh-cn/v4.5.0/common-operations/collecting-information/_index.md new file mode 100644 index 0000000..a60f10d --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/collecting-information/_index.md @@ -0,0 +1,10 @@ +--- +title: "信息收集" +linkTitle: "信息收集" +description: +weight: 2 +--- + + + + diff --git a/content/zh-cn/v4.5.0/common-operations/collecting-information/collecting-logs.md b/content/zh-cn/v4.5.0/common-operations/collecting-information/collecting-logs.md new file mode 100644 index 0000000..f2def18 --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/collecting-information/collecting-logs.md @@ -0,0 +1,109 @@ +--- +title: "日志收集" +linkTitle: "日志收集" +description: +weight: 3 +--- + +## 前置检查{#section298992810393} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群内有oceanctl工具的节点。 +2. 执行以下命令,显示版本号为**v4.5.0**。 + + ``` + oceanctl version + ``` + + 命令结果示例如下: + + ```yaml + Oceanctl Version: v4.5.0 + ``` + +3. 执行oceanctl collect logs --help命令,返回信息如下。 + + ``` + $ oceanctl collect logs --help + Collect logs of one or more nodes in specified namespace in Kubernetes + + Usage: + oceanctl collect logs [flags] + + Examples: + # Collect logs of all nodes in specified namespace + oceanctl collect logs -n + + # Collect logs of specified node in specified namespace + oceanctl collect logs -n -N + + # Collect logs of all nodes in specified namespace + oceanctl collect logs -n -a + + # Collect logs of all nodes in specified namespace with a maximum of 50 nodes collected at the same time + oceanctl collect logs -n -a --threads-max=50 + + # Collect logs of specified node in specified namespace + oceanctl collect logs -n -N -a + + Flags: + -a, --all Collect all nodes messages + -h, --help help for logs + -n, --namespace string namespace of resources + -N, --nodename string Specify the node for which information is to be collected. + --threads-max int set maximum number[1~1000] of threads for nodes to be collected. (default 50) + + Global Flags: + --log-dir string Specify the directory for printing log files. (default "/var/log/huawei") + ``` + +4. 执行以下****命令,检查Pod是否正常启动,其中,huawei-csi为CSI安装的命名空间。 + + ``` + kubectl get deployment -n huawei-csi + ``` + + 命令结果示例如下: + + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + huawei-csi-controller 1/1 1 1 21h + ``` + +## 使用oceanctl收集CSI命名空间下所有日志{#section8464164063912} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录[前置检查](#section298992810393)章节中检查的节点。 +2. 执行**oceanctl collect logs -n -a --threads-max=**命令,收集集群内所有CSI容器所在节点的CSI日志,其中threads-max参数指定了同时收集日志的最大节点数量,默认为50,可以根据主机性能与负载情况配置。 + + ``` + oceanctl collect logs -n huawei-csi -a --threads-max=10 + ``` + +3. 检查/tmp目录下生成的日志压缩包,可以使用**unzip **** -d collect\_logs**解压日志压缩包,其中为压缩包的名字。 + + ``` + # date + Wed Sep 20 02:49:24 EDT 2023 + + # ls + huawei-csi-2023-09-20-02:48:22-all.zip + ``` + +## 使用oceanctl收集CSI单个节点日志{#section1039148347} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录[前置检查](#section298992810393)章节中检查的节点。 +2. 执行**oceanctl collect logs -n **** -N** 命令,收集集群内所有CSI容器所在节点的CSI日志。 + + ``` + oceanctl collect logs -n huawei-csi -N node-1 + ``` + +3. 检查/tmp目录下生成的日志压缩包,可以使用**unzip **** -d collect\_logs**解压日志压缩包,其中为压缩包的名字。 + + ``` + # date + Thu Sep 21 04:08:47 EDT 2023 + + # ls + huawei-csi-2023-09-21-04:05:15-node-1.zip + ``` + diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\345\246\202\344\275\225\350\216\267\345\217\226CSI\347\211\210\346\234\254\344\277\241\346\201\257.md" b/content/zh-cn/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md similarity index 100% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\344\277\241\346\201\257\346\224\266\351\233\206/\345\246\202\344\275\225\350\216\267\345\217\226CSI\347\211\210\346\234\254\344\277\241\346\201\257.md" rename to content/zh-cn/v4.5.0/common-operations/collecting-information/obtaining-the-csi-version.md diff --git a/content/zh-cn/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs.md b/content/zh-cn/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs.md new file mode 100644 index 0000000..80c5b77 --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs.md @@ -0,0 +1,87 @@ +--- +title: "如何查看华为CSI日志" +linkTitle: "如何查看华为CSI日志" +description: +weight: 2 +--- + +## 查看huawei-csi-controller服务的日志{#zh-cn_topic_0000001191906803_section5326743451} + +1. 执行以下命令,获取huawei-csi-controller所在的节点 + + ``` + kubectl get pod -A -o wide | grep huawei + ``` + + 命令结果示例如下,其中IP为节点主机IP地址,NODE为节点主机名称。 + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi-controller-695b84b4d8-tg64l 9/9 Running 0 14s + ``` + +2. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群中huawei-csi-controller服务所在节点 +3. 进入日志目录。 + + ``` + cd /var/log/huawei + ``` + +4. 执行以下命令,查看容器自定义输出日志。 + + ``` + vi huawei-csi-controller + ``` + +5. 进入容器目录。 + + ``` + cd /var/log/containers + ``` + +6. 执行以下命令, 查看容器标准输出日志。 + + ``` + vi huawei-csi-controller-_huawei-csi_huawei-csi-driver-.log + ``` + +## 查看huawei-csi-node服务的日志{#zh-cn_topic_0000001191906803_section66851055357} + +1. 执行以下命令,获取huawei-csi-node所在的节点 + + ``` + kubectl get pod -A -o wide | grep huawei + ``` + + 命令结果示例如下,其中IP为节点主机IP地址,NODE为节点主机名称。 + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + huawei-csi-node-g6f7z 3/3 Running 0 14s + ``` + +2. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群中huawei-csi-node服务所在节点 +3. 进入日志目录。 + + ``` + cd /var/log/huawei + ``` + +4. 执行以下命令,查看容器自定义输出日志。 + + ``` + vi huawei-csi-node + ``` + +5. 进入容器目录。 + + ``` + cd /var/log/containers + ``` + +6. 执行以下命令, 查看容器标准输出日志。 + + ``` + vi huawei-csi-node-_huawei-csi_huawei-csi-driver-.log + ``` + diff --git a/content/zh-cn/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md b/content/zh-cn/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md new file mode 100644 index 0000000..fccb13c --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user.md @@ -0,0 +1,29 @@ +--- +title: "配置非root用户访问Kubernetes集群" +linkTitle: "配置非root用户访问Kubernetes集群" +description: +weight: 7 +--- + +## 操作步骤{#zh-cn_topic_0000001283708426_section11147613122310} + +1. 拷贝Kubernetes集群的认证文件,/etc/kubernetes/admin.conf修改为实际使用的认证文件。 + + ``` + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + ``` + +2. 修改认证文件的用户与用户组。 + + ``` + sudo chown $(id -u):$(id -g) $HOME/.kube/config + ``` + +3. 配置当前用户的KUBECONFIG环境变量,以Ubuntu 20.04举例如下。 + + ``` + echo "export KUBECONFIG=$HOME/.kube/config" >> ~/.bashrc + source ~/.bashrc + ``` + diff --git a/content/zh-cn/v4.5.0/common-operations/downloading-a-container-image.md b/content/zh-cn/v4.5.0/common-operations/downloading-a-container-image.md new file mode 100644 index 0000000..12aa89a --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/downloading-a-container-image.md @@ -0,0 +1,49 @@ +--- +title: "下载容器镜像" +linkTitle: "下载容器镜像" +description: +weight: 3 +--- + +## 使用containerd下载容器镜像{#section15713611153419} + +1. 执行以下命令,下载镜像到本地。其中 _image:tag_ 表示需要拉取的镜像及其标签。 + + ``` + ctr image pull : + ``` + +2. 执行以下命令,导出镜像到文件。其中 _image:tag_ 表示需要导出的镜像,_file_ 表示镜像导出后的文件名称。 + + ``` + ctr image export .tar : + ``` + +## 使用Docker下载容器镜像{#section5466193511236} + +1. 执行以下命令,下载镜像到本地。其中_image:tag_表示需要拉去的镜像。 + + ``` + docker pull : + ``` + +2. 执行以下命令,导出镜像到文件。其中 _image:tag_ 表示需要导出的镜像,_file_ 表示镜像导出后的文件名称。 + + ``` + docker save : -o .tar + ``` + +## 使用Podman下载容器镜像{#section137495322810} + +1. 执行以下命令,下载镜像到本地。其中_image:tag_表示需要拉去的镜像。 + + ``` + podman pull : + ``` + +2. 执行以下命令,导出镜像到文件。其中 _image:tag_ 表示需要导出的镜像,_file_ 表示镜像导出后的文件名称。 + + ``` + podman save : -o .tar + ``` + diff --git "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\274\200\345\220\257ReadWriteOncePod\345\212\237\350\203\275\351\227\250.md" b/content/zh-cn/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md similarity index 83% rename from "content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\274\200\345\220\257ReadWriteOncePod\345\212\237\350\203\275\351\227\250.md" rename to content/zh-cn/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md index e377002..901b690 100644 --- "a/content/zh-cn/docs/\345\270\270\347\224\250\346\223\215\344\275\234/\345\274\200\345\220\257ReadWriteOncePod\345\212\237\350\203\275\351\227\250.md" +++ b/content/zh-cn/v4.5.0/common-operations/enabling-the-readwriteoncepod-feature-gate.md @@ -9,14 +9,14 @@ ReadWriteOnce访问模式是Kubernetes v1.22版本为PV和PVC引入的第四种 由于ReadWriteOncePod访问模式在当前已发布的Kubernetes v1.22/1.23/1.24版本中是alpha特性,需要先在kube-apiserver、kube-scheduler和kubelet的feature-gates中开启ReadWriteOncePod特性才能使用。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) ->CCE / CCE Agile平台暂时不支持开启ReadWriteOncePod功能门 +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>CCE或CCE Agile平台暂时不支持开启ReadWriteOncePod功能门 ## 操作步骤{#zh-cn_topic_0000001259843616_section137882216292} 1. 为kube-apiserver启用ReadWriteOncePod功能门。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 - 2. 执行**vi /etc/kubernetes/manifests/kube-apiserver.yaml**命令,按**I**或**Insert**进入编辑状态,为 kube-apiserver容器添加参数--feature-gates=ReadWriteOncePod=true。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + 2. 执行**vi /etc/kubernetes/manifests/kube-apiserver.yaml**命令,按**I**或**Insert**进入编辑状态,为 kube-apiserver容器添加参数--feature-gates=ReadWriteOncePod=true。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 ``` ... @@ -28,12 +28,12 @@ ReadWriteOnce访问模式是Kubernetes v1.22版本为PV和PVC引入的第四种 ... ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >在编辑完成后,Kubernetes会自动应用更新,不需要手动更新。 2. 为kube-scheduler启用ReadWriteOncePod功能门。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 - 2. 执行**vi /etc/kubernetes/manifests/kube-scheduler.yaml**命令,按**I**或**Insert**进入编辑状态,为kube-scheduler容器添加参数--feature-gates=ReadWriteOncePod=true。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + 2. 执行**vi /etc/kubernetes/manifests/kube-scheduler.yaml**命令,按**I**或**Insert**进入编辑状态,为kube-scheduler容器添加参数--feature-gates=ReadWriteOncePod=true。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 ``` … @@ -45,16 +45,16 @@ ReadWriteOnce访问模式是Kubernetes v1.22版本为PV和PVC引入的第四种 ... ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >在编辑完成后,Kubernetes会自动应用更新,不需要手动更新。 3. 为kubelet启用ReadWriteOncePod功能门。 - >![](/css-docs/public_sys-resources/zh/icon-notice.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >由于动态Kubelet配置功能在v1.22中已弃用,并且在v1.24中删除,因此集群中每个worker节点上的kubelet都需要执行以下操作。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意worker节点。 - 2. 执行**vi /var/lib/kubelet/config.yaml**命令,按**I**或**Insert**进入编辑状态,为KubeletConfiguration对象的featureGates字段添加ReadWriteOncePod: true,如果没有featureGates字段请一并添加。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + 2. 执行**vi /var/lib/kubelet/config.yaml**命令,按**I**或**Insert**进入编辑状态,为KubeletConfiguration对象的featureGates字段添加ReadWriteOncePod: true,如果没有featureGates字段请一并添加。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 ``` apiVersion: kubelet.config.k8s.io/v1beta1 @@ -63,7 +63,7 @@ ReadWriteOnce访问模式是Kubernetes v1.22版本为PV和PVC引入的第四种 ... ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >kubelet配置文件的默认路径为/var/lib/kubelet/config.yaml,请根据实际情况填写。 3. 在配置完成后,执行**systemctl restart kubelet**命令重启kubelet。 diff --git a/content/zh-cn/v4.5.0/common-operations/installing-helm-3.md b/content/zh-cn/v4.5.0/common-operations/installing-helm-3.md new file mode 100644 index 0000000..f0caae9 --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/installing-helm-3.md @@ -0,0 +1,47 @@ +--- +title: "安装Helm 3" +linkTitle: "安装Helm 3" +description: +weight: 1 +--- + +本章节指导用户如何安装Helm 3。 + +参考:[https://helm.sh/docs/intro/install/](https://helm.sh/docs/intro/install/) + +## 前提条件{#zh-cn_topic_0000001274250896_section19453102010152} + +确保Kubernetes集群中的master节点可以访问Internet。 + +## 操作步骤{#section164291640172317} + +1. 执行以下命令,下载Helm 3的安装脚本。 + + ``` + curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 + ``` + +2. 执行以下命令,修改Helm 3的安装脚本权限。 + + ``` + chmod 700 get_helm.sh + ``` + +3. 根据Helm与Kubernetes版本配套关系确认需要安装的Helm版本,配套关系请参考[Helm Version Support Policy](https://helm.sh/docs/topics/version_skew/#supported-version-skew),执行以下命令,修改DESIRED\_VERSION环境变量为需要安装的Helm版本,并执行安装命令。 + + ``` + DESIRED_VERSION=v3.9.0 ./get_helm.sh + ``` + +4. 执行以下命令,查看指定版本的Helm 3是否安装成功。 + + ``` + helm version + ``` + + 命令结果示例如下,说明安装成功。 + + ``` + version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"} + ``` + diff --git a/content/zh-cn/v4.5.0/common-operations/modifying-the-log-output-mode.md b/content/zh-cn/v4.5.0/common-operations/modifying-the-log-output-mode.md new file mode 100644 index 0000000..5f7bf42 --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/modifying-the-log-output-mode.md @@ -0,0 +1,82 @@ +--- +title: "修改日志输出模式" +linkTitle: "修改日志输出模式" +description: +weight: 5 +--- + +huawei-csi支持两种日志输出模式,分别是file和console。file指的是输出到固定的日志目录(例如:/var/log/huawei);console指的是输出到容器标准目录。用户可以根据自身需求自行设置日志输出模式,默认为file. + +## 操作步骤{#section130112319346} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 进入/helm/esdk 目录,执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +3. 执行**vi update-values.yaml**命令打开[2](#li1037712113474)中获取的文件,修改配置项,修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 + + ```yaml + # The CSI driver parameter configuration + csiDriver: + # Driver name, it is strongly recommended not to modify this parameter + # The CCE platform needs to modify this parameter, e.g. csi.oceanstor.com + driverName: csi.huawei.com + # Endpoint, it is strongly recommended not to modify this parameter + endpoint: /csi/csi.sock + # DR Endpoint, it is strongly recommended not to modify this parameter + drEndpoint: /csi/dr-csi.sock + # Maximum number of concurrent disk scans or detaches, support 1~10 + connectorThreads: 4 + # Flag to enable or disable volume multipath access, support [true, false] + volumeUseMultipath: true + # Multipath software used by fc/iscsi. support [DM-multipath, HW-UltraPath, HW-UltraPath-NVMe] + scsiMultipathType: DM-multipath + # Multipath software used by roce/fc-nvme. only support [HW-UltraPath-NVMe] + nvmeMultipathType: HW-UltraPath-NVMe + # Timeout interval for waiting for multipath aggregation when DM-multipath is used on the host. support 1~600 + scanVolumeTimeout: 3 + # Timeout interval for running command on the host. support 1~600 + execCommandTimeout: 30 + # check the number of paths for multipath aggregation + # Allowed values: + # true: the number of paths aggregated by DM-multipath is equal to the number of online paths + # false: the number of paths aggregated by DM-multipath is not checked. + # Default value: false + allPathOnline: false + # Interval for updating backend capabilities. support 60~600 + backendUpdateInterval: 60 + # Huawei-csi-controller log configuration + controllerLogging: + # Log record type, support [file, console] + module: file + # Log Level, support [debug, info, warning, error, fatal] + level: info + # Directory for storing logs + fileDir: /var/log/huawei + # Size of a single log file + fileSize: 20M + # Maximum number of log files that can be backed up. + maxBackups: 9 + # Huawei-csi-node log configuration + nodeLogging: + # Log record type, support [file, console] + module: file + # Log Level, support [debug, info, warning, error, fatal] + level: info + # Directory for storing logs + fileDir: /var/log/huawei + # Size of a single log file + fileSize: 20M + # Maximum number of log files that can be backed up. + maxBackups: 9 + ``` + +4. 执行以下命令更新日志配置。 + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./update-values.yaml + ``` + diff --git a/content/zh-cn/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md b/content/zh-cn/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md new file mode 100644 index 0000000..1585b7f --- /dev/null +++ b/content/zh-cn/v4.5.0/common-operations/updating-the-huawei-csi-controller-or-huawei-csi-node-service.md @@ -0,0 +1,25 @@ +--- +title: "更新huawei-csi-controller或huawei-csi-node服务" +linkTitle: "更新huawei-csi-controller或huawei-csi-node服务" +description: +weight: 4 +--- + +当您需要更新huawei-csi-controller或huawei-csi-node服务时,例如修改huawei-csi-controller服务的副本数时,执行此操作。 + +## 操作步骤{#section1452416823017} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 进入/helm/esdk 目录,执行以下命令,获取原有服务配置文件。其中helm-huawei-csi为旧版本安装时指定的Helm Chart名称,huawei-csi为旧版本安装时指定的Helm Chart命名空间。组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml + ``` + +3. 执行 **vi update-values.yaml** 命令打开[2](#li1037712113474)中获取的文件,参考[Helm values.yaml参数说明](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm)修改配置项,修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 +4. 执行以下命令更新华为CSI服务。 + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f ./update-values.yaml + ``` + diff --git a/content/zh-cn/v4.5.0/compatibility-and-features/_index.md b/content/zh-cn/v4.5.0/compatibility-and-features/_index.md new file mode 100644 index 0000000..e25d877 --- /dev/null +++ b/content/zh-cn/v4.5.0/compatibility-and-features/_index.md @@ -0,0 +1,13 @@ +--- +title: "兼容性和特性" +linkTitle: "兼容性和特性" +description: +weight: 4 +--- + +本章节会详细说明华为CSI插件支持的容器管理平台、操作系统、多路径软件以及CSI插件配合华为存储所提供的特性和功能。 + + + + + diff --git "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" b/content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md similarity index 98% rename from "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" rename to content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md index a216dea..a688034 100644 --- "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\345\210\206\345\270\203\345\274\217\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" +++ b/content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage.md @@ -137,7 +137,7 @@ weight: 4 - 注释1 Manage Provisioning是华为CSI自定义的纳管卷特性,该特性支持将已有存储资源纳管至Kubernetes。不允许将一个存储资源纳管多次和针对同一个存储资源进行并发删除/创建操作。 -- 注释2 仅OceanStor Pacific系列 8.1.2及以后版本支持DPC。[华为CSI支持的操作系统](/docs/兼容性和特性/Kubernetes及操作系统兼容性#table133422378818)对DPC的支持请参考对应产品版本兼容性文档。 +- 注释2 仅OceanStor Pacific系列 8.1.2及以后版本支持DPC。[华为CSI支持的操作系统](/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818)对DPC的支持请参考对应产品版本兼容性文档。 - 注释3 仅OceanStor Pacific系列 8.1.2及以后版本支持NFS 4.1。 - 注释4 发放的volumeType为lun且accessModes为ReadOnlyMany的PVC不支持扩容。 diff --git "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" b/content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md similarity index 99% rename from "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" rename to content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md index 13a9220..32868fa 100644 --- "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/\345\215\216\344\270\272\344\274\201\344\270\232\345\255\230\345\202\250\345\205\274\345\256\271\346\200\247.md" +++ b/content/zh-cn/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage.md @@ -66,7 +66,7 @@ weight: 3

    SAN:FC/iSCSI/NVMe over RoCE/NVMe over FC3

    -

    NAS:NFS 3/4.0/4.1

    +

    NAS:NFS 3/4.0/4.1/4.2

    SAN:FC/iSCSI/NVMe over RoCE/NVMe over FC3

    diff --git "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\345\217\212\346\223\215\344\275\234\347\263\273\347\273\237\345\205\274\345\256\271\346\200\247.md" b/content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md similarity index 98% rename from "content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\345\217\212\346\223\215\344\275\234\347\263\273\347\273\237\345\205\274\345\256\271\346\200\247.md" rename to content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md index 5423905..b0fb77e 100644 --- "a/content/zh-cn/docs/\345\205\274\345\256\271\346\200\247\345\222\214\347\211\271\346\200\247/Kubernetes\345\217\212\346\223\215\344\275\234\347\263\273\347\273\237\345\205\274\345\256\271\346\200\247.md" +++ b/content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility.md @@ -7,9 +7,6 @@ weight: 1 华为CSI插件支持如下容器管理平台: - - - **表 1** 支持的容器管理平台 @@ -47,9 +44,9 @@ weight: 1 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) ->- 华为CSI对接Tanzu Kubernetes仅支持集中式存储NAS场景,相关FAQ请参见[对接Tanzu Kubernetes集群常见问题及解决方法](/docs/故障处理/对接Tanzu-Kubernetes集群常见问题及解决方法)。 ->- 华为CSI对接CCE/CCE Agile仅支持集中式存储。 +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 华为CSI对接Tanzu Kubernetes仅支持集中式存储NAS场景,相关FAQ请参见[对接Tanzu Kubernetes集群常见问题及解决方法](/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster)。 +>- 华为CSI对接CCE或CCE Agile仅支持集中式存储。 华为CSI插件支持的操作系统以及多路径信息如下表所示。 @@ -239,7 +236,7 @@ weight: 1 注释3 Anolis OS仅支持OceanStor Pacific存储。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >因DM-Multipath在0.7版本存在执行multipathd show maps时可能无法回显所有的虚拟设备,因此建议使用0.8及以上版本。 >DM-Multipath版本可以通过以下途径查询: >- 如果使用的是rpm包,执行:rpm -qa | grep multipath或rpm -qa | grep device-mapper。 diff --git a/content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md b/content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md new file mode 100644 index 0000000..09b7972 --- /dev/null +++ b/content/zh-cn/v4.5.0/compatibility-and-features/kubernetes-feature-matrix.md @@ -0,0 +1,244 @@ +--- +title: "Kubernetes特性矩阵" +linkTitle: "Kubernetes特性矩阵" +description: +weight: 2 +--- + +本章节说明华为CSI在不同Kubernetes版本下支持的特性。 + +**表 1** Kubernetes版本与支持的特性 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    特性

    +

    V1.16

    +

    V1.17

    +

    V1.18

    +

    V1.19

    +

    V1.20

    +

    V1.21+

    +

    Static Provisioning

    +

    +

    +

    +

    +

    +

    +

    Dynamic Provisioning

    +

    +

    +

    +

    +

    +

    +

    Manage Provisioning1

    +

    +

    +

    +

    +

    +

    +

    Expand Persistent Volume

    +

    +

    +

    +

    +

    +

    +

    Create VolumeSnapshot

    +

    x

    +

    +

    +

    +

    +

    +

    Restore VolumeSnapshot

    +

    x

    +

    +

    +

    +

    +

    +

    Delete VolumeSnapshot

    +

    x

    +

    +

    +

    +

    +

    +

    Clone Persistent Volume

    +

    x

    +

    +

    +

    +

    +

    +

    Modify Volume2

    +

    +

    +

    +

    +

    +

    +

    Raw Block Volume

    +

    +

    +

    +

    +

    +

    +

    Topology

    +

    +

    +

    +

    +

    +

    +

    Generic Ephemeral Inline Volumes

    +

    x

    +

    x

    +

    x

    +

    x

    +

    x

    +

    +

    Volume Limits

    +

    x

    +

    +

    +

    +

    +

    +

    FSGroup Support

    +

    x

    +

    x

    +

    x

    +

    x

    +

    +

    +
    + +- 注释1 Manage Provisioning是华为CSI自定义的纳管卷特性,该特性支持将已有存储资源纳管至Kubernetes。不允许将一个存储资源纳管多次和针对同一个存储资源进行并发删除/创建操作。当同一个存储资源被多个集群纳管时,在单个集群中针对该纳管卷的操作仅在当前集群内生效,不会同步到其他集群中,需要使用者自行在其他集群中对该纳管卷进行数据同步操作。 +- 注释2 Modify Volume是华为CSI自定义的PVC变更特性,该特性支持将普通卷变更为双活卷,使用该特性需要对接存储支持卷双活特性。 + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/_index.md new file mode 100644 index 0000000..6ec33f0 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/_index.md @@ -0,0 +1,11 @@ +--- +title: "安装部署" +linkTitle: "安装部署" +description: +weight: 5 +--- + + + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/_index.md new file mode 100644 index 0000000..2bc6b3a --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/_index.md @@ -0,0 +1,27 @@ +--- +title: "安装前准备" +linkTitle: "安装前准备" +description: +weight: 1 +--- + +本章节将对安装前的准备工作进行详细说明。 + +## 前提条件{#section7412194016270} + +在进行本章节所说明的操作前,请确保如下条件已经具备: + +- 容器管理平台已部署完成并正常运行,且兼容性满足[Kubernetes及操作系统兼容性](/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility)章节的要求。 +- (企业存储必选)已完成对接华为企业存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足[华为企业存储兼容性](/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage)章节的要求。 +- (分布式存储必选)已完成对接华为分布式存储初始化配置,包括存储池划分、端口配置等。且存储产品的版本满足[华为分布式存储兼容性](/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage)章节的要求。 +- 完成华为存储和容器平台主机连通性配置,例如运行huawei-csi-controller的worker节点与待接入的存储设备的管理IP地址通信正常,运行huawei-csi-node的worker节点与待接入的存储设备的业务IP地址通信正常,iSCSI场景下允许使用ping命令进行连通性校验。 +- 请确保操作系统的语言是英文。 +- 请确保存储池、租户名称等相关存储资源名称是英文。 + + + + + + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md new file mode 100644 index 0000000..c85b8cd --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-host-multipathing-configuration.md @@ -0,0 +1,42 @@ +--- +title: "检查主机多路径配置" +linkTitle: "检查主机多路径配置" +description: +weight: 5 +--- + +当您计划在容器环境中使用FC/iSCSI/NVMe over RoCE/NVMe over FC协议对华为存储进行访问时,推荐您使用主机多路径软件增强主机和存储的链路冗余和性能。如果您不准备使用多路径软件,请跳过本章节。 + +华为CSI软件支持对接的操作系统和多路径软件请参考[表2](/v4.5.0/compatibility-and-features/kubernetes-and-os-compatibility#table133422378818)。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- 如果您准备使用FC/iSCSI协议对接华为存储时,推荐使用操作系统自带的原生DM-Multipath。 +>- 如果您准备使用NVMe over RoCE/NVMe over FC协议对接华为存储时,推荐使用华为自研的UltraPath-NVMe。 +>- 如果您使用SCSI协议对接华为存储时,请关闭操作系统自带的DM-Multipath。 + +## 前提条件{#section43820464358} + +主机多路径软件已经被正确的安装在主机上。 + +- 如果您使用的是操作系统自带的原生DM-Multipath,请咨询您的主机或操作系统提供商获取安装所需的资料和软件包。 +- 如果您使用的是华为自研的UltraPath或者UltraPath-NVMe,请联系华为工程师获取UltraPath或者UltraPath-NVMe的资料和软件包。软件包版本请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + +## 操作步骤{#section14674125816351} + +1. 如果您使用iSCSI/FC协议对接华为企业存储,请参考[OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南](https://support.huawei.com/enterprise/zh/doc/EDOC1100112792/e369b5d4),对主机多路径进行配置和检查。 +2. 如果您使用NVMe over RoCE/NVMe over FC协议对接华为企业存储,请参考[OceanStor Dorado & OceanStor在Red Hat下的主机连通性指南](https://support.huawei.com/enterprise/zh/doc/EDOC1100112792/2bb03fdc),对主机多路径进行配置和检查。 +3. 如果您使用iSCSI协议对接华为分布式存储,请参考 [《FusionStorage 8.0.1 块存储基础业务配置指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100115351)中的“[应用服务器配置多路径](https://support.huawei.com/enterprise/zh/doc/EDOC1100115351/8919295e)”章节,对主机多路径进行配置和检查。 +4. 如果您使用了操作系统原生多路径时,需要检查/etc/multipath.conf文件,检查文件是否存在如下配置: + + ``` + defaults { + user_friendly_names yes + find_multipaths no + } + ``` + + 如果配置不存在,请在/etc/multipath.conf文件开始处增加该配置项。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >user\_friendly\_names 和find\_multipaths 的参数作用请参考:[dm\_multipath/config\_file\_defaults](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/dm_multipath/config_file_defaults) + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245CSI\344\276\235\350\265\226\347\232\204\351\225\234\345\203\217.md" b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md similarity index 99% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245CSI\344\276\235\350\265\226\347\232\204\351\225\234\345\203\217.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md index 0d67023..8a202df 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245CSI\344\276\235\350\265\226\347\232\204\351\225\234\345\203\217.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends.md @@ -140,6 +140,6 @@ huawei-csi-controller服务依赖的sidecar镜像:livenessprobe、csi-provisio ->![](/css-docs/public_sys-resources/zh/icon-note.gif) ->集群若未连接互联网,需要手动下载容器镜像并上传到集群中,具体操作请参考[下载容器镜像](/docs/常用操作/下载容器镜像)。 +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>集群若未连接互联网,需要手动下载容器镜像并上传到集群中,具体操作请参考[下载容器镜像](/v4.5.0/common-operations/downloading-a-container-image)。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md new file mode 100644 index 0000000..9a64ee8 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software.md @@ -0,0 +1,39 @@ +--- +title: "检查主机依赖软件状态" +linkTitle: "检查主机依赖软件状态" +description: +weight: 6 +--- + +本章节介绍如何检查集群中工作节点上主机依赖软件状态是否正常。本例中主机操作系统为CentOS 7.9 x86\_64。 + +- 检查iSCSI客户端状态。 + + ``` + systemctl status iscsi iscsid + ``` + +- 检查NFS客户端状态。 + + ``` + systemctl status rpcbind + ``` + +- 检查DM-Multipath多路径软件状态。 + + ``` + systemctl status multipathd.socket multipathd + ``` + +- 检查UltraPath多路径软件状态。 + + ``` + systemctl status nxup + ``` + +- 检查UltraPath-NVMe多路径软件状态。 + + ``` + systemctl status upudev upService_plus + ``` + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\216\344\270\272\345\255\230\345\202\250\344\270\212\347\232\204\347\224\250\346\210\267\351\205\215\347\275\256.md" b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md similarity index 98% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\216\344\270\272\345\255\230\345\202\250\344\270\212\347\232\204\347\224\250\346\210\267\351\205\215\347\275\256.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md index 402e172..66a552c 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\346\243\200\346\237\245\345\215\216\344\270\272\345\255\230\345\202\250\344\270\212\347\232\204\347\224\250\346\210\267\351\205\215\347\275\256.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-user-configurations-on-huawei-storage.md @@ -98,8 +98,8 @@ weight: 3 -- 注释1 使用自定义角色,需要给角色配置权限,最小权限请参考[配置自定义权限](/docs/附录/配置自定义权限)章节配置。 +- 注释1 使用自定义角色,需要给角色配置权限,最小权限请参考[配置自定义权限](/v4.5.0/appendix/configuring-custom-permissions)章节配置。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >不推荐使用“超级管理员”角色下的用户。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md new file mode 100644 index 0000000..1b582f1 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components.md @@ -0,0 +1,36 @@ +--- +title: "检查卷快照依赖组件" +linkTitle: "检查卷快照依赖组件" +description: +weight: 4 +--- + +本章节介绍如何检查集群中卷快照依赖组件情况。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>由于Kubernetes v1.17.0之前不支持快照功能,如果部署快照CRD可能导致集群出现问题,因此在低于Kubernetes v1.17.0版本上部署华为CSI,请务必按照[Kubernetes低于v1.17.0](#section6894165917369)章节检查。 + +## Kubernetes低于v1.17.0{#section6894165917369} + +Kubernetes低于v1.17.0时,部署快照时将会导致集群出现问题,请按照以下步骤删除快照CRD安装文件。 + +1. 执行以下命令查看Kubernetes版本。如下示例中,Kubernetes版本为v1.16.0。 + + ``` + kubectl get node + ``` + + 命令结果示例如下: + + ``` + NAME STATUS ROLES AGE VERSION + test-master Ready master 311d v1.16.0 + test-node Ready 311d v1.16.0 + ``` + +2. 进入/helm/esdk/crds/snapshot-crds目录,执行以下命令,删除快照CRD安装文件。组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + rm -rf ./huawei-csi-snapshot-crd-v1.yaml + ``` + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\213\350\275\275\345\215\216\344\270\272CSI\350\275\257\344\273\266\345\214\205.md" b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md similarity index 99% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\213\350\275\275\345\215\216\344\270\272CSI\350\275\257\344\273\266\345\214\205.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md index eca8428..1ddd663 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\213\350\275\275\345\215\216\344\270\272CSI\350\275\257\344\273\266\345\214\205.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package.md @@ -10,7 +10,7 @@ weight: 1 1. 打开浏览器,访问仓库地址:[https://github.com/Huawei/eSDK\_K8S\_Plugin/releases](https://github.com/Huawei/eSDK_K8S_Plugin/releases)。 2. 根据CPU架构,下载对应的4.5.0版本软件包。 - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >软件包命名规范:插件名称(eSDK\_Huawei\_Storage\_Kubernetes\_CSI\_Plugin)+版本号+CPU架构 3. 将下载的软件包解压。软件包组件结构如下表所示。 diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\212\344\274\240\345\215\216\344\270\272CSI\351\225\234\345\203\217.md" b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md similarity index 67% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\212\344\274\240\345\215\216\344\270\272CSI\351\225\234\345\203\217.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md index ef7a15d..d4e6789 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\211\215\345\207\206\345\244\207/\344\270\212\344\274\240\345\215\216\344\270\272CSI\351\225\234\345\203\217.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image.md @@ -5,16 +5,16 @@ description: weight: 2 --- -华为提供huawei-csi镜像供用户使用,镜像文件获取请参考[下载华为CSI软件包](/docs/安装部署/安装前准备/下载华为CSI软件包)。 +华为提供huawei-csi镜像供用户使用,镜像文件获取请参考[下载华为CSI软件包](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package)。 为了后续在容器管理平台中可以使用CSI镜像,需要按照以下方式中的一种提前将CSI镜像导入到集群中: - 使用Docker工具,将CSI镜像上传至镜像仓库(推荐)。 - 手动将CSI镜像导入到所有需要部署华为CSI的节点。 -## **上传镜像到镜像仓库**{#section93821739143119} +## 上传镜像到镜像仓库{#section93821739143119} -安装华为CSI依赖如下三个华为提供的镜像文件,请按照说明依次导入并上传下列镜像文件,镜像文件获取请参考[下载华为CSI软件包](/docs/安装部署/安装前准备/下载华为CSI软件包)。 +安装华为CSI依赖如下华为提供的镜像文件,请按照说明依次导入并上传下列镜像文件,镜像文件获取请参考[下载华为CSI软件包](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package)。 - huawei-csi-v4.5.0-arch.tar - storage-backend-controller-v4.5.0-_arch_.tar @@ -45,25 +45,25 @@ weight: 2 docker push repo.huawei.com/huawei-csi:4.5.0 ``` ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 也可以使用containerd来进行镜像的导入和上传。 ->- CCE / CCE Agile平台请参考该平台用户手册完成镜像导入和上传。 +>- CCE或CCE Agile平台请参考该平台用户手册完成镜像导入和上传。 -## **上传镜像到本地节点**{#section15439218133113} +## 上传镜像到本地节点{#section15439218133113} 若镜像已上传至镜像仓库,则跳过本章节。 **前提条件** -- 该节点已获取对应的华为CSI镜像文件,镜像文件获取请参考[下载华为CSI软件包](/docs/安装部署/安装前准备/下载华为CSI软件包)。 +- 该节点已获取对应的华为CSI镜像文件,镜像文件获取请参考[下载华为CSI软件包](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package)。 - 该节点已经安装Docker或其他容器引擎。 **操作步骤** 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录需要导入镜像的节点。 2. 将Kubernetes CSI组件包中的"image"目录拷贝到当前节点的任意目录下。 -3. 执行**cd image**命令,进入到image的工作目录。工具路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 -4. 执行命令依次将image目录下的所有华为CSI镜像导入至本地节点,其中 _name_ 参数是镜像tar包的名字。 +3. 执行**cd image**命令,进入到image的工作目录。工具路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +4. 执行命令依次将image目录下的所有华为CSI镜像导入至本地节点,其中_ name_ 参数是镜像tar包的名字。 使用Docker容器引擎执行: @@ -83,6 +83,6 @@ weight: 2 podman load -i .tar ``` - >![](/css-docs/public_sys-resources/zh/icon-notice.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >当节点主机安装的是其他容器引擎时,请使用对应容器引擎的导入镜像命令。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md new file mode 100644 index 0000000..b2f5deb --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/_index.md @@ -0,0 +1,20 @@ +--- +title: "安装华为CSI" +linkTitle: "安装华为CSI" +description: +weight: 2 +--- + +本章节介绍如何安装华为CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>当前版本华为CSI添加了资源请求和限制,具体详情请参考[华为CSI资源管理](/v4.5.0/appendix/huawei-csi-resource-management)。 + +## 前提条件{#zh-cn_topic_0000001324610777_section19453102010152} + +- 已完成[安装前准备](/v4.5.0/installation-and-deployment/installation-preparations)。 +- 集群的所有worker节点与待接入的存储设备的业务组网通信正常,iSCSI场景下允许使用ping命令进行连通性校验。 +- 集群的所有worker节点已安装对应协议所需要的软件客户端,如iSCSI客户端、NFS客户端等。 + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..3fc34a6 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/_index.md @@ -0,0 +1,44 @@ +--- +title: "使用Helm安装华为CSI" +linkTitle: "使用Helm安装华为CSI" +description: +weight: 1 +--- + +## Helm安装说明{#section16991437124819} + +本章节介绍如何使用Helm 3安装部署华为CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 华为CSI的安装支持root用户和非root用户。使用非root用户安装华为CSI时,需要保证当前用户能够访问Kubernetes集群的API Server,配置非root用户访问Kubernetes集群请参考[配置非root用户访问Kubernetes集群](/v4.5.0/common-operations/configuring-access-to-the-kubernetes-cluster-as-a-non-root-user)。 +>- 华为CSI必须在root用户权限下运行。 + +Helm是Kubernetes生态系统中的一个软件包管理工具,类似Ubuntu的APT、CentOS的YUM、或Python的pip一样,专门负责管理Kubernetes的应用资源。 + +使用Helm可以对Kubernetes应用进行统一打包、分发、安装、升级以及回退等操作。 + +- Helm的获取、安装请参考:[https://helm.sh/docs/intro/install/](https://helm.sh/docs/intro/install/) +- Helm与Kubernetes版本对应关系请参考:[https://helm.sh/docs/topics/version\_skew/](https://helm.sh/docs/topics/version_skew/) + +Helm在安装huawei-csi-controller时,将在指定命名空间的Deployment类型的工作负载中部署以下组件: + +- huawei-csi-driver:华为CSI驱动。 +- storage-backend-controller:华为后端管理控制器,管理storageBackendClaim资源。 +- storage-backend-sidecar:用于管理storageBackendContent资源。 +- Kubernetes External Provisioner:用于提供/删除卷。 +- Kubernetes External Attacher:用于挂载/解挂载卷。 +- Kubernetes External Resizer:用于扩容卷。 +- Kubernetes External liveness-probe: 用来判断Pod健康状态。 +- (可选)huawei-csi-extender:华为CSI扩展。 +- (可选)Kubernetes External Snapshotter:提供快照支持(作为CRD安装)。 +- (可选)Kubernetes External Snapshot Controller :用于卷快照控制。 + +Helm在安装huawei-csi-node时,将在指定命名空间的DaemonSet类型的工作负载中部署以下组件: + +- huawei-csi-driver:华为CSI驱动。 +- Kubernetes Node Registrar:处理驱动程序注册。 +- liveness-probe: 用来判断Pod健康状态。 + + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..a7724c7 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,175 @@ +--- +title: "Kubernetes、OpenShift、Tanzu安装华为CSI" +linkTitle: "Kubernetes、OpenShift、Tanzu安装华为CSI" +description: +weight: 1 +--- + +## 安装步骤{#section9426125115349} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录集群的任意master节点。 +2. 将Kubernetes CSI组件包中的"helm"目录拷贝到master节点的任意目录下。Helm工具路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +3. 进入到helm/esdk的工作目录下。 + + ``` + cd helm/esdk + ``` + +4. 准备**values.yaml**文件,华为CSI已经在软件包的helm/esdk目录下提供了values.yaml模板文件,您也可以根据[Helm values.yaml参数说明](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm)修改参数对华为CSI进行定制。 +5. 安装前配置: + - 若容器平台为Kubernetes,可跳过该步骤。 + - 若容器平台为OpenShift,请根据[OpenShift平台安装配置](#section14977616204416)进行配置。 + - 若容器平台为Tanzu,请根据[Tanzu平台安装配置](#section9291624164514)进行配置。 + +6. 执行命令,更新存储后端CRD + + ``` + kubectl apply -f ./crds/backend/ + ``` + +7. **(可选)** 请务必按照[检查卷快照依赖组件](/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考[表2](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459)。 + + ``` + kubectl apply -f ./crds/snapshot-crds/ --validate=false + ``` + +8. 执行如下命令安装华为CSI。其中,helm-huawei-csi为自定义的Helm Chart名称,./表示使用当前目录下的Helm工程,huawei-csi为自定义的Helm Chart命名空间。 + + ``` + helm install helm-huawei-csi ./ -n huawei-csi --create-namespace + ``` + + 命令结果示例如下: + + ```yaml + NAME: helm-huawei-csi + LAST DEPLOYED: Wed Jun 8 11:50:28 2022 + NAMESPACE: huawei-csi + STATUS: deployed + REVISION: 1 + TEST SUITE: None + ``` + +9. 完成huawei-csi服务部署后,可执行如下命令检查服务是否启动。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 命令结果示例如下,Pod状态为“Running“则安装成功。 + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 Running 0 24m + huawei-csi-controller-6dfcc4b79f-csphc 9/9 Running 0 24m + huawei-csi-node-g6f4k 3/3 Running 0 20m + huawei-csi-node-tqs87 3/3 Running 0 20m + ``` + +## OpenShift平台安装配置{#section14977616204416} + +OpenShift平台请根据以下命令创建SecurityContextConstraints资源。 + +1. 执行命令,编辑helm\_scc.yaml文件。 + + ``` + vi helm_scc.yaml + ``` + +2. 修改helm\_scc.yaml文件。其中,下列回显中huawei-csi是指创建的命名空间,请根据实际情况填写。 + + ```yaml + apiVersion: security.openshift.io/v1 + kind: SecurityContextConstraints + metadata: + name: helm-scc + allowHostDirVolumePlugin: true + allowHostIPC: true + allowHostNetwork: true + allowHostPID: true + allowHostPorts: true + allowPrivilegeEscalation: true + allowPrivilegedContainer: true + + defaultAddCapabilities: + - SYS_ADMIN + runAsUser: + type: RunAsAny + seLinuxContext: + type: RunAsAny + fsGroup: + type: RunAsAny + users: + - system:serviceaccount:huawei-csi:huawei-csi-controller + - system:serviceaccount:huawei-csi:huawei-csi-node + ``` + +3. 执行命令,创建SecurityContextConstraints。 + + ``` + oc create -f helm_scc.yaml + ``` + +## Tanzu平台安装配置{#section9291624164514} + +Tanzu平台请执行以下命令配置kubelet安装目录。 + +1. 进入到安装包的helm/esdk目录下,执行命令打开配置文件,修改后保存。安装包目录请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + vi values.yaml + ``` + +2. 修改kubeletConfigDir参数如下: + + ```yaml + # Specify kubelet config dir path. + # kubernetes and openshift is usually /var/lib/kubelet + # Tanzu is usually /var/vcap/data/kubelet + # CCE is usually /mnt/paas/kubernetes/kubelet + kubeletConfigDir: /var/vcap/data/kubelet + ``` + +Tanzu平台TKGI 1.16版本及以下请执行以下命令配置RBAC权限 + +1. 执行命令, 创建rbac.yaml文件。 + + ``` + vi rbac.yaml + ``` + +2. 粘贴如下内容至rbac.yaml,保存并退出: + + ``` + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + name: huawei-csi-psp-role + rules: + - apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + --- + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + name: huawei-csi-psp-role-cfg + roleRef: + kind: ClusterRole + name: huawei-csi-psp-role + apiGroup: rbac.authorization.k8s.io + subjects: + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:huawei-csi + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:default + ``` + +3. 执行命令,创建RBAC权限。 + + ``` + kubectl create -f rbac.yaml + ``` + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md new file mode 100644 index 0000000..d0398c2 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform.md @@ -0,0 +1,71 @@ +--- +title: "CCE或CCE Agile平台安装华为CSI" +linkTitle: "CCE或CCE Agile平台安装华为CSI" +description: +weight: 2 +--- + +本章节介绍如何在CCE或CCE Agile平台安装华为CSI。 + +## 制作Helm安装包{#section2032812215509} + +CCE或CCE Agile平台无法直接通过Helm安装华为CSI,需要手动制作Helm安装包后上传至平台模板市场进行安装。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录已部署Helm的任意节点。 +2. 将华为CSI组件包中的"helm"目录拷贝到节点的任意目录下。Helm工具路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +3. 进入到helm的工作目录下。 + + ``` + cd helm/ + ``` + +4. 修改helm/esdk/values.yaml文件中kubeletConfigDir和csiDriver.driverName参数。 + + ``` + vi ./esdk/values.yaml + ``` + + 修改如下参数: + + ```yaml + # Specify kubelet config dir path. + # kubernetes and openshift is usually /var/lib/kubelet + # Tanzu is usually /var/vcap/data/kubelet + # CCE is usually /mnt/paas/kubernetes/kubelet + kubeletConfigDir: /mnt/paas/kubernetes/kubelet + + # The CSI driver parameter configuration + csiDriver: + # Driver name, it is strongly recommended not to modify this parameter + # The CCE platform needs to modify this parameter, e.g. csi.oceanstor.com + driverName: csi.oceanstor.com + ``` + +5. 执行命令制作Helm安装包,该命令会将安装包生成到当前路径下。 + + ``` + helm package ./esdk/ -d ./ + ``` + +## 安装华为CSI{#section3411185295111} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录已部署CCE Agile平台master的任意节点。 +2. 执行命令创建部署华为CSI的命名空间,huawei-csi为自定义的命名空间。 + + ``` + kubectl create namespace huawei-csi + ``` + +3. 导出Helm安装包,具体请参考[制作Helm安装包](#section2032812215509)。 +4. 在主页单击“模板市场\> 我的模板\>上传模板”,进入上传模板对话框。将导出的Helm安装包导入CCE Agile平台。 + + ![](/css-docs/figures/上传模板-ch.png) + +5. 安装包上传完毕,在主页单击“模板市场\>我的模板”,进入我的模板页面,单击“安装\>提交”。其中模板实例名称可自定义填写。 + + ![](/css-docs/figures/安装csi中文.png) + +6. 在主页单击“模板市场\>模板实例”,选择安装时指定的项目(例如样例中的项目是“default”)。安装成功后执行状态将回显为“安装成功”。 + + ![](/css-docs/figures/安装结果-ch.png) + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Helm-values-yaml\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md similarity index 98% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Helm-values-yaml\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md index c6404b4..8290c5c 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\256\211\350\243\205\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\256\211\350\243\205\345\215\216\344\270\272CSI/Helm-values-yaml\345\217\202\346\225\260\350\257\264\346\230\216.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm.md @@ -128,9 +128,9 @@ values.yaml中的images配置项主要配置华为CSI运行时依赖的组件镜 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) ->- huaweiCSIService、storageBackendSidecar、storageBackendController、huaweiCSIExtender参数的值,请参考[上传华为CSI镜像](/docs/安装部署/安装前准备/上传华为CSI镜像)章节的说明,使用最终生成镜像的名称和版本。 ->- 其他sidecar镜像参数,请参考[检查CSI依赖的镜像](/docs/安装部署/安装前准备/检查CSI依赖的镜像)章节的说明,使用最终上传的镜像的名称和版本。 +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- huaweiCSIService、storageBackendSidecar、storageBackendController、huaweiCSIExtender参数的值,请参考[上传华为CSI镜像](/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image)章节的说明,使用最终生成镜像的名称和版本。 +>- 其他sidecar镜像参数,请参考[检查CSI依赖的镜像](/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends)章节的说明,使用最终上传的镜像的名称和版本。 ## controller参数配置说明{#section94006111587} @@ -159,7 +159,8 @@ controller配置项用于配置huawei-csi-controller组件的相关配置。

    1

    -

    -

    +

    Kubernetes版本低于v1.17时,由于Kubernetes社区提供的csi-provisioner sidecar镜像不支持--leader-election参数,只能通过单副本方式部署huawei-csi-controller组件。

    +

    因此,当Kubernetes版本低于v1.17版本时,该参数仅支持配置为1。

    controller.volumeNamePrefix

    @@ -290,7 +291,7 @@ controller配置项用于配置huawei-csi-controller组件的相关配置。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >当controller.snapshot.enabled参数配置为true时,需要安装“helm/crd/snapshot-crds”目录下的卷快照CRD资源。 ## node参数配置说明{#section374014171581} @@ -630,7 +631,7 @@ csiDriver配置项包括了华为CSI运行时的基本配置,如华为驱动 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >如果您的容器环境已经部署了华为CSI,请确保csiDriver.driverName的设置和之前部署时的配置保持一致。否则会导致系统中已存在的有华为CSI发放的卷/快照无法被新部署的华为CSI管理。 ## 其他参数配置说明{#section11500468593} @@ -770,7 +771,7 @@ csiDriver配置项包括了华为CSI运行时的基本配置,如华为驱动 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >请确保此kubernetes.namespace填入的命名空间在Kubernetes上已经存在,如果不存在请使用如下命令创建对应的命名空间。本例中,华为CSI运行的命名空间为“huawei-csi”。 >``` >kubectl create namespace huawei-csi diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md new file mode 100644 index 0000000..108f39d --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi.md @@ -0,0 +1,86 @@ +--- +title: "手动安装华为CSI" +linkTitle: "手动安装华为CSI" +description: +weight: 2 +--- + +本章节介绍如何手动安装华为CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>手动安装华为CSI当前仅支持Kubernetes平台。 + +## 安装步骤{#section113761618183018} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录集群的任意master节点。 +2. 将Kubernetes CSI组件包中的"manual"目录拷贝到master节点的任意目录下。 +3. 执行命令创建一个命名空间。 + + ``` + kubectl create ns huawei-csi + ``` + +4. 进入到manual/esdk的工作目录下。具体路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 + + ``` + cd manual/esdk + ``` + +5. 执行命令,更新存储后端CRD + + ``` + kubectl apply -f ./crds/backend/ + ``` + +6. **(可选)** 请务必按照[检查卷快照依赖组件](/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节检查快照依赖组件,确认无误后执行执行命令更新快照CRD,如果Kubernetes版本低于v1.17,跳过本步骤。 + + ``` + kubectl apply -f ./crds/snapshot-crds/ --validate=false + ``` + +7. **(可选)** 执行命令安装CSIDriver。如果不使用CSIDriver特性,可跳过本步骤,详情请参考[CSIDriver](https://kubernetes-csi.github.io/docs/csi-driver-object.html)特性。 + + ``` + kubectl apply -f ./deploy/csidriver.yaml + ``` + +8. 执行命令安装huawei-csi-controller服务。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >如果Kubernetes版本低于v1.17,需要对 _./deploy/huawei-csi-controller.yaml_ 文件进行如下修改: + >- Kubernetes版本低于v1.17时,不支持快照特性,删除名称为csi-snapshotter和snapshot-controller这两个与快照相关的容器配置。 + >- Kubernetes版本低于v1.17时,由于Kubernetes社区提供的csi-provisioner sidecar镜像不支持--leader-election参数,删除csi-provisioner容器leader-election参数配置,且仅支持单副本部署。 + >- 根据[检查CSI依赖的镜像](/v4.5.0/installation-and-deployment/installation-preparations/checking-the-images-on-which-csi-depends)中的版本要求,修改依赖的镜像版本。 + + ``` + kubectl apply -f ./deploy/huawei-csi-controller.yaml + ``` + +9. 执行命令安装huawei-csi-node服务。 + + ``` + kubectl apply -f ./deploy/huawei-csi-node.yaml + ``` + +10. 执行命令检查服务是否启动。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 回显示例如下,Pod状态为“Running“则安装成功。 + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-68745d489c-v5xkj 9/9 Running 0 13m + huawei-csi-node-4hbqp 3/3 Running 0 13m + huawei-csi-node-f7dkf 3/3 Running 0 13m + huawei-csi-node-xrntc 3/3 Running 0 13m + ``` + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>多副本controller部署场景下可以通过修改 _./deploy/huawei-csi-controller.yaml_ 文件中Deployment资源的spec.replica字段来指定副本个数,修改完成后,执行以下命令生效: +>``` +>kubectl apply -f ./deploy/huawei-csi-controller.yaml +>``` + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md new file mode 100644 index 0000000..2693d8f --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/_index.md @@ -0,0 +1,14 @@ +--- +title: "卸载华为CSI" +linkTitle: "卸载华为CSI" +description: +weight: 3 +--- + +本章节介绍如何卸载华为CSI。根据您安装时的方式,请使用不同的方式进行卸载。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。 + + + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md similarity index 71% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md index 82c64b7..540e01c 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\270\350\275\275\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\270\350\275\275\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi.md @@ -7,7 +7,7 @@ weight: 2 本章节介绍如何手动卸载华为CSI。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >如果您不是出于升级的目的卸载华为CSI,请确保卸载华为CSI前已经在您的容器平台中将华为CSI发放的资源(PV、PVC、快照、存储后端等)全部清理。否则一旦您卸载华为CSI后,这些资源将无法被自动调度、管理或者清理。 ## 卸载huawei-csi-node服务{#section1012817231386} @@ -42,7 +42,7 @@ weight: 2 ## 卸载csidriver对象{#section4229471288} -如果[安装时未使用CSIDriver特性](/docs/安装部署/安装华为CSI/手动安装华为CSI#li395973220487),可跳过本步骤。 +如果[安装时未使用CSIDriver特性](/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi#li395973220487),可跳过本步骤。 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 2. 执行以下命令卸载csidriver对象。 @@ -68,8 +68,8 @@ weight: 2 ## 其它资源卸载{#section1370361019919} -1. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section870813403017)进行操作。 -2. 卸载webhook资源,请参考[卸载Webhook资源](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section871155813014)进行操作。 -3. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section48371491319)进行操作。 -4. (可选)卸载Lease资源,请参考[卸载Lease资源](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI/卸载CSI依赖组件服务#section263805014317)进行操作。 +1. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017)进行操作。 +2. 卸载webhook资源,请参考[卸载Webhook资源](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014)进行操作。 +3. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319)进行操作。 +4. (可选)卸载Lease资源,请参考[卸载Lease资源](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317)进行操作。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..74a858e --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/_index.md @@ -0,0 +1,10 @@ +--- +title: "Helm卸载华为CSI" +linkTitle: "Helm卸载华为CSI" +description: +weight: 1 +--- + + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md new file mode 100644 index 0000000..b20125f --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services.md @@ -0,0 +1,131 @@ +--- +title: "卸载CSI依赖组件服务" +linkTitle: "卸载CSI依赖组件服务" +description: +weight: 3 +--- + +本章节介绍如何卸载CSI依赖组件服务。 + +## 卸载huawei-csi-host-info对象{#section870813403017} + +名称为huawei-csi-host-info的Secret对象中保存着集群中各个节点的启动器信息,例如iSCSI启动器。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令卸载Secret对象,其中huawei-csi-host-info是Secret对象的名称,huawei-csi是Secret对象所在的命名空间。 + + ``` + kubectl delete secret huawei-csi-host-info -n huawei-csi + ``` + +3. 执行以下命令检查Secret对象是否卸载成功。 + + ``` + kubectl get secret huawei-csi-host-info -n huawei-csi + ``` + + 命令结果示例如下,如果命令回显提示“NotFound”表示huawei-csi-host-info对象已成功卸载。 + + ```yaml + Error from server (NotFound): secrets "huawei-csi-host-info" not found + ``` + +## 卸载Webhook资源{#section871155813014} + +名称为storage-backend-controller.xuanwu.huawei.io的webhook资源用于校验Backend的秘钥信息和与存储的连通性,使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查询webhook依赖组件服务。 + + ``` + kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io + ``` + + 命令结果示例如下: + + ``` + NAME WEBHOOKS AGE + storage-backend-controller.xuanwu.huawei.io 1 12d + ``` + +3. 执行以下命令,卸载webhook依赖组件服务。 + + ``` + kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io + ``` + +4. 执行以下命令,检查服务是否已成功卸载。如果结果为空,表示已成功卸载。 + + ``` + kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io storage-backend-controller.xuanwu.huawei.io + ``` + +## 卸载Snapshot依赖组件服务{#section48371491319} + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 请勿在存在快照时卸载Snapshot依赖组件服务,否则Kubernetes会自动删除所有的用户快照且无法恢复,请谨慎操作。详细说明请参见[删除 CustomResourceDefinition](https://kubernetes.io/zh/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#delete-a-customresourcedefinition)。 +>- 请勿在CSI升级时卸载Snapshot依赖组件服务。 + +**场景说明** + +- 当前华为CSI使用了快照特性。 +- 当前Kubernetes集群仅存在华为CSI,且不再使用华为CSI。 +- 在卸载前请确保在Kubernetes集群中已经没有华为CSI管理的VolumeSnapshot资源。 + +**操作步骤** + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,卸载Snapshot依赖组件服务。 + + ``` + kubectl delete crd volumesnapshotclasses.snapshot.storage.k8s.io volumesnapshotcontents.snapshot.storage.k8s.io volumesnapshots.snapshot.storage.k8s.io + ``` + +3. 执行以下命令,检查服务是否已成功卸载。如果结果为空,表示已成功卸载。 + + ``` + kubectl get crd | grep snapshot.storage.k8s.io + ``` + +## 卸载Lease资源{#section263805014317} + +values.yaml文件中controller.controllerCount配置项的值大于1时,huawei-csi-controller将使用多副本部署,huawei-csi-controller服务的多副本使用Kubernetes的LeaderElection机制实现,该机制会创建Lease对象用于保存当前Holder信息。使用helm uninstall命令时不会卸载该资源,若需卸载该资源,请参考以下步骤,若controller.controllerCount配置项的值等于1是时,可跳过本步骤。配置项描述可参考[表2](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459)。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查询Lease信息。 + + ``` + kubectl get lease -n huawei-csi + ``` + + 命令结果示例如下: + + ``` + NAME HOLDER AGE + csi-huawei-com node-1 24d + external-attacher-leader-csi-huawei-com node-1 24d + external-resizer-csi-huawei-com node-1 24d + external-snapshotter-leader-csi-huawei-com node-1 24d + snapshot-controller-leader node-1 24d + storage-backend-controller node-1 24d + huawei-csi-extender node-1 24d + ``` + +3. 执行以下命令,卸载Lease资源。 + + ``` + kubectl delete lease -n huawei-csi csi-huawei-com external-attacher-leader-csi-huawei-com external-resizer-csi-huawei-com external-snapshotter-leader-csi- + ``` + +4. 执行以下命令,检查是否已成功卸载。 + + ``` + kubectl get lease -n huawei-csi + ``` + + 命令结果示例如下,如果结果为空,表示已成功卸载。 + + ``` + No resources found in huawei-csi namespace. + ``` + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..bc65f57 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,21 @@ +--- +title: "CCE或CCE Agile卸载华为CSI" +linkTitle: "CCE或CCE Agile卸载华为CSI" +description: +weight: 2 +--- + +本章节介绍如何在CCE或CCE Agile平台卸载华为CSI,以CCE Agile v22.3.2为例。 + +## 操作步骤{#section1489941282414} + +1. 登录CCE Agile平台。 +2. 在主页单击“模板市场\> 模板实例 ”,进入模板实例页面。 +3. 选择华为CSI模板实例,单击“卸载”,在弹出的提示框中单击“确定”。 + + ![](/css-docs/figures/卸载-ch.png) + +4. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017)进行操作。 +5. 卸载webhook资源,请参考[卸载Webhook资源](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014)进行操作。 +6. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319)进行操作。 + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md new file mode 100644 index 0000000..7504e29 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -0,0 +1,35 @@ +--- +title: "Kubernetes、OpenShift、Tanzu卸载华为CSI" +linkTitle: "Kubernetes、OpenShift、Tanzu卸载华为CSI" +description: +weight: 1 +--- + +本章节介绍如何在Kubernetes、OpenShift、Tanzu平台卸载华为CSI。 + +## 操作步骤{#section9152125194710} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令卸载华为CSI,_helm-huawei-csi _是自定义的Helm Chart名称,_huawei-csi_ 是该Helm Chart所在的命名空间。该卸载命令将会卸载华为CSI的huawei-csi-controller、huawei-csi-node和RBAC资源。 + + ``` + helm uninstall helm-huawei-csi -n huawei-csi + ``` + + 卸载命令执行后,还需要检查卸载是否成功。其中,_huawei-csi_为chart所在的命名空间。 + + ``` + helm list -n huawei-csi + ``` + + 命令结果示例如下,如果回显为空,则表示服务卸载成功。 + + ``` + NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION + ``` + +3. 卸载huawei-csi-host-info对象,请参考[卸载huawei-csi-host-info对象](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section870813403017)进行操作。 +4. 卸载webhook资源,请参考[卸载Webhook资源](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section871155813014)进行操作。 +5. (可选)卸载快照依赖组件服务,请参考[卸载Snapshot依赖组件服务](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section48371491319)进行操作。 +6. (可选)卸载Lease资源,请参考[卸载Lease资源](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-csi-dependent-component-services#section263805014317)进行操作。 + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md new file mode 100644 index 0000000..5707195 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/_index.md @@ -0,0 +1,14 @@ +--- +title: "升级/回退华为CSI" +linkTitle: "升级/回退华为CSI" +description: +weight: 4 +--- + +本章节介绍如何升级/回退华为CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>当前版本华为CSI添加了资源请求和限制,具体详情请参考[华为CSI资源管理](/v4.5.0/appendix/huawei-csi-resource-management)。 + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md new file mode 100644 index 0000000..7ff47f9 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/_index.md @@ -0,0 +1,9 @@ +--- +title: "手动升级/回退" +linkTitle: "手动升级/回退" +description: +weight: 2 +--- + + + diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md new file mode 100644 index 0000000..6a57a17 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/rolling-back-huawei-csi-1.md @@ -0,0 +1,24 @@ +--- +title: "回退华为CSI" +linkTitle: "回退华为CSI" +description: +weight: 2 +--- + +请参考[手动卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI,然后下载安装升级之前版本的CSI。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 在升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 +>- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 +>- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 + +## 前提条件{#zh-cn_topic_0000001275627010_zh-cn_topic_0000001232767941_section19453102010152} + +已下载原版本CSI的软件包。 + +## 操作步骤{#section7449184616111} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 参考[手动卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI。 +3. 参考[手动安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi)重新安装原版本的CSI。 + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\215\207\347\272\247\345\215\216\344\270\272CSI-0.md" b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md similarity index 65% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\215\207\347\272\247\345\215\216\344\270\272CSI-0.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md index 7ce9ff2..26cafe5 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\346\211\213\345\212\250\345\215\207\347\272\247-\345\233\236\351\200\200/\345\215\207\347\272\247\345\215\216\344\270\272CSI-0.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/manual-upgrade-rollback/upgrading-huawei-csi-0.md @@ -9,7 +9,7 @@ weight: 1 升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 部分2.x版本CSI已经下架,若升级失败,可能无法回退到已下架版本的CSI。 >- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 >- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 @@ -25,15 +25,15 @@ weight: 1 kubectl get cm huawei-csi-configmap -n huawei-csi -o json > configmap.json ``` -3. 参考[手动卸载华为CSI](/docs/安装部署/卸载华为CSI/手动卸载华为CSI)卸载CSI。 -4. 参考[手动安装华为CSI](/docs/安装部署/安装华为CSI/手动安装华为CSI)安装当前版本的CSI。 -5. 将[2](#li1699321211285)中备份的后端信息,按照[管理存储后端](/docs/存储后端管理/管理存储后端)章节的说明安装。 +3. 参考[手动卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI。 +4. 参考[手动安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi)安装当前版本的CSI。 +5. 将[2](#li1699321211285)中备份的后端信息,按照[管理存储后端](/v4.5.0/storage-backend-management/managing-storage-backends)章节的说明安装。 ## 从4.x版本的CSI升级至4.5.0版本。{#section173369363219} 如果您从4.x版本的CSI升级至4.5.0版本,请按照以下操作步骤升级: 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 参考[手动卸载华为CSI](/docs/安装部署/卸载华为CSI/手动卸载华为CSI)卸载CSI。 -3. 参考[手动安装华为CSI](/docs/安装部署/安装华为CSI/手动安装华为CSI)安装当前版本的CSI。 +2. 参考[手动卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/manually-uninstalling-huawei-csi)卸载CSI。 +3. 参考[手动安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/manually-installing-huawei-csi)安装当前版本的CSI。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md new file mode 100644 index 0000000..4bc6a47 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/_index.md @@ -0,0 +1,15 @@ +--- +title: "使用Helm升级/回退华为CSI" +linkTitle: "使用Helm升级/回退华为CSI" +description: +weight: 1 +--- + +如果您从2.x版本升级至4.5.0版本,请参考旧版本用户指南卸载CSI,然后参考[使用Helm安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm)章节安装华为CSI。 + +如果您从2.x或3.x版本升级至4.5.0版本,请参考[从2.x或3.x升级至4.x版本](/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x)章节升级华为CSI。 + +如果您从4.x版本升级至4.5.0版本,请参考[Kubernetes、OpenShift、Tanzu升级华为CSI](/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu)章节升级华为CSI。 + + + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md similarity index 64% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md index 06819f1..765d44e 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/_index.md @@ -5,9 +5,9 @@ description: weight: 2 --- -如果您从2.x和3.x版本的CSI升级至4.5.0版本失败,需要回退时,请参考[Helm卸载华为CSI](/docs/安装部署/卸载华为CSI/Helm卸载华为CSI)卸载CSI,然后下载安装升级之前版本的CSI。 +如果您从2.x和3.x版本的CSI升级至4.5.0版本失败,需要回退时,请参考[Helm卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm)卸载CSI,然后下载安装升级之前版本的CSI。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 在升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 >- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 >- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..86db3d2 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,22 @@ +--- +title: "CCE或CCE Agile回退华为CSI" +linkTitle: "CCE或CCE Agile回退华为CSI" +description: +weight: 2 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 在升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 +>- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 +>- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 + +## 前提条件{#zh-cn_topic_0000001275627010_zh-cn_topic_0000001232767941_section19453102010152} + +已下载原版本CSI的软件包。 + +## 操作步骤{#section7449184616111} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 参考[操作步骤](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile#section1489941282414)卸载CSI。 +3. 参考[CCE或CCE Agile平台安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform)重新安装原版本的CSI。 + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md similarity index 87% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md index 731d529..6fa6b53 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\233\236\351\200\200\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\233\236\351\200\200\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/rolling-back-huawei-csi/rolling-back-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -12,7 +12,7 @@ weight: 1 ## 操作步骤{#section1015846181614} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 进入到helm/esdk的工作目录下,目录路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +2. 进入到helm/esdk的工作目录下,目录路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` cd helm/esdk @@ -24,7 +24,7 @@ weight: 1 helm history helm-huawei-csi -n huawei-csi ``` - 命令结果示例如下。 + 命令结果示例如下: ``` REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/_index.md" b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md similarity index 70% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/_index.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md index b9d4a44..5f7c7d3 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/_index.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/_index.md @@ -9,9 +9,9 @@ weight: 1 升级/回退过程中,已经存在的PVC/快照/Pod等资源会正常运行,不会影响您的业务访问。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 部分2.x版本CSI已经下架,若升级失败,可能无法回退到已下架版本的CSI。 ->- 从2.x或3.x版本或4.x版本升级至4.5.0版本,可能存在旧版本已发放Pod重新挂载时失败的问题,具体请参考[从2.x或3.x升级至4.x版本](/docs/安装部署/升级-回退华为CSI/使用Helm升级-回退华为CSI/升级华为CSI/从2-x或3-x升级至4-x版本) +>- 从2.x或3.x版本或4.x版本升级至4.5.0版本,可能存在旧版本已发放Pod重新挂载时失败的问题,具体请参考[从2.x或3.x升级至4.x版本](/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x) >- 在升级/回退过程中,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。 >- 在升级/回退过程中,请勿卸载Snapshot依赖组件服务。 diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/\344\273\2162-x\346\210\2263-x\345\215\207\347\272\247\350\207\2634-x\347\211\210\346\234\254.md" b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md similarity index 75% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/\344\273\2162-x\346\210\2263-x\345\215\207\347\272\247\350\207\2634-x\347\211\210\346\234\254.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md index 7fbe9a1..f6be2bd 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/\344\273\2162-x\346\210\2263-x\345\215\207\347\272\247\350\207\2634-x\347\211\210\346\234\254.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-from-2-x-or-3-x-to-4-x.md @@ -5,10 +5,10 @@ description: weight: 1 --- ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >在CSI 2.x或3.x 版本中,使用块存储时,与存储建立映射的操作是在huawei-csi-node服务进行的,所以huawei-csi-node服务需要和存储管理网络通信。又由于huawei-csi-node服务是以DaemonSet部署的,在集群中每个节点都会部署一个huawei-csi-node服务,这样部署模型导致了在大规模集群下,每个huawei-csi-node服务都会向存储发起请求,可能导致存储连接数被占满,使得huawei-csi-node不能提供正常服务。 >在CSI 4.x版本优化了该部署模型,将与存储建立映射操作迁移至huawei-csi-controller服务,huawei-csi-node服务不再需要和存储管理网络通信,降低了华为CSI依赖的组网复杂度,同时huawei-csi-controller服务以Deployment形式部署,副本数根据客户可靠性要求设置,一般情况下,副本数为1\~3。所以极大的减少了华为CSI与存储的连接数量,使得华为CSI服务能够接入大规模集群。 ->**该架构变化可能会导致一个问题**:升级后,使用2.x或3.x发放的工作负载,升级CSI至4.x版本之后,如果产生了一次新的挂载流程,并且CO(Container Orchestration system)未调用华为CSI提供的huawei-csi-controller服务,会导致挂载失败。问题请参考[创建Pod失败,Events日志显示“publishInfo doesn't exist”](/docs/故障处理/Pod相关问题/创建Pod失败-Events日志显示-publishInfo-doesn-t-exist)。 +>**该架构变化可能会导致一个问题**:升级后,使用2.x或3.x发放的工作负载,升级CSI至4.x版本之后,如果产生了一次新的挂载流程,并且CO(Container Orchestration system)未调用华为CSI提供的huawei-csi-controller服务,会导致挂载失败。问题请参考[创建Pod失败,Events日志显示“publishInfo doesn't exist”](/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log)。 ## 备份存储后端配置{#section3200825558} @@ -23,9 +23,9 @@ weight: 1 ## 升级华为CSI{#section1413511233612} -请按照[升级华为CSI](/docs/安装部署/升级-回退华为CSI/使用Helm升级-回退华为CSI/升级华为CSI/Kubernetes-OpenShift-Tanzu升级华为CSI#section6841317173013)中的步骤进行升级。 +请按照[升级华为CSI](/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu#section6841317173013)中的步骤进行升级。 ## 配置存储后端{#section496812169812} -请将[备份存储后端配置](#section3200825558)中备份的后端信息,按照[管理存储后端](/docs/存储后端管理/管理存储后端)章节的说明配置存储后端,存储后端配置成功后,请务必按照以上须知所述的风险处理方法进行操作,避免Pod在漂移过程中出现问题。 +请将[备份存储后端配置](#section3200825558)中备份的后端信息,按照[管理存储后端](/v4.5.0/storage-backend-management/managing-storage-backends)章节的说明配置存储后端,存储后端配置成功后,请务必按照以上须知所述的风险处理方法进行操作,避免Pod在漂移过程中出现问题。 diff --git a/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md new file mode 100644 index 0000000..8fd8a75 --- /dev/null +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-cce-or-cce-agile.md @@ -0,0 +1,16 @@ +--- +title: "CCE或CCE Agile升级华为CSI" +linkTitle: "CCE或CCE Agile升级华为CSI" +description: +weight: 3 +--- + +## 前提条件{#zh-cn_topic_0000001275627010_zh-cn_topic_0000001232767941_section19453102010152} + +已下载新版本CSI的软件包。 + +## 操作步骤{#section7449184616111} + +1. 参考[CCE或CCE Agile卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm/uninstalling-huawei-csi-on-cce-or-cce-agile)卸载CSI。 +2. 参考[CCE或CCE Agile平台安装华为CSI](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform)安装新版本的CSI。 + diff --git "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md similarity index 92% rename from "content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" rename to content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md index b7c6b8c..38008dc 100644 --- "a/content/zh-cn/docs/\345\256\211\350\243\205\351\203\250\347\275\262/\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\344\275\277\347\224\250Helm\345\215\207\347\272\247-\345\233\236\351\200\200\345\215\216\344\270\272CSI/\345\215\207\347\272\247\345\215\216\344\270\272CSI/Kubernetes-OpenShift-Tanzu\345\215\207\347\272\247\345\215\216\344\270\272CSI.md" +++ b/content/zh-cn/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi/upgrading-huawei-csi-on-kubernetes-openshift-and-tanzu.md @@ -8,7 +8,7 @@ weight: 2 ## 前提条件{#section12493103133711} - 旧版本华为CSI使用Helm安装。 -- 新版本华为CSI镜像已制作完成,并且按照[上传华为CSI镜像](/docs/安装部署/安装前准备/上传华为CSI镜像)章节说明,上传到镜像仓库或者导入到所有节点。 +- 新版本华为CSI镜像已制作完成,并且按照[上传华为CSI镜像](/v4.5.0/installation-and-deployment/installation-preparations/uploading-a-huawei-csi-image)章节说明,上传到镜像仓库或者导入到所有节点。 ## 升级华为CSI{#section6841317173013} @@ -16,7 +16,7 @@ weight: 2 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 2. 将目标版本CSI组件包拷贝到master节点的任意目录下。 -3. 进入到helm/esdk的工作目录下,目录路径请参见[表 软件包组件描述](/docs/安装部署/安装前准备/下载华为CSI软件包#zh-cn_topic_0150885197_table17200162435412)。 +3. 进入到helm/esdk的工作目录下,目录路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 ``` cd helm/esdk @@ -28,7 +28,7 @@ weight: 2 kubectl apply -f ./crds/backend/ ``` -5. **(可选)** 请务必按照[检查卷快照依赖组件](/docs/安装部署/安装前准备/检查卷快照依赖组件)章节检查快照依赖组件,确认无误后执行执行**kubectl apply -f** ./crds/snapshot-crds/ **--validate=false**命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考[表 controller配置项说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明#table813124411459)。 +5. **(可选)** 请务必按照[检查卷快照依赖组件](/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节检查快照依赖组件,确认无误后执行执行**kubectl apply -f** ./crds/snapshot-crds/ **--validate=false**命令更新快照CRD,如果controller.snapshot.enabled参数设置为false或Kubernetes版本低于v1.17,可跳过本步骤,详情请参考[表2](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table813124411459)。 ``` kubectl apply -f ./crds/snapshot-crds/ --validate=false @@ -40,7 +40,7 @@ weight: 2 helm get values helm-huawei-csi -n huawei-csi -a > ./update-values.yaml ``` -7. 执行**vi update-values.yaml**命令打开[6](#li1037712113474)中获取的文件,修改images配置项,更新镜像至最新版本。需要修改的参数请参考[表 images配置项](#table8452547161918)。 +7. 执行**vi update-values.yaml**命令打开[6](#li1037712113474)中获取的文件,修改images配置项,更新镜像至最新版本。需要修改的参数请参考[表1](#table8452547161918)。 **表 1** images配置项 @@ -133,9 +133,9 @@ weight: 2 -8. (可选)在升级过程中如需自定义更新配置项信息或者需要新增配置信息,可参考[Helm values.yaml参数说明](/docs/安装部署/安装华为CSI/使用Helm安装华为CSI/Helm-values-yaml参数说明)修改update-values.yaml文件中配置信息。 +8. (可选)在升级过程中如需自定义更新配置项信息或者需要新增配置信息,可参考[Helm values.yaml参数说明](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm)修改update-values.yaml文件中配置信息。 - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >升级时,如果update-values.yaml与values.yaml配置文件中存在相同配置项,update-values.yaml中的配置将会优先生效。 9. 执行以下命令,升级华为CSI。其中helm-huawei-csi为指定的Helm Chart名称,huawei-csi为指定的Helm Chart命名空间,update-values.yaml为步骤[6](#li1037712113474)中获取的文件。 diff --git "a/content/zh-cn/docs/\346\246\202\350\277\260/_index.md" b/content/zh-cn/v4.5.0/overview/_index.md similarity index 100% rename from "content/zh-cn/docs/\346\246\202\350\277\260/_index.md" rename to content/zh-cn/v4.5.0/overview/_index.md diff --git a/content/zh-cn/v4.5.0/quick-start/_index.md b/content/zh-cn/v4.5.0/quick-start/_index.md new file mode 100644 index 0000000..a6f03e1 --- /dev/null +++ b/content/zh-cn/v4.5.0/quick-start/_index.md @@ -0,0 +1,44 @@ +--- +title: "快速开始" +linkTitle: "快速开始" +description: +weight: 3 +--- + +本章节说明如何快速上手安装并使用华为CSI管理PVC。 + +## 华为CSI使用流程概览{#section10356165115616} + +**图 1** CSI安装及使用流程图 +![](/css-docs/figures/CSI安装及使用流程图.png "CSI安装及使用流程图") + +## 兼容性和特性{#section17589135519713} + +使用前请先了解对接的华为存储、容器平台和主机操作系统相关的兼容性以及支持的特性。 + +[兼容性和特性](/v4.5.0/compatibility-and-features) + +## 安装前准备{#section1698093774519} + +安装华为CSI前,需要对容器平台、主机等环境做相关配置准备。 + +[安装前准备](/v4.5.0/installation-and-deployment/installation-preparations) + +## 安装部署{#section48621535144915} + +华为CSI提供了Helm和手动安装两种安装方式,并适用于包含Kubernetes、OpenShift等不同的容器平台。 + +[安装部署](/v4.5.0/installation-and-deployment) + +## 创建存储后端{#section18261514524} + +在使用华为CSI前,需要先创建存储后端资源。 + +[创建存储后端](/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend) + +## 使用华为CSI{#section1855354751020} + +现在,您可以开始使用华为CSI进行PVC管理了。 + +[使用华为CSI](/v4.5.0/using-huawei-csi) + diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/_index.md" b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md similarity index 87% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/_index.md" rename to content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md index 5e17aa5..e65d6e9 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\346\226\260\345\242\236\350\257\201\344\271\246\345\210\260\345\255\230\345\202\250\345\220\216\347\253\257\357\274\210\345\217\257\351\200\211\357\274\211/_index.md" +++ b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/_index.md @@ -7,7 +7,7 @@ weight: 2 本章节介绍如何创建证书到存储后端,如果有对服务登录存储添加证书校验的需要,可以参考本章节新增证书,当前支持根据crt文件或者pem文件创建证书到存储后端。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >创建证书到存储后端前,须提前将准备好的证书导入存储阵列。 diff --git a/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md new file mode 100644 index 0000000..5793dce --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/creating-a-certificate-for-a-storage-backend.md @@ -0,0 +1,47 @@ +--- +title: "创建证书到存储后端" +linkTitle: "创建证书到存储后端" +description: +weight: 1 +--- + +## 前提条件{#section414814741510} + +完成证书制作。以OceanStor Dorado为例,证书制作过程请参考:[点此前往](https://support.huawei.com/hedex/hdx.do?docid=EDOC1100214749&id=ZH-CN_TOPIC_0000001595814228)。 + +## 创建证书示例{#section1393413618152} + +1. 提前准备好证书文件,如cert.crt。 +2. 执行以下命令获取存储后端。 + + ``` + oceanctl get backend + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +3. 执行以下命令为指定存储后端创建证书。 + + ``` + oceanctl create cert cert-1 -b backend-1 -f /path/to/cert.crt + ``` + +4. 检查证书创建结果。 + + ``` + oceanctl get cert -b backend-1 + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME BOUNDBACKEND + huawei-csi cert-1 backend-1 + ``` + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md new file mode 100644 index 0000000..687790e --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate.md @@ -0,0 +1,54 @@ +--- +title: "删除存储后端证书" +linkTitle: "删除存储后端证书" +description: +weight: 4 +--- + +## 操作步骤{#section14609953142910} + +1. 执行以下命令获取存储后端。 + + ``` + oceanctl get backend + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +2. 执行以下命令获取指定存储后端的证书。 + + ``` + oceanctl get cert -b backend-1 + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME BOUNDBACKEND + huawei-csi cert-1 backend-1 + ``` + +3. 执行以下命令删除指定存储后端的证书。 + + ``` + oceanctl delete cert -b backend-1 + ``` + +4. 检查删除结果。 + + ``` + oceanctl get cert -b backend-1 + ``` + + 命令结果示例如下,如果回显为“no cert found”则删除成功。 + + ```yaml + Error from server (NotFound): no cert found on backend backend-1 in huawei-csi namespace + ``` + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md new file mode 100644 index 0000000..1efc133 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/querying-a-storage-backend-certificate.md @@ -0,0 +1,9 @@ +--- +title: "查询存储后端证书" +linkTitle: "查询存储后端证书" +description: +weight: 2 +--- + +请根据[查询存储后端证书](/v4.5.0/storage-backend-management/description-of-oceanctl-commands#section11544144412475)所示命令对存储后端证书进行查询。 + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md new file mode 100644 index 0000000..b6e7d72 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/updating-a-storage-backend-certificate.md @@ -0,0 +1,44 @@ +--- +title: "更新存储后端证书" +linkTitle: "更新存储后端证书" +description: +weight: 3 +--- + +更新证书前请准备好新的证书文件,并参考本章节更新存储后端证书。如果不再使用证书,请参考[删除存储后端证书](/v4.5.0/storage-backend-management/(optional)-adding-a-certificate-to-a-storage-backend/deleting-a-storage-backend-certificate)章节移除存储后端上的证书。 + +## 操作步骤{#section127643118416} + +1. 执行以下命令获取存储后端。 + + ``` + oceanctl get backend + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +2. 执行以下命令查看指定存储后端是否存在证书。 + + ``` + oceanctl get cert -b backend-1 + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME BOUNDBACKEND + huawei-csi cert-1 backend-1 + ``` + +3. 执行以下命令更新指定存储后端的证书。 + + ``` + oceanctl update cert -b backend-1 -f /path/to/cert.crt + ``` + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/_index.md b/content/zh-cn/v4.5.0/storage-backend-management/_index.md new file mode 100644 index 0000000..3f6de70 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/_index.md @@ -0,0 +1,22 @@ +--- +title: "存储后端管理" +linkTitle: "存储后端管理" +description: +weight: 6 +--- + +后端是华为存储资源的抽象概念,每台华为存储设备可以通过租户/存储池/协议等特性抽象出多个后端资源,每个后端独立存在,其中定义了为Kubernetes集群供应持久卷时所需要的华为存储信息。 + +本章节用于描述使用oceanctl工具管理存储后端,包括后端的创建/查询/更新/删除操作 + +## oceanctl工具说明{#zh-cn_topic_0000001324610777_section19453102010152} + +- 获取oceanctl工具,将oceanctl工具拷贝到环境目录下,例如(/usr/local/bin),且赋予可执行权限,oceanctl工具位于软件包/bin/oceanctl。 +- oceanctl工具依赖kubectl(Kubernetes平台)或oc(OpenShift平台)命令,因此需要在可执行kubectl或oc命令的节点运行。 +- 默认情况下,执行oceanctl命令的用户需要有/var/log目录的读写权限。如果没有该目录权限,可通过“--log-dir=/path/to/custom”指定有权限目录作为日志文件目录。 +- oceanctl创建后端的命名空间默认为huawei-csi。 +- oceanctl命令详细说明请参考[oceanctl命令说明](/v4.5.0/storage-backend-management/description-of-oceanctl-commands)。 + + + + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md b/content/zh-cn/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md new file mode 100644 index 0000000..67a3844 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/description-of-oceanctl-commands.md @@ -0,0 +1,232 @@ +--- +title: "oceanctl命令说明" +linkTitle: "oceanctl命令说明" +description: +weight: 3 +--- + +## 帮助说明{#section1117411442508} + +- 获取oceanctl帮助说明。 + + ``` + oceanctl --help + ``` + +- 查看oceanctl版本号。 + + ``` + oceanctl version + ``` + +- 指定自定义日志文件目录,以查看oceanctl版本号为例。 + + ``` + oceanctl version --log-dir=/path/to/custom + ``` + +## 创建存储后端{#section68961238162410} + +- 执行以下命令获取创建后端帮助。 + + ``` + oceanctl create backend -h + ``` + +- 执行以下命令根据指定的yaml文件创建存储后端。 + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml + ``` + +- 执行以下命令根据指定的json文件创建存储后端,json文件仅支持通过json格式导出huawei-csi-configmap文件。 + + ``` + oceanctl create backend -f /path/to/configmap.json -i json + ``` + +- 执行以下命令在指定命名空间创建一个存储后端。 + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml -n + ``` + +- 执行以下命令创建存储后端,并忽略存储后端名称校验,例如大写和字符“\_”,非必要请勿使用该命令。 + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml --not-validate-name + ``` + +- 执行以下命令创建存储后端,并指定provisioner,其中“csi.oceanstor.com”是安装时指定的驱动名称,详情可以参考[4](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/installing-huawei-csi-on-the-cce-or-cce-agile-platform#li4307135252018)。 + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >仅在CCE或CCE Agile平台创建后端时使用该命令。 + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml --provisioner=csi.oceanstor.com + ``` + +## 查询存储后端{#section1746114212110} + +- 执行以下命令获取查询后端帮助。 + + ``` + oceanctl get backend -h + ``` + +- 执行以下命令查询默认命名空间下单个存储后端。 + + ``` + oceanctl get backend + ``` + +- 执行以下命令查询指定命名空间下所有存储后端。 + + ``` + oceanctl get backend -n + ``` + +- 执行以下命令格式化输出,当前支持json,yaml和wide。 + + ``` + oceanctl get backend -o json + ``` + +## 更新存储后端{#section20491912142516} + +- 执行以下命令获取更新后端帮助。 + + ``` + oceanctl update backend -h + ``` + +- 执行以下命令更新默认命名空间下指定存储后端信息。 + + ``` + oceanctl update backend --password + ``` + +- 执行以下命令更新指定命名空间存储后端信息。 + + ``` + oceanctl update backend -n --password + ``` + +## 删除存储后端{#section1473712371285} + +- 执行以下命令获取删除后端帮助。 + + ``` + oceanctl delete backend -h + ``` + +- 执行以下命令删除默认命名空间下指定存储后端。 + + ``` + oceanctl delete backend + ``` + +- 执行以下命令删除默认命名空间下所有存储后端。 + + ``` + oceanctl delete backend --all + ``` + +- 执行以下命令删除指定命名空间下存储后端。 + + ``` + oceanctl delete backend -n + ``` + +## 创建存储后端证书{#section16801122125214} + +- 执行以下命令获取查询证书帮助。 + + ``` + oceanctl create cert -h + ``` + +- 执行以下命令根据指定的crt证书文件为默认命名空间单个存储后端创建证书。 + + ``` + oceanctl create cert -f /path/to/cert.crt -b + ``` + +- 执行以下命令根据指定的crt证书文件为指定命名空间单个存储后端创建证书。 + + ``` + oceanctl create cert -f /path/to/cert.crt -b -n + ``` + +- 执行以下命令根据指定的pem证书文件为指定命名空间单个存储后端创建证书。 + + ``` + oceanctl create cert -f /path/to/cert.pem -b -n + ``` + +## 查询存储后端证书{#section11544144412475} + +- 执行以下命令获取查询证书帮助。 + + ``` + oceanctl get cert -h + ``` + +- 执行以下命令查询默认命名空间指定存储后端的证书。 + + ``` + oceanctl get cert -b + ``` + +- 执行以下命令查询指定命名空间下指定存储后端的证书。 + + ``` + oceanctl get cert -b -n + ``` + +## 更新存储后端证书{#section1215513912218} + +- 执行以下命令获取更新证书帮助。 + + ``` + oceanctl update cert -h + ``` + +- 执行以下命令根据指定的crt证书文件为默认命名空间指定存储后端更新证书。 + + ``` + oceanctl update cert -b -f /path/to/cert.crt + ``` + +- 执行以下命令根据指定的crt证书文件为指定命名空间指定存储后端更新证书。 + + ``` + oceanctl update cert -b -n -f /path/to/cert.crt + ``` + +- 执行以下命令根据指定的pem证书文件为指定命名空间指定存储后端更新证书。 + + ``` + oceanctl update cert -b -n -f /path/to/cert.pem + ``` + +## 删除存储后端证书{#section1394334712223} + +- 执行以下命令获取删除证书帮助。 + + ``` + oceanctl delete cert -h + ``` + +- 执行以下命令删除默认命名空间指定存储后端的证书。 + + ``` + oceanctl delete cert -b + ``` + +- 执行以下命令删除指定命名空间指定存储后端的证书。 + + ``` + oceanctl delete cert -b -n + ``` + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/_index.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/_index.md new file mode 100644 index 0000000..7790584 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/_index.md @@ -0,0 +1,17 @@ +--- +title: "管理存储后端" +linkTitle: "管理存储后端" +description: +weight: 1 +--- + +本章节介绍如何创建存储后端,当前支持根据配置的后端yaml文件和导出的configmap.json文件两种方式创建后端。 + +如果通过新增后端yaml文件创建后端,请参考[典型场景存储后端配置文件示例](/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios)章节配置后端文件。 + +如果已存在导出的configmap.json文件,请参考[创建存储后端](/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend)章节创建存储后端。 + + + + + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md new file mode 100644 index 0000000..f9b31c7 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/_index.md @@ -0,0 +1,94 @@ +--- +title: "创建存储后端" +linkTitle: "创建存储后端" +description: +weight: 1 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>1. 使用oceanctl创建存储后端时,输入的账号和秘钥信息保存在[Secret](https://kubernetes.io/zh-cn/docs/concepts/configuration/secret/)对象中,建议客户容器平台根据供应商或者K8s社区的建议自行对Secret进行加密。K8s社区对Secret加密可参考[启用静态加密](https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/encrypt-data/)。 +>2. 通过json文件创建后端时,旧版本的backend名称中可能存在大写字母或"\_"字符。如果出现这种情况,旧的名称将会被重映射为一个新的名称,映射过程自动发生,不会影响原有功能。例如“ABC\_123”将会被映射为“abc-123-fd68e”,具体映射规则如下: +> - 大写字母转换成小写字母。 +> - "\_"字符转换成“-”字符。 +> - 末尾追加5位Hash码。 +>3. 当存储后端对接租户时,在存储后端创建完成后,不允许修改租户名称。 + +## 操作步骤{#section193534374443} + +1. 参考[典型场景存储后端配置文件示例](/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios)章节准备后端配置文件,如backend.yaml,若需创建多个后端,请使用'"---"分隔。 + + ``` + storage: "oceanstor-san" + name: "backend-1" + namespace: "huawei-csi" + urls: + - "https://192.168.129.157:8088" + pools: + - "StoragePool001" + parameters: + protocol: "roce" + portals: + - "10.10.30.20" + - "10.10.30.21" + maxClientThreads: "30" + --- + storage: "oceanstor-san" + name: "backend-2" + namespace: "huawei-csi" + urls: + - "https://192.168.129.158:8088" + pools: + - "StoragePool001" + parameters: + protocol: "roce" + portals: + - "10.10.30.20" + - "10.10.30.21" + maxClientThreads: "30" + ``` + +2. 执行以下命令创建存储后端。 + + ``` + oceanctl create backend -f /path/to/backend.yaml -i yaml + ``` + + 命令结果示例如下: + + ``` + NUMBER CONFIGURED NAME STORAGE URLS + 1 false backend-1 oceanstor-san https://192.168.129.157:8088 + 2 false backend-2 oceanstor-san https://192.168.129.158:8088 + Please enter the backend number to configure (Enter 'exit' to exit): + ``` + +3. 输入待创建后端序号,并输入账号密码。 + + ``` + Please enter the backend number to configure (Enter 'exit' to exit):1 + Please enter this backend user name:admin + Please enter this backend password: + + Backend backend-1 is configured + NUMBER CONFIGURED NAME STORAGE URLS + 1 true backend-1 oceanstor-san https://192.168.129.157:8088 + 2 false backend-2 oceanstor-san https://192.168.129.158:8088 + Please enter the backend number to configure (Enter 'exit' to exit): + ``` + +4. 检查存储后端创建结果。 + + ``` + oceanctl get backend + ``` + + 命令结果示例如下,后端状态为“Bound“则创建成功。 + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + + + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md new file mode 100644 index 0000000..be1e5ea --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/examples-of-storage-backend-configuration-files-in-typical-scenarios.md @@ -0,0 +1,277 @@ +--- +title: "典型场景存储后端配置文件示例" +linkTitle: "典型场景存储后端配置文件示例" +description: +weight: 1 +--- + +典型场景的backend配置请参考下列示例,详细的参数配置请参考[存储后端配置项说明](/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters)。 + +- [配置iSCSI协议类型的存储后端](#section9560112218344) +- [配置FC协议类型的存储后端](#section4385132433717) +- [配置NVMe over RoCE协议类型的存储后端](#section887724419372) +- [配置NVMe over FC协议类型的存储后端](#section11434793492) +- [配置NFS协议类型的存储后端](#section13980125055717) +- [配置SCSI协议类型的存储后端](#section51803398537) +- [配置DPC协议类型的存储后端](#section1094123525411) +- [配置Dtree类型的存储后端](#section6768010203620) +- [配置双活类型的存储后端](#section175945335494) + +## 配置iSCSI协议类型的存储后端{#section9560112218344} + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>如果要使用iSCSI协议类型,请确保在安装华为CSI前,主机上已安装iSCSI客户端,可通过[检查主机依赖软件状态](/v4.5.0/installation-and-deployment/installation-preparations/checking-the-status-of-host-dependent-software)章节检查。如未安装iSCSI客户端,请在安装iSCSI客户端之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: +>``` +>kubectl delete pods -n huawei-csi -l app=huawei-csi-node +>``` + +企业存储配置iSCSI协议类型的后端配置文件示例如下: + +```yaml +storage: "oceanstor-san" +name: "dorado-iscsi-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "iscsi" + portals: + - "192.168.128.120" + - "192.168.128.121" +maxClientThreads: "30" +``` + +分布式存储配置iSCSI协议类型的后端配置文件示例如下: + +```yaml +storage: "fusionstorage-san" +name: "pacific-iscsi-125" +namespace: "huawei-csi" +urls: + - "https://192.168.129.125:8088" + - "https://192.168.129.126:8088" +pools: + - "StoragePool001" +parameters: + protocol: "iscsi" + portals: + - "192.168.128.122" + - "192.168.128.123" +maxClientThreads: "30" +``` + +## 配置FC协议类型的存储后端{#section4385132433717} + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>如果要使用FC协议类型,请确保在安装华为CSI前,主机和存储的FC网络已联通,如未FC网络未打通,请在打通FC网络之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: +>``` +>kubectl delete pods -n huawei-csi -l app=huawei-csi-node +>``` + +企业存储配置FC协议类型的后端配置文件示例如下: + +```yaml +storage: "oceanstor-san" +name: "fc-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "fc" +maxClientThreads: "30" +``` + +## 配置NVMe over RoCE协议类型的存储后端{#section887724419372} + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>如果要使用NVMe over RoCE协议类型,请确保在安装华为CSI前,主机和存储的NVMe over RoCE网络已联通,如未NVMe over RoCE网络未打通,请在打通NVMe over RoCE网络之后重启huawei-csi-node服务,重启期间,不能使用华为CSI创建新的资源,或者对已有的PVC做挂载/卸载操作。参考命令如下: +>``` +>kubectl delete pods -n huawei-csi -l app=huawei-csi-node +>``` + +企业存储配置NVMe over RoCE协议类型的后端配置文件示例如下: + +```yaml +storage: "oceanstor-san" +name: "roce-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "roce" + portals: + - "192.168.128.120" + - "192.168.128.121" +maxClientThreads: "30" +``` + +## 配置NVMe over FC协议类型的存储后端{#section11434793492} + +企业存储配置NVMe over FC协议类型的后端配置文件示例如下: + +```yaml +storage: "oceanstor-san" +name: "fc-nvme-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "fc-nvme" +maxClientThreads: "30" +``` + +## 配置NFS协议类型的存储后端{#section13980125055717} + +企业存储配置NFS协议类型的后端配置文件示例如下: + +```yaml +storage: "oceanstor-nas" +name: "nfs-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "nfs" + portals: + - "192.168.128.155" +maxClientThreads: "30" +``` + +分布式存储配置NFS协议类型的后端配置文件示例如下: + +```yaml +storage: "fusionstorage-nas" +name: "nfs-126" +namespace: "huawei-csi" +urls: + - "https://192.168.129.125:8088" + - "https://192.168.129.126:8088" +pools: + - "StoragePool001" +parameters: + protocol: "nfs" + portals: + - "192.168.128.123" +maxClientThreads: "30" +``` + +## 配置SCSI协议类型的存储后端{#section51803398537} + +分布式存储配置SCSI协议类型的后端配置文件示例如下: + +```yaml +storage: "fusionstorage-san" +name: "scsi-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" +pools: + - "StoragePool001" +parameters: + protocol: "scsi" + portals: + - {"hostname01": "192.168.125.21","hostname02": "192.168.125.22"} +maxClientThreads: "30" +``` + +## 配置DPC协议类型的存储后端{#section1094123525411} + +分布式存储配置DPC协议类型的后端配置文件示例如下: + +```yaml +storage: "fusionstorage-nas" +name: "dpc-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +parameters: + protocol: "dpc" +maxClientThreads: "30" +``` + +## 配置Dtree类型的存储后端{#section6768010203620} + +企业存储配置Dtree类型后端配置文件示例如下: + +```yaml +storage: "oceanstor-dtree" +name: "nfs-dtree" +namespace: "huawei-csi" +urls: +- "https://192.168.129.155:8088" +parameters: + protocol: "nfs" + parentname: "parent-filesystem" + portals: + - "192.168.128.155" +maxClientThreads: "30" +``` + +## 配置双活类型的存储后端{#section175945335494} + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- 配置NAS双活前,需要在两台存储设备之间配置双活关系,包含远端设备、双活域等,仅支持文件系统双活域工作模式为双活AA模式,配置操作请参考对应存储型号的产品文档。 +>- 对接NAS双活后端的账号必须为存储租户的租户管理员账号。 +>- 除NAS双活后端外,其他后端的管理URL不能配置为在已建立双活关系的租户的逻辑管理端口的URL。 +>- 使用双活类型的存储后端时,请勿发放普通文件系统。否则,在逻辑端口漂移场景下,有业务中断的风险。 + +CSI支持在对接OceanStor或OceanStor Dorado,并在存储侧发放NFS类型的双活卷时。需要配置互为双活的存储后端,具体操作为分别创建两个配置文件,逐一创建后端。 + +本示例展示了如何为华为OceanStor或OceanStor Dorado存储配置双活类型的后端。首先创建本端的存储后端配置文件nfs-hypermetro-155.yaml: + +```yaml +storage: "oceanstor-nas" +name: "nfs-hypermetro-155" +namespace: "huawei-csi" +urls: + - "https://192.168.129.155:8088" + - "https://192.168.129.156:8088" +pools: + - "StoragePool001" +metrovStorePairID: "f09838237b93c000" +metroBackend: "nfs-hypermetro-157" +parameters: + protocol: "nfs" + portals: + - "192.168.129.155" +maxClientThreads: "30" +``` + +创建本端后端完成后,创建远端的存储后端配置文件nfs-hypermetro-157.yaml: + +```yaml +storage: "oceanstor-nas" +name: "nfs-hypermetro-157" +namespace: "huawei-csi" +urls: + - "https://192.168.129.157:8088" + - "https://192.168.129.158:8088" +pools: + - "StoragePool001" +metrovStorePairID: "f09838237b93c000" +metroBackend: "nfs-hypermetro-155" +parameters: + protocol: "nfs" + portals: + - "192.168.129.157" +maxClientThreads: "30" +``` + diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\351\241\271\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md similarity index 98% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\351\241\271\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md index ff12353..ca7ce53 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\345\210\233\345\273\272\345\255\230\345\202\250\345\220\216\347\253\257/\345\255\230\345\202\250\345\220\216\347\253\257\351\205\215\347\275\256\351\241\271\350\257\264\346\230\216.md" +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend/storage-backend-parameters.md @@ -133,7 +133,7 @@ weight: 2

    -

    如果主机多路径配置启用了ALUA,请确保后端ALUA配置和主机的ALUA配置一致。

    -

    ALUA详细配置请参考通过Helm配置ALUA特性

    +

    ALUA详细配置请参考通过Helm配置ALUA特性

    parameters.parentname

    @@ -180,7 +180,7 @@ weight: 2

    -

    -

    如果启用存储拓扑感知,需要配置该参数。具体请参考通过Helm配置存储拓扑感知

    +

    如果启用存储拓扑感知,需要配置该参数。具体请参考通过Helm配置存储拓扑感知

    maxClientThreads

    diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md new file mode 100644 index 0000000..add5fe0 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend.md @@ -0,0 +1,44 @@ +--- +title: "删除存储后端" +linkTitle: "删除存储后端" +description: +weight: 4 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>正在执行卷管理操作期间,请勿删除存储后端。 + +## 删除后端示例{#section20764568435} + +1. 执行以下命令获取存储后端。 + + ``` + oceanctl get backend + ``` + + 命令结果示例如下: + + ``` + NAMESPACE NAME PROTOCOL STORAGETYPE SN STATUS ONLINE URL + huawei-csi backend-1 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.157:8088 + huawei-csi backend-2 roce oceanstor-san xxxxxxxxxxxxxxxxxxxx Bound true https://192.168.129.158:8088 + ``` + +2. 执行以下命令删除指定存储后端。 + + ``` + oceanctl delete backend backend-1 + ``` + +3. 执行以下命令检查删除结果。 + + ``` + oceanctl get backend backend-1 + ``` + + 命令结果示例如下,如果回显为“not found”则删除成功。 + + ```yaml + Error from server (NotFound): backend "backend-1" not found + ``` + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md new file mode 100644 index 0000000..d99a2ac --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/querying-a-storage-backend.md @@ -0,0 +1,9 @@ +--- +title: "查询存储后端" +linkTitle: "查询存储后端" +description: +weight: 2 +--- + +请参考[查询存储后端](/v4.5.0/storage-backend-management/description-of-oceanctl-commands#section1746114212110)节,使用oceanctl命令查询存储后端信息。 + diff --git "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md similarity index 64% rename from "content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" rename to content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md index c2d9beb..9456217 100644 --- "a/content/zh-cn/docs/\345\255\230\345\202\250\345\220\216\347\253\257\347\256\241\347\220\206/\347\256\241\347\220\206\345\255\230\345\202\250\345\220\216\347\253\257/\346\233\264\346\226\260\345\255\230\345\202\250\345\220\216\347\253\257/_index.md" +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/_index.md @@ -5,9 +5,9 @@ description: weight: 3 --- ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 当前使用oceanctl更新存储后端信息时,仅支持更新存储后端密码。 ->- 若在存储侧更新了后端的账号密码,CSI插件会因登录失败而重试,可能会导致账号被锁定。如果账号被锁定,请参考[存储侧更新密码后账户被锁定](/docs/故障处理/存储后端相关问题/存储侧更新密码后账户被锁定)章节修改。 +>- 若在存储侧更新了后端的账号密码,CSI插件会因登录失败而重试,可能会导致账号被锁定。如果账号被锁定,请参考[存储侧更新密码后账户被锁定](/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device)章节修改。 diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md new file mode 100644 index 0000000..ff57612 --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/manually-updating-a-storage-backend.md @@ -0,0 +1,18 @@ +--- +title: "手动更新存储后端" +linkTitle: "手动更新存储后端" +description: +weight: 2 +--- + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>- PVC发放需要基于已配置的存储后端,因此当存储后端已经发放PVC时,请勿随便修改存储后端。 +>- 名称是存储后端的唯一标识,已发放PVC的存储后端不允许修改名称。 +>- 存储后端修改后,新增配置仅作用于新发放的卷。 +>- 存储后端修改期间,请勿执行卷管理操作。 + +## 操作步骤{#section1223254955011} + +1. 参考[删除存储后端](/v4.5.0/storage-backend-management/managing-storage-backends/deleting-a-storage-backend)章节,删除待修改存储后端。 +2. 参考[创建存储后端](/v4.5.0/storage-backend-management/managing-storage-backends/creating-a-storage-backend)章节,创建同名存储后端,存储后端名称不可变更。 + diff --git a/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md new file mode 100644 index 0000000..36c43de --- /dev/null +++ b/content/zh-cn/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend/updating-the-password-of-a-storage-backend-using-oceanctl.md @@ -0,0 +1,51 @@ +--- +title: "oceanctl更新存储后端密码" +linkTitle: "oceanctl更新存储后端密码" +description: +weight: 1 +--- + +## 更新后端示例{#section1968753944018} + +1. 执行以下命令获取更新存储后端帮助。 + + ``` + oceanctl update backend -h + ``` + + 命令结果示例如下: + + ``` + Update a backend for Ocean Storage in Kubernetes + + Usage: + oceanctl update backend [flags] + + Examples: + # Update backend account information in default(huawei-csi) namespace + oceanctl update backend --password + + # Update backend account information in specified namespace + oceanctl update backend -n namespace --password + + Flags: + -h, --help help for backend + -n, --namespace string namespace of resources + --password Update account password + ``` + +2. 执行以下命令更新存储后端信息。 + + ``` + oceanctl update backend backend-1 --password + ``` + + 根据提示输入用户名和新密码: + + ``` + Please enter this backend user name:admin + Please enter this backend password: + + backend/backend-1 updated + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/_index.md b/content/zh-cn/v4.5.0/troubleshooting/_index.md new file mode 100644 index 0000000..5049271 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/_index.md @@ -0,0 +1,12 @@ +--- +title: "故障处理" +linkTitle: "故障处理" +description: +weight: 10 +--- + + + + + + diff --git a/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md new file mode 100644 index 0000000..0b688c2 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/_index.md @@ -0,0 +1,17 @@ +--- +title: "对接Tanzu Kubernetes集群常见问题及解决方法" +linkTitle: "对接Tanzu Kubernetes集群常见问题及解决方法" +description: +weight: 5 +--- + +本章节用于说明对接Tanzu Kubernetes集群时常见问题及解决办法,目前对接Tanzu Kubernetes集群时主要有以下三个问题: + +- 未创建PSP权限导致Pod无法创建 +- 主机挂载点与原生Kubernetes不同导致挂载卷失败 +- livenessprobe容器端口与Tanzu vSphere端口冲突导致容器不断重启 + + + + + diff --git a/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md new file mode 100644 index 0000000..f801b7a --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/a-pod-cannot-be-created-because-the-psp-permission-is-not-created.md @@ -0,0 +1,60 @@ +--- +title: "未创建PSP权限导致Pod无法创建" +linkTitle: "未创建PSP权限导致Pod无法创建" +description: +weight: 1 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +创建huawei-csi-controller和huawei-csi-node时,仅Deployment和DaemonSet资源创建成功,controller和node的Pod未创建。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +创建资源使用的service account没有PSP策略的“use”权限。 + +## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行**vi** _psp-use.yaml_ 命令, 创建psp-use.yaml文件。 + + ``` + vi psp-use.yaml + ``` + +3. 配置psp-use.yaml文件。 + + ``` + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRole + metadata: + name: huawei-csi-psp-role + rules: + - apiGroups: ['policy'] + resources: ['podsecuritypolicies'] + verbs: ['use'] + --- + apiVersion: rbac.authorization.k8s.io/v1 + kind: ClusterRoleBinding + metadata: + name: huawei-csi-psp-role-cfg + roleRef: + kind: ClusterRole + name: huawei-csi-psp-role + apiGroup: rbac.authorization.k8s.io + subjects: + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:huawei-csi + - kind: Group + apiGroup: rbac.authorization.k8s.io + name: system:serviceaccounts:default + + ``` + +4. 执行以下命令,创建PSP权限。 + + ``` + kubectl create -f psp-use.yaml + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md new file mode 100644 index 0000000..79a25ae --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-default-port-of-the-livenessprobe-container.md @@ -0,0 +1,34 @@ +--- +title: "修改livenessprobe容器的默认端口" +linkTitle: "修改livenessprobe容器的默认端口" +description: +weight: 3 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +huawei-csi-controller组件中livenessprobe容器一直重启。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +huawei-csi-controller的livenessprobe容器的默认端口(9808)与已有的Tanzu的vSphere CSI端口冲突。 + +## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} + +将livenessprobe容器的默认端口修改为未占用端口。 + +1. 进入“helm/esdk”目录,执行**vi values.yaml**命令打开配置文件。 + + ``` + vi values.yaml + ``` + +2. 将controller.livenessProbePort默认值9808修改为其他未占用端口,例如改为9809。 + + ```yaml + controller: + livenessProbePort: 9809 + ``` + +3. 使用Helm更新华为CSI,具体信息请参考[升级华为CSI](/v4.5.0/installation-and-deployment/upgrading-or-rolling-back-huawei-csi/upgrading-or-rolling-back-huawei-csi-using-helm/upgrading-huawei-csi)。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md new file mode 100644 index 0000000..eb50261 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/changing-the-mount-point-of-a-host.md @@ -0,0 +1,32 @@ +--- +title: "修改主机挂载点" +linkTitle: "修改主机挂载点" +description: +weight: 2 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +创建Pod时失败,华为CSI日志中报错“mount point does not exist”。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +huawei-csi-node中的“pods-dir”目录原生Kubernetes集群与Tanzu Kubernetes集群不一致。 + +## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} + +1. 进入helm/esdk/目录,执行**vi values.yaml**命令打开配置文件。 + + ``` + vi values.yaml + ``` + +2. 将kubeletConfigDir参数修改为kubelet实际的安装目录。 + + ```yaml + # Specify kubelet config dir path. + # kubernetes and openshift is usually /var/lib/kubelet + # Tanzu is usually /var/vcap/data/kubelet + kubeletConfigDir: /var/vcap/data/kubelet + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md new file mode 100644 index 0000000..b1b6b25 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/common-problems-and-solutions-for-interconnecting-with-the-tanzu-kubernetes-cluster/failed-to-create-an-ephemeral-volume.md @@ -0,0 +1,64 @@ +--- +title: "创建临时卷失败" +linkTitle: "创建临时卷失败" +description: +weight: 4 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +创建[通用临时卷](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes)失败,报错PodSecurityPolicy: unable to admit pod: \[spec.volumes\[0\]: Invalid value: "ephemeral": ephemeral volumes are not allowed to be used spec.volumes\[0\] + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +当前使用的PSP策略中没有使用“ephemeral”卷的权限。 + +## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} + +在默认PSP "pks-privileged"和"pks-restricted"中增加使用“ephemeral”卷的权限,以修改"pks-privileged"举例: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行命令, 修改pks-privileged的配置。 + + ``` + kubectl edit psp pks-privileged + ``` + +3. 在spec.volumes中增加“ephemeral”,示例如下: + + ```yaml + # Please edit the object below. Lines beginning with a '#' will be ignored, + # and an empty file will abort the edit. If an error occurs while saving this file will be + # reopened with the relevant failures. + # + apiVersion: policy/v1beta1 + kind: PodSecurityPolicy + metadata: + annotations: + apparmor.security.beta.kubernetes.io/allowedProfileName: '*' + seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' + creationTimestamp: "2022-10-11T08:07:00Z" + name: pks-privileged + resourceVersion: "1227763" + uid: 2f39c44a-2ce7-49fd-87ca-2c5dc3bfc0c6 + spec: + allowPrivilegeEscalation: true + allowedCapabilities: + - '*' + supplementalGroups: + rule: RunAsAny + volumes: + - glusterfs + - hostPath + - iscsi + - nfs + - persistentVolumeClaim + - ephemeral + ``` + +4. 执行命令,确认是否添加成功。 + + ``` + kubectl get psp pks-privileged -o yaml + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md new file mode 100644 index 0000000..934611f --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/_index.md @@ -0,0 +1,10 @@ +--- +title: "华为CSI服务相关问题" +linkTitle: "华为CSI服务相关问题" +description: +weight: 1 +--- + + + + diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi\346\234\215\345\212\241\346\227\266-\346\234\215\345\212\241\345\220\257\345\212\250\345\274\202\345\270\270-\347\212\266\346\200\201\346\230\276\347\244\272InvalidImageName.md" b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md similarity index 87% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi\346\234\215\345\212\241\346\227\266-\346\234\215\345\212\241\345\220\257\345\212\250\345\274\202\345\270\270-\347\212\266\346\200\201\346\230\276\347\244\272InvalidImageName.md" rename to content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md index af19f05..77b3332 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\215\216\344\270\272CSI\346\234\215\345\212\241\347\233\270\345\205\263\351\227\256\351\242\230/\345\220\257\345\212\250huawei-csi\346\234\215\345\212\241\346\227\266-\346\234\215\345\212\241\345\220\257\345\212\250\345\274\202\345\270\270-\347\212\266\346\200\201\346\230\276\347\244\272InvalidImageName.md" +++ b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-huawei-csi-services-with-the-status-displayed-as-invalidimagename.md @@ -13,7 +13,7 @@ weight: 3 kubectl get pod -A | grep huawei ``` -命令结果示例如下。 +命令结果示例如下: ``` huawei-csi huawei-csi-controller-fd5f97768-qlldc 6/9 InvalidImageName 0 16s @@ -34,13 +34,13 @@ controller和node的yaml配置文件中,配置Huawei CSI的镜像版本号错 ## 解决措施或规避方法{#zh-cn_topic_0000001205368783_section350653016492} 1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 -2. 执行以下命令,修改huawei-csi-node服务的配置文件。按**I**或**Insert**进入编辑状态,修改相关参数。修改完成后,按**Esc**,并输入 **:wq!** ,保存修改。 +2. 执行以下命令,修改huawei-csi-node服务的配置文件。按**I**或**Insert**进入编辑状态,修改相关参数。修改完成后,按**Esc**,并输入 **:wq!**,保存修改。 ``` kubectl edit daemonset huawei-csi-node -o yaml -n=huawei-csi ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- 示例yaml文件中huawei-csi-driver的参数image配置项,修改华为CSI镜像huawei-csi:4.5.0。 > ``` > containers: @@ -49,13 +49,13 @@ controller和node的yaml配置文件中,配置Huawei CSI的镜像版本号错 > image: huawei-csi:4.5.0 > ``` -3. 执行以下命令,修改huawei-csi-controller服务的配置文件。按**I**或**Insert**进入编辑状态,修改相关参数。修改完成后,按**Esc**,并输入 **:wq!** ,保存修改。 +3. 执行以下命令,修改huawei-csi-controller服务的配置文件。按**I**或**Insert**进入编辑状态,修改相关参数。修改完成后,按**Esc**,并输入 **:wq!** ,保存修改。 ``` kubectl edit deployment huawei-csi-controller -o yaml -n=huawei-csi ``` - >![](/css-docs/public_sys-resources/zh/icon-note.gif) + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- 示例yaml文件中huawei-csi-driver的参数image配置项,修改华为CSI镜像huawei-csi:4.5.0。 > ``` > containers: @@ -71,7 +71,7 @@ controller和node的yaml配置文件中,配置Huawei CSI的镜像版本号错 kubectl get pod -A | grep huawei ``` - 命令结果示例如下。Pod状态为“Running“说明服务启动成功。 + 命令结果示例如下,Pod状态为“Running“说明服务启动成功。 ``` huawei-csi huawei-csi-controller-58799449cf-zvhmv 9/9 Running 0 2m29s diff --git a/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md new file mode 100644 index 0000000..e4b6093 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/failed-to-start-the-huawei-csi-node-service-with-error-message-var-lib-iscsi-is-not-a-directory-repo.md @@ -0,0 +1,49 @@ +--- +title: "启动huawei-csi-node失败,提示错误为:“/var/lib/iscsi is not a directory”" +linkTitle: "启动huawei-csi-node失败,提示错误为:“/var/lib/iscsi is not a directory”" +description: +weight: 1 +--- + +## 现象描述{#zh-cn_topic_0000001086137838_section1566717121452} + +启动huawei-csi-node时,无法启动huawei-csi-node服务, 使用**kubectl describe daemonset huawei-csi-node -n huawei-csi**命令查看,提示错误为:“/var/lib/iscsi is not a directory”。 + +## 根因分析{#zh-cn_topic_0000001086137838_section1425013451056} + +huawei-csi-node中容器内部无/var/lib/iscsi目录。 + +## 解决措施或规避方法{#zh-cn_topic_0000001086137838_section350653016492} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 进入Helm工程的目录下,如果无法找到之前的Helm工程,则将组件包中的helm目录拷贝到master节点的任意目录下,组件包路径请参考[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +3. 进入下一级目录templates,找到huawei-csi-node.yaml文件。 + + ``` + cd /templates + ``` + +4. 执行以下命令,将huawei-csi-node.yaml \> volumes \> iscsi-dir \> hostPath中“path“设置为“/var/lib/iscsi“ ,然后保存并退出文件。 + + ``` + vi huawei-csi-node.yaml + ``` + +5. 执行以下命令升级Helm chart。升级命令将更新Deployment、DaemonSet和RBAC资源。其中,helm-huawei-csi为自定义的chart名称,huawei-csi为自定义的命名空间。 + + ``` + helm upgrade helm-huawei-csi ./ -n huawei-csi -f values.yaml + ``` + + 命令结果示例如下: + + ``` + Release "helm-huawei-csi" has been upgraded. Happy Helming! + NAME: helm-huawei-csi + LAST DEPLOYED: Thu Jun 9 07:58:15 2022 + NAMESPACE: huawei-csi + STATUS: deployed + REVISION: 2 + TEST SUITE: None + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md new file mode 100644 index 0000000..a9d8e75 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/huawei-csi-service-issues/huawei-csi-services-fail-to-be-started-and-error-message-etc-localtime-is-not-a-file-is-displayed.md @@ -0,0 +1,93 @@ +--- +title: "启动华为CSI服务失败,提示错误:“/etc/localtime is not a file”" +linkTitle: "启动华为CSI服务失败,提示错误:“/etc/localtime is not a file”" +description: +weight: 2 +--- + +## 现象描述{#zh-cn_topic_0000001086137838_section1566717121452} + +安装部署CSI时,Pod运行不起来,处于ContainerCreating状态,查看Pod中有打印告警事件:/etc/localtime is not a file。 + +## 根因分析{#zh-cn_topic_0000001086137838_section1425013451056} + +容器挂载主机/etc/localtime文件时,识别类型有误,容器挂载不上主机侧/etc/localtime文件,导致Pod运行不起来。 + +## 操作步骤{#section158611659145513} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行命令,查看CSI服务Pod运行状态。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 命令结果示例如下,其中huawei-csi为CSI服务部署的命名空间。 + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjtq 9/9 ContainerCreating 0 24m + huawei-csi-controller-6dfcc4b79f-csphc 9/9 ContainerCreating 0 24m + huawei-csi-node-g6f4k 3/3 ContainerCreating 0 20m + huawei-csi-node-tqs87 3/3 ContainerCreating 0 20m + ``` + +3. 执行命令,通过查看容器的“Events”参数。 + + ``` + kubectl describe pod huawei-csi-controller-6dfcc4b79f-9vjtq -n huawei-csi + ``` + + 命令结果示例如下。其中,_huawei-csi-controller-6dfcc4b79f-9vjtq_ 为[2](#li131611149192013)中查找到的状态显示为“ContainerCreating”的Pod名称,huawei-csi为该Pod所在的命名空间。 + + ``` + ... + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Scheduled 96s default-scheduler Successfully assigned huawei-csi/huawei-csi-controller-6dfcc4b79f-9vjtq to node1 + Warning FailedMount 33s (x8 over 96s) kubelet MountVolume.SetUp failed for volume "host-time" : hostPath type check failed: /etc/localtime is not a file + ``` + +4. 执行命令**cd /helm/esdk/templates**,进入到CSI的安装包路径下。路径请参见[表1](/v4.5.0/installation-and-deployment/installation-preparations/downloading-the-huawei-csi-software-package#zh-cn_topic_0150885197_table17200162435412)。 +5. 以huawei-csi-controller.yaml文件为例,执行以下命令,查看文件内容。 + + ``` + vi huawei-csi-controller.yaml + ``` + + 找到对应volumes配置下的host-time挂载项,删除**type: File**这一行配置内容。对**templates**目录下涉及该配置项的huawei-csi-node.yaml部署文件,执行相同的操作。 + + ``` + ... + ... + volumes: + - hostPath: + path: /var/log/ + type: Directory + name: log + - hostPath: + path: /etc/localtime + type: File + name: host-time + ... + ... + ``` + +6. 参考[Helm卸载华为CSI](/v4.5.0/installation-and-deployment/uninstalling-huawei-csi/uninstalling-huawei-csi-using-helm)卸载服务后,重新安装服务。 +7. 执行以下命令,查看华为CSI服务Pod运行状态为Running。 + + ``` + kubectl get pod -n huawei-csi + ``` + + 命令结果示例如下: + + ``` + NAME READY STATUS RESTARTS AGE + huawei-csi-controller-6dfcc4b79f-9vjts 9/9 Running 0 24m + huawei-csi-controller-6dfcc4b79f-csphb 9/9 Running 0 24m + huawei-csi-node-g6f41 3/3 Running 0 20m + huawei-csi-node-tqs85 3/3 Running 0 20m + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/_index.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/_index.md new file mode 100644 index 0000000..b88bbbb --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/_index.md @@ -0,0 +1,16 @@ +--- +title: "Pod相关问题" +linkTitle: "Pod相关问题" +description: +weight: 4 +--- + + + + + + + + + + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md new file mode 100644 index 0000000..363d093 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-message-publishinfo-doesn-t-exist-is-displayed-in-the-events-log.md @@ -0,0 +1,90 @@ +--- +title: "创建Pod失败,Events日志显示“publishInfo doesn't exist”" +linkTitle: "创建Pod失败,Events日志显示“publishInfo doesn't exist”" +description: +weight: 6 +--- + +## 现象描述{#section16564369537} + +创建Pod时,Pod一直处于ContainerCreating状态,查看Pod中有打印告警事件:rpc error: code = Internal desc = publishInfo doesn't exist。 + +## 根因分析{#section135642617536} + +按照CSI协议约定,工作负载要使用一个PV卷时,CO(Container Orchestration system,通过RPC请求与CSI插件通信)会调用CSI插件提供的[CSI协议](https://github.com/container-storage-interface/spec/blob/master/spec.md)中的“ControllerPublishVolume”接口(huawei-csi-controller服务提供)完成PV卷的映射,然后调用CSI插件提供的“NodeStageVolume”接口(huawei-csi-node服务提供)完成PV卷的挂载。导致出现“publishInfo doesn't exist”错误的原因是在一次完整的挂载时,仅huawei-csi-node服务收到了“NodeStageVolume”请求,而在此之前huawei-csi-controller服务未收到“ControllerPublishVolume”请求,导致huawei-csi-controller服务未完成PV卷的映射,没有把映射信息传递给huawei-csi-node服务。 + +## 解决措施{#section75642613539} + +解决该问题,需要触发Kubernetes调用“ControllerPublishVolume”接口。 + +如果集群中所有旧版本创建的工作负载均触发了该操作,则后续将不会出现该问题。 + +## 操作步骤{#section1883055741114} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,获取工作负载所在节点信息。 + + ``` + kubectl get pod error-pod -n error-pod-in-namespace -owide + ``` + + 命令结果示例如下: + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + pod-nfs 0/1 ContainerCreating 0 3s node-1 + ``` + +3. 将该工作负载漂移至其他节点。 +4. 若在集群内无法完成漂移,可在原节点完成工作负载重建,即进行删除-新建操作。 +5. 观察该工作负载是否成功拉起,如果拉起失败请联系华为工程师。 + +## 集群工作负载排查{#section96497192258} + +Kubernetes调用CSI插件完成卷映射时,将使用VolumeAttachment资源保存映射信息,用于表示将指定的卷从指定的节点上附加或分离。由于该问题是由于publishInfo不存在导致,因此可通过查看VolumeAttachment资源信息排查集群中其他工作负载是否存在该问题。具体步骤如下: + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,获取VolumeAttachment信息,并保留ATTACHER字段为csi.huawei.com的资源,其中csi.huawei.com为华为CSI驱动名称,可在values.yaml文件中配置,配置项为csiDriver.driverName,配置项详情描述参考[表4](/v4.5.0/installation-and-deployment/installing-huawei-csi/installing-huawei-csi-using-helm/parameters-in-the-values-yaml-file-of-helm#table188162213437)。 + + ``` + kubectl get volumeattachments.storage.k8s.io + ``` + + 命令结果示例如下: + + ``` + NAME ATTACHER PV NODE ATTACHED AGE + csi-47abxx csi.huawei.com pvc-1xx node-1 true 12h + ``` + +3. 执行以下命令查看VolumeAttachment资源详情,其中csi-47abxx为[2](#li18768174613266)中查询到的资源名称。 + + ``` + kubectl get volumeattachments.storage.k8s.io csi-47abxx -o yaml + ``` + + 命令结果示例如下: + + ``` + kind: VolumeAttachment + metadata: + annotations: + csi.alpha.kubernetes.io/node-id: '{"HostName":"node-1"}' + finalizers: + - external-attacher/csi-huawei-com + name: csi-47abxxx + uid: 0c87fa8a-c3d6-4623-acb8-71d6206d030d + spec: + attacher: csi.huawei.com + nodeName: debian-node + source: + persistentVolumeName: pvc-1xx + status: + attached: true + attachmentMetadata: + publishInfo: '{}' + ``` + +4. 若[3](#li876824620267)中查询到的资源中存在status.attachmentMetadata.publishInfo,则证明node-1节点上使用pvc-1xx创建的若干工作负载不会存在本FAQ描述的错误,其中node-1和pvc-1xx为[2](#li18768174613266)中查询结果。若status.attachmentMetadata.publishInfo不存在,请参考[解决措施](#section75642613539)章节解决。 +5. 存在多个VolumeAttachment资源时,重复执行[3](#li876824620267)\~[4](#li143811934379)。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md new file mode 100644 index 0000000..b887543 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-execution-of-the-mount-command-times-out.md @@ -0,0 +1,46 @@ +--- +title: "创建Pod失败,日志显示执行mount命令超时" +linkTitle: "创建Pod失败,日志显示执行mount命令超时" +description: +weight: 4 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +创建Pod时,Pod一直处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs)),日志显示执行mount命令超时。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +原因1:该问题可能由于配置的业务IP网络不通,导致mount命令执行超时失败。 + +原因2:对于部分操作系统,如Kylin V10 SP1和SP2,使用NFSv3从容器内执行mount命令耗时较长,导致mount命令超时并报错“error: exit status 255”,该问题可能由于容器运行时containerd的LimitNOFILE参数值过大(10亿+)。 + +原因3:可能由于网络问题导致挂载失败,CSI默认挂载超时时间为30秒,超过30秒仍挂载失败,日志会显示执行mount命令超时。 + +## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} + +1. 执行ping命令判断业务IP网络是否连通,如果无法ping通,则为原因1,请配置可用的业务IP地址,如果可以ping通,则执行[2](#li21141916181411)。 +2. 进入任意可以执行mount命令的容器中,指定使用NFSv3执行mount命令。如果命令超时,则可能是原因2,继续执行**systemctl status containerd.service**命令查看配置文件路径,然后执行**cat** _/xxx/containerd.service_命令查看配置文件。文件中如果有LimitNOFILE=infinity或LimitNOFILE的值大小为10亿,请执行[3](#li560665881414)。否则请联系华为工程师处理。 +3. 原因2可参考以下方式处理: + - 尝试使用NFSv4.0及以上协议。 + - 参考[社区修改方案](https://github.com/containerd/containerd/issues/3201),将LimitNOFILE参数值修改为合适的值。该方案将会重启容器运行时,请评估对业务的影响。 + +4. 在挂载失败的宿主机手动挂载该文件系统,如果时间超过30秒,需要用户自行排查该宿主机到存储节点网络是否存在问题。mount命令示例如下: + - 执行以下命令创建测试目录。 + + ``` + mkdir /tmp/test_mount + ``` + + - 执行mount命令,挂载文件系统,并观察耗时,其中ip:nfs\_share\_path可以从huawei-csi-node日志中获取,详情请参考[如何查看华为CSI日志](/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs) + + ``` + time mount ip:nfs_share_path /tmp/test_mount + ``` + + - 测试结束,执行以下命令解挂载文件系统 + + ``` + umount /tmp/test_mount + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md new file mode 100644 index 0000000..f85c4f9 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-fails-to-be-created-and-the-log-shows-that-the-mount-command-fails-to-be-executed.md @@ -0,0 +1,20 @@ +--- +title: "创建Pod失败,日志显示执行mount命令失败" +linkTitle: "创建Pod失败,日志显示执行mount命令失败" +description: +weight: 5 +--- + +## 现象描述{#section16564369537} + +NAS场景下,创建Pod时,Pod一直处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs)),日志显示执行mount命令失败。 + +## 根因分析{#section135642617536} + +该问题可能由于存储侧未开启NFS 4.0/4.1/4.2协议,主机在使用NFS v4协议挂载失败后,未进行协商使用NFS v3协议挂载。 + +## 解决措施或规避方法{#section75642613539} + +- 开启存储侧的NFS 3/4.0/4.1/4.2协议,重新尝试默认挂载。 +- 直接指定可用的NFS协议进行挂载,参考[动态卷供应典型场景StorageClass配置示例](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md new file mode 100644 index 0000000..1ece0e0 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/a-pod-is-in-the-containercreating-state-for-a-long-time-when-it-is-being-created.md @@ -0,0 +1,19 @@ +--- +title: "创建Pod时,Pod的状态长时间处于ContainerCreating状态" +linkTitle: "创建Pod时,Pod的状态长时间处于ContainerCreating状态" +description: +weight: 3 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +创建Pod时,Pod长时间处于ContainerCreating状态,此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs)),huawei-csi-node的日志中无创建Pod的日志记录,执行**kubectl get volumeattachment**命令后,PV列无该Pod使用的PV名称。在等待较长时间后(超过十分钟),Pod正常创建,Pod状态变为Running状态。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +该问题是因为Kubernetes的kube-controller-manager组件服务异常导致。 + +## 解决措施或规避方法{#zh-cn_topic_0000001279996521_section164471213145410} + +请联系容器平台侧工程师解决。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md new file mode 100644 index 0000000..b1c7d13 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-pod-fails-to-be-created-or-kubelet-is-restarted-logs-show-that-the-mount-point-already-exist.md @@ -0,0 +1,23 @@ +--- +title: "创建Pod失败或重启kubelet后,日志显示挂载点已存在" +linkTitle: "创建Pod失败或重启kubelet后,日志显示挂载点已存在" +description: +weight: 7 +--- + +## 现象描述{#section16564369537} + +创建Pod时,Pod一直处于ContainerCreating状态,或者重启kubelet后,日志中显示挂载点已存在。此时查看huawei-csi-node的日志信息(详情请参考[如何查看华为CSI日志](/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs)),日志提示错误为:The mount /var/lib/kubelet/pods/xxx/mount is already exist, but the source path is not /var/lib/kubelet/plugins/kubernetes.io/xxx/globalmount + +## 根因分析{#section135642617536} + +该问题的根因是Kubernetes进行重复挂载操作。 + +## 解决措施或规避方法{#section75642613539} + +执行以下命令,将已存在的路径解除挂载,其中“/var/lib/kubelet/pods/xxx/mount”为日志中提示的已存在的挂载路径。 + +``` +umount /var/lib/kubelet/pods/xxx/mount +``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md new file mode 100644 index 0000000..0474924 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source.md @@ -0,0 +1,180 @@ +--- +title: "集群中worker节点宕机并恢复后,Pod完成failover,但是Pod所在源主机出现盘符残留" +linkTitle: "集群中worker节点宕机并恢复后,Pod完成failover,但是Pod所在源主机出现盘符残留" +description: +weight: 1 +--- + +## 现象描述{#zh-cn_topic_0000001133091104_section1566717121452} + +worker节点 A上运行Pod, 并通过CSI挂载外置块设备到该Pod;异常掉电节点worker节点A; Kubernetes平台会在感知到节点故障后,将Pod切换至worker节点B;恢复worker节点A, 节点A上的盘符会从正常变为故障。 + +## 环境配置{#zh-cn_topic_0000001133091104_section87566339513} + +Kubernetes版本:1.18及以上 + +存储类型:块存储 + +## 根因分析{#zh-cn_topic_0000001133091104_section1425013451056} + +worker节点A恢复后,Kubernetes会向存储发起解除映射操作,但是不会发起主机侧的移除盘符操作。在Kubernetes解除映射后,worker节点A上就会出现盘符残留。 + +## 解决措施或规避方法{#zh-cn_topic_0000001133091104_section350653016492} + +目前的解决方法只能人工介入,手动清理掉主机的残留盘符(或者再次重启主机,利用主机重启过程中扫盘机制,清理掉残留盘符)。具体方法如下: + +1. 排查主机的残留盘符。 + 1. 执行命令,判断是否存在多路径状态异常的DM多路径设备: + + ``` + multipath -ll + ``` + + 命令结果示例如下。路径状态为failed faulty running表示异常,对应的DM多路径设备为dm-12,关联的SCSI磁盘为sdi和sdj,在配置多条路径时,会有多个SCSI磁盘。记录这些SCSI磁盘。 + + ``` + mpathb (3618cf24100f8f457014a764c000001f6) dm-12 HUAWEI ,XSG1 + size=100G features='0' hwhandler='0' wp=rw + `-+- policy='service-time 0' prio=-1 status=active + |- 39:0:0:1 sdi 8:48 failed faulty running + `- 38:0:0:1 sdj 8:64 failed faulty running + ``` + + - **是** =\> 继续执行[步骤1.2](#zh-cn_topic_0000001133091104_li4217105512811)。 + - **否** =\> 不涉及。 + + 2. 执行以下命令,判断残留的DM多路径设备是否可读。 + + ``` + dd if=/dev/dm-12 of=/dev/null count=1 bs=1M iflag=direct + ``` + + 命令结果示例如下。如果返回结果为:Input/output error,且读取数据为“0 bytes \(0 B\) copied”,表示该设备不可读。其中,_dm-xx_为[步骤1.1](#zh-cn_topic_0000001133091104_li177163210119)查到的设备号: + + ``` + dd: error reading '/dev/dm-12': Input/output error + 0+0 records in + 0+0 records out + 0 bytes (0 B) copied, 0.0236862 s, 0.0 kB/s + ``` + + - **是** =\> **记录残留的dm-xx设备以及关联磁盘号(见[步骤1.1](#zh-cn_topic_0000001133091104_li177163210119)),执行清理步骤**。 + - **命令卡死** =\> 继续执行[步骤1.3](#zh-cn_topic_0000001133091104_li6716192111111) + - **其他** =\> 联系技术支持。 + + 3. 在另一窗口再次登录该节点。 + 1. 执行以下命令,查看卡死的进程。 + + ``` + ps -ef | grep dm-12 | grep -w dd + ``` + + 命令结果示例如下: + + ``` + root 21725 9748 0 10:33 pts/10 00:00:00 dd if=/dev/dm-12 of=/dev/null count=1 bs=10M iflag=direct + ``` + + 2. 将该pid杀死。 + + ``` + kill -9 pid + ``` + + 3. 记录残留的dm-xx设备以及关联磁盘号(见[步骤1.1](#zh-cn_topic_0000001133091104_li177163210119)),执行清理步骤。 + +2. 清理主机的残留盘符。 + 1. 根据[步骤1](#zh-cn_topic_0000001133091104_li195731859152815)获取的DM多路径设备,执行命令,清理残留的多路径聚合设备信息。 + + ``` + multipath -f /dev/dm-12 + ``` + + 如果执行报错,请联系技术支持。 + + 2. 清理残留的SCSI磁盘,根据[步骤1](#zh-cn_topic_0000001133091104_li195731859152815)获取的残留磁盘的盘符,依次执行命令: + + ``` + echo 1 > /sys/block/xxxx/device/delete + ``` + + 配置多条多路径时,依次根据盘符清除,本次残留路径为sdi/sdj: + + ``` + echo 1 > /sys/block/sdi/device/delete + echo 1 > /sys/block/sdj/device/delete + ``` + + 如果执行报错,请联系技术支持。 + + 3. 确认DM多路径设备和SCSI磁盘信息是否已经清理干净。 + + 依次执行下列命令,查询的多路径和磁盘信息显示,残留的dm-12和SCSI磁盘sdi/sdj均已消失,则证明清理完成。 + + 1. 查看多路径信息。 + + ``` + multipath -ll + ``` + + 命令结果示例如下,残留的dm-12已消失: + + ``` + mpathb (3618cf24100f8f457014a764c000001f6) dm-3 HUAWEI ,XSG1 + size=100G features='0' hwhandler='0' wp=rw + `-+- policy='service-time 0' prio=-1 status=active + |- 39:0:0:1 sdd 8:48 active ready running + `- 38:0:0:1 sde 8:64 active ready running + mpathn (3618cf24100f8f457315a764c000001f6) dm-5 HUAWEI ,XSG1 + size=100G features='0' hwhandler='0' wp=rw + `-+- policy='service-time 0' prio=-1 status=active + |- 39:0:0:2 sdc 8:32 active ready running + `- 38:0:0:2 sdb 8:16 active ready running + ``` + + 2. 查看设备信息。 + + ``` + ls -l /sys/block/ + ``` + + 命令结果示例如下,SCSI磁盘sdi/sdj均已消失: + + ``` + total 0 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-0 -> ../devices/virtual/block/dm-0 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-1 -> ../devices/virtual/block/dm-1 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-2 -> ../devices/virtual/block/dm-2 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 dm-3 -> ../devices/virtual/block/dm-3 + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdb -> ../devices/platform/host35/session2/target35:0:0/35:0:0:1/block/sdb + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdc -> ../devices/platform/host34/target34:65535:5692/34:65535:5692:0/block/sdc + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdd -> ../devices/platform/host39/session6/target39:0:0/39:0:0:1/block/sdd + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sde -> ../devices/platform/host38/session5/target38:0:0/38:0:0:1/block/sde + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdh -> ../devices/platform/host39/session6/target39:0:0/39:0:0:3/block/sdh + lrwxrwxrwx 1 root root 0 Aug 11 19:56 sdi -> ../devices/platform/host38/session5/target38:0:0/38:0:0:3/block/sdi + ``` + + 3. 查看磁盘信息 + + ``` + ls -l /dev/disk/by-id/ + ``` + + 命令结果示例如下,SCSI磁盘sdi/sdj均已消失: + + ``` + total 0 + lrwxrwxrwx 1 root root 10 Aug 11 19:57 dm-name-mpathb -> ../../dm-3 + lrwxrwxrwx 1 root root 10 Aug 11 19:58 dm-name-mpathn -> ../../dm-5 + lrwxrwxrwx 1 root root 10 Aug 11 19:57 dm-uuid-mpath-3618cf24100f8f457014a764c000001f6 -> ../../dm-3 + lrwxrwxrwx 1 root root 10 Aug 11 19:58 dm-uuid-mpath-3618cf24100f8f457315a764c000001f6 -> ../../dm-5 + lrwxrwxrwx 1 root root 9 Aug 11 19:57 scsi-3618cf24100f8f457014a764c000001f6 -> ../../sdd + lrwxrwxrwx 1 root root 9 Aug 11 19:57 scsi-3618cf24100f8f45712345678000103e8 -> ../../sdi + lrwxrwxrwx 1 root root 9 Aug 3 15:17 scsi-3648435a10058805278654321ffffffff -> ../../sdb + lrwxrwxrwx 1 root root 9 Aug 2 14:49 scsi-368886030000020aff44cc0d060c987f1 -> ../../sdc + lrwxrwxrwx 1 root root 9 Aug 11 19:57 wwn-0x618cf24100f8f457014a764c000001f6 -> ../../sdd + lrwxrwxrwx 1 root root 9 Aug 11 19:57 wwn-0x618cf24100f8f45712345678000103e8 -> ../../sdi + lrwxrwxrwx 1 root root 9 Aug 3 15:17 wwn-0x648435a10058805278654321ffffffff -> ../../sdb + lrwxrwxrwx 1 root root 9 Aug 2 14:49 wwn-0x68886030000020aff44cc0d060c987f1 -> ../../sdc + ``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md new file mode 100644 index 0000000..0e64053 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/failed-to-create-a-pod-because-the-iscsi_tcp-service-is-not-started-properly-when-the-kubernetes-pla.md @@ -0,0 +1,37 @@ +--- +title: "Kubernetes平台第一次搭建时, iscsi\_tcp服务没有正常启动,导致创建Pod失败" +linkTitle: "Kubernetes平台第一次搭建时, iscsi\_tcp服务没有正常启动,导致创建Pod失败" +description: +weight: 9 +--- + +## 现象描述{#zh-cn_topic_0234872004_section1566717121452} + +创建Pod时报错,在/var/log/huawei-csi-node日志中报错“ Cannot connect ISCSI portal \*.\*.\*.\*: libkmod: kmod\_module\_insert\_module: could not find module by name='iscsi\_tcp'。 + +## 根因分析{#zh-cn_topic_0234872004_section1425013451056} + +搭建Kubernete和安装iSCSI服务后, iscsi\_tcp服务可能会被停掉,可通过执行以下命令查看服务是否被停掉。 + +``` +lsmod | grep iscsi | grep iscsi_tcp +``` + +命令结果示例如下: + +``` +iscsi_tcp 18333 6 +libiscsi_tcp 25146 1 iscsi_tcp +libiscsi 57233 2 libiscsi_tcp,iscsi_tcp +scsi_transport_iscsi 99909 3 iscsi_tcp,libiscsi +``` + +## 解决措施或规避方法{#zh-cn_topic_0234872004_section350653016492} + +执行以下命令,手动加载iscsi\_tcp服务。 + +``` +modprobe iscsi_tcp +lsmod | grep iscsi | grep iscsi_tcp +``` + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md new file mode 100644 index 0000000..c27a9bb --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/i-o-error-is-displayed-when-a-volume-directory-is-mounted-to-a-pod.md @@ -0,0 +1,19 @@ +--- +title: "Pod挂载卷目录提示I/O error" +linkTitle: "Pod挂载卷目录提示I/O error" +description: +weight: 8 +--- + +## 现象描述{#section16564369537} + +Pod对所挂载卷进行读写时,提示I/O error。 + +## 根因分析{#section135642617536} + +使用SCSI等协议时,如果Pod持续往挂载目录写入数据时,存储发生重启,导致主机上设备到存储的链路中断,触发I/O error。存储恢复时,挂载目录仍然为只读。 + +## 解决措施{#section75642613539} + +重新挂载该卷,即通过重建Pod可以触发重新挂载。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md new file mode 100644 index 0000000..8659f70 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pod-issues/when-a-pod-is-created-the-pod-is-in-the-containercreating-state.md @@ -0,0 +1,35 @@ +--- +title: "创建Pod时,Pod的状态为ContainerCreating" +linkTitle: "创建Pod时,Pod的状态为ContainerCreating" +description: +weight: 2 +--- + +## 现象描述{#zh-cn_topic_0000001163875516_section1566717121452} + +执行完成Pod的创建操作,一段时间后,Pod的状态仍然处于ContainerCreating,查看具体日志信息(详情请参考[如何查看华为CSI日志](/v4.5.0/common-operations/collecting-information/viewing-huawei-csi-logs)),报错“Fibre Channel volume device not found”。 + +## 根因分析{#zh-cn_topic_0000001163875516_section1425013451056} + +该问题是因为在主机节点有磁盘残留,导致下次创建Pod时,查找磁盘失败。 + +## 解决措施或规避方法{#zh-cn_topic_0000001163875516_section164471213145410} + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查看Pod所在节点信息。 + + ``` + kubectl get pod -o wide + ``` + + 命令结果示例如下: + + ``` + NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES + mypod 0/1 ContainerCreating 0 51s 10.244.1.224 node1 + ``` + +3. 删除Pod。 +4. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的_node1_节点。_node1_ 节点为[2](#zh-cn_topic_0000001163875516_li134903196550)中查询的节点。 +5. 移除盘符残留,详情请参考[解决措施或规避方法](/v4.5.0/troubleshooting/pod-issues/after-a-worker-node-in-the-cluster-breaks-down-and-recovers-pod-failover-is-complete-but-the-source#zh-cn_topic_0000001133091104_section350653016492)。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/_index.md b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/_index.md new file mode 100644 index 0000000..bf1ee96 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/_index.md @@ -0,0 +1,11 @@ +--- +title: "PVC相关问题" +linkTitle: "PVC相关问题" +description: +weight: 3 +--- + + + + + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md new file mode 100644 index 0000000..be2a81b --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/before-a-pvc-is-deleted-the-pvc-is-in-the-pending-state.md @@ -0,0 +1,76 @@ +--- +title: "删除PVC前,PVC的状态为Pending" +linkTitle: "删除PVC前,PVC的状态为Pending" +description: +weight: 2 +--- + +## 现象描述{#zh-cn_topic_0000001161960178_section1566717121452} + +在执行删除PVC前,PVC的状态处于Pending。 + +## 根因分析{#zh-cn_topic_0000001161960178_section1425013451056} + +原因1:由于没有提前创建指定名称的StorageClass,导致Kubernetes在创建PVC时无法找到指定StorageClass名称。 + +原因2:由于存储池能力和StorageClass能力不匹配,导致huawei-csi选择存储池失败。 + +原因3:由于存储RESTful接口执行返回具体错误码(例如:50331651),导致huawei-csi在执行创建PVC时失败。 + +原因4:由于存储在huawei-csi设定的超时时间内没有返回,huawei-csi向Kubernetes返回超时错误。 + +原因5:其他原因。 + +## 解决措施或规避方法{#zh-cn_topic_0000001161960178_section350653016492} + +删除Pending状态下的PVC,需要根据以下不同的原因采取不同的解决措施。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查看PVC的详细信息。 + + ``` + kubectl describe pvc mypvc + ``` + +3. 根据PVC详细信息中Events信息,执行相应操作。 + - 如果由原因1导致PVC处于Pending状态,可以执行 **kubectl delete pvc **_mypvc_ 命令,删除PVC。 + + ```yaml + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Warning ProvisioningFailed 0s (x15 over 3m24s) persistentvolume-controller storageclass.storage.k8s.io "mysc" not found + ``` + + - 如果由原因2导致PVC处于Pending状态,可以执行** kubectl delete pvc **_mypvc_ 命令,删除PVC。 + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = failed to select pool, the capability filter failed, error: failed to select pool, the final filter field: replication, parameters map[allocType:thin replication:True size:1099511627776 volumeType:lun]. please check your storage class + ``` + + - 如果由原因3导致PVC处于Pending状态,可以执行** kubectl delete pvc** _mypvc_ 命令,删除PVC。 + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 62s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = Create volume map[ALLOCTYPE:1 CAPACITY:20 DESCRIPTION:Created from Kubernetes CSI NAME:pvc-63ebfda5-4cf0-458e-83bd-ecc PARENTID:0] error: 50331651 + ``` + + - 如果由原因4导致PVC处于Pending状态,请联系华为工程师处理。 + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = context deadline exceeded (Client.Timeout exceeded while awaiting headers) + ``` + + - 如果由原因5导致PVC处于Pending状态,请联系华为工程师处理。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md new file mode 100644 index 0000000..ad291e2 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-capacity-of-a-generic-ephemeral-volume.md @@ -0,0 +1,15 @@ +--- +title: "通用临时卷扩容失败" +linkTitle: "通用临时卷扩容失败" +description: +weight: 3 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +在Kubernetes版本低于1.25环境中,对LUN类型的[通用临时卷](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes)扩容失败,显示PV已经扩容,但PVC未成功更新容量。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +该问题是由Kubernetes的[bug](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.25.md)导致,Kubernetes在1.25版本中修复了该问题。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md new file mode 100644 index 0000000..6e5de28 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity.md @@ -0,0 +1,19 @@ +--- +title: "PVC扩容的目标容量超过存储池容量导致扩容失败" +linkTitle: "PVC扩容的目标容量超过存储池容量导致扩容失败" +description: +weight: 4 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +在低于1.23版本的Kubernetes环境中,对PVC进行扩容,当目标容量超过存储池容量时,扩容失败。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +Kubernetes社区已知问题,详情请参考[处理扩充卷过程中的失败](https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/#recovering-from-failure-when-expanding-volumes)。 + +## 解决措施或规避方法{#section1730118471221} + +参考[处理扩充卷过程中的失败](https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/#recovering-from-failure-when-expanding-volumes)。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md new file mode 100644 index 0000000..3e54a38 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state.md @@ -0,0 +1,89 @@ +--- +title: "创建PVC时, PVC的状态为Pending" +linkTitle: "创建PVC时, PVC的状态为Pending" +description: +weight: 1 +--- + +## 现象描述{#zh-cn_topic_0000001207958677_section1566717121452} + +执行完成PVC的创建操作,一段时间后,PVC的状态仍然处于Pending。 + +## 根因分析{#zh-cn_topic_0000001207958677_section1425013451056} + +原因1:由于没有提前创建指定名称的StorageClass,导致Kubernetes在创建PVC时无法找到指定StorageClass名称。 + +原因2:由于存储池能力和StorageClass能力不匹配,导致huawei-csi选择存储池失败。 + +原因3:由于存储RESTful接口执行返回具体错误码(例如:50331651),导致huawei-csi在执行创建PVC时失败。 + +原因4:由于存储在huawei-csi设定的超时时间内没有返回,huawei-csi向Kubernetes返回超时错误。 + +原因5:其他原因。 + +## 解决措施或规避方法{#zh-cn_topic_0000001207958677_section350653016492} + +创建PVC时,如果PVC处于Pending状态,需要根据以下不同的原因采取不同的解决措施。 + +1. 使用远程访问工具(以PuTTY为例),通过管理IP地址,登录Kubernetes集群的任意master节点。 +2. 执行以下命令,查看PVC的详细信息。 + + ``` + kubectl describe pvc mypvc + ``` + +3. 根据PVC详细信息中Events信息,执行相应操作。 + - 如果由原因1导致PVC处于Pending状态,执行以下步骤。 + + ```yaml + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Warning ProvisioningFailed 0s (x15 over 3m24s) persistentvolume-controller storageclass.storage.k8s.io "mysc" not found + ``` + + 1. 删除PVC。 + 2. 创建StorageClass,可参考[动态卷供应典型场景StorageClass配置示例](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)。 + 3. 创建新的PVC,可参考[动态卷供应PVC参数说明](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning)。 + + - 如果由原因2导致PVC处于Pending状态,执行以下步骤。 + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 64s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = failed to select pool, the capability filter failed, error: failed to select pool, the final filter field: replication, parameters map[allocType:thin replication:True size:1099511627776 volumeType:lun]. please check your storage class + ``` + + 1. 删除PVC。 + 2. 删除StorageClass。 + 3. 根据Events信息修改StorageClass.yaml文件。 + 4. 创建StorageClass,详细请参考[动态卷供应典型场景StorageClass配置示例](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)。 + 5. 创建新的PVC,详情请参考[动态卷供应PVC参数说明](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning)。 + + - 如果由原因3导致PVC处于Pending状态,请联系华为工程师处理。 + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 62s (x4 over 68s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = Create volume map[ALLOCTYPE:1 CAPACITY:20 DESCRIPTION:Created from Kubernetes CSI NAME:pvc-63ebfda5-4cf0-458e-83bd-ecc PARENTID:0] error: 50331651 + ``` + + - 如果由原因4导致PVC处于Pending状态,执行以下步骤。 + + ``` + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Provisioning 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 External provisioner is provisioning volume for claim "default/mypvc" + Warning ProvisioningFailed 63s (x3 over 52s) csi.huawei.com_huawei-csi-controller-b59577886-qqzm8_58533e4a-884c-4c7f-92c3-6e8a7b327515 failed to provision volume with StorageClass "mysc": rpc error: code = Internal desc = context deadline exceeded (Client.Timeout exceeded while awaiting headers) + ``` + + 1. 请先等待10分钟, 参考本章节再次检查PVC详细信息 + 2. 如果还处于Pending状态,请联系华为工程师处理。 + + - 如果由原因5导致PVC处于Pending状态,请联系华为工程师处理。 + diff --git a/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/_index.md b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/_index.md new file mode 100644 index 0000000..a29fa31 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/_index.md @@ -0,0 +1,10 @@ +--- +title: "存储后端相关问题" +linkTitle: "存储后端相关问题" +description: +weight: 2 +--- + + + + diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\345\210\233\345\273\272\345\220\216\347\253\257\345\244\261\350\264\245-\346\212\245\351\224\231-context-deadline-exceeded.md" b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md similarity index 95% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\345\210\233\345\273\272\345\220\216\347\253\257\345\244\261\350\264\245-\346\212\245\351\224\231-context-deadline-exceeded.md" rename to content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md index 1e95a5b..2b479f2 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\345\210\233\345\273\272\345\220\216\347\253\257\345\244\261\350\264\245-\346\212\245\351\224\231-context-deadline-exceeded.md" +++ b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-backend-fails-to-be-created-using-the-oceanctl-tool-and-error-message-context-deadline-exceeded-is.md @@ -65,7 +65,7 @@ weight: 2 联系Kubernetes平台管理员查看kube-apiserver与CSI webhook网络问题。例如kube-apiserver存在HTTPS代理时可能无法访问CSI webhook服务。 ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >临时规避方案中,将会删除webhook资源,该资源用于在创建存储后端时校验输入的账户信息是否正确和能否和存储建立连接,因此删除该资源仅影响创建后端时的校验,无其他功能影响,但需要注意以下几点。 >- 请保证huawei-csi-controller服务所在宿主机能和存储通信。 >- 请保证输入的账号密码正确。 @@ -76,7 +76,7 @@ weight: 2 kubectl get validatingwebhookconfiguration storage-backend-controller.xuanwu.huawei.io ``` - 命令结果如下。 + 命令结果示例如下: ``` NAME WEBHOOKS AGE @@ -90,7 +90,7 @@ weight: 2 kubectl delete validatingwebhookconfiguration storage-backend-controller.xuanwu.huawei.io ``` -4. 创建存储后端,可参考[管理存储后端](/docs/存储后端管理/管理存储后端)。 +4. 创建存储后端,可参考[管理存储后端](/v4.5.0/storage-backend-management/managing-storage-backends)。 5. 如果kube-apiserver与CSI webhook通信恢复正常,需要重建webhook,执行以下命令,重启CSI Controller,通过指定“**--replicas=\***”恢复CSI Controller的副本数,下例为恢复至1个,请根据实际情况修改。 先将副本数修改为0。 diff --git "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\347\256\241\347\220\206\345\220\216\347\253\257\346\227\266\350\260\203\347\224\250webhook\345\244\261\350\264\245.md" b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md similarity index 92% rename from "content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\347\256\241\347\220\206\345\220\216\347\253\257\346\227\266\350\260\203\347\224\250webhook\345\244\261\350\264\245.md" rename to content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md index d913f14..2f98bbb 100644 --- "a/content/zh-cn/docs/\346\225\205\351\232\234\345\244\204\347\220\206/\345\255\230\345\202\250\345\220\216\347\253\257\347\233\270\345\205\263\351\227\256\351\242\230/\344\275\277\347\224\250oceanctl\345\267\245\345\205\267\347\256\241\347\220\206\345\220\216\347\253\257\346\227\266\350\260\203\347\224\250webhook\345\244\261\350\264\245.md" +++ b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/a-webhook-fails-to-be-called-when-the-oceanctl-tool-is-used-to-manage-backends.md @@ -9,7 +9,7 @@ weight: 1 当webhook的配置发生改变后,例如修改webhookPort参数值后,此时使用oceanctl工具对后端进行管理时调用webhook报错,如下: -![](/css-docs/figures/en-us_image_0000001524132062.png) +![](/css-docs/figures/zh-cn_image_0000002084763809.png) ## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} @@ -36,7 +36,7 @@ weight: 1 kubectl get pod -n huawei-csi ``` - 命令结果示例如下。Pod状态为“Running“说明Controller成功拉起。 + 命令结果示例如下,Pod状态为“Running“说明Controller成功拉起。 ``` NAME READY STATUS RESTARTS AGE diff --git a/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md new file mode 100644 index 0000000..c6861d0 --- /dev/null +++ b/content/zh-cn/v4.5.0/troubleshooting/storage-backend-issues/an-account-is-locked-after-the-password-is-updated-on-the-storage-device.md @@ -0,0 +1,33 @@ +--- +title: "存储侧更新密码后账户被锁定" +linkTitle: "存储侧更新密码后账户被锁定" +description: +weight: 3 +--- + +## 现象描述{#zh-cn_topic_0000001279996521_section1566717121452} + +用户在存储侧修改后端密码之后,该后端账号被锁定。 + +## 根因分析{#zh-cn_topic_0000001279996521_section1425013451056} + +CSI登录存储时使用存储后端配置的账户和密码,当存储侧修改了该账户密码之后,CSI登录失败后会重试。以OceanStor Dorado存储为例,默认的登录策略是密码校验失败3次后将会锁定账户,因此当CSI重试超过3次之后,该账户就会被锁定。 + +## 解决措施或规避方法{#section155945247573} + +1. 如果后端配置的账户是admin,请执行以下命令,将huawei-csi-controller服务副本数置为0,如果使用的是非admin账户,忽略此步骤。 + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=0 + ``` + +2. 使用admin账户登录存储,修改登录策略。以OceanStor Dorado存储为例,在DeviceManager管理界面,选择“设置 \> 用户与安全 \> 安全策略 \>登录策略 \>修改\>密码锁定”,取消密码锁定。 +3. 如果如果后端配置的账户是admin,执行以下命令,通过“**--replicas=\***”恢复CSI Controller的副本数,下例为恢复至1个,请根据实际情况修改。如果使用的是非admin账户,忽略此步骤。 + + ``` + kubectl scale deployment huawei-csi-controller -n huawei-csi --replicas=1 + ``` + +4. 使用oceanctl工具修改存储后端密码,修改后端密码请参考[更新存储后端](/v4.5.0/storage-backend-management/managing-storage-backends/updating-a-storage-backend)章节。 +5. 使用admin账户登录存储,修改登录策略,以OceanStor Dorado存储为例,在DeviceManager管理界面,选择“设置 \> 用户与安全 \> 安全策略 \>登录策略 \>修改\>密码锁定”,恢复密码锁定。 + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/_index.md b/content/zh-cn/v4.5.0/using-huawei-csi/_index.md new file mode 100644 index 0000000..0110da0 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/_index.md @@ -0,0 +1,15 @@ +--- +title: "使用华为CSI" +linkTitle: "使用华为CSI" +description: +weight: 7 +--- + +本章节主要介绍如何使用华为CSI对PV、快照的生命周期进行管理。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>- 使用华为CSI进行卷管理操作期间,请勿删除存储后端。 +>- 在映射block卷时,华为CSI会自动创建创建主机、主机组、LUN组等这些卷映射需要的关联对象,以及映射视图。如果手动在存储上创建了这些对象,会影响华为CSI的映射逻辑,请确保在使用华为CSI映射卷前删除这些对象。 + + + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md new file mode 100644 index 0000000..aabf7c4 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/_index.md @@ -0,0 +1,18 @@ +--- +title: "创建VolumeSnapshot" +linkTitle: "创建VolumeSnapshot" +description: +weight: 2 +--- + +在Kubernetes中,[卷快照(VolumeSnapshot)](https://kubernetes.io/docs/concepts/storage/volume-snapshots/)是一个存储系统上卷的快照。VolumeSnapshot能力为Kubernetes用户提供了一种标准的方式来在指定时间点复制卷的内容,并且不需要创建全新的卷。 例如,这一功能使得数据库管理员能够在执行编辑或删除之类的修改之前对数据库执行备份。 + +本章将介绍如何使用华为CSI创建VolumeSnapshot。为了完成创建VolumeSnapshot,需要完成如下三步: + +- 检查卷快照依赖组件信息 +- 配置VolumeSnapshotClass +- 配置VolumeSnapshot + + + + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md new file mode 100644 index 0000000..d6dc69b --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/checking-information-about-volume-snapshot-dependent-components.md @@ -0,0 +1,9 @@ +--- +title: "检查卷快照依赖组件信息" +linkTitle: "检查卷快照依赖组件信息" +description: +weight: 1 +--- + +如果您需要在容器环境中使用卷快照以及卷快照关联的特性,请通过[检查卷快照依赖组件](/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)检查您的环境是否部署了卷快照依赖组件以及卷快照api-versions信息。 + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md new file mode 100644 index 0000000..9556834 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshot.md @@ -0,0 +1,103 @@ +--- +title: "配置VolumeSnapshot" +linkTitle: "配置VolumeSnapshot" +description: +weight: 3 +--- + +VolumeSnapshot可以通过两种方式进行制备:预制备或动态制备。华为CSI当前仅支持动态制备。本章节将说明如何使用华为CSI动态制备VolumeSnapshot。 + +VolumeSnapshot的配置文件示例如下: + +- 如果您的环境中api-versions支持v1,请使用以下示例: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1 + kind: VolumeSnapshot + metadata: + name: mysnapshot + spec: + volumeSnapshotClassName: mysnapclass + source: + persistentVolumeClaimName: mypvc + ``` + +- 如果您的环境中api-versions支持v1beta1,请使用以下示例: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1beta1 + kind: VolumeSnapshot + metadata: + name: mysnapshot + spec: + volumeSnapshotClassName: mysnapclass + source: + persistentVolumeClaimName: mypvc + ``` + +- VolumeSnapshot中api-versions信息,请和创建VolumeSnapshotClass使用的版本保持一致。 + +实际参数可以参考[表1](#zh-cn_topic_0254162579_table14111735169)中的说明修改。 + +**表 1** VolumeSnapshot参数说明 + + + + + + + + + + + + + + + + + + + + +

    参数

    +

    说明

    +

    备注

    +

    metadata.name

    +

    自定义的VolumeSnapshot对象名称。

    +

    以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字字符开头和结尾。

    +

    spec.volumeSnapshotClassName

    +

    VolumeSnapshotClass对象名称。

    +

    --

    +

    spec.source.persistentVolumeClaimName

    +

    源PVC对象名称。

    +

    快照源PVC对应的名称

    +
    + +## 前提条件{#section1236201420471} + +- 源PVC存在,且PVC所在的backend存在支持创建VolumeSnapshot。支持创建VolumeSnapshot的存储请参考[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)和[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255),支持创建VolumeSnapshot的Kubernetes版本请参考[表1](/v4.5.0/compatibility-and-features/kubernetes-feature-matrix#table134589135522)。 +- 华为CSI运行所依赖的卷快照组件CRD已经安装。具体信息请参考[检查卷快照依赖组件](/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节说明。 +- 系统中已经存在使用华为CSI的VolumeSnapshotClass。 + +## 操作步骤{#section1678012285209} + +1. 执行以下命令,使用已经创建的VolumeSnapshot配置文件创建VolumeSnapshot。 + + ``` + kubectl create -f mysnapshot.yaml + ``` + +2. 执行以下命令,查看已创建的VolumeSnapshot信息。 + + ``` + kubectl get volumesnapshot + ``` + + 命令结果示例如下: + + ``` + NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE + mysnapshot true mypvc 100Gi mysnapclass snapcontent-1009af0a-24c2-4435-861c-516224503f2d 78s + ``` + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md new file mode 100644 index 0000000..a67c3a1 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/creating-a-volumesnapshot/configuring-a-volumesnapshotclass.md @@ -0,0 +1,100 @@ +--- +title: "配置VolumeSnapshotClass" +linkTitle: "配置VolumeSnapshotClass" +description: +weight: 2 +--- + +[卷快照类(VolumeSnapshotClass)](https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes/)提供了一种在配置VolumeSnapshot时描述存储“类”的方法。每个VolumeSnapshotClass都包含“driver”、“deletionPolicy” 和“parameters”字段, 在需要动态配置属于该类的VolumeSnapshot时使用。 + +VolumeSnapshotClass对象的名称很重要,是用户可以请求特定类的方式。 管理员在首次创建VolumeSnapshotClass对象时设置类的名称和其他参数, 对象一旦创建就无法更新。 + +华为CSI使用的VolumeSnapshotClass示例如下: + +- 如果您的环境中api-versions支持v1,请使用以下示例: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1 + kind: VolumeSnapshotClass + metadata: + name: mysnapclass + driver: csi.huawei.com + deletionPolicy: Delete + ``` + +- 如果您的环境中api-versions支持v1beta1,请使用以下示例: + + ```yaml + apiVersion: snapshot.storage.k8s.io/v1beta1 + kind: VolumeSnapshotClass + metadata: + name: mysnapclass + driver: csi.huawei.com + deletionPolicy: Delete + ``` + +- 如果您的环境中api-versions同时支持v1和v1beta1,我们推荐您使用v1版本。 + +实际参数可以参考[表1](#zh-cn_topic_0254162578_table189495491346)中的说明修改。由于当前华为CSI还不支持在VolumeSnapshotClass中设置自定义参数(parameters),因此建议只创建一个VolumeSnapshotClass,供所有快照使用。 + +**表 1** VolumeSnapshotClass参数说明 + + + + + + + + + + + + + + + + + + + + +

    参数

    +

    说明

    +

    备注

    +

    metadata.name

    +

    自定义的VolumeSnapshotClass对象名称。

    +

    以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字字符开头和结尾。

    +

    driver

    +

    driver标识。必填参数。

    +

    该字段需要指定为安装华为CSI时设置的驱动名。默认的驱动名为“csi.huawei.com”。

    +

    deletionPolicy

    +

    快照删除策略。必填参数。可选值为:

    +
    • Delete
    • Retain
    +
    • 如果删除策略是 Delete,那么存储设备上的快照会和VolumeSnapshotContent对象一起删除
    • 如果删除策略是Retain,那么存储设备上的快照和VolumeSnapshotContent对象都会被保留。
    +
    + +## 前提条件{#section549623219322} + +华为CSI支持快照且运行所依赖的卷快照组件CRD已经安装。具体CRD信息请参考[检查卷快照依赖组件](/v4.5.0/installation-and-deployment/installation-preparations/checking-volume-snapshot-dependent-components)章节说明,支持创建VolumeSnapshot的Kubernetes版本请参考[表1](/v4.5.0/compatibility-and-features/kubernetes-feature-matrix#table134589135522)。 + +## 操作步骤{#section187667882011} + +1. 执行以下命令,使用已经创建的VolumeSnapshotClass配置文件创建VolumeSnapshotClass。 + + ``` + kubectl create -f mysnapclass.yaml + ``` + +2. 执行以下命令,查看已创建的VolumeSnapshotClass信息。 + + ``` + kubectl get volumesnapshotclass + ``` + + 命令结果示例如下: + + ``` + NAME DRIVER DELETIONPOLICY AGE + mysnapclass csi.huawei.com Delete 25s + ``` + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md new file mode 100644 index 0000000..c0a75e8 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/_index.md @@ -0,0 +1,20 @@ +--- +title: "PVC管理" +linkTitle: "PVC管理" +description: +weight: 1 +--- + +根据业务的需求,容器中的文件需要在磁盘上进行持久化。当容器被重建或者重新分配至新的节点时,可以继续使用这些持久化数据。 + +为了可以将数据持久化到存储设备上,您需要在发放容器时使用[持久卷(PersistentVolume,PV)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)以及[持久卷申领(PersistentVolumeClaim,PVC)](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)。 + +- PV:是Kubernetes集群中的一块存储,可以由管理员事先制备, 或者使用[存储类(StorageClass)](https://kubernetes.io/docs/concepts/storage/storage-classes/)来动态制备。 +- PVC:是用户对存储的请求。PVC会耗用 PV 资源。PVC可以请求特定的大小和访问模式 (例如,可以要求 PV能够以 ReadWriteOnce、ReadOnlyMany 或 ReadWriteMany 模式之一来挂载,参见[访问模式](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes))。 + +本章将介绍如何使用华为CSI对PV/PVC进行创建、扩容、克隆以及从快照创建PVC。 + + + + + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\205\213\351\232\206PVC.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md similarity index 69% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\205\213\351\232\206PVC.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md index 0057b08..b3183c2 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\205\213\351\232\206PVC.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/cloning-a-pvc.md @@ -27,13 +27,13 @@ spec: storage: 2Gi ``` ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 指定的storageClassName必须和dataSource中的源卷的StorageClass需一致。 >- 克隆卷的容量必须不小于源卷容量,建议和源卷容量保持一致。 ## 前提条件{#section349216304616} -系统中已经存在源PVC,且源PVC所在的backend存在支持克隆。支持克隆的存储请参考[表 华为企业存储支持的特性及约束](/docs/兼容性和特性/华为企业存储兼容性#table14995183994515)和[表 华为分布式存储支持的特性及约束](/docs/兼容性和特性/华为分布式存储兼容性#table175022559255),支持克隆的Kubernetes版本请参考[Kubernetes特性矩阵](/docs/兼容性和特性/Kubernetes特性矩阵)。 +系统中已经存在源PVC,且源PVC所在的backend存在支持克隆。支持克隆的存储请参考[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)和[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255),支持克隆的Kubernetes版本请参考[Kubernetes特性矩阵](/v4.5.0/compatibility-and-features/kubernetes-feature-matrix)。 ## 操作步骤{#zh-cn_topic_0254212544_section319012981414} diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\344\273\216\345\277\253\347\205\247\345\210\233\345\273\272PVC.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md similarity index 70% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\344\273\216\345\277\253\347\205\247\345\210\233\345\273\272PVC.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md index a07e7ff..0094cef 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\344\273\216\345\277\253\347\205\247\345\210\233\345\273\272PVC.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc-using-a-snapshot.md @@ -28,13 +28,13 @@ spec: storage: 100Gi ``` ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 指定的storageClassName必须和dataSource中的快照源卷的StorageClass需一致。 >- 克隆卷的容量必须不小于快照容量,建议和快照容量保持一致。 ## 前提条件{#zh-cn_topic_0254212585_section0772716133710} -系统中已经存在快照,且快照所在的backend存在支持克隆。支持快照创建PVC的存储请参考[表 华为企业存储支持的特性及约束](/docs/兼容性和特性/华为企业存储兼容性#table14995183994515)和[表 华为分布式存储支持的特性及约束](/docs/兼容性和特性/华为分布式存储兼容性#table175022559255),支持快照创建PVC的Kubernetes版本请参考[Kubernetes特性矩阵](/docs/兼容性和特性/Kubernetes特性矩阵)。 +系统中已经存在快照,且快照所在的backend存在支持克隆。支持快照创建PVC的存储请参考[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)和[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255),支持快照创建PVC的Kubernetes版本请参考[Kubernetes特性矩阵](/v4.5.0/compatibility-and-features/kubernetes-feature-matrix)。 ## 操作步骤{#zh-cn_topic_0254212585_section1882544631619} diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md new file mode 100644 index 0000000..4657aba --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/_index.md @@ -0,0 +1,17 @@ +--- +title: "创建PVC" +linkTitle: "创建PVC" +description: +weight: 1 +--- + +华为CSI支持在华为存储上创建存储资源(LUN/文件系统),并根据用户的设置供给容器使用。具体支持的特性请参考[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)或者[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255)。 + +创建PVC的方式分为动态卷供应和静态卷供应。 + +- 动态卷供应不需要事先创建PV,华为CSI会根据StorageClass自动在存储设备上创建PV所需要的资源。并且可以在创建PVC时同时创建PV。 +- 静态卷供应需要管理员事先在存储设备上创建好所需要的资源,通过创建PV的方式使用已存在的资源。并且可以在创建PVC时指定关联的PV。 + + + + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md similarity index 82% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md index 3d37198..583630d 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/_index.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/_index.md @@ -14,7 +14,7 @@ weight: 1 ## 配置StorageClass{#section176901147144516} -1. 根据业务需要,参考[动态卷供应典型场景StorageClass配置示例](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应典型场景StorageClass配置示例)和[动态卷供应StorageClass参数说明](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应StorageClass参数说明),创建StorageClass配置文件,如本例从的mysc.yaml文件。 +1. 根据业务需要,参考[动态卷供应典型场景StorageClass配置示例](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios)和[动态卷供应StorageClass参数说明](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning),创建StorageClass配置文件,如本例中的mysc.yaml文件。 2. 执行命令,使用配置文件创建StorageClass。 ``` @@ -72,13 +72,13 @@ weight: 1 mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s ``` - >![](/css-docs/public_sys-resources/zh/icon-notice.gif) - >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/docs/故障处理/PVC相关问题/创建PVC时-PVC的状态为Pending)。 + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) + >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state)。 >- 建议每批次最多批量创建/删除100个PVC。 ## 使用PVC{#section8172141413917} -在完成PVC创建后,就可以使用PVC来创建Pod。如下示例是一个简单的使用PVC示例,在该示例中,创建的Pod使用了刚刚创建的 _mypvc_。 +在完成PVC创建后,就可以使用PVC来创建Pod。如下示例是一个简单的使用PVC示例,在该示例中,创建的Pod使用了刚刚创建的_ mypvc_。 ```yaml apiVersion: apps/v1 diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md similarity index 93% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md index 5c91433..c7c9033 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning.md @@ -65,7 +65,7 @@ weight: 3

    10Gi

    -

    PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表 ext4容量的规格;当使用的是XFS文件系统时,容量限制见表 XFS容量的规格。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

    +

    PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

    如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。

    @@ -78,7 +78,7 @@ weight: 3

    ReadWriteOnce

    -
    • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
    • RWX支持情况如下: +
      • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
      • RWX支持情况如下:
      diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md similarity index 91% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md index 42166b7..6e3aefd 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224\345\205\270\345\236\213\345\234\272\346\231\257StorageClass\351\205\215\347\275\256\347\244\272\344\276\213.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-configuration-examples-in-typical-dynamic-volume-provisioning-scenarios.md @@ -21,7 +21,7 @@ weight: 1 - [StorageClass中设置双活](#section12170214277) - [StorageClass中设置挂载目录权限](#section156891316272) - [StorageClass中设置QoS](#section1016612587584) -- [CCE / CCE Agile平台中配置StorageClass](#section132301459161017) +- [CCE或CCE Agile平台中配置StorageClass](#section132301459161017) ## StorageClass中设置后端和存储池{#section114859014540} @@ -182,7 +182,7 @@ mountOptions: 容器使用企业存储或者分布式存储作为存储资源时,可以为容器使用的存储资源设置QoS,从而保证这些容器对存储读写满足一定的服务等级。 -不同型号或版本的存储支持的QoS设置不同,请参考[表 支持的QoS配置](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应StorageClass参数说明#table74841513116)找到对应存储的配置项。本示例中的后端是OceanStor Dorado存储,其他存储可以参考本例设置。 +不同型号或版本的存储支持的QoS设置不同,请参考[表2](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning#table74841513116)找到对应存储的配置项。本示例中的后端是OceanStor Dorado存储,其他存储可以参考本例设置。 ```yaml kind: StorageClass @@ -199,7 +199,7 @@ parameters: qos: '{"IOTYPE": 2, "MINIOPS": 1000}' # 配置QoS ``` ->![](/css-docs/public_sys-resources/zh/icon-note.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) >- OceanStor V5 租户用户不支持配置QoS策略。 >- 配置QoS后只能在新建的PVC上生效;对于同名StorageClass已经发放的PVC,不能自动添加QoS @@ -222,7 +222,7 @@ parameters: authClient: "*" ``` ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >- 发放NAS双活卷前,需要在两台存储设备之间配置双活关系,包含远端设备、双活域等,仅支持文件系统双活域工作模式为双活AA模式,配置操作请参考对应存储型号的产品文档。 >- 若存储发生故障,逻辑管理端口可能产生漂移,在漂移状态下删除NAS双活卷后,需手动清理对应的存储资源。 @@ -242,8 +242,8 @@ parameters: allocType: thin authClient: "*" fsPermission: "777" - rootSquash: "no_root_squash" # 该参数仅支持NAS存储 - allSquash: "no_all_squash" # 该参数仅支持NAS存储 + rootSquash: "no_root_squash" # 仅NAS存储支持该参数 + allSquash: "no_all_squash" # 仅NAS存储支持该参数 ``` 完成StorageClass配置后,进行如下步骤创建StorageClass。 @@ -260,7 +260,7 @@ parameters: kubectl get sc ``` - 命令结果示例如下。 + 命令结果示例如下: ``` NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE @@ -269,13 +269,13 @@ parameters: 创建StorageClass后,就可以使用该StorageClass进行创建PV或者PVC。 ->![](/css-docs/public_sys-resources/zh/icon-notice.gif) +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) >在StorageClass的使用中请注意如下事项: >- **针对StorageClass进行的修改将不会在已经创建的PV上生效。您需要删除这些PV,并重新使用修改后的StorageClass创建才能应用修改的参数。** -## CCE / CCE Agile平台中配置StorageClass{#section132301459161017} +## CCE或CCE Agile平台中配置StorageClass{#section132301459161017} -在CCE / CCE Agile平台中创建NAS类型StorageClass,可以参考如下配置示例。其中provisioner保持和values.yaml文件中driverName一致。 +在CCE或CCE Agile平台中创建NAS类型StorageClass,可以参考如下配置示例。其中provisioner保持和values.yaml文件中driverName一致。 ```yaml kind: StorageClass @@ -292,7 +292,7 @@ parameters: authClient: "*" ``` -在CCE / CCE Agile平台中创建Block类型StorageClass,可以参考如下配置示例。其中provisioner保持和values.yaml文件中driverName一致。 +在CCE或CCE Agile平台中创建Block类型StorageClass,可以参考如下配置示例。其中provisioner保持和values.yaml文件中driverName一致。 ```yaml kind: StorageClass diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md similarity index 99% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md index c80f9a3..449e558 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224/\345\212\250\346\200\201\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/storageclass-parameters-for-dynamic-volume-provisioning.md @@ -150,7 +150,7 @@ weight: 2

      3

      -

      4速度最快。配置克隆PVC或从快照创建PVC时生效,参考克隆PVC从快照创建PVC

      +

      4速度最快。配置克隆PVC或从快照创建PVC时生效,参考克隆PVC从快照创建PVC

      parameters.applicationType

      diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md new file mode 100644 index 0000000..22e3c32 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/_index.md @@ -0,0 +1,98 @@ +--- +title: "纳管卷供应" +linkTitle: "纳管卷供应" +description: +weight: 2 +--- + +纳管卷供应(Manage Volume Provisioning)允许管理员使用已经在存储侧创建的资源做为PV,并能够支持动态卷的特性,例如:扩容,快照,克隆等,属于华为CSI自定义能力。使用该特性可满足如下场景: + +- 容器化应用的改造场景,需要使用已有的存储卷。 +- 重建Kubernetes集群。 +- 容灾场景下,对存储数据进行迁移。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) +>在多Kubernetes集群场景下,使用纳管卷特性对同一存储资源进行管理时,在任一集群中对该资源对应的PVC进行管理操作后,不会同步到其他集群中。 +>例如:在某一集群中对PVC进行扩容时,其他集群对应的PVC不会自动扩容,需要在其他集群中手动根据[扩容PVC](/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc)中的扩容命令进行扩容。 + +## 前提条件{#section65071656132313} + +- 已在CSI中注册需要纳管卷所在存储。 +- 已登录存储设备获取需要纳管卷的名称和容量。 + +## 配置StorageClass{#section19289935145} + +1. 根据业务需要,参考[纳管卷供应典型场景StorageClass配置示例](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios)和[纳管卷供应StorageClass参数说明](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning),创建StorageClass配置文件,如本例中的mysc.yaml文件。 +2. 执行命令,使用配置文件创建StorageClass。 + + ``` + kubectl apply -f mysc.yaml + ``` + +3. 执行命令,查看已创建的StorageClass信息。 + + ``` + kubectl get sc mysc + ``` + + 命令结果示例如下: + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate true 8s + ``` + +## 配置PVC{#section1836215261144} + +1. 根据业务需要,参考本节描述和PVC配置文件示例,修改具体参数,生成本次需要创建的PVC配置文件,如本例中mypvc.yaml文件。 + + ```yaml + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mypvc + annotations: + csi.huawei.com/manageVolumeName: "*" # 存储资源名称 + csi.huawei.com/manageBackendName: "*" # 存储后端名称 + labels: + provisioner: csi.huawei.com + spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + storageClassName: mysc + resources: + requests: + storage: 100Gi + ``` + +2. 执行命令,使用配置文件创建PVC。 + + ``` + kubectl create -f mypvc.yaml + ``` + +3. 等待一段时间后,执行以下命令,查看已经创建的PVC信息。 + + ``` + kubectl get pvc mypvc + ``` + + 命令结果示例如下,如果PVC的状态是“Bound”时,则说明该PVC已经创建成功,后续可以被Pod使用。 + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO mysc 12s + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) + >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state)。 + >- 建议每批次最多批量创建/删除100个PVC。 + +## 使用PVC{#section847932614377} + +与动态卷供应[使用PVC](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning#section8172141413917)方式相同。 + + + + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md similarity index 94% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md index ae378e4..d639f12 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/pvc-parameters-for-manage-volume-provisioning.md @@ -31,7 +31,7 @@ weight: 3

      csi.huawei.com/manageVolumeName: * csi.huawei.com/manageBackendName: *

      -
      • 驱动名称获取请参考表4
      • 驱动名称/manageVolumeName:为存储上已有卷的名称,除英文字符外,其他国家字符不支持。
      • 驱动名称/manageBackendName:CSI中存储后端的名称。
      +
      • 驱动名称获取请参考表4
      • 驱动名称/manageVolumeName:为存储上已有卷的名称,除英文字符外,其他国家字符不支持。
      • 驱动名称/manageBackendName:CSI中存储后端的名称。

      可执行oceanctl get backend -n huawei-csi命令获取后端名称。

      @@ -107,7 +107,7 @@ weight: 3

      ReadWriteOnce

      -
      • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
      • RWX支持情况如下: +
        • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
        • RWX支持情况如下:
        diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md new file mode 100644 index 0000000..9dc8590 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-configuration-examples-in-typical-manage-volume-provisioning-scenarios.md @@ -0,0 +1,155 @@ +--- +title: "纳管卷供应典型场景StorageClass配置示例" +linkTitle: "纳管卷供应典型场景StorageClass配置示例" +description: +weight: 1 +--- + +纳管卷供应典型场景下StorageClass配置请参考如下示例: + +- [StorageClass中设置后端和存储池](#section114859014540) +- [StorageClass中设置NFS访问方式](#section128347019144) +- [StorageClass中设置本地文件系统访问方式](#section1155962772514) +- [StorageClass中设置DPC访问方式](#section022191784519) +- [StorageClass中设置挂载目录权限](#section1356811882616) + +## StorageClass中设置后端和存储池{#section114859014540} + +如果在一个Kubernetes集群中配置了多个华为后端,或者一个华为后端提供多个存储池,建议在StorageClass中配置指定的后端和存储池信息,避免华为CSI随机选择后端和存储池,导致卷所在的存储不符合规划。 + +SAN存储设置后端和存储池可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "iscsi-san-181" + pool: "pool001" + volumeType: lun + allocType: thin +``` + +NAS存储设置后端和存储池可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + backend: "iscsi-nas-181" + pool: "pool001" + volumeType: fs + allocType: thin + authClient: "*" +``` + +## StorageClass中设置NFS访问方式{#section128347019144} + +容器使用NFS文件系统作为存储资源时,可以参考如下配置示例。该示例中,NFS挂载时指定版本为4.1。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-nas-181 + pool: pool001 + volumeType: fs + allocType: thin +mountOptions: + - nfsvers=4.1 # NFS挂载时指定版本为4.1 +``` + +## StorageClass中设置本地文件系统访问方式{#section1155962772514} + +容器使用企业存储或者分布式存储的LUN作为存储资源时,且需要格式化文件系统为本地文件系统时,可以参考如下示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: iscsi-lun-181 + pool: pool001 + volumeType: lun + allocType: thin + fsType: xfs +``` + +## StorageClass中设置DPC访问方式{#section022191784519} + +当容器使用OceanStor Pacific系列存储,且存储支持DPC协议访问时,可以在StorageClass中配置DPC访问的挂载参数。本例中设置挂载时使用“**acl**”做鉴权参数,使用“**cnflush**”为设置异步刷盘模式。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +parameters: + backend: nfs-dpc-101 + pool: pool001 + volumeType: fs + allocType: thin + authClient: "*" +mountOptions: + - acl # 鉴权参数 + - cnflush # 设置异步刷盘模式 +``` + +## StorageClass中设置挂载目录权限{#section1356811882616} + +当需要修改容器内挂载目录的权限时,可以在StorageClass中配置目录权限信息,可以参考如下配置示例。 + +```yaml +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: mysc +provisioner: csi.huawei.com +allowVolumeExpansion: true +parameters: + volumeType: fs + allocType: thin + authClient: "*" + fsPermission: "777" # 设置目录权限 +``` + +完成StorageClass配置后,进行如下步骤创建StorageClass。 + +1. 执行以下命令,基于该yaml文件创建StorageClass。 + + ``` + kubectl create -f mysc.yaml + ``` + +2. 执行以下命令,查看当前已经创建的StorageClass信息。 + + ``` + kubectl get sc + ``` + + 命令结果示例如下: + + ``` + NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE + mysc csi.huawei.com Delete Immediate false 34s + ``` + + 创建StorageClass后,就可以使用该StorageClass进行创建PV或者PVC。 + +>![](/css-docs/public_sys-resources/zh-cn/icon-notice.gif) +>在纳管卷供应场景下,StorageClass的使用中请注意如下事项: +>- **针对StorageClass进行的修改将不会在已经创建的PV上生效。您需要删除这些PV,并重新使用修改后的StorageClass创建才能应用修改的参数。** + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md similarity index 100% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224/\347\272\263\347\256\241\345\215\267\344\276\233\345\272\224StorageClass\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/manage-volume-provisioning/storageclass-parameters-for-manage-volume-provisioning.md diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md new file mode 100644 index 0000000..4ada21b --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/_index.md @@ -0,0 +1,113 @@ +--- +title: "静态卷供应" +linkTitle: "静态卷供应" +description: +weight: 3 +--- + +静态卷供应(Static Volume Provisioning)允许管理员使用已经在存储侧创建的资源做为PV,供集群中的容器使用。 + +为了完成静态卷供应,需要完成如下两步: + +- 配置PV +- 配置PVC + +## 前提条件{#section4107171112475} + +存储侧已经存在待创建PV所需要的存储资源,如LUN或者文件系统。如果存储资源是文件系统,还需要创建文件系统的共享和客户端信息。 + +## 配置PV{#section1994861643814} + +1. 准备PV配置文件mypv.yaml,示例如下,其他配置参数请参考[静态卷供应PV参数说明](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning)。 + + ```yaml + kind: PersistentVolume + apiVersion: v1 + metadata: + name: mypv + spec: + volumeMode: Filesystem + storageClassName: "" # 必须配置为"" + accessModes: + - ReadWriteOnce + csi: + driver: csi.huawei.com # CSI驱动名称 + volumeHandle: iscsi-dorado-181.lun0001 # 卷名称 + fsType: xfs # 文件系统类型 + capacity: + storage: 100Gi + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >静态卷供应的配置文件中,storageClassName参数必须配置为‘“”’,如果不配置,Kubernetes会使用系统默认的StorageClass。 + +2. 执行以下命令,基于准备好的yaml文件创建PV。 + + ``` + kubectl create -f mypv.yaml + ``` + +3. 等待一段时间后,执行以下命令,查看已经创建的PV信息。 + + ``` + kubectl get pv + ``` + + 命令结果示例如下,当PV状态为“Available”时,表明PV创建成功。 + + ``` + NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE + mypv 100Gi RWO Retain Available 4s + ``` + +## 配置PVC{#section166021742104214} + +当PV以静态卷供应的方式创建完成后,可以基于该PV创建PVC,从而供容器使用。 + +1. 首先准备PVC配置文件。如下示例是一个使用静态卷供应的PVC配置文件。 + + ```yaml + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: mypvc + spec: + storageClassName: "" + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + resources: + requests: + storage: 100Gi + volumeName: mypv # 对应PV名称 + ``` + +2. 执行以下命令,基于已配置的yaml文件创建PVC。 + + ``` + kubectl create -f mypvc.yaml + ``` + +3. 等待一段时间后,执行以下命令,查看已经创建的PVC信息。 + + ``` + kubectl get pvc + ``` + + 命令结果示例如下,当PVC状态为“Bound“时,表明PVC创建成功。 + + ``` + NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE + mypvc Bound pvc-840054d3-1d5b-4153-b73f-826f980abf9e 100Gi RWO 12s + ``` + + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- 完成创建PVC操作后,如果长时间后(如一分钟后)PVC的状态是Pending,请参考[创建PVC时, PVC的状态为Pending](/v4.5.0/troubleshooting/pvc-issues/when-a-pvc-is-created-the-pvc-is-in-the-pending-state)。 + >- 建议每批次最多批量创建/删除100个PVC。 + +## 使用PVC{#section2949728204519} + +与动态卷供应[使用PVC](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning#section8172141413917)方式相同。 + + + diff --git a/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md new file mode 100644 index 0000000..e332568 --- /dev/null +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pv-parameters-for-static-volume-provisioning.md @@ -0,0 +1,179 @@ +--- +title: "静态卷供应PV参数说明" +linkTitle: "静态卷供应PV参数说明" +description: +weight: 1 +--- + +**表 1** 静态卷供应参数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

        参数

        +

        说明

        +

        必选参数

        +

        默认值

        +

        备注

        +

        metadata.name

        +

        自定义的PV对象名称。

        +

        +

        -

        +

        以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字开头和结尾。

        +

        spec.volumeMode

        +

        卷模式。可选参数。 当使用LUN类型的卷时,支持配置以下类型:

        +
        • Filesystem:本地文件系统。
        • Block:裸设备。
        +

        +

        Filesystem

        +

        该参数在挂载PV时生效,默认为Filesystem。

        +
        • Filesystem表示在容器通过一个本地文件系统访问PV,本地文件系统类型为指定StorageClass中的fsType字段指定。
        • Block表示使用裸卷的方式访问访问PV。
        +

        spec.storageClassName

        +

        StorageClass对象名称。必选参数。

        +

        +

        -

        +

        此处须设置为空字符串(即输入"")。

        +

        spec.accessModes

        +

        指定卷访问模式。

        +
        • RWO(ReadWriteOnce):卷可以被一个节点以读写方式挂载。 该模式也允许运行在同一节点上的多个 Pod 访问卷。
        • ROX(ReadOnlyMany):卷可以被多个节点以只读方式挂载。
        • RWX(ReadWriteMany):卷可以被多个节点以读写方式挂载。
        • RWOP(ReadWriteOncePod):卷只能被单个 Pod 以读写方式挂载。该特性需要 Kubernetes 1.22 以上版本。
        +

        +

        ReadWriteOnce

        +
        • RWO/ROX/RWOP:所有类型卷均支持,RWOPKubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
        • RWX支持情况如下: +
        +

        spec.csi.driver

        +

        CSI驱动名称。

        +

        +

        csi.huawei.com

        +

        该字段需要指定为安装华为CSI时设置的驱动名称。

        +

        spec.csi.volumeHandle

        +

        存储资源的唯一标志。必选参数。

        +

        格式为:<backendName>.<volume-name>

        +

        +

        -

        +

        该参数值由以下两部分构成:

        +
        • <backendName>:该卷所在的后端名称,可使用如下命令获取配置的后端信息:

          oceanctl get backend

          +
        • <volume-name>:存储上资源(LUN/文件系统)的名称,可通过DeviceManager查看。
        +

        spec.csi.fsType

        +

        指定主机文件系统类型。可选参数。支持类型为:

        +
        • ext2
        • ext3
        • ext4
        • xfs
        +

        +

        -

        +

        如果不设置,默认为ext4。仅当volumeMode配置为“Filesystem”时生效。

        +

        spec.capacity.storage

        +

        指定卷大小。

        +

        +

        100Gi

        +

        请确保与存储上对应资源的容量保持一致。Kubernetes并不会调用CSI检查此字段值的正确性,所以在PV容量与存储上对应资源的容量不一致也能被成功创建。

        +

        spec.mountOptions.nfsvers

        +

        主机侧NFS挂载选项。支持如下挂载选项:

        +

        nfsvers:挂载NFS时的协议版本。支持配置的参数值为“3”,“4”,“4.0”,“4.1”和“4.2”。

        +

        +

        -

        +

        在主机执行mount命令时-o参数后的可选选项。列表格式。

        +

        指定NFS版本挂载时,当前支持NFS 3/4.0/4.1/4.2协议(需存储设备支持且开启)。当配置参数为nfsvers=4时,因为操作系统配置的不同,实际挂载可能为NFS 4的最高版本协议,如4.2,当需要使用4.0协议时,建议配置nfsvers=4.0。

        +

        spec.mountOptions.acl

        +

        DPC命名空间支持ACL功能。DPC客户端支持POSIX ACL、NFSv4 ACL、NT ACL的鉴权行为。

        +

        +

        -

        +

        acl、aclonlyposix、cnflush、cflush参数描述仅供参考,详细参数说明请参考《OceanStor Pacific系列 产品文档》 > 配置 > 文件服务基础业务配置指南 > 配置基础业务(DPC场景) > 客户端访问DPC共享 > 步骤2。

        +

        spec.mountOptions.aclonlyposix

        +

        DPC命名空间支持POSIX ACL功能,DPC客户端支持POSIX ACL的鉴权行为。

        +

        支持POSIX ACL的协议有:DPC、NFSv3、HDFS。如使用NFSv4 ACL或NT ACL,会导致DPC客户端无法识别该类型的ACL,从而导致该类型的ACL不会生效。

        +

        +

        -

        +

        aclonlyposix与acl参数同时使用时,仅acl参数生效,即命名空间支持ACL功能。

        +

        spec.mountOptions.cnflush

        +

        异步刷盘模式,即关闭命名空间下的文件时不会立即刷盘。

        +

        +

        -

        +

        异步刷盘模式,当文件关闭时不会同步将Cache的数据持久化到存储介质中,而是通过Cache异步刷盘的方式将数据写入存储介质,Cache的后台刷盘将在写业务完成后根据刷盘周期定时刷盘。在多客户端场景下,对同一文件进行并行操作,文件Size的更新会受刷盘周期的影响,即当刷盘动作完成后才会更新文件的Size,更新通常会在数秒内完成。同步I/O不受刷盘周期影响。

        +

        spec.mountOptions.cflush

        +

        同步刷盘模式,即关闭命名空间下的文件时立即刷盘。

        +

        +

        -

        +

        默认使用同步刷盘模式。

        +
        + diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md similarity index 87% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md index 8c77080..690c8d5 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\345\210\233\345\273\272PVC/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224/\351\235\231\346\200\201\345\215\267\344\276\233\345\272\224PVC\345\217\202\346\225\260\350\257\264\346\230\216.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/static-volume-provisioning/pvc-parameters-for-static-volume-provisioning.md @@ -40,7 +40,7 @@ weight: 2

        ReadWriteOnce

        -
        • RWO/ROX/RWOP:所有类型卷均支持,RWOP需Kubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
        • RWX支持情况如下: +
          • RWO/ROX/RWOP:所有类型卷均支持,RWOP需Kubernetes 1.22版本以上支持。请参考开启ReadWriteOncePod功能门章节,检查您的Kubernetes集群是否开启该特性。
          • RWX支持情况如下:
          @@ -64,7 +64,7 @@ weight: 2

          -

          指定待创建卷大小,格式为***Gi,单位为GiB。

          -

          PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表 ext4容量的规格;当使用的是XFS文件系统时,容量限制见表 XFS容量的规格。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

          +

          PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表2;当使用的是XFS文件系统时,容量限制见表3。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。

          如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。

          在通过静态PV创建PVC时,若PVC容量小于绑定PV容量,最终PVC容量大小为绑定PV容量,若PVC容量大于绑定PV容量,PVC将无法被创建。

          diff --git "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\346\211\251\345\256\271PVC.md" b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md similarity index 67% rename from "content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\346\211\251\345\256\271PVC.md" rename to content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md index 30e2f5d..feaf029 100644 --- "a/content/zh-cn/docs/\344\275\277\347\224\250\345\215\216\344\270\272CSI/PVC\347\256\241\347\220\206/\346\211\251\345\256\271PVC.md" +++ b/content/zh-cn/v4.5.0/using-huawei-csi/managing-a-pvc/expanding-the-capacity-of-a-pvc.md @@ -10,7 +10,7 @@ weight: 2 ## 前提条件{#zh-cn_topic_0254162571_section07036257166} - PVC已创建,所在的backend存在且支持扩容。 -- 支持扩容的存储请参考[表 华为企业存储支持的特性及约束](/docs/兼容性和特性/华为企业存储兼容性#table14995183994515)和[表 华为分布式存储支持的特性及约束](/docs/兼容性和特性/华为分布式存储兼容性#table175022559255),支持扩容的Kubernetes版本请参考[Kubernetes特性矩阵](/docs/兼容性和特性/Kubernetes特性矩阵)。 +- 支持扩容的存储请参考[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-enterprise-storage#table14995183994515)和[表2](/v4.5.0/compatibility-and-features/compatibility-with-huawei-distributed-storage#table175022559255),支持扩容的Kubernetes版本请参考[Kubernetes特性矩阵](/v4.5.0/compatibility-and-features/kubernetes-feature-matrix)。 - huawei-csi-controller启用了csi-resizer服务。 ``` @@ -26,7 +26,7 @@ weight: 2 ## 操作步骤{#zh-cn_topic_0254162571_section152212156464} -1. 执行命令,查询StorageClass是否支持扩容。其中,_mysc_ 为需要查看的StorageClass名称。 +1. 执行命令,查询StorageClass是否支持扩容。其中,_mysc_ 为需要查看的StorageClass名称。 ``` kubectl get sc mysc @@ -41,13 +41,13 @@ weight: 2 如果ALLOWVOLUMEEXPANSION的值为true,表示当前StorageClass已经支持扩容,请跳转至步骤[3](#zh-cn_topic_0254162571_li1143318914115)。 -2. 执行以下命令,将“allowVolumeExpansion“的值修改为“true“。其中,_mysc_ 为需要修改的StorageClass名称。 +2. 执行以下命令,将“allowVolumeExpansion“的值修改为“true“。其中,_mysc_ 为需要修改的StorageClass名称。 ``` kubectl patch sc mysc --patch '{"allowVolumeExpansion":true}' ``` -3. 执行命令,查询PVC的StorageClass名称。其中,_mypvc_ 为需要扩容的PVC名称。 +3. 执行命令,查询PVC的StorageClass名称。其中,_mypvc_ 为需要扩容的PVC名称。 ``` kubectl get pvc mypvc @@ -68,10 +68,10 @@ weight: 2 其中,"_mypvc_"是需要扩容的PVC名称,“_120Gi_”是扩容后的容量大小。请根据实际情况进行替换。 - >![](/css-docs/public_sys-resources/zh/icon-note.gif) - >- PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见[表 ext4容量的规格](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应PVC参数说明#zh-cn_topic_0150885187_table178824527142);当使用的是XFS文件系统时,容量限制见[表 XFS容量的规格](/docs/使用华为CSI/PVC管理/创建PVC/动态卷供应/动态卷供应PVC参数说明#zh-cn_topic_0150885187_table101951367104)。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。 + >![](/css-docs/public_sys-resources/zh-cn/icon-note.gif) + >- PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见[表2](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#zh-cn_topic_0150885187_table178824527142);当使用的是XFS文件系统时,容量限制见[表3](/v4.5.0/using-huawei-csi/managing-a-pvc/creating-a-pvc/dynamic-volume-provisioning/pvc-parameters-for-dynamic-volume-provisioning#zh-cn_topic_0150885187_table101951367104)。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。 >- 如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。 - >- 如果扩容的目标容量超过存储池容量导致扩容失败,请参考[PVC扩容的目标容量超过存储池容量导致扩容失败](/docs/故障处理/PVC相关问题/PVC扩容的目标容量超过存储池容量导致扩容失败)。 + >- 如果扩容的目标容量超过存储池容量导致扩容失败,请参考[PVC扩容的目标容量超过存储池容量导致扩容失败](/v4.5.0/troubleshooting/pvc-issues/failed-to-expand-the-pvc-capacity-because-the-target-capacity-exceeds-the-storage-pool-capacity)。 5. 执行命令,检查容量修改是否生效。 diff --git a/hugo.toml b/hugo.toml index 230aa1b..f7fbdbb 100644 --- a/hugo.toml +++ b/hugo.toml @@ -47,8 +47,11 @@ title = "Huawei CSS" description = "Huawei Container Storage Suite" version_menu = "Releases" [[languages.en.params.versions]] - version = "v4.5.0 (current)" - url = "https://huawei.github.io/css-docs/en/docs" +version = "v4.6.0 (current)" +url = "http://huawei.github.io/css-docs/en/docs" +[[languages.en.params.versions]] +version = "v4.5.0" +url = "http://huawei.github.io/css-docs/en/v4.5.0" [markup] [markup.goldmark] @@ -81,8 +84,11 @@ sidebar_search_disable = true showLightDarkModeMenu = false [[params.versions]] - version = "v4.5.0(当前版本)" - url = "https://huawei.github.io/css-docs/docs" +version = "v4.6.0(当前版本)" +url = "http://huawei.github.io/css-docs/docs" +[[params.versions]] +version = "v4.5.0" +url = "http://huawei.github.io/css-docs/v4.5.0" [[menu.main]] name = "GitHub"