Облачная платформаAdvanced

Обзор хранилища

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Контейнерное хранилище

The Kubernetes Container Storage Interface (CSI) — это стандартизированный framework для дополнений хранилища, запущенный Cloud Native Computing Foundation (CNCF). Он направлен на отделение систем хранения от Kubernetes, позволяя доступ к сервисам хранилища в виде дополнений без изменения базового кода Kubernetes. CCE container storage построен на основе CSI и поддерживает широкий спектр типов хранилища, включая блочное хранилище, файловое хранилище и объектное хранилище, чтобы удовлетворять потребности как stateless, так и stateful приложений. CSI полностью совместим с нативной системой хранения Kubernetes и поддерживает несколько форм хранилища, таких как emptyDir, hostPath, secret и ConfigMap.

Рисунок 1 Типы контейнерного хранилища


CCE позволяет pods использовать несколько типов хранилища:

  • Что касается реализации, хранилище поддерживает Container Storage Interface (CSI) и нативное хранилище Kubernetes.

    Тип

    Описание

    CSI

    Стандартизированный механизм плагина (соответствующий CCE Everest) разработан для отделения систем хранения от платформ оркестрации, решая проблему тесной привязки традиционных in-tree плагинов хранилища и ядра Kubernetes. Его основной дизайн включает определение единой спецификации интерфейса gRPC, позволяя вендорам хранилища разрабатывать пользовательские плагины хранилища в out-of-tree режиме. Это позволяет независимо осуществлять сборку, компиляцию и выпуск функций хранилища без встраивания исходного кода плагина в репозиторий исходного кода Kubernetes. Вам достаточно объявить свои требования к хранилищу через PVC и PV. Драйвер CSI обрабатывает остальное, обеспечивая динамическое предоставление хранилища и управление.

    Начиная с Kubernetes 1.13, CSI стал официально рекомендуемой реализацией для плагинов хранилища.

    Нативное хранилище Kubernetes

    Запускается в in-tree режиме, где код плагина хранилища встроен непосредственно в репозиторий ядра Kubernetes. Это означает, что плагины хранилища собираются, компилируются и выпускаются вместе с core‑компонентами Kubernetes, такими как kubelet и kube-controller-manager. Плагины хранилища должны обновляться совместно с Kubernetes. Их нельзя разрабатывать, обновлять или расширять независимо от цикла выпуска Kubernetes. Это ограничивает гибкость поддержки сторонних систем хранения.

  • С точки зрения носителей данных, хранилище может классифицироваться как облачное хранилище, локальное хранилище и объекты ресурсов Kubernetes.

    Тип

    Описание

    Сценарий применения

    Облачное хранилище

    Хранилище предоставляется облачными провайдерами услуг и позволяет сохранять данные в удалённых кластерах через сети. Это обеспечивает централизованное управление и эластичное масштабирование ресурсов хранилища. В кластере вам достаточно задекларировать требования к хранилищу через PVC и PV. Добавление CSI автоматически обрабатывает доступ к облачному хранилищу, устраняя необходимость ручной настройки базовых ресурсов.

    Данные требуют высокой доступности или должны быть общими, например, журналы и мультимедийные ресурсы.

    Выберите подходящий облачный StorageClass в зависимости от сценария применения. Для деталей смотрите Сравнение облачного хранилища.

    Локальное хранилище

    Носитель данных — это локальный диск с данными или память узла. Локальный PV — это настроенный StorageClass, предоставляемый CCE и монтируемый с помощью PVC и PV через CSI. Другие StorageClass являются нативными для Kubernetes.

    Для данных Non-HA требуется высокая I/O и низкая задержка.

    Выберите подходящий тип локального хранилища в зависимости от сценария применения. Для деталей смотрите Сравнение локального хранилища.

    Объекты ресурсов Kubernetes

    ConfigMaps и secrets являются ресурсами, создаваемыми в кластерах. Это специальные типы хранилища, предоставляемые tmpfs (файловая система на основе ОЗУ) на сервере API Kubernetes.

    ConfigMaps используются для внедрения конфигурационных данных в pods.

    Secrets используются для передачи конфиденциальной информации, такой как пароли, в pods.

Сравнение облачного хранилища

Элемент

EVS

SFS

SFS Turbo

OBS

Определение

Блочный сервис хранения, работающий в общих пулах ресурсов хранения. Он предлагает масштабируемые, высокопроизводительные и надёжные тома хранения для облачных серверов. Диски EVS доступны в различных спецификациях и являются экономичными.

Расширяемый до петабайт, SFS предоставляет полностью размещённое совместное файловое хранилище, обладающее высокой доступностью и стабильностью, способное обрабатывать интенсивные по данным и пропускной способности приложения в HPC, медиапроизводстве, совместном использовании файлов, управлении контентом и веб‑службах.

Расширяемый до 320 ТБ, SFS Turbo предоставляет полностью размещённое совместное файловое хранилище, которое обладает высокой доступностью и стабильностью, для поддержки небольших файлов и приложений, требующих низкой задержки и высокой IOPS. Вы можете использовать SFS Turbo на веб‑сайтах с высоким трафиком, для хранения логов, сжатия/распаковки, DevOps, enterprise OA и контейнеризованных приложений.

Масштабируемое, безопасное, надёжное и экономичное хранилище для любых типов и размеров данных. Вы можете использовать его в enterprise backup/archiving, video on demand (VoD), видеонаблюдении и многих других сценариях.

Логика хранения данных

Хранит двоичные данные и не может напрямую хранить файлы. Чтобы хранить файлы, сначала отформатируйте файловую систему.

Хранит файлы и сортирует и отображает данные в иерархии файлов и папок.

Хранит файлы и сортирует и отображает данные в иерархии файлов и папок.

Хранит объекты. Файлы, хранящиеся напрямую, автоматически генерируют системные метаданные, которые также могут быть настроены пользователями.

Режим доступа

Доступно только после монтирования к ECSs и инициализации.

Монтировано к ECSs с использованием сетевых протоколов. Сетевой адрес должен быть указан или привязан к локальному каталогу для доступа.

Поддерживает протокол Network File System (NFS) (только NFSv3). Вы можете бесшовно интегрировать существующие приложения и инструменты с SFS Turbo.

Доступно через Интернет или Direct Connect (DC). Укажите адрес бакета и используйте протоколы передачи, такие как HTTP или HTTPS.

Статические тома хранения

Динамические тома хранения

Поддерживается. Подробнее см Использование EVS диска через динамический PV.

Поддерживается. Для получения подробной информации смотрите Использование файловой системы SFS через динамический PV.

Поддерживается для подкаталогов SFS Turbo. Для получения подробной информации смотрите (Рекомендуется) Создание подкаталога SFS Turbo с использованием динамического PV.

Поддерживается. Для получения подробной информации смотрите Использование Бакета OBS через динамический PV.

Функции

Несшаровое хранилище. Каждый том может быть смонтирован только на один узел.

Общее хранилище с высокой производительностью и пропускной способностью

Общее хранилище с высокой производительностью и пропускной способностью

Общая файловая система пользовательского режима

Сценарии применения

HPC, корпоративные core‑кластерные приложения, корпоративные системы приложений и dev/test

ПРИМЕЧАНИЕ:

HPC‑приложения здесь требуют высокоскоростного и high-IOPS хранилища, такого как промышленный дизайн и поиск энергетических ресурсов.

HPC, медиа‑обработка, управление контентом, веб‑сервисы, big data и аналитические приложения

NOTE:

HPC‑приложения здесь требуют высокой пропускной способности и общей файловой системы, такой как геномное секвенирование и рендеринг изображений.

Веб‑сайты с высоким трафиком, хранение логов, DevOps и enterprise OA

Big data analytics, статический хостинг веб‑сайтов, онлайн‑видео по запросу (VoD), геномное секвенирование, интеллектуальное видеонаблюдение, бэкап и архивирование, и enterprise cloud boxes (web disks)

Ёмкость

TB

SFS 1.0: PB

General-purpose: TB

EB

Задержка

1–2 ms

SFS 1.0: 3–20 ms

General-purpose: 1–5 ms

10 ms

Макс. IOPS

2,200–256,000, в зависимости от флейворов

SFS 1.0: 2,000

Общее назначение: до 100,000

Десятки миллионов

Пропускная способность

MB/s

SFS 1.0: GB/s

Общее назначение: до GB/s

TB/s

Сравнение локального хранилища

Элемент

Local PV

Локальный эфемерный том

emptyDir

hostPath

Определение

Локальные диски узла формируют пул хранилища (VolumeGroup) через LVM. LVM делит их на логические тома (LVs) и монтирует их к подам.

Kubernetes native emptyDir, где локальные диски узла образуют пул хранения (VolumeGroup) через LVM. LVs создаются в качестве носителя хранения emptyDir и монтируются к pod'ам. LVs обеспечивают лучшую производительность, чем носитель хранения по умолчанию emptyDir.

Kubernetes native emptyDir. Его жизненный цикл такой же, как у pod. В качестве носителя хранения можно указать память. При удалении pod volume emptyDir удаляется, и его данные теряются.

Используется для монтирования файлового каталога хоста, где находится pod, в указанную точку монтирования pod.

Функции

Низкая задержка, высокий I/O и non-HA PV.

Тома хранения являются необщим хранилищем и привязываются к узлам через метки. Поэтому тома хранения могут монтироваться только к одному pod.

Локальный эфемерный том. Объём хранения берётся из локальных LV.

Локальный эфемерный том. Объём хранения берётся из локального корневого каталога kubelet или памяти.

Используется для монтирования файлов или каталогов файловой системы хоста. Каталоги хоста могут создаваться автоматически. Pod'ы могут мигрировать (не привязаны к узлам).

Монтирование тома хранения

Статические тома хранения не поддерживаются.

Для получения деталей см Локальный EV.

Для получения деталей см Временный путь.

Для получения деталей см hostPath.

Сценарии применения

Высокие требования к I/O и встроенные HA‑решения приложений, например, развертывание MySQL в режиме HA.

  • Пространство для временных данных, например, для сортировки слиянием на диске
  • Создание чекпоинтов длительных вычислений для восстановления после сбоев
  • Сохранение файлов, полученных контейнером менеджера контента, когда используются данные контейнера веб‑сервера
  • Пространство для временных данных, например, для сортировки слиянием на диске
  • Создание чекпоинтов при длительном вычислении для восстановления после сбоев
  • Сохранение файлов, полученных контейнером менеджера содержимого, когда используются данные контейнера веб‑сервера

Требуется файл узла, например, если используется Docker, можно использовать hostPath для монтирования /var/lib/docker путь узла.

NOTICE:

Избегайте использования томов hostPath насколько это возможно, так как они подвержены рискам безопасности. Если тома hostPath необходимо использовать, они могут быть применены только к файлам или каталогам и монтироваться в режиме только для чтения.

Enterprise Поддержка проекта

Note

Чтобы использовать эту функцию, дополнение Everest должно быть обновлено до версии v1.2.33 или более новой.

  • Автоматическое создание хранилища:

    При создании EVS или OBS PVC с использованием StorageClass в CCE можно указать enterprise‑проект, чтобы привязать созданные ресурсы хранилища (диски EVS и OBS) к этому проекту. Этот enterprise‑проект может быть как проектом по умолчанию, так и тем же проектом, к которому принадлежит кластер.

    Если enterprise project не указан, enterprise project, указанный в StorageClass, будет использоваться по умолчанию для создания ресурсов хранения.

    • Для пользовательского StorageClass вы можете указать enterprise project в StorageClass. Для подробностей см Создание StorageClass через консоль. Если enterprise project не указан в StorageClass, используется enterprise project по умолчанию.
    • Для классов хранения csi-disk и csi-obs, предоставляемых CCE, созданные ресурсы хранения принадлежат enterprise project по умолчанию.

  • Использовать существующее хранилище:

    При создании PVC с использованием PV убедитесь, что everest.io/enterprise-project-id указанные в PVC и PV совпадают, поскольку enterprise project был указан при создании ресурса хранения. В противном случае PVC и PV не могут быть связаны.

Полезные ссылки

  • Перед использованием контейнерного хранилища ознакомьтесь с базовыми понятиями, такими как PV и PVC. Для подробностей см Основы хранения.
  • CCE использует Everest для взаимодействия с облачными сервисами хранения. Для подробностей о Everest см. CCE Container Storage (Everest).
  • CCE поддерживает следующие типы томов хранения: