From d7b1ce4c9cd967e8331b30e1f893140f1496356a Mon Sep 17 00:00:00 2001 From: Max Chervov Date: Wed, 11 Dec 2024 12:41:26 +0300 Subject: [PATCH] Update formatting and style in config examples docs Signed-off-by: Max Chervov --- docs/LAYOUTS_RU.md | 1553 ++++++++++++++++++++++++-------------------- 1 file changed, 847 insertions(+), 706 deletions(-) diff --git a/docs/LAYOUTS_RU.md b/docs/LAYOUTS_RU.md index 32573800..e5e6c29b 100644 --- a/docs/LAYOUTS_RU.md +++ b/docs/LAYOUTS_RU.md @@ -1,6 +1,6 @@ --- -title: "Модуль sds-node-configurator: Сценарии использования" -linkTitle: "Сценарии использования" +title: "Модуль sds-node-configurator: сценарии конфигурации sds-модулей" +description: "Сценарии конфигурации sds-модулей с помощью sds-node-configurator" --- {{< alert level="warning" >}} @@ -9,48 +9,75 @@ linkTitle: "Сценарии использования" Работоспособность модуля при использовании других ядер или дистрибутивов возможна, но не гарантируется. {{< /alert >}} -Примеры конфигурирования дисковой подсистемы на узлах кластера Kubernetes. +{{< alert level="info" >}} +Если вы создаёте виртуальные машины клонированием, +необходимо изменить UUID у групп томов (VG) на созданных таким образом виртуальных машинах, выполнив команду `vgchange -u`. +Данная команда сгенерирует новые UUID для всех VG на виртуальной машине. +При необходимости команду можно добавить в скрипт `cloud-init`. -{{< alert level="warning" >}} -ВАЖНО! Если вы создаете виртуальные машины клонированием, то необходимо изменить uuid у vg в созданных таким образом виртуальных машинах. Для этого выполните команду `vgchange -u` - данная команда сгенерирует новые UUID для всех vg в виртуальной машине (можно добавить в cloud init). +Изменить UUID у VG можно, только если в группе томов нет активных логических томов (LV). +Чтобы деактивировать логический том, отмонтируйте его и выполните следующую команду: + +```shell +lvchange -an <название VG (для деактивации всех томов в группе) или LV (для деактивации конкретного тома)> +``` -Внимание! Изменить UUID у vg можно, только если в ней нет активных логических томов (lv). Для деактивации логических томов необходимо сначала их отмонтировать, а затем выполнить команду `lvchange -an <название vg (если необходимо деактивировать все тома в vg) или lv (если необходимо деактивировать конкретный том)>`. {{< /alert >}} -## Несколько одинаковых дисков +На данной странице приведены сценарии конфигурации дисковой подсистемы на узлах кластера Kubernetes +в зависимости от условий организации хранилища: на одинаковых дисках или с использованием дополнительных дисков. -### Рекомендованный сценарий +Для каждого из условий существует два сценария конфигурации: рекомендуемый и гибридный. +Плюсы и минусы каждого из них приведены в таблице: -* Собрать зеркало из дисков целиком (аппаратно или программно), которое будет использоваться как для корневой системы, так и для данных. -* При установке операционной системы: - * Создать vg с именем `main` на зеркале. - * Создать lv с именем `root` в vg `main`. - * Установить ОС на lv `root`. -* Поставить тег `storage.deckhouse.io/enabled=true` на vg `main` такой командой: +| Сценарий конфигурации | Плюсы | Минусы | +|-----------------------|-------|--------| +| Рекомендуемый | - Надежно
- Просто в настройке и использовании
- Удобно распределять место между разными SDS | - Избыточное место на диске для программно-определяемых хранилищ (SDS), которые сами реплицируют данные | +| Гибридный | - Надежно
- Максимально эффективное использование места | - Сложно в настройке и использовании
- Очень сложно перераспределять место между safe- и unsafe-разделами | -```shell -vgchange main --addtag storage.deckhouse.io/enabled=true -``` +## Хранилище с одинаковыми дисками -* Добавить подготовленный узел в кластер Deckhouse. +### Рекомендуемый сценарий -Если узел подходит под `nodeSelector`, который указан в `spec.nodeSelector` модулей `sds-replicated-volume` и/или `sds-local-volume`, то на этом узле запустится агент модуля `sds-node-configurator`, который определит vg `main` и добавит соответствующий этой vg ресурс `LVMVolumeGroup` в кластер Deckhouse. Дальше ресурс `LVMVolumeGroup` можно использовать для создания томов в модулях `sds-replicated-volume` и/или `sds-local-volume`. +Мы рекомендуем использовать данный сценарий конфигурации, поскольку он достаточно надёжен и прост в настройке. -#### Плюсы и минусы сценария +Чтобы настроить узел по рекомендуемому сценарию, выполните следующее: -| Плюсы | Минусы | -|---------------------------|-------------| -| Надежно | Overhead по месту на диске для SDS, которые сами реплицируют данные | -| Просто в настройке и использовании | | -| Удобно распределять (и перераспределять) место между разными SDS | | +1. Соберите зеркало из дисков целиком (аппаратно или программно), + которое будет использоваться как для корневой системы, так и для данных. +1. При установке операционной системы: + * создайте VG с именем `main` на зеркале; + * создайте LV с именем `root` в VG `main`; + * установите операционную систему на LV `root`. +1. Установите тег `storage.deckhouse.io/enabled=true` для VG `main`, используя следующую команду: -#### Примеры настройки модулей SDS при использовании рекомендованного сценария + ```shell + vgchange main --addtag storage.deckhouse.io/enabled=true + ``` -Допустим, что у Вас есть три узла, настроенных по рекомендованному сценарию. В таком случае в кластере Deckhouse появятся три ресурса `LVMVolumeGroup` со случайно сгенерированными именами (в будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, которые создаются в процессе автоматического обнаружения vg, путем добавления lvm тега с желаемым именем ресурса). +1. Добавьте подготовленный узел в кластер Deckhouse. + + Если узел подходит под `nodeSelector`, который указан в `spec.nodeSelector` модулей `sds-replicated-volume` или `sds-local-volume`, + то на этом узле запустится агент модуля `sds-node-configurator`, + который определит VG `main` и добавит соответствующий этой VG ресурс `LVMVolumeGroup` в кластер Deckhouse. + Дальше ресурс `LVMVolumeGroup` можно использовать для создания томов в модулях `sds-replicated-volume` или `sds-local-volume`. + +#### Пример настройки модулей SDS + +В данном примере предполагается, что вы настроили три узла по рекомендуемому сценарию. +В кластере Deckhouse при этом появятся три ресурса `LVMVolumeGroup` со случайно сгенерированными именами. +В будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, +которые создаются в процессе автоматического обнаружения VG, с помощью тега `LVM` с желаемым именем ресурса. + +Чтобы вывести список ресурсов `LVMVolumeGroup`, выполните следующую команду: ```shell kubectl get lvmvolumegroups.storage.deckhouse.io +``` + +В результате будет выведен следующий список: +```console 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 @@ -59,7 +86,8 @@ vg-c7863e12-c143-42bb-8e33-d578ce50d6c7 0/0 True Re ##### Настройка модуля `sds-local-volume` -* Создаем ресурс `LocalStorageClass` и добавляем в него все наши ресурсы `LVMVolumeGroup` для использования vg `main` на всех наших узлах в модуле `sds-local-volume`: +Чтобы настроить модуль `sds-local-volume` по рекомендуемому сценарию, создайте ресурс `LocalStorageClass` +и добавьте в него все ресурсы `LVMVolumeGroup`, чтобы VG `main` использовалась на всех узлах в модуле `sds-local-volume`: ```yaml kubectl apply -f -<}} -ВАЖНО! Не поддерживается использование разделов с одинаковыми part UUID, а так же изменение part UUID раздела, который используется для создания vg. При создании таблицы разделов рекомендуется выбрать GPT, так как part UUID в MBR является псевдослучайным и содержит в себе номер раздела. Помимо этого, в MBR нельзя задать partlabel, который может быть удобным для последующей идентификации раздела в Deckhouse. +Не поддерживается использование разделов с одинаковыми PARTUUID, +а также изменение PARTUUID раздела, который используется для создания VG. +При создании таблицы разделов рекомендуется выбрать формат `GPT`, +так как PARTUUID в `MBR` является псевдослучайным и содержит в себе номер раздела. +Помимо этого, в `MBR` нельзя задать атрибут PARTLABEL, +который может пригодиться для последующей идентификации раздела в Deckhouse. {{< /alert >}} -В этом сценарии используются два раздела на каждом диске: один для корневой системы и хранения данных SDS, которые не реплицируются, другой для данных SDS, которые реплицируются. Первый раздел каждого диска используется для создания зеркала, а второй раздел для создания отдельной vg без зеркалирования. Таким образом, место на диске используется максимально эффективно. - -* При установке операционной системы: - * Создать по 2 раздела на каждом диске. - * Собрать зеркало из первых разделов на каждом диске. - * Создать vg с именем `main-safe` на зеркале. - * Создать lv с именем `root` в vg `main-safe`. - * Установить ОС на lv `root`. -* Поставить тег `storage.deckhouse.io/enabled=true` на vg `main-safe` такой командой: +В данном сценарии используются два раздела на каждом диске: +один для корневой системы и хранения данных SDS, которые не реплицируются, +и другой для данных SDS, которые реплицируются. +Первый раздел каждого диска используется для создания зеркала, а второй – для создания отдельной VG без зеркалирования. +Это позволяет максимально эффективно использовать место на диске. + +Чтобы настроить узел по гибридному сценарию, выполните следующее: + +1. При установке операционной системы: + * создайте по два раздела на каждом диске; + * соберите зеркало из первых разделов на каждом диске; + * создайте VG с именем `main-safe` на зеркале; + * создать LV с именем `root` в VG `main-safe`; + * установите операционную систему на LV `root`. +1. Установите тег `storage.deckhouse.io/enabled=true` для VG `main-safe`, используя следующую команду: -```shell -vgchange main-safe --addtag storage.deckhouse.io/enabled=true -``` - -* Создать vg с именем `main-unsafe` из вторых разделов каждого диска. -* Поставить тег `storage.deckhouse.io/enabled=true` на vg `main-unsafe` такой командой: + ```shell + vgchange main-safe --addtag storage.deckhouse.io/enabled=true + ``` -```shell -vgchange main-unsafe --addtag storage.deckhouse.io/enabled=true -``` +1. Создайте VG с именем `main-unsafe` из вторых разделов каждого диска. +1. Установите тег `storage.deckhouse.io/enabled=true` для VG `main-unsafe`, используя следующую команду: -* Добавить подготовленный узел в кластер Deckhouse. + ```shell + vgchange main-unsafe --addtag storage.deckhouse.io/enabled=true + ``` -Если узел подходит под `nodeSelector`, который указан в `spec.nodeSelector` модулей `sds-replicated-volume` и/или `sds-local-volume`, то на этом узле запустится агент модуля `sds-node-configurator`, который определит vg `main-safe` и `main-unsafe` и добавит соответствующие этим vg ресурсы `LVMVolumeGroup` в кластер Deckhouse. Дальше ресурсы `LVMVolumeGroup` можно использовать для создания томов в модулях `sds-replicated-volume` и/или `sds-local-volume`. +1. Добавьте подготовленный узел в кластер Deckhouse. -#### Плюсы и минусы сценария + Если узел подходит под `nodeSelector`, который указан в `spec.nodeSelector` модулей `sds-replicated-volume` или `sds-local-volume`, + то на этом узле запустится агент модуля `sds-node-configurator`, + который определит VG `main-safe` и `main-unsafe` и добавит соответствующие этим VG ресурсы `LVMVolumeGroup` в кластер Deckhouse. + Дальше ресурсы `LVMVolumeGroup` можно использовать для создания томов в модулях `sds-replicated-volume` или `sds-local-volume`. -| Плюсы | Минусы | -|---------------------------|-------------| -| Надежно | Сложно в настройке и использовании | -| Место используется максимально эффективно | Очень сложно перераспределять место между safe и unsafe разделами | +#### Пример настройки модулей SDS -#### Примеры настройки модулей SDS при использовании гибридного сценария +В данном примере предполагается, что вы настроили три узла по гибридному сценарию. +В кластере Deckhouse при этом появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами. +В будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, +которые создаются в процессе автоматического обнаружения VG, с помощью тега `LVM` с желаемым именем ресурса. -Допустим, что у Вас есть три узла, настроенных по гибридному сценарию. В таком случае в кластере Deckhouse появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами (в будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, которые создаются в процессе автоматического обнаружения vg, путем добавления lvm тега с желаемым именем ресурса). +Чтобы вывести список ресурсов `LVMVolumeGroup`, выполните следующую команду: ```shell kubectl get lvmvolumegroups.storage.deckhouse.io +``` +В результате будет выведен следующий список: + +```console 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 @@ -193,7 +240,8 @@ vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 0/0 True Re ##### Настройка модуля `sds-local-volume` -* Создаем ресурс `LocalStorageClass` и добавляем в него ресурсы `LVMVolumeGroup` для использования только vg `main-safe` на всех наших узлах в модуле `sds-local-volume`: +Чтобы настроить модуль `sds-local-volume` по гибридному сценарию, создайте ресурс `LocalStorageClass` +и добавьте в него ресурсы `LVMVolumeGroup`, чтобы на всех узлах в модуле `sds-local-volume` использовалась только VG `main-safe`: ```yaml kubectl apply -f -<}} -ВАЖНО! Не поддерживается использование разделов с одинаковыми part UUID, а так же изменение part UUID раздела, который используется для создания vg. При создании таблицы разделов рекомендуется выбрать GPT, так как part UUID в MBR является псевдослучайным и содержит в себе номер раздела. Помимо этого, в MBR нельзя задать partlabel, который может быть удобным для последующей идентификации раздела в Deckhouse. +Не поддерживается использование разделов с одинаковыми PARTUUID, +а также изменение PARTUUID раздела, который используется для создания VG. +При создании таблицы разделов рекомендуется выбрать формат `GPT`, +так как PARTUUID в `MBR` является псевдослучайным и содержит в себе номер раздела. +Помимо этого, в `MBR` нельзя задать атрибут PARTLABEL, +который может пригодиться для последующей идентификации раздела в Deckhouse. {{< /alert >}} -В этом сценарии используются два раздела на каждом диске: один для хранения данных SDS, которые не реплицируются, другой для данных SDS, которые реплицируются. Первый раздел каждого диска используется для создания зеркала, а второй раздел для создания отдельной vg без зеркалирования. Таким образом, место на диске используется максимально эффективно. +В данном сценарии используются два раздела на каждом диске: +один для хранения данных SDS, которые не реплицируются, +и другой для данных SDS, которые реплицируются. +Первый раздел каждого диска используется для создания зеркала, а второй – для создания отдельной VG без зеркалирования. +Это позволяет максимально эффективно использовать место на диске. -* Создать по 2 раздела на каждом диске. -* Собрать зеркало из первых разделов на каждом диске. -* Создать vg с именем `ssd-nvme-safe` на зеркале. -* Создать vg с именем `ssd-nvme-unsafe` из вторых разделов каждого диска. -* Поставить тег `storage.deckhouse.io/enabled=true` на vg `ssd-nvme-safe` и `ssd-nvme-unsafe` такой командой: +Чтобы настроить узел по гибридному сценарию с NVMe SSD, выполните следующее: -```shell -vgchange ssd-nvme-safe --addtag storage.deckhouse.io/enabled=true -vgchange ssd-nvme-unsafe --addtag storage.deckhouse.io/enabled=true -``` +1. создайте по два раздела на каждом диске; +1. соберите зеркало из первых разделов на каждом диске; +1. создайте VG с именем `ssd-nvme-safe` на зеркале; +1. создайте VG с именем `ssd-nvme-unsafe` из вторых разделов каждого диска; +1. установите тег `storage.deckhouse.io/enabled=true` для VG `ssd-nvme-safe` и `ssd-nvme-unsafe`, используя следующую команду: -##### Плюсы и минусы сценария + ```shell + vgchange ssd-nvme-safe --addtag storage.deckhouse.io/enabled=true + vgchange ssd-nvme-unsafe --addtag storage.deckhouse.io/enabled=true + ``` -| Плюсы | Минусы | -|---------------------------|-------------| -| Надежно | Сложно в настройке и использовании | -| Место используется максимально эффективно | Очень сложно перераспределять место между safe и unsafe разделами | +##### Пример настройки модулей SDS -##### Примеры настройки модулей SDS при использовании гибридного сценария с NVMe SSD +В данном примере предполагается, что вы настроили три узла по гибридному сценарию с NVMe SSD. +В кластере Deckhouse при этом появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами. +В будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, +которые создаются в процессе автоматического обнаружения VG, с помощью тега `LVM` с желаемым именем ресурса. -Допустим, что у Вас есть три узла, настроенных по гибридному сценарию с NVMe SSD. В таком случае в кластере Deckhouse появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами (в будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, которые создаются в процессе автоматического обнаружения vg, путем добавления lvm тега с желаемым именем ресурса). +Чтобы вывести список ресурсов `LVMVolumeGroup`, выполните следующую команду: ```shell kubectl get lvmvolumegroups.storage.deckhouse.io +``` + +В результате будет выведен следующий список: +```console 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 ssd-nvme-safe 61s vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 ssd-nvme-safe 4m17s @@ -453,7 +530,8 @@ vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 0/0 True Re ###### Настройка модуля `sds-local-volume` -* Создаем ресурс `LocalStorageClass` и добавляем в него ресурсы `LVMVolumeGroup` для использования только vg `ssd-nvme-safe` на всех наших узлах в модуле `sds-local-volume`: +Чтобы настроить модуль `sds-local-volume` по гибридному сценарию c NVMe SSD, создайте ресурс `LocalStorageClass` +и добавьте в него ресурсы `LVMVolumeGroup`, чтобы на всех узлах в модуле `sds-local-volume` использовалась только VG `ssd-nvme-safe`: ```yaml kubectl apply -f -<}} -ВАЖНО! Не поддерживается использование разделов с одинаковыми part UUID, а так же изменение part UUID раздела, который используется для создания vg. При создании таблицы разделов рекомендуется выбрать GPT, так как part UUID в MBR является псевдослучайным и содержит в себе номер раздела. Помимо этого, в MBR нельзя задать partlabel, который может быть удобным для последующей идентификации раздела в Deckhouse. +Не поддерживается использование разделов с одинаковыми PARTUUID, +а также изменение PARTUUID раздела, который используется для создания VG. +При создании таблицы разделов рекомендуется выбрать формат `GPT`, +так как PARTUUID в `MBR` является псевдослучайным и содержит в себе номер раздела. +Помимо этого, в `MBR` нельзя задать атрибут PARTLABEL, +который может пригодиться для последующей идентификации раздела в Deckhouse. {{< /alert >}} -В этом сценарии используются два раздела на каждом диске: один для хранения данных SDS, которые не реплицируются, другой для данных SDS, которые реплицируются. Первый раздел каждого диска используется для создания зеркала, а второй раздел для создания отдельной vg без зеркалирования. Таким образом, место на диске используется максимально эффективно. +В данном сценарии используются два раздела на каждом диске: +один для хранения данных SDS, которые не реплицируются, +и другой для данных SDS, которые реплицируются. +Первый раздел каждого диска используется для создания зеркала, а второй – для создания отдельной VG без зеркалирования. +Это позволяет максимально эффективно использовать место на диске. -* Создать по 2 раздела на каждом диске. -* Собрать зеркало из первых разделов на каждом диске. -* Создать vg с именем `ssd-sata-safe` на зеркале. -* Создать vg с именем `ssd-sata-unsafe` из вторых разделов каждого диска. -* Поставить тег `storage.deckhouse.io/enabled=true` на vg `ssd-sata-safe` и `ssd-sata-unsafe` такой командой: +Чтобы настроить узел по гибридному сценарию с SATA SSD, выполните следующее: -```shell -vgchange ssd-sata-safe --addtag storage.deckhouse.io/enabled=true -vgchange ssd-sata-unsafe --addtag storage.deckhouse.io/enabled=true -``` +1. создайте по два раздела на каждом диске; +1. соберите зеркало из первых разделов на каждом диске; +1. создайте VG с именем `ssd-sata-safe` на зеркале; +1. создайте VG с именем `ssd-sata-unsafe` из вторых разделов каждого диска; +1. установите тег `storage.deckhouse.io/enabled=true` для VG `ssd-sata-safe` и `ssd-sata-unsafe`, используя следующую команду: -##### Плюсы и минусы сценария + ```shell + vgchange ssd-sata-safe --addtag storage.deckhouse.io/enabled=true + vgchange ssd-sata-unsafe --addtag storage.deckhouse.io/enabled=true + ``` -| Плюсы | Минусы | -|---------------------------|-------------| -| Надежно | Сложно в настройке и использовании | -| Место используется максимально эффективно | Очень сложно перераспределять место между safe и unsafe разделами | +##### Пример настройки модулей SDS -##### Примеры настройки модулей SDS при использовании гибридного сценария с SATA SSD +В данном примере предполагается, что вы настроили три узла по гибридному сценарию с SATA SSD. +В кластере Deckhouse при этом появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами. +В будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, +которые создаются в процессе автоматического обнаружения VG, с помощью тега `LVM` с желаемым именем ресурса. -Допустим, что у Вас есть три узла, настроенных по гибридному сценарию с SATA SSD. В таком случае в кластере Deckhouse появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами (в будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, которые создаются в процессе автоматического обнаружения vg, путем добавления lvm тега с желаемым именем ресурса). +Чтобы вывести список ресурсов `LVMVolumeGroup`, выполните следующую команду: ```shell kubectl get lvmvolumegroups.storage.deckhouse.io +``` + +В результате будет выведен следующий список: +```console 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 ssd-sata-safe 61s vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 ssd-sata-safe 4m17s @@ -706,7 +811,8 @@ vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 0/0 True Re ###### Настройка модуля `sds-local-volume` -* Создаем ресурс `LocalStorageClass` и добавляем в него ресурсы `LVMVolumeGroup` для использования только vg `ssd-sata-safe` на всех наших узлах в модуле `sds-local-volume`: +Чтобы настроить модуль `sds-local-volume` по гибридному сценарию c SATA SSD, создайте ресурс `LocalStorageClass` +и добавьте в него ресурсы `LVMVolumeGroup`, чтобы на всех узлах в модуле `sds-local-volume` использовалась только VG `ssd-sata-safe`: ```yaml kubectl apply -f -<}} -ВАЖНО! Не поддерживается использование разделов с одинаковыми part UUID, а так же изменение part UUID раздела, который используется для создания vg. При создании таблицы разделов рекомендуется выбрать GPT, так как part UUID в MBR является псевдослучайным и содержит в себе номер раздела. Помимо этого, в MBR нельзя задать partlabel, который может быть удобным для последующей идентификации раздела в Deckhouse. +Не поддерживается использование разделов с одинаковыми PARTUUID, +а также изменение PARTUUID раздела, который используется для создания VG. +При создании таблицы разделов рекомендуется выбрать формат `GPT`, +так как PARTUUID в `MBR` является псевдослучайным и содержит в себе номер раздела. +Помимо этого, в `MBR` нельзя задать атрибут PARTLABEL, +который может пригодиться для последующей идентификации раздела в Deckhouse. {{< /alert >}} -В этом сценарии используются два раздела на каждом диске: один для хранения данных SDS, которые не реплицируются, другой для данных SDS, которые реплицируются. Первый раздел каждого диска используется для создания зеркала, а второй раздел для создания отдельной vg без зеркалирования. Таким образом, место на диске используется максимально эффективно. +В данном сценарии используются два раздела на каждом диске: +один для хранения данных SDS, которые не реплицируются, +и другой для данных SDS, которые реплицируются. +Первый раздел каждого диска используется для создания зеркала, а второй – для создания отдельной VG без зеркалирования. +Это позволяет максимально эффективно использовать место на диске. -* Создать по 2 раздела на каждом диске. -* Собрать зеркало из первых разделов на каждом диске. -* Создать vg с именем `hdd-safe` на зеркале. -* Создать vg с именем `hdd-unsafe` из вторых разделов каждого диска. -* Поставить тег `storage.deckhouse.io/enabled=true` на vg `hdd-safe` и `hdd-unsafe` такой командой: +Чтобы настроить узел по гибридному сценарию с SATA SSD, выполните следующее: -```shell -vgchange hdd-safe --addtag storage.deckhouse.io/enabled=true -vgchange hdd-unsafe --addtag storage.deckhouse.io/enabled=true -``` +1. создайте по два раздела на каждом диске; +1. соберите зеркало из первых разделов на каждом диске; +1. создайте VG с именем `hdd-safe` на зеркале; +1. создайте VG с именем `hdd-unsafe` из вторых разделов каждого диска; +1. установите тег `storage.deckhouse.io/enabled=true` для VG `hdd-safe` и `hdd-unsafe`, используя следующую команду: -##### Плюсы и минусы сценария + ```shell + vgchange hdd-safe --addtag storage.deckhouse.io/enabled=true + vgchange hdd-unsafe --addtag storage.deckhouse.io/enabled=true + ``` -| Плюсы | Минусы | -|---------------------------|-------------| -| Надежно | Сложно в настройке и использовании | -| Место используется максимально эффективно | Очень сложно перераспределять место между safe и unsafe разделами | +##### Примеры настройки модулей SDS -##### Примеры настройки модулей SDS при использовании гибридного сценария с HDD +В данном примере предполагается, что вы настроили три узла по гибридному сценарию с HDD. +В кластере Deckhouse при этом появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами. +В будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, +которые создаются в процессе автоматического обнаружения VG, с помощью тега `LVM` с желаемым именем ресурса. -Допустим, что у Вас есть три узла, настроенных по гибридному сценарию с HDD. В таком случае в кластере Deckhouse появятся шесть ресурсов `LVMVolumeGroup` со случайно сгенерированными именами (в будущем добавится возможность указывать имя для ресурсов `LVMVolumeGroup`, которые создаются в процессе автоматического обнаружения vg, путем добавления lvm тега с желаемым именем ресурса). +Чтобы вывести список ресурсов `LVMVolumeGroup`, выполните следующую команду: ```shell kubectl get lvmvolumegroups.storage.deckhouse.io +``` +В результате будет выведен следующий список: + +```console 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 hdd-safe 61s vg-b59ff9e1-6ef2-4761-b5d2-6172926d4f4d 0/0 True Ready worker-0 25596Mi 0 hdd-safe 4m17s @@ -959,7 +1092,8 @@ vg-fe679d22-2bc7-409c-85a9-9f0ee29a6ca2 0/0 True Re ###### Настройка модуля `sds-local-volume` -* Создаем ресурс `LocalStorageClass` и добавляем в него ресурсы `LVMVolumeGroup` для использования только vg `hdd-safe` на всех наших узлах в модуле `sds-local-volume`: +Чтобы настроить модуль `sds-local-volume` по гибридному сценарию c HDD, создайте ресурс `LocalStorageClass` +и добавьте в него ресурсы `LVMVolumeGroup`, чтобы на всех узлах в модуле `sds-local-volume` использовалась только VG `hdd-safe`: ```yaml kubectl apply -f -<