У меня есть среда kvm, где общий диск установлен двумя виртуальными машинами через rbd ceph. Что я хотел бы знать, как в будущем можно расширить файловую систему OCFS2, которую я планирую использовать поверх нее:
LVM2 не вариант:
«На момент написания этой статьи OCFS2 не интегрирована и не поддерживается какими-либо менеджерами томов. Процедура расширения существующего репозитория OCFS2 выполняется вручную только с одного члена пула серверов Oracle VM (dom0)».
«Важно отметить, что создание томов OCFS2 на логических томах (LVM) не поддерживается. Это связано с тем, что логические тома не поддерживают кластер, и может произойти повреждение файловой системы OCFS2».
В других случаях, когда некоторым из этих KVM-машин требуется больше дисков, я могу добавить к ним больше дисков (например: vdb, vdc, vdd), затем добавить их в LVM, а затем просто увеличить мои логические тома, но если это невозможно с OCFS2 тогда какое решение для этого? (Желательно, чтобы мне никогда не приходилось выключать виртуальную машину или размонтировать для нее файловую систему).
Спасибо
На данный момент у меня нет кластера Ceph, с которым можно было бы поиграть, но из памяти вы можете расширить существующий том RBD. Таким образом, LVM не требуется. У вас могут возникнуть проблемы с тем, чтобы виртуальные машины распознали больший том RBD без перезагрузки, однако - способность KVM передавать изменения базовых блочных устройств в виртуальную машину в лучшем случае нечеткая (тестирование быстро ответит за вас, так или иначе). Однако документы OCFS2 ошибаются в том, что LVM не поддерживает кластер - вам просто нужно использовать clvm вместо обычного LVM, работающего только на локальном уровне. (Оракул, будучи неправильно о чем-нибудь? Скажи, что это не так!)
Другой вариант, учитывая, что вы используете RBD и использует разреженное распределение, заключается в том, что вы можете просто первоначально сделайте том RBD «чертовски огромным» (настолько большим, насколько вы когда-либо захотите), а затем добавьте больше OSD для хранения дополнительных данных по мере того, как вы сохраняете больше данных. Это решение перестает работать, если вы регулярно удаляете файлы (если только TRIM не поддерживается на всем протяжении стека, что, я бы сказал, крайне маловероятно с OCFS2). Однако если вы только добавляете файлы, этот подход, скорее всего, будет работать достаточно хорошо.
Однако я настоятельно рекомендую отказаться от всего этого подхода «одна гигантская файловая система». Для размеров файловой системы существуют «слабые места», и выход за их пределы обычно вызывает проблемы. Если вы когда-нибудь столкнетесь с повреждением файловой системы, например, попытка восстановить многопетабайтную файловую систему, вероятно, займет ... довольно много времени. В какой-то момент вам, вероятно, будет лучше просто использовать RADOS напрямую (или с уровнем интерфейса, таким как radosgw, и использовать протоколы S3 или SWIFT) для хранения ваших файлов как отдельных объектов и полностью пропустить уровень файловой системы.