nav-img
Evolution

Введение

Описание

Cloud Software-Defined Storage (SDS) — это решение для преобразования устройств хранения (HDD, SSD) и сетевого оборудования в защищенное кластерное хранилище уровня enterprise с поддержкой SAN/NAS.

Основные возможности:

  • Хранение больших объемов данных.

  • Репликация и высокая доступность.

  • Безопасное размещение виртуальных машин и контейнеров.

  • Миграция между физическими хостами без простоев.

Архитектура

Архитектура Storage Cluster.

SDS состоит из четырех главных элементов:

  • Метадата-сервера — хранение метаданных всех используемых устройств, отвечают за некоторые функции, например за миграцию чанков.

  • Чанк-сервера — хранение данных, например образов ВМ на HDD/SSD в формате блоков.

  • Client — взаимодействует с главным метадата-сервером и чанк-серверами для чтения и записи данных по запросу приложений, например QEMU.

  • Storage Tool — взаимодействует с главным метадата-сервером в кластере с помощью gRPC API, используется для управления кластером, может создавать тома и чанк-серверы.

Функциональность

Функции Cloud SDS представлены в Таблице 1.

Таблица 1. Функции Cloud SDS

Функция

Описание

Replication

Поддерживает любое количество реплик. Например, 3 реплики encoding=1+2.

Erasure Coding

Максимальная схема — 21+5 (Max Stripe Depth=21, Max Redundancy=5). Схема по умолчанию — 4+2. Схема без redundancy — 1+0.

Thin Provisioning

Физическое пространство под данные. Выделяется по мере необходимости в момент записи.

Tiering

Данные записываются в быстрый tier в репликах. По мере «остывания» данные кодируются и перемещаются на более медленный tier.

End to End Data Protection (CRC)

Данные хранятся с чексуммами (CRC32) и проверяются на каждом чтении. Защита от silent corruption. При передаче по сети вместе с данными также передаются чексуммы. Принимающая сторона всегда проверяет чексуммы с прочитанными данными из сети.

Failure Domain

Default=host. dc/pod/rack/host/disk

Балансировка по занятому месту

Чанки ребалансируются для равномерной утилизации дисков.

ACL

Настройка ACL(Capabilities) per User

Monitoring

Prometheus/Grafana.

Клонирование volume/томов

Необходимо для быстрого создания ВМ.

Vhost

Vhost server для QEMU vhost-blk драйвера.

Snapshots

Full и incremental снэпшоты.

Scrub

Защита от silent corruption. Периодическая проверка целостности данных.

QoS

Ограничение IO пользователя.

Шифрование

Данные пользователя шифруются на физическом диске.

Пакеты

Список пакетов и их содержание представлено в Таблице 2.

Таблица 2. Список пакетов и их содержание

Пакет

Содержимое

storage

Зависимости от storage-mds, storage-csd

storage-common

Storage tool. Создает служебные директории (/etc/storage, /mnt/storage) и user storage на хосте.

storage-mds

MDS сервис

storage-csd

СS сервис

storage-tcmud

TCMU iSCSI target

storage-vhostd

vhostd демон для работы с QEMU про vhost-user-blk протоколу

storage-nbd

nbdd демон c NBD(Network Block Device) сервером

storage-fio

FIO плагин для бенчмаркинга storage

storage-sbdctl

Утилита sbdctl для экспорта и импорта volume и снапшотов

storage-grafana-dashboards

Дашборды grafana для мониторинга кластера

storage-prometheus-alerts

Правила Prometheus для алертов

libsbd

Динамическая библиотека libsbd для линковки со сторонними приложениями (QEMU)

libsbd-dev

Динамическая библиотека libsbd и headers.

Примечание

Пакеты доступны для:

  • Ubuntu 22.04

  • Sberlinux-9

Установка репозиториев с пакетами SDS

Установка репозитория Ubuntu 22.04

  1. Добавьте GPG-ключ:

    sudo curl -fsSL https://pkg.sbercloud.tech/artifactory/api/security/keypair/public/repositories/sds-deb -o /etc/apt/trusted.gpg.d/sds-deb.asc
  2. Установите релизный репозиторий со стабильными версиями пакетов:

    sudo sh -c "echo 'deb https://pkg.sbercloud.tech/artifactory/sds-deb $(lsb_release -cs) stable' > /etc/apt/sources.list.d/sds-deb.list"
  3. При необходимости установки самых последних пакетов добавьте нестабильный репозиторий:

    sudo sh -c "echo 'deb https://pkg.sbercloud.tech/artifactory/sds-deb $(lsb_release -cs) unstable' > /etc/apt/sources.list.d/sds-deb.list"
  4. Для debug info используется отдельный debian репозиторий как для stable, так и для unstable c доступом по паролю:

    sudo sh -c "echo 'deb [trusted=yes] https://pkg.sbercloud.tech/artifactory/sds-deb-dbg $(lsb_release -cs) stable' > /etc/apt/sources.list.d/sds-deb-dbg.list"
  5. Добавьте в /etc/apt/auth.conf.d/sds-deb-dbg.conf пользователя и пароль для доступа к debug пакетам:

    machine pkg.sbercloud.tech/artifactory/sds-deb-dbg
    login USER
    password PASSWORD

Установка репозитория Sberlinux-9

Если репозитории недоступны, скачайте rpm-пакеты по ссылке.

  1. После установки пакета storage-release-1.2.sl9.noarch.rpm:

    • В директорию /etc/yum.repos.d/ добавятся репозитории SDS и Extra с необходимыми зависимостями.

    • В директорию /etc/pki/rpm-gpg/ добавится публичный ключ для подписанных пакетов SDS.

    По умолчанию проверка ключа выключена — gpgcheck=0. На 20.02.2024 пакеты не подписаны.

    dnf install https://pkg.sbercloud.tech/artifactory/sds-rpm-master/dist/sl-9/releases/master/os/storage-release-master.sl9.noarch.rpm

    При необходимости установки самых последних пакетов добавьте нестабильный репозиторий.

  2. В случае двух установленных репозиториев укажите конкретную версию пакета или отключите один из репозиториев — enabled=0.

    dnf install https://pkg.sbercloud.tech/artifactory/sds-rpm-master/dist/sl-9/releases/master/os/storage-release-master.sl9.noarch.rpm

    Для debug info используется отдельный sds-rpm-dbg репозиторий как для стабильных версий, так и для нестабильных c доступом по паролю.

  3. Создайте файл с репозиторием /etc/yum.repos.d/<example>.repo.

  4. Добавьте в файл конфигурации /etc/yum.conf строки:

    username=<name>
    password=<pass>

Шаблон для создания файла с нестабильными пакетами:

[sds-rpm-dbg]
name=SDS - dbg
baseurl=https://pkg.sbercloud.tech/artifactory/sds-rpm-dbg/sds-rpm-dbg/dist/sl-9/releases/master/
gpgcheck=0
enabled=1

Шаблон для создания файла со стабильными пакетами:

[sds-rpm-dbg]
name=SDS - dbg
baseurl=https://pkg.sbercloud.tech/artifactory/sds-rpm-dbg/sds-rpm-dbg/dist/sl-9/releases/1.3/
gpgcheck=0
enabled=1

После создания файла пакеты можно устанавливать с помощью команды dnf install <example-package>.