1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bocloud-open-source-carina

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Carina

Лицензия

English | 中文

Предыстория

Системы хранения данных сложны! В настоящее время все больше нативных систем хранения для Kubernetes появляется, а приложения с состоянием переходят в облачный мир, например, современные базы данных и промежуточные серверы. Однако как современные базы данных, так и их поставщики хранилищ пытаются решить некоторые общие проблемы по-своему. Например, они оба работают над репликацией данных и обеспечением согласованности. Это приводит к огромной потере емкости и производительности и требует большего количества усилий по обслуживанию. Кроме того, приложения с состоянием стремятся стать более производительными, устраняя каждую возможную задержку, которая является неизбежной для современных распределённых систем хранения данных. В этом месте появляется Carina.

Carina — это стандартный плагин CSI для Kubernetes. Пользователи могут использовать стандартные ресурсы хранения Kubernetes, такие как StorageClass/PVC/PV, чтобы запросить средства хранения. Основные соображения Carina включают:

  • Приложения нуждаются в различных системах хранения. Carina будет сосредоточена только на использовании облачных баз данных.
  • Полностью нативная для Kubernetes и легко установляемая.
  • Использует локальные жесткие диски и группирует их по мере необходимости. Пользователи могут предоставлять различные типы дисков с помощью различных StorageClass.
  • Обнаруживает физические диски и создаёт RAID группы по требованию. Если диск выходит из строя, просто подключите новый, и всё готово.
  • Учитывает объём свободного места и производительность узла, поэтому пакеты распределяются более умело.
  • Очень низкий уровень затрат. Carina располагается рядом с основным путём данных и предоставляет чистую производительность диска для приложений.
  • Автоматическое управление уровнями. Администраторы могут настроить Carina для объединения больших по ёмкости, но медленных дисков и маленьких по ёмкости, но быстрых дисков в одну StorageClass, чтобы пользователи могли воспользоваться преимуществами как ёмкости, так и производительности.
  • Если узел выходит из строя, Carina автоматически отсоединяет локальный том от пакетов, позволяя им быть перезапланированными.
  • Промежуточные серверы работали на бортовых компьютерах десятки лет. Есть много ценных оптимизаций и улучшений, которые точно не устарели даже в эпоху облачных технологий. Дайте Carina быть экспертом по хранению данных для облачных баз данных!

Кратко говоря, Carina стремится предоставить крайне низколатентное и бесоперационное решение для хранения данных для облачных баз данных и быть экспертом по хранению данных в эпоху облачных технологий!

Основные окружения

  • Kubernetes: (CSI_VERSION=1.5.0)

  • Узел ОС: Linux

  • Файловые системы: ext4, xfs

  • Если Kubelet работает в контейнеризированном режиме, вам потребуется смонтировать каталог /dev хоста в /dev

  • Каждый узел в кластере имеет 1..N голых дисков, поддерживающих SSD и HDD. (Вы можете запустить команду lsblk --output NAME,ROTA для просмотра типа диска. Если ROTA=1, то это HDD; если ROTA=0, то это SSD.)

  • Емкость голого диска должна быть больше 10 ГБ

  • Если сервер не поддерживает модуль ядра bcache, см. Часто задаваемые вопросы, Измените конфигурацию YAML

Совместимость Kubernetes

kubernetes v0.9 v0.9.1 v0.10 v0.11.0 v1.0
>=1.18 поддерживается поддерживается поддерживается поддерживается ещё не выпущено
>=1.25 не поддерживается не поддерживается не поддерживается экспериментальная версия ещё не выпущено

Архитектура Carina

Carina создана для облачных приложений с состоянием с высокой производительностью диска и без операционного обслуживания. Carina может сканировать локальные диски и классифицировать их по типам дисков, например, один узел может иметь 10 HDD и 2 SSD. Carina затем группирует их в различные пулы дисков, и пользователи могут запрашивать различные типы дисков с помощью различных StorageClass. Для обеспечения отказоустойчивости данных Carina использует STORCLI для создания RAID групп.

carina-arch

Компоненты Carina

У Carina три компонента: carina-scheduler, carina-controller и carina-node.

  • carina-scheduler — это плагин планировщика Kubernetes, который сортирует узлы на основе размера запрошенного PV, свободного пространства на узле и статистики производительности ввода-вывода узла. По умолчанию carina-scheduler поддерживает политики binpack и spreadout.
  • carina-controller — это плоскость управления Carina, которая наблюдает за ресурсами PVC и поддерживает внутренний объект logicalVolume.
  • carina-node — это агент, работающий на каждом узле. Он управляет локальными дисками с помощью LVM.

Возможности

Быстрое начало работы

Установка через Shell

  • В этом режиме развертывания тег образа равен Latest. Если вы хотите развернуть конкретную версию Carina, вам нужно изменить адрес образа.
$ cd deploy/kubernetes
# установка, по умолчанию установка происходит в kube-system.
$ ./deploy.sh

# удаление
$ ./deploy.sh uninstall

Установка через Helm3

  • Поддерживает установку конкретных версий Carina```bash helm repo add carina-csi-driver https://carina-io.github.io

helm search repo -l carina-csi-driver

helm install carina-csi-driver carina-csi-driver/carina-csi-driver --namespace kube-system --version v0.11.0


* [руководство по установке](docs/manual/install.md)
* [руководство пользователя](docs/user-guide.md)

## Обновление

- Удалите старую версию `./deploy.sh uninstall`, а затем установите новую версию `./deploy.sh` (удаление Carina не повлияет на использование томов).

# Руководство по вкладу

* [руководство по разработке](docs/manual/development.md)
* [локальное выполнение времени выполнения](docs/manual/runtime-container.md)

# Блоги

* [блоги](http://www.opencarina.io/blog)

# План развития

* [план развития](docs/roadmap/roadmap.md)

# Примеры поставщиков хранения

|            | NFS/NAS | SAN | Ceph | Carina |
| ---------- | --------| ----| -----| -------|
| типичное использование | общее хранение | высокопроизводительный блочный устройство | экстремально масштабируемое | высокопроизводительный блочный устройство для облачных приложений |
| файловая система | да | да | да | да |
| тип файловой системы | NFS | специфический для драйвера | ext4/xfs | ext4/xfs |
| блочные устройства | нет | да | да | да |
| пропускная способность | стандартная | стандартная | высокая | высокая |
| IOPS | стандартная | высокая | стандартная | высокая |
| задержка | стандартная | низкая | стандартная | низкая |
| поддержка CSI | да | да | да | да |
| моментальные снимки | нет | специфический для драйвера | да | нет |
| клонирование | нет | специфический для драйвера | да | пока нет, скоро |
| квота | нет | да | да | да |
| расширение | да | специфический для драйвера | да | да |
| отказоустойчивость данных | RAID или NAS устройство | да | да | RAID |
| удобство обслуживания | специфический для драйвера | несколько драйверов для нескольких SAN | высокое обслуживание | без обслуживания |
| бюджет | высокий для NAS | высокий | высокий | низкий, используя дополнительные диски в существующем кластере Kubernetes |
| прочее | данные перемещаются вместе с пакетами | данные перемещаются вместе с пакетами | данные перемещаются вместе с пакетами | политика распределения binpack или spreadout<br> данные не перемещаются вместе с пакетами<br> локальное восстановление, если пакет вышел из строя |

# Часто задаваемые вопросы

- [Часто задаваемые вопросы](docs/manual/FAQ.md)

# Аналогичные проекты

* [openebs](https://openebs.io/)
* [topolvm](https://github.com/topolvm/topolvm)
* [csi-driver-host-path](https://github.com/kubernetes-csi/csi-driver-host-path)
* [local-path-provisioner](https://github.com/rancher/local-path-provisioner)

# Известные пользователи
Добро пожаловать, зарегистрируйтесь с именем компании в [ADOPTERS.md](ADOPTERS.md)

![bocloud](static/bocloud.png)

# Сообщество

- Для пользователей WeChat

![carina-wx](docs/img/carina-wx.png)

# Лицензия

Carina находится под лицензией Apache 2.0. См. файл [LICENSE](https://github.com/FabEdge/fabedge/blob/main/LICENSE) для подробностей.

# Кодекс поведения

Пожалуйста, обратитесь к нашему [Кодексу поведения сообщества Carina](https://github.com/carina-io/community/blob/main/code-of-conduct.md)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Высокопроизводительное, не требующее управления облачное решение для локального хранения данных с открытым исходным кодом. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/bocloud-open-source-carina.git
git@api.gitlife.ru:oschina-mirror/bocloud-open-source-carina.git
oschina-mirror
bocloud-open-source-carina
bocloud-open-source-carina
main