Что такое Ceph и зачем он нужен в Proxmox VE
Ceph — распределённая программная система хранения данных, которая объединяет локальные диски нескольких серверов в единый отказоустойчивый пул. Proxmox VE интегрирует Ceph напрямую в веб-интерфейс: не нужно поднимать отдельный кластер хранения, диски настраиваются прямо из панели узла.
Главное преимущество — общее хранилище без выделенного SAN. Диски VM автоматически реплицируются между узлами, и при отказе одного сервера машины продолжают работать с других копий данных. Это делает Ceph основой для живой миграции и высокой доступности в кластере Proxmox VE.
Какие требования предъявляются к узлам кластера
Ceph рассчитан на кластер минимум из трёх узлов — меньшее количество не даёт кворума для мониторов и приводит к остановке пула при потере одного сервера. Для продакшена нужна отдельная сеть под трафик Ceph: репликация и heartbeat создают высокую нагрузку, и общий линк с трафиком VM быстро становится узким местом.
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| Узлов в кластере | 3 | 5 и больше |
| Сеть для Ceph | 1 Гбит/с | 10 Гбит/с, отдельный VLAN |
| Диски под OSD | SSD | NVMe для журнала и данных |
| Оперативная память | 4 ГБ на OSD | 8 ГБ на OSD |
Как установить Ceph на всех узлах кластера
Пакеты Ceph ставятся на каждый узел кластера Proxmox VE отдельно, через веб-интерфейс или консоль. Порядок действий одинаковый для всех серверов.
pveceph install --repository no-subscription
pveceph init --network 10.10.10.0/24
Команда pveceph init задаёт сеть, по которой узлы будут обмениваться служебным трафиком. После инициализации на первом узле остальные серверы кластера сразу видят конфигурацию Ceph.
Как создать мониторы, менеджеры и OSD
Монитор (MON) хранит карту кластера и отвечает за кворум, менеджер (MGR) отдаёт метрики и статистику. Их нужно минимум по три штуки на разных узлах:
- Создать монитор на каждом из трёх узлов через раздел Ceph → Monitor веб-интерфейса.
- Добавить менеджер на тех же узлах через Ceph → Manager.
- Для каждого физического диска под данные создать OSD командой
pveceph osd create /dev/sdb.
OSD (Object Storage Daemon) — это процесс, который обслуживает один физический диск. Чем больше OSD распределено по узлам, тем быстрее и надёжнее работает пул.
Как создать пул RBD и подключить его как хранилище
Пул — это логическое пространство с заданным уровнем репликации. Для дисков виртуальных машин используется тип RBD (RADOS Block Device).
pveceph pool create vm-pool --size 3 --min_size 2
Параметр size 3 означает три копии каждого блока данных на разных OSD, min_size 2 — минимум две доступные копии, при которых пул продолжает принимать запись. После создания пул автоматически появляется в разделе Datacenter → Storage и доступен для дисков VM и LXC.
Как проверить состояние кластера и на что смотреть
Основная команда диагностики — ceph -s. Статус HEALTH_OK означает, что кластер работает штатно. Статус HEALTH_WARN чаще всего говорит о деградации из-за отключённого OSD или нехватки места, а HEALTH_ERR требует немедленного вмешательства.
В веб-интерфейсе вкладка Ceph → Log показывает события мониторов, а раздел Ceph → OSD — состояние каждого диска и объём занятого места. Если один OSD падает регулярно, стоит проверить диск через smartctl и вывести его из пула, а не ждать полного отказа.
Чек-лист перед вводом Ceph в эксплуатацию
- В кластере минимум три узла и три монитора.
- Для трафика Ceph выделена отдельная сеть.
- Создано достаточно OSD для нужного уровня репликации.
- Пул создан с
size 3иmin_size 2для продакшена. - Команда
ceph -sпоказываетHEALTH_OK.
После этого пул Ceph можно использовать как основное хранилище для дисков VM, а для дальнейшей защиты данных настроить резервное копирование на отдельный сервер бэкапов.