Стадия жизненного цикла модуля: General Availability
Работоспособность модуля гарантируется только при использовании стоковых ядер, поставляемых вместе с поддерживаемыми дистрибутивами.
Работоспособность модуля при использовании других ядер или дистрибутивов возможна, но не гарантируется.
Если вы создаёте виртуальные машины клонированием, измените UUID у групп томов на созданных таким образом виртуальных машинах. Клонированные группы томов имеют идентичные UUID, что может привести к конфликтам. Подробные инструкции см. в разделе «Как изменить UUID у групп томов при клонировании виртуальных машин?».
Способы и сценарии конфигурации дисковой подсистемы узлов
Существуют два способа конфигурации дисковой подсистемы на узлах кластера Kubernetes в зависимости от условий организации хранилища:
Для каждого из способов конфигурации дисковой подсистемы на узлах существует два сценария конфигурации:
- «Полное зеркало» — рекомендуется использовать, так как надёжен и прост в настройке.
- «Частичное зеркало».
Особенности, плюсы и минусы сценариев приведены в таблице:
| Сценарий конфигурации | Особенности реализации | Плюсы | Минусы |
|---|---|---|---|
| «Полное зеркало» |
|
|
|
| «Частичное зеркало» |
|
|
|
Различия в конфигурации дисковой подсистемы в зависимости от выбранного сценария изображены на схеме:

Хранилище с одинаковыми дисками
Используйте этот способ при наличии на узле дисков одного типа.
Полное зеркало
Этот сценарий рекомендуется использовать, так как он надёжен и прост в настройке.
Настройте узел по этому сценарию:
-
Соберите зеркало из дисков целиком (аппаратно или программно). Это зеркало будет использоваться одновременно для корневой системы и для данных.
-
При установке операционной системы:
- создайте группу томов с именем
mainна зеркале; - создайте логический том с именем
rootв группе томовmain; - установите операционную систему на логический том
root.
- создайте группу томов с именем
-
Установите тег
storage.deckhouse.io/enabled=trueдля группы томовmain, выполнив команду:vgchange main --addtag storage.deckhouse.io/enabled=true -
Добавьте подготовленный узел в кластер.
Если узел соответствует
nodeSelector, указанному вspec.nodeSelectorмодулейsds-replicated-volumeилиsds-local-volume, на узле запустится агент модуляsds-node-configurator. Агент обнаружит группу томовmainи создаст соответствующий ресурс LVMVolumeGroup в кластере. Ресурс можно использовать для создания томов в модуляхsds-replicated-volumeилиsds-local-volume.
Пример настройки модулей SDS (одинаковые диски, «Полное зеркало»)
Настройте три узла по сценарию «Полное зеркало». После настройки в кластере будут созданы три ресурса LVMVolumeGroup со случайно сгенерированными именами.
В будущем будет возможность указать имя для ресурсов LVMVolumeGroup, создаваемых при автоматическом обнаружении групп томов, путём добавления тега LVM с желаемым именем ресурса.
Выведите список ресурсов LVMVolumeGroup, выполнив команду:
d8 k get lvmvolumegroups.storage.deckhouse.io
Пример вывода:
NAME THINPOOLS CONFIGURATION APPLIED PHASE NODE SIZE ALLOCATED SIZE VG AGE
vg-08d3730c-9201-428d-966c-45795cba55a6 0/0 True Ready worker-2 25596Mi 0 main 61s
vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 main 4m17s
vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 0/0 True Ready worker-1 25596Mi 0 main 108s
Настройка модуля sds-local-volume (одинаковые диски, «Полное зеркало»)
Настройте модуль sds-local-volume по сценарию «Полное зеркало»: создайте ресурс LocalStorageClass и добавьте в него все ресурсы LVMVolumeGroup, чтобы группа томов main использовалась на всех узлах в модуле sds-local-volume. Выполните команду:
d8 k apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: LocalStorageClass
metadata:
name: local-sc
spec:
lvm:
lvmVolumeGroups:
- name: vg-08d3730c-9201-428d-966c-45795cba55a6
- name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d
- name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7
type: Thick
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
EOF
Настройка модуля sds-replicated-volume (одинаковые диски, «Полное зеркало»)
Настройте модуль sds-replicated-volume по сценарию «Полное зеркало»:
-
Создайте ресурс ReplicatedStoragePool и добавьте в него все ресурсы LVMVolumeGroup, чтобы группа томов
mainиспользовалась на всех узлах в модулеsds-replicated-volume. Выполните команду:d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStoragePool metadata: name: data spec: type: LVM lvmVolumeGroups: - name: vg-08d3730c-9201-428d-966c-45795cba55a6 - name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d - name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 EOF -
Создайте ресурс ReplicatedStorageClass и в поле
storagePoolукажите имя созданного ранее ресурса ReplicatedStoragePool. Выполните команду:d8 k apply -f -<<EOF --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r1 spec: storagePool: data replication: None reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон (узлов с метками topology.kubernetes.io/zone) --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r2 spec: storagePool: data replication: Availability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r3 spec: storagePool: data replication: ConsistencyAndAvailability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон EOF
Частичное зеркало
Не поддерживается использование разделов с одинаковыми PARTUUID, а также изменение PARTUUID раздела, который используется для создания группы томов.
При создании таблицы разделов рекомендуется выбрать формат GPT, так как PARTUUID в MBR является псевдослучайным и содержит в себе номер раздела.
Помимо этого, в MBR нельзя задать атрибут PARTLABEL, который может пригодиться для последующей идентификации раздела.
В этом сценарии на каждом диске создаются два раздела:
- первый раздел используется для создания зеркала, на котором размещается корневая система и данные SDS, которые не реплицируются;
- второй раздел используется для создания отдельной группы томов без зеркалирования для данных SDS, которые реплицируются.
Это позволяет максимально эффективно использовать место на диске.
Настройте узел по сценарию «Частичное зеркало»:
-
При установке операционной системы:
- создайте по два раздела на каждом диске;
- соберите зеркало из первых разделов на каждом диске;
- создайте группу томов с именем
main-safeна зеркале; - создайте логический том с именем
rootв группе томовmain-safe; - установите операционную систему на логический том
root.
-
Установите тег
storage.deckhouse.io/enabled=trueдля группы томовmain-safe, выполнив команду:vgchange main-safe --addtag storage.deckhouse.io/enabled=true -
Создайте группу томов с именем
main-unsafeиз вторых разделов каждого диска. -
Установите тег
storage.deckhouse.io/enabled=trueдля группы томовmain-unsafe, выполнив команду:vgchange main-unsafe --addtag storage.deckhouse.io/enabled=true -
Добавьте подготовленный узел в кластер.
Если узел соответствует
nodeSelector, указанному вspec.nodeSelectorмодулейsds-replicated-volumeилиsds-local-volume, на узле запустится агент модуляsds-node-configurator. Агент обнаружит группы томовmain-safeиmain-unsafeи создаст соответствующие ресурсы LVMVolumeGroup в кластере. Ресурсы можно использовать для создания томов в модуляхsds-replicated-volumeилиsds-local-volume.
Пример настройки модулей SDS (одинаковые диски, «Частичное зеркало»)
Пример описывает настройку трёх узлов по сценарию «Частичное зеркало». После настройки в кластере будут созданы шесть ресурсов LVMVolumeGroup со случайно сгенерированными именами.
В будущем будет возможность указать имя для ресурсов LVMVolumeGroup, создаваемых при автоматическом обнаружении групп томов, путём добавления тега LVM с желаемым именем ресурса.
Выведите список ресурсов LVMVolumeGroup, выполнив команду:
d8 k get lvmvolumegroups.storage.deckhouse.io
Пример вывода:
NAME THINPOOLS CONFIGURATION APPLIED PHASE NODE SIZE ALLOCATED SIZE VG AGE
vg-08d3730c-9201-428d-966c-45795cba55a6 0/0 True Ready worker-2 25596Mi 0 main-safe 61s
vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 main-safe 4m17s
vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 0/0 True Ready worker-1 25596Mi 0 main-safe 108s
vg-deccf08a-44d4-45f2-aea9-6232c0eeef91 0/0 True Ready worker-2 25596Mi 0 main-unsafe 61s
vg-e0f00cab-03b3-49cf-a2f6-595628a2593c 0/0 True Ready worker-0 25596Mi 0 main-unsafe 4m17s
vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 0/0 True Ready worker-1 25596Mi 0 main-unsafe 108s
Настройка модуля sds-local-volume (одинаковые диски, «Частичное зеркало»)
Настройте модуль sds-local-volume по сценарию «Частичное зеркало»: создайте ресурс LocalStorageClass и добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модуле sds-local-volume использовалась только группа томов main-safe. Выполните команду:
d8 k apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: LocalStorageClass
metadata:
name: local-sc
spec:
lvm:
lvmVolumeGroups:
- name: vg-08d3730c-9201-428d-966c-45795cba55a6
- name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d
- name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7
type: Thick
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
EOF
Настройка модуля sds-replicated-volume (одинаковые диски, «Частичное зеркало»)
Настройте модуль sds-replicated-volume по сценарию «Частичное зеркало»:
-
Создайте ресурс ReplicatedStoragePool с именем
data-safeи добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модулеsds-replicated-volumeв ReplicatedStorageClass с параметромreplication: Noneиспользовалась только группа томовmain-safe. Выполните команду:d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStoragePool metadata: name: data-safe spec: type: LVM lvmVolumeGroups: - name: vg-08d3730c-9201-428d-966c-45795cba55a6 - name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d - name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 EOF -
Создайте ресурс ReplicatedStoragePool с именем
data-unsafeи добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модулеsds-replicated-volumeв ReplicatedStorageClass с параметромreplication: Availabilityилиreplication: ConsistencyAndAvailabilityиспользовалась только группа томовmain-unsafe. Выполните команду:d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStoragePool metadata: name: data-unsafe spec: type: LVM lvmVolumeGroups: - name: vg-deccf08a-44d4-45f2-aea9-6232c0eeef91 - name: vg-e0f00cab-03b3-49cf-a2f6-595628a2593c - name: vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 EOF -
Создайте ресурс ReplicatedStorageClass и в поле
storagePoolукажите имя созданных ранее ресурсов ReplicatedStoragePool, чтобы на всех узлах использовались группы томовmain-safeиmain-unsafe. Выполните команду:d8 k apply -f -<<EOF --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r1 spec: storagePool: data-safe # Обратите внимание, что для этого ресурса следует использовать `data-safe`, поскольку у него указано `replication: None`, что означает, что репликация данных для постоянных томов (PV), созданных с этим StorageClass, выполняться не будет replication: None reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон (узлов с метками topology.kubernetes.io/zone) --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r2 spec: storagePool: data-unsafe # Обратите внимание, что для этого ресурса следует использовать `data-unsafe`, поскольку у него указано `replication: Availability`, что означает, что будет выполняться репликация данных для постоянных томов (PV), созданных с этим StorageClass replication: Availability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r3 spec: storagePool: data-unsafe # Обратите внимание, что для этого ресурса следует использовать `data-unsafe`, поскольку у него указано `replication: ConsistencyAndAvailability`, что означает, что будет выполняться репликация данных для постоянных томов (PV), созданных с этим StorageClass replication: ConsistencyAndAvailability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон EOF
Комбинированное хранилище
Используйте комбинированное хранилище при одновременном использовании на узле дисков разных типов.
При комбинировании дисков разных типов для создания хранилища рекомендуется сделать зеркало из дисков одного типа и установить на него операционную систему по сценарию «Полное зеркало», но не использовать для SDS.
Для SDS используйте диски других типов (далее — дополнительные диски), отличающиеся от используемых для зеркала под операционную систему.
Рекомендации по использованию дополнительных дисков в зависимости от их типа:
| Тип диска | Рекомендуемые цели использования |
|---|---|
| NVMe SSD | Создание томов, требующих высокой производительности |
| SATA SSD | Создание томов, не требующих высокой производительности |
| HDD | Создание томов, не требующих высокой производительности |
Дополнительные диски можно настраивать по любому из сценариев «Полное зеркало» либо «Частичное зеркало».
Ниже описан процесс настройки дополнительных дисков на примере следующих типов:
- NVMe SSD.
- SATA SSD.
- HDD.
Настройка дополнительных дисков (Полное зеркало)
Ниже описан порядок действий по настройке дополнительных дисков для случая первичного развертывания и конфигурирования кластера при подключении к узлам по SSH. Если у вас уже есть работающий кластер и вы добавляете на его узлы дополнительные диски, рекомендуется создавать и настраивать группы томов с помощью ресурса LVMVolumeGroup, вместо выполнения на узле приведенных ниже команд.
Настройте дополнительные диски на узле по сценарию «Полное зеркало»:
-
Соберите зеркало из всех дополнительных дисков определенного типа целиком (аппаратно или программно).
-
Создайте группу томов с именем
<vg-name>на зеркале. -
Установите тег
storage.deckhouse.io/enabled=trueдля группы томов<vg-name>, выполнив команду:vgchange <vg-name> --addtag storage.deckhouse.io/enabled=true
Замените <vg-name> на информативное имя в зависимости от типа дополнительных дисков.
Примеры имён групп томов для дополнительных дисков разных типов:
ssd-nvme— для дисков NVMe SSD.ssd-sata— для дисков SATA SSD.hdd— для дисков HDD.
Пример настройки модулей SDS (комбинированное хранилище, «Полное зеркало»)
Пример описывает настройку трёх узлов по сценарию «Полное зеркало». После настройки в кластере будут созданы три ресурса LVMVolumeGroup со случайно сгенерированными именами.
В будущем будет возможность указать имя для ресурсов LVMVolumeGroup, создаваемых при автоматическом обнаружении групп томов, путём добавления тега LVM с желаемым именем ресурса.
Выведите список ресурсов LVMVolumeGroup, выполнив команду:
d8 k get lvmvolumegroups.storage.deckhouse.io
Пример вывода:
NAME THINPOOLS CONFIGURATION APPLIED PHASE NODE SIZE ALLOCATED SIZE VG AGE
vg-08d3730c-9201-428d-966c-45795cba55a6 0/0 True Ready worker-2 25596Mi 0 <vg-name> 61s
vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 <vg-name> 4m17s
vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 0/0 True Ready worker-1 25596Mi 0 <vg-name> 108s
<vg-name> — имя, присвоенное группе томов на зеркале на предыдущем шаге.
Настройка модуля sds-local-volume (комбинированное хранилище, «Полное зеркало»)
Настройте модуль sds-local-volume по сценарию «Полное зеркало»: создайте ресурс LocalStorageClass и добавьте в него все ресурсы LVMVolumeGroup, чтобы группа томов <vg-name> использовалась на всех узлах в модуле sds-local-volume. Выполните команду:
d8 k apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: LocalStorageClass
metadata:
name: <local-storage-class-name>
spec:
lvm:
lvmVolumeGroups:
- name: vg-08d3730c-9201-428d-966c-45795cba55a6
- name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d
- name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7
type: Thick
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
EOF
В примере выше <local-storage-class-name> замените на информативное имя, в зависимости от типа дополнительных дисков.
Примеры информативных имен ресурса LocalStorageClass для дополнительных дисков разных типов:
local-sc-ssd-nvme— для дисков NVMe SSD.local-sc-ssd-sata— для дисков SATA SSD.local-sc-ssd-hdd— для дисков HDD.
Настройка модуля sds-replicated-volume (комбинированное хранилище, «Полное зеркало»)
Настройте модуль sds-replicated-volume по сценарию «Полное зеркало»:
-
Создайте ресурс ReplicatedStoragePool и добавьте в него все ресурсы LVMVolumeGroup, чтобы группа томов
<vg-name>использовалась на всех узлах в модулеsds-replicated-volume. Выполните команду:d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStoragePool metadata: name: <replicated-storage-pool-name> spec: type: LVM lvmVolumeGroups: - name: vg-08d3730c-9201-428d-966c-45795cba55a6 - name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d - name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 EOFЗамените
<replicated-storage-pool-name>на информативное имя в зависимости от типа дополнительных дисков.Примеры информативных имён ресурса ReplicatedStoragePool для дополнительных дисков разных типов:
data-ssd-nvme— для дисков NVMe SSD.data-ssd-sata— для дисков SATA SSD.data-hdd— для дисков HDD.
-
Создайте ресурс ReplicatedStorageClass и в поле
storagePoolукажите имя созданного ранее ресурса ReplicatedStoragePool. Выполните команду:d8 k apply -f -<<EOF --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r1 spec: storagePool: <replicated-storage-pool-name> replication: None reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон (узлов с метками topology.kubernetes.io/zone) --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r2 spec: storagePool: <replicated-storage-pool-name> replication: Availability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r3 spec: storagePool: <replicated-storage-pool-name> replication: ConsistencyAndAvailability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон EOF
Настройка дополнительных дисков (Частичное зеркало)
Не поддерживается использование разделов с одинаковыми PARTUUID, а также изменение PARTUUID раздела, который используется для создания группы томов.
При создании таблицы разделов рекомендуется выбрать формат GPT, так как PARTUUID в MBR является псевдослучайным и содержит в себе номер раздела.
Помимо этого, в MBR нельзя задать атрибут PARTLABEL, который может пригодиться для последующей идентификации раздела.
Ниже описан порядок действий по настройке дополнительных дисков для случая первичного развертывания и конфигурирования кластера при подключении к узлам по SSH. Если у вас уже есть работающий кластер и вы добавляете на его узлы дополнительные диски, рекомендуется создавать и настраивать группы томов с помощью ресурса LVMVolumeGroup, вместо выполнения на узле приведенных ниже команд.
В этом сценарии на каждом диске создаются два раздела:
- первый раздел используется для создания зеркала для данных SDS, которые не реплицируются;
- второй раздел используется для создания отдельной группы томов без зеркалирования для данных SDS, которые реплицируются.
Это позволяет максимально эффективно использовать место на диске.
Настройте узел с дополнительными дисками по сценарию «Частичное зеркало»:
-
Создайте по два раздела на каждом дополнительном диске.
-
Соберите зеркало из первых разделов на каждом диске.
-
Создайте группу томов с именем
<vg-name>-safeна зеркале. -
Создайте группу томов с именем
<vg-name>-unsafeиз вторых разделов каждого диска. -
Установите тег
storage.deckhouse.io/enabled=trueдля групп томов<vg-name>-safeи<vg-name>-unsafe, выполнив команды:vgchange <vg-name>-safe --addtag storage.deckhouse.io/enabled=true vgchange <vg-name>-unsafe --addtag storage.deckhouse.io/enabled=trueЗамените
<vg-name>на информативный префикс в зависимости от типа дополнительных дисков.Примеры информативного префикса
<vg-name>для дополнительных дисков разных типов:ssd-nvme— для дисков NVMe SSD.ssd-sata— для дисков SATA SSD.hdd— для дисков HDD.
Пример настройки модулей SDS (комбинированное хранилище, «Частичное зеркало»)
Пример описывает настройку трёх узлов по сценарию «Частичное зеркало». После настройки в кластере будут созданы шесть ресурсов LVMVolumeGroup со случайно сгенерированными именами.
В будущем будет возможность указать имя для ресурсов LVMVolumeGroup, создаваемых при автоматическом обнаружении групп томов, путём добавления тега LVM с желаемым именем ресурса.
Выведите список ресурсов LVMVolumeGroup, выполнив команду:
d8 k get lvmvolumegroups.storage.deckhouse.io
Пример вывода:
NAME THINPOOLS CONFIGURATION APPLIED PHASE NODE SIZE ALLOCATED SIZE VG AGE
vg-08d3730c-9201-428d-966c-45795cba55a6 0/0 True Ready worker-2 25596Mi 0 <vg-name>-safe 61s
vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 <vg-name>-safe 4m17s
vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 0/0 True Ready worker-1 25596Mi 0 <vg-name>-safe 108s
vg-deccf08a-44d4-45f2-aea9-6232c0eeef91 0/0 True Ready worker-2 25596Mi 0 <vg-name>-unsafe 61s
vg-e0f00cab-03b3-49cf-a2f6-595628a2593c 0/0 True Ready worker-0 25596Mi 0 <vg-name>-unsafe 4m17s
vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 0/0 True Ready worker-1 25596Mi 0 <vg-name>-unsafe 108s
<vg-name> — префикс имени, присвоенного группе томов, созданной на предыдущем шаге.
Настройка модуля sds-local-volume (комбинированное хранилище, «Частичное зеркало»)
Настройте модуль sds-local-volume по сценарию «Частичное зеркало»: создайте ресурс LocalStorageClass и добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модуле sds-local-volume использовалась только группа томов <vg-name>-safe. Выполните команду:
d8 k apply -f -<<EOF
apiVersion: storage.deckhouse.io/v1alpha1
kind: LocalStorageClass
metadata:
name: <local-storage-class-name>
spec:
lvm:
lvmVolumeGroups:
- name: vg-08d3730c-9201-428d-966c-45795cba55a6
- name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d
- name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7
type: Thick
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
EOF
В примере выше <local-storage-class-name> замените на информативное имя, в зависимости от типа дополнительных дисков.
Примеры информативных имен ресурса LocalStorageClass для дополнительных дисков разных типов:
local-sc-ssd-nvme— для дисков NVMe SSD.local-sc-ssd-sata— для дисков SATA SSD.local-sc-hdd— для дисков HDD.
Настройка модуля sds-replicated-volume (комбинированное хранилище, «Частичное зеркало»)
Настройте модуль sds-replicated-volume по сценарию «Частичное зеркало»:
-
Создайте ресурс ReplicatedStoragePool с именем
data-<vg-name>-safeи добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модулеsds-replicated-volumeв ReplicatedStorageClass с параметромreplication: Noneиспользовалась только группа томов<vg-name>-safe. Выполните команду:d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStoragePool metadata: name: data-<vg-name>-safe spec: type: LVM lvmVolumeGroups: - name: vg-08d3730c-9201-428d-966c-45795cba55a6 - name: vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d - name: vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 EOFЗамените
data-<vg-name>-safeна информативное имя в зависимости от типа дополнительных дисков.Примеры информативных имён ресурса ReplicatedStoragePool для дополнительных дисков разных типов:
data-ssd-nvme-safe— для дисков NVMe SSD.data-ssd-sata-safe— для дисков SATA SSD.data-hdd-safe— для дисков HDD.
-
Создайте ресурс ReplicatedStoragePool с именем
data-<vg-name>-unsafeи добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модулеsds-replicated-volumeв ReplicatedStorageClass с параметромreplication: Availabilityилиreplication: ConsistencyAndAvailabilityиспользовалась только группа томов<vg-name>-unsafe. Выполните команду:d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStoragePool metadata: name: data-<vg-name>-unsafe spec: type: LVM lvmVolumeGroups: - name: vg-deccf08a-44d4-45f2-aea9-6232c0eeef91 - name: vg-e0f00cab-03b3-49cf-a2f6-595628a2593c - name: vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 EOFВ примере выше
data-<vg-name>-unsafeзамените на информативное имя, в зависимости от типа дополнительных дисков.Примеры информативных имен ресурса ReplicatedStoragePool для дополнительных дисков разных типов:
data-ssd-nvme-unsafe— для дисков NVMe SSD.data-ssd-sata-unsafe— для дисков SATA SSD.data-hdd-unsafe— для дисков HDD.
-
Создайте ресурс ReplicatedStorageClass и в поле
storagePoolукажите имя созданных ранее ресурсов ReplicatedStoragePool, чтобы на всех узлах использовались группы томов<vg-name>-safeи<vg-name>-unsafe. Выполните команду:d8 k apply -f -<<EOF --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r1 spec: storagePool: data-<vg-name>-safe # Обратите внимание, что для этого ресурса следует использовать `data-<vg-name>-safe`, поскольку у него указано `replication: None`, что означает, что репликация данных для постоянных томов (PV), созданных с этим StorageClass, выполняться не будет replication: None reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон (узлов с метками topology.kubernetes.io/zone) --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r2 spec: storagePool: data-<vg-name>-unsafe # Обратите внимание, что для этого ресурса следует использовать `data-<vg-name>-unsafe`, поскольку у него указано `replication: Availability`, что означает, что будет выполняться репликация данных для постоянных томов (PV), созданных с этим StorageClass replication: Availability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r3 spec: storagePool: data-<vg-name>-unsafe # Обратите внимание, что для этого ресурса следует использовать `data-<vg-name>-unsafe`, поскольку у него указано `replication: ConsistencyAndAvailability`, что означает, что будет выполняться репликация данных для постоянных томов (PV), созданных с этим StorageClass replication: ConsistencyAndAvailability reclaimPolicy: Delete topology: Ignored # При указании данной топологии в кластере не должно быть зон EOFЗамените
data-<vg-name>-unsafeна информативное имя в зависимости от типа дополнительных дисков.Примеры информативных имён ресурса ReplicatedStoragePool для дополнительных дисков разных типов:
data-ssd-nvme-unsafe— для дисков NVMe SSD.data-ssd-sata-unsafe— для дисков SATA SSD.data-hdd-unsafe— для дисков HDD.
Замените
data-<vg-name>-safeна информативное имя в зависимости от типа дополнительных дисков.Примеры информативных имён ресурса ReplicatedStoragePool для дополнительных дисков разных типов:
data-ssd-nvme-safe— для дисков NVMe SSD.data-ssd-sata-safe— для дисков SATA SSD.data-hdd-safe— для дисков HDD.