Работоспособность модуля гарантируется только при использовании стоковых ядер, поставляемых вместе с поддерживаемыми дистрибутивами.
Работоспособность модуля при использовании других ядер или дистрибутивов возможна, но не гарантируется.
Если вы создаёте виртуальные машины клонированием,
необходимо изменить UUID у групп томов (VG) на созданных таким образом виртуальных машинах, выполнив команду vgchange -u.
Данная команда сгенерирует новые UUID для всех VG на виртуальной машине.
При необходимости команду можно добавить в скрипт cloud-init.
Изменить UUID у VG можно, только если в группе томов нет активных логических томов (LV). Чтобы деактивировать логический том, отмонтируйте его и выполните следующую команду:
lvchange -an <VG_or_LV_NAME>
, где <VG_or_LV_NAME> — название VG, для деактивации всех томов в группе, или название LV, для деактивации конкретного тома.
Способы и сценарии конфигурации дисковой подсистемы узлов
На данной странице рассматриваются 2 способа конфигурации дисковой подсистемы на узлах кластера Kubernetes в зависимости от условий организации хранилища:
Для каждого из способов конфигурации дисковой подсистемы на узлах существует два сценария конфигурации:
- «Полное зеркало». Мы рекомендуем использовать данный сценарий конфигурации, поскольку он достаточно надёжен и прост в настройке.
- «Частичное зеркало».
Особенности, плюсы и минусы сценариев приведены в таблице:
| Сценарий конфигурации | Особенности реализации | Плюсы | Минусы |
|---|---|---|---|
| «Полное зеркало» |
|
|
|
| «Частичное зеркало» |
|
|
|
Различия в порядке конфигурации дисковой подсистемы в зависимости от выбранного сценария конфигурации изображены на схеме:

Хранилище с одинаковыми дисками
Этот способ подразумевает использование на узле дисков одного типа.
Полное зеркало
Мы рекомендуем использовать этот сценарий конфигурации, поскольку он достаточно надёжен и прост в настройке.
Чтобы настроить узел по этому сценарию, выполните следующее:
-
Соберите зеркало из дисков целиком (аппаратно или программно). Это зеркало будет использоваться одновременно для корневой системы и для данных.
-
При установке операционной системы:
- создайте VG с именем
mainна зеркале; - создайте LV с именем
rootв VGmain; - установите операционную систему на LV
root.
- создайте VG с именем
-
Установите тег
storage.deckhouse.io/enabled=trueдля VGmain, используя следующую команду:vgchange main --addtag storage.deckhouse.io/enabled=true -
Добавьте подготовленный узел в кластер Deckhouse.
Если узел подходит под
nodeSelector, который указан вspec.nodeSelectorмодулейsds-replicated-volumeилиsds-local-volume, то на этом узле запустится агент модуляsds-node-configurator, который определит VGmainи добавит соответствующий этой VG ресурсLVMVolumeGroupв кластер Deckhouse. Дальше ресурсLVMVolumeGroupможно использовать для создания томов в модуляхsds-replicated-volumeилиsds-local-volume.
Пример настройки модулей SDS (одинаковые диски, «Полное зеркало»)
В данном примере предполагается, что вы настроили три узла по сценарию «Полное зеркало».
В кластере Deckhouse при этом появятся три ресурса LVMVolumeGroup со случайно сгенерированными именами.
В будущем добавится возможность указывать имя для ресурсов LVMVolumeGroup,
которые создаются в процессе автоматического обнаружения VG, с помощью тега LVM с желаемым именем ресурса.
Чтобы вывести список ресурсов LVMVolumeGroup, выполните следующую команду:
kubectl 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, чтобы VG main использовалась на всех узлах в модуле sds-local-volume:
kubectl 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, чтобы VGmainиспользовалась на всех узлах в модулеsds-replicated-volume:kubectl 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:kubectl 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 раздела, который используется для создания VG.
При создании таблицы разделов рекомендуется выбрать формат GPT,
так как PARTUUID в MBR является псевдослучайным и содержит в себе номер раздела.
Помимо этого, в MBR нельзя задать атрибут PARTLABEL,
который может пригодиться для последующей идентификации раздела в Deckhouse.
В данном сценарии используются два раздела на каждом диске: один для корневой системы и хранения данных SDS, которые не реплицируются, и другой для данных SDS, которые реплицируются. Первый раздел каждого диска используется для создания зеркала, а второй – для создания отдельной VG без зеркалирования. Это позволяет максимально эффективно использовать место на диске.
Чтобы настроить узел по сценарию «Частичное зеркало», выполните следующее:
-
При установке операционной системы:
- создайте по два раздела на каждом диске;
- соберите зеркало из первых разделов на каждом диске;
- создайте VG с именем
main-safeна зеркале; - создайте LV с именем
rootв VGmain-safe; - установите операционную систему на LV
root.
-
Установите тег
storage.deckhouse.io/enabled=trueдля VGmain-safe, используя следующую команду:vgchange main-safe --addtag storage.deckhouse.io/enabled=true -
Создайте VG с именем
main-unsafeиз вторых разделов каждого диска. -
Установите тег
storage.deckhouse.io/enabled=trueдля VGmain-unsafe, используя следующую команду:vgchange main-unsafe --addtag storage.deckhouse.io/enabled=true -
Добавьте подготовленный узел в кластер Deckhouse.
Если узел подходит под
nodeSelector, который указан вspec.nodeSelectorмодулейsds-replicated-volumeилиsds-local-volume, то на этом узле запустится агент модуляsds-node-configurator, который определит VGmain-safeиmain-unsafeи добавит соответствующие этим VG ресурсыLVMVolumeGroupв кластер Deckhouse. Дальше ресурсыLVMVolumeGroupможно использовать для создания томов в модуляхsds-replicated-volumeилиsds-local-volume.
Пример настройки модулей SDS (одинаковые диски, «Частичное зеркало»)
В данном примере предполагается, что вы настроили три узла по сценарию «Частичное зеркало».
В кластере Deckhouse при этом появятся шесть ресурсов LVMVolumeGroup со случайно сгенерированными именами.
В будущем добавится возможность указывать имя для ресурсов LVMVolumeGroup,
которые создаются в процессе автоматического обнаружения VG, с помощью тега LVM с желаемым именем ресурса.
Чтобы вывести список ресурсов LVMVolumeGroup, выполните следующую команду:
kubectl 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 использовалась только VG main-safe:
kubectl 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использовалась только VGmain-safe:kubectl 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использовалась только VGmain-unsafe:kubectl 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, чтобы на всех узлах использовались VGmain-safeиmain-unsafe:kubectl apply -f -<<EOF --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r1 spec: storagePool: data-safe # Обратите внимание, что из-за replication: None для этого ресурса используется data-safe; следовательно, репликация данных для постоянных томов (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 # Обратите внимание, что из-за replication: Availability для этого ресурса используется data-unsafe; следовательно, будет проводиться репликация данных для PV, созданных с этим StorageClass replication: Availability reclaimPolicy: Delete topology: Ignored --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-r3 spec: storagePool: data-unsafe # Обратите внимание, что из-за replication: ConsistencyAndAvailability для этого ресурса используется data-unsafe; следовательно, будет проводиться репликация данных для PV, созданных с этим StorageClass replication: ConsistencyAndAvailability reclaimPolicy: Delete topology: Ignored EOF
Комбинированное хранилище
Комбинированное хранилище предполагает одновременное использование на узле дисков разных типов.
В ситуации, когда для создания хранилища комбинируются диски разных типов, мы рекомендуем сделать зеркало из дисков одного типа и установить на него операционную систему по сценарию «Полное зеркало», но не использовать для SDS.
Для SDS используйте диски других типов (далее — дополнительные диски), отличающихся от тех, что используются для зеркала под операционную систему.
Рекомендации по использованию дополнительных дисков в зависимости от их типа:
| Тип диска | Рекомендуемые цели использования |
|---|---|
| NVMe SSD | Создание томов, требующих высокой производительности |
| SATA SSD | Создание томов, не требующих высокой производительности |
| HDD | Создание томов, не требующих высокой производительности |
Дополнительные диски можно настраивать по любому из сценариев «Полное зеркало» либо «Частичное зеркало».
Ниже будет рассмотрен процесс настройки дополнительных дисков на примере следующих типов:
- NVMe SSD.
- SATA SSD.
- HDD.
Настройка дополнительных дисков (Полное зеркало)
Ниже описан порядок действий по настройке дополнительных дисков для случая первичного развертывания и конфигурирования кластера при подключении к узлам по SSH. Если у вас уже есть работающий кластер и вы добавляете на его узлы дополнительные диски, рекомендуется создавать и настраивать VG с помощью ресурса LVMVolumeGroup, вместо выполнения на узле приведенных ниже команд.
Чтобы настроить дополнительные диски на узле по сценарию «Полное зеркало», выполните следующее:
-
Соберите зеркало из всех дополнительных дисков определенного типа целиком (аппаратно или программно).
-
Создайте VG с именем
<vg-name>на зеркале. -
Установите тег
storage.deckhouse.io/enabled=trueдля VG<vg-name>, используя следующую команду:vgchange <vg-name> --addtag storage.deckhouse.io/enabled=true
В примере выше <vg-name> замените на информативное имя, в зависимости от типа дополнительных дисков.
Примеры имен VG для дополнительных дисков разных типов:
ssd-nvme— для дисков NVMe SSD.ssd-sata— для дисков SATA SSD.hdd— для дисков HDD.
Пример настройки модулей SDS (комбинированное хранилище, «Полное зеркало»)
В данном примере предполагается, что вы настроили три узла по сценарию «Полное зеркало».
В кластере Deckhouse при этом появятся три ресурса LVMVolumeGroup со случайно сгенерированными именами.
В будущем добавится возможность указывать имя для ресурсов LVMVolumeGroup,
которые создаются в процессе автоматического обнаружения VG, с помощью тега LVM с желаемым именем ресурса.
Чтобы вывести список ресурсов LVMVolumeGroup, выполните следующую команду:
kubectl 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> — имя, присвоенное VG на зеркале на предыдущем шаге.
Настройка модуля sds-local-volume (комбинированное хранилище, «Полное зеркало»)
Чтобы настроить модуль sds-local-volume по сценарию «Полное зеркало», создайте ресурс LocalStorageClass
и добавьте в него все ресурсы LVMVolumeGroup, чтобы VG <vg-name> использовалась на всех узлах в модуле sds-local-volume:
kubectl 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<vg-name>использовалась на всех узлах в модулеsds-replicated-volume:kubectl 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:kubectl 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 раздела, который используется для создания VG.
При создании таблицы разделов рекомендуется выбрать формат GPT,
так как PARTUUID в MBR является псевдослучайным и содержит в себе номер раздела.
Помимо этого, в MBR нельзя задать атрибут PARTLABEL,
который может пригодиться для последующей идентификации раздела в Deckhouse.
Ниже описан порядок действий по настройке дополнительных дисков для случая первичного развертывания и конфигурирования кластера при подключении к узлам по SSH. Если у вас уже есть работающий кластер и вы добавляете на его узлы дополнительные диски, рекомендуется создавать и настраивать VG с помощью ресурса LVMVolumeGroup, вместо выполнения на узле приведенных ниже команд.
В данном сценарии используются два раздела на каждом диске: один для хранения данных SDS, которые не реплицируются, и другой для данных SDS, которые реплицируются. Первый раздел каждого диска используется для создания зеркала, а второй – для создания отдельной VG без зеркалирования. Это позволяет максимально эффективно использовать место на диске.
Чтобы настроить узел с дополнительными дисками по сценарию «Частичное зеркало», выполните следующее:
-
создайте по два раздела на каждом дополнительном диске;
-
соберите зеркало из первых разделов на каждом диске;
-
создайте VG с именем
<vg-name>-safeна зеркале; -
создайте VG с именем
<vg-name>-unsafeиз вторых разделов каждого диска; -
установите тег
storage.deckhouse.io/enabled=trueдля VG<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 (комбинированное хранилище, «Частичное зеркало»)
В данном примере предполагается, что вы настроили три узла по сценарию «Частичное зеркало».
В кластере Deckhouse при этом появятся шесть ресурсов LVMVolumeGroup со случайно сгенерированными именами.
В будущем добавится возможность указывать имя для ресурсов LVMVolumeGroup,
которые создаются в процессе автоматического обнаружения VG, с помощью тега LVM с желаемым именем ресурса.
Чтобы вывести список ресурсов LVMVolumeGroup, выполните следующую команду:
kubectl 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> — префикс имени, присвоенного VG, созданным на предыдущем шаге.
Настройка модуля sds-local-volume (комбинированное хранилище, «Частичное зеркало»)
Чтобы настроить модуль sds-local-volume по сценарию «Частичное зеркало», создайте ресурс LocalStorageClass
и добавьте в него ресурсы LVMVolumeGroup, чтобы на всех узлах в модуле sds-local-volume использовалась только VG <vg-name>-safe:
kubectl 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<vg-name>-safe:kubectl 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<vg-name>-unsafe:kubectl 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<vg-name>-safeи<vg-name>-unsafe:kubectl apply -f -<<EOF --- apiVersion: storage.deckhouse.io/v1alpha1 kind: ReplicatedStorageClass metadata: name: replicated-sc-ssd-nvme-r1 spec: storagePool: data-<vg-name>-safe # Обратите внимание, что из-за replication: None для этого ресурса используется data-<vg-name>-safe; следовательно, репликация данных для 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 # Обратите внимание, что из-за replication: Availability для этого ресурса используется data-<vg-name>-unsafe; следовательно, будет проводиться репликация данных для 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 # Обратите внимание, что из-за replication: ConsistencyAndAvailability для этого ресурса используется data-<vg-name>-unsafe; следовательно, будет проводиться репликация данных для 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.