Как добавить устройство в существующий StoragePoolClaim в OpenEBS?

Как добавить устройство в существующий StoragePoolClaim? Я думал, что могу просто отредактировать spc и добавить в него диск, но я не вижу переформатированного диска, как это должно быть.


person Chandan Sagar Pradhan    schedule 22.11.2018    source источник


Ответы (1)


Github issue 2258 репозиторий openEBS отслеживает это. В настоящее время это можно сделать, заплатив несколько ресурсов. Вставка содержимого из обходного пути github,

Для расширения пула cStor (тип=чередование) дополнительными дисками.

Краткое пояснение компонентов пула cStor Storage Pool CR (SP) — используется для указания дисковых CR, используемых пулом. cStor Storage Pool CR (CSP) — используется для указания уникального пути к диску, используемого пулом. Развертывание пула носителей cStor и связанный модуль. Когда спецификация SPC создается с набором дисков, cstor-оператор разделит диски на основе узла. И на каждом узле будет создан пул cStor с использованием дисков этого узла. После инициализации пула его можно расширить только за счет дисков, уже обнаруженных на том же узле.

Следующие шаги предназначены для расширения одного пула хранения cStor, и их необходимо будет повторить для каждого из пулов cStor, соответствующих SPC.

Шаг 1: Определите пул cStor (CSP) и пул хранения (SP), связанные с SPC.

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, который необходимо расширить. Имя CSP и SP будет одинаковым. Остальные шаги предполагают, что необходимо расширить cstor-disk-vt1u. Из приведенного выше вывода также запишите узел, на котором работает пул. В данном случае это узел 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 с именем диска Следующая команда исправляет SP (cstor-disk-vt1u) с помощью disk (disk-ffca7a8731976830057238c5dc25e94c)

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: Расширьте пул. Последний шаг — обновить модуль пула cstor (cstor-disk-vt1u), указав путь к диску (/dev/disk/by-id/scsi-0Google_PersistentDisk_kmova-n2-d1).

Определите модуль пула cstor, связанный с CSP cstor-disk-vt1u.

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

Вы можете снова выполнить команду списка, чтобы увидеть увеличение емкости.

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
person Ajesh    schedule 31.01.2019