Вопрос или проблема
Поддерживает ли монтирование CEPH RBD в Linux загрузочное устройство?
Для развертывания RBD пример будет выглядеть так:
http://blog.programster.org/ceph-deploy-and-mount-a-block-device
Это зависит от того, что вы подразумеваете под загрузочным устройством. Есть три возможных значения этого термина в зависимости от того, с кем вы говорите:
-
Устройство, с которого загружается загрузчик.
Это требует поддержки прошивки, а не поддержки операционной системы (возможно, вам понадобится специальная поддержка ОС, но это не строго обязательно), и я с относительной определенностью могу сказать, что в настоящее время нет OEM-прошивки, которая поддерживает загрузку через RBD.
-
Устройство, с которого загрузчик загружает ядро.
Это требует поддержки со стороны загрузчика, которая, насколько я знаю, отсутствует в любом стандартном загрузчике Linux (GRUB 2 – единственный, о котором я могу подумать, что может это поддерживать, но я знаю, что версия GRUB 2 от upstream не имеет такой поддержки).
-
Устройство, на котором находится корневая файловая система.
Это вопрос поддержки ОС, и ответ на него заключается в том, что хотя ядро само по себе не поддерживает загрузку с корнем на RBD, это возможно (по крайней мере, теоретически) сделать с помощью initramfs.
Ответ или решение
Существует несколько интерпретаций термина “загрузочное устройство” в контексте использования Ceph RBD (RADOS Block Device) на Linux, и каждая из них требует отдельного рассмотрения.
### 1. Устройство, с которого загружается загрузчик
Первое значение термина подразумевает устройство, с которого загружается загрузчик операционной системы. Для этого необходима поддержка со стороны прошивки оборудования. На текущий момент нет информации о наличии OEM-прошивок, которые поддерживали бы загрузку систем через RBD. Это означает, что в большинстве стандартных серверных компонентов не предусмотрена возможность работы с RBD на таком уровне.
### 2. Устройство, с которого загрузчик загружает ядро
Второе значение связано с устройством, с которого загрузчик извлекает ядро операционной системы. Для этого требуется поддержка со стороны самого загрузчика. Хотя существует несколько загрузчиков, GRUB 2 является наиболее известным и, теоретически, может поддерживать такие функции, однако в стандартной версии GRUB 2, доступной в большинстве дистрибутивов Linux, эта поддержка отсутствует. Таким образом, использование RBD в качестве загрузочного устройства для загрузки ядра остается под вопросом.
### 3. Устройство, содержащее корневую файловую систему
Третье значение касается устройства, на котором расположена корневая файловая система. В этом случае вопрос о поддержке зависит от операционной системы и изначальной конфигурации. В то время как сам ядро Linux не имеет нативной поддержки загрузки с корневой файловой системы, находящейся на RBD, теоретически это возможно с использованием initramfs (инициализационного RAM-диска). Initramfs может быть настроен таким образом, чтобы монтировать RBD как корневую файловую систему во время загрузки.
### Заключение
Таким образом, можно утверждать, что прямую поддержку загрузки с RBD в Linux осуществить достаточно сложно, и это требует тщательной настройки. На данный момент полноценное использование Ceph RBD в качестве загрузочного устройства остаётся ограниченным, и хотя некоторые технические решения могут помочь реализовать такую конфигурацию, пользователи должны быть готовы к возможным сложностям и необходимости глубокого понимания работы с Linux-системами и Ceph.
### Рекомендации
Для практического применения Ceph RBD в качестве загрузочного устройства рекомендуется:
– Изучить документацию и ресурсы сообщества Ceph.
– Рассмотреть возможность использования виртуальных машин или контейнеров, если поддержка загрузки с RBD критична.
– Протестировать создание initramfs с поддержкой RBD, если ваше оборудование и загрузчик это позволяют.
Такой подход позволит вам получить более надежный и предсказуемый опыт работы с Ceph RBD.