Работоспособность модуля гарантируется только при использовании стоковых ядер, поставляемых вместе с поддерживаемыми дистрибутивами.
Работоспособность модуля при использовании других ядер или дистрибутивов возможна, но не гарантируется.
Если вы создаёте виртуальные машины клонированием,
необходимо изменить 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.