1

如何在现有 storagePoolClaim 中添加设备?我以为我可以只编辑 spc 并将磁盘添加到其中,但我没有看到磁盘按应有的方式重新格式化。

4

1 回答 1

0

Github issue 2258 openEBS repo 正在跟踪这个。目前这可以通过补丁很少的资源来完成。从 github 解决方法中粘贴内容,

用于使用附加磁盘扩展 cStor 池(类型=条带化)。

简要说明 cStor 池组件 Storage Pool CR (SP) - 用于指定池使用的 Disk CR。cStor 存储池 CR (CSP) - 用于指定池使用的唯一磁盘路径。cStor 存储池部署和关联的 Pod。当使用一组磁盘创建 SPC 规范时,cstor-operator 将根据节点隔离磁盘。在每个节点上,将使用该节点的磁盘创建一个 cStor 池。配置池后,只能通过已在同一节点上发现的磁盘对其进行扩展。

以下步骤用于扩展单个 cStor 存储池,需要在与 SPC 对应的每个 cStor 池上重复。

步骤 1:识别与 SPC 关联的 cStor 池 (CSP) 和存储池 (SP)。

kubectl get sp -l openebs.io/storage-pool-claim=cstor-disk --show-labels

存储池示例输出:

NAME              AGE       LABELS
cstor-disk-i4xj   53m       kubernetes.io/hostname=gke-kmova-helm-default-pool-2c01cdf6-9mxq,openebs.io/cas-type=cstor,openebs.io/cstor-pool=cstor-disk-i4xj,openebs.io/storage-pool-claim=cstor-disk
cstor-disk-vt1u   53m       kubernetes.io/hostname=gke-kmova-helm-default-pool-2c01cdf6-dxbf,openebs.io/cas-type=cstor,openebs.io/cstor-pool=cstor-disk-vt1u,openebs.io/storage-pool-claim=cstor-disk
cstor-disk-ys0r   53m       kubernetes.io/hostname=gke-kmova-helm-default-pool-2c01cdf6-nh6w,openebs.io/cas-type=cstor,openebs.io/cstor-pool=cstor-disk-ys0r,openebs.io/storage-pool-claim=cstor-disk

从上面的列表中,选择需要扩展的 cStor Pool。CSP 和 SP 的名称将相同。其余步骤假设需要扩展 cstor-disk-vt1u。从上面的输出中,还记下运行 Pool 的节点。在这种情况下,节点是 gke-kmova-helm-default-pool-2c01cdf6-dxbf

第 2 步:确定需要连接到 cStor 池的新磁盘。以下命令可用于列出给定节点上的磁盘。

kubectl get disks -l kubernetes.io/hostname=gke-kmova-helm-default-pool-2c01cdf6-dxbf

样本磁盘输出。

NAME                                      AGE
disk-b407e5862d253e666636f2fe5a01355d     46m
disk-ffca7a8731976830057238c5dc25e94c     46m
sparse-ed5a5183d2dba23782d641df61a1d869   52m

下面的命令可以用来查看节点上已经使用的磁盘——gke-kmova-helm-default-pool-2c01cdf6-dxbf

kubectl get sp -l kubernetes.io/hostname=gke-kmova-helm-default-pool-2c01cdf6-dxbf -o jsonpath="{range .items[*]}{@.spec.disks.diskList};{end}" | tr ";" "\n"

样本输出:

[disk-b407e5862d253e666636f2fe5a01355d]
[sparse-ed5a5183d2dba23782d641df61a1d869]`

在这种情况下,disk-ffca7a8731976830057238c5dc25e94c 未使用。

第 3 步:使用磁盘路径详细信息修补 CSP 获取 devLinks 下唯一路径列出的磁盘路径。

kubectl get disk disk-ffca7a8731976830057238c5dc25e94c -o jsonpath="{range .spec.devlinks[0]}{@.links[0]};{end}" | tr ";" "\n"

样本输出:

/dev/disk/by-id/scsi-0Google_PersistentDisk_kmova-n2-d1

将上述磁盘路径修补到 CSP 中

kubectl patch csp cstor-disk-vt1u --type json -p '[{ "op": "add", "path": "/spec/disks/diskList/-", "value": "/dev/disk/by-id/scsi-0Google_PersistentDisk_kmova-n2-d1" }]'

通过执行 kubectl get csp cstor-disk-vt1u -o yaml 验证磁盘是否已修补,并检查是否在 diskList 下添加了新磁盘。

第 4 步:使用磁盘名称修补 SP 以下命令使用磁盘 (disk-ffca7a8731976830057238c5dc25e94c) 修补 SP (cstor-disk-vt1u)

kubectl patch sp cstor-disk-vt1u --type json -p '[{ "op": "add", "path": "/spec/disks/diskList/-", "value": "disk-ffca7a8731976830057238c5dc25e94c" }]'

通过执行 kubectl get sp cstor-disk-vt1u -o yaml 验证磁盘是否已修补,并检查是否在 diskList 下添加了新磁盘。

第 5 步:扩展池。最后一步是使用磁盘路径 (/dev/disk/by-id/scsi-0Google_PersistentDisk_kmova-n2-d1) 更新 cstor 池 pod (cstor-disk-vt1u)

识别与 CSP cstor-disk-vt1u 关联的 cstor 池 pod。

kubectl get pods -n openebs | grep cstor-disk-vt1u

样本输出:

cstor-disk-vt1u-65b659d574-8f6fp            2/2       Running   0          1h        10.44.1.8    gke-kmova-helm-default-pool-2c01cdf6-dxbf

检查池名称:

kubectl exec -it -n openebs cstor-disk-vt1u-65b659d574-8f6fp -- zpool list

样本输出:

NAME                                         SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
cstor-deaf87e6-ec78-11e8-893b-42010a80003a   496G   202K   496G         -     0%     0%  1.00x  ONLINE  -

从上面的输出中提取池名称。在这种情况下 - cstor-deaf87e6-ec78-11e8-893b-42010a80003a

使用附加磁盘扩展池。

kubectl exec -it -n openebs cstor-disk-vt1u-65b659d574-8f6fp -- zpool add cstor-deaf87e6-ec78-11e8-893b-42010a80003a /dev/disk/by-id/scsi-0Google_PersistentDisk_kmova-n2-d1

可以再次执行 list 命令查看容量的增加情况。

kubectl exec -it -n openebs cstor-disk-vt1u-65b659d574-8f6fp -- zpool list

样本输出:

NAME                                         SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
cstor-deaf87e6-ec78-11e8-893b-42010a80003a   992G   124K   992G         -     0%     0%  1.00x  ONLINE
于 2019-01-31T09:21:33.370 回答