Сначала позволю себе объяснить нашу конфигурацию: у нас есть кластер из 3 узлов, в котором мы будем использовать CEPH для гиперконвергентного хранилища. Мы только начинаем разбираться в CEPH и очень хотели бы услышать опытных специалистов.
Весь наш накопительный комплект — это SSD (24x 2TB NVMe, по 8 на сервер). Мы хотим, чтобы при выходе из строя одного сервера у нас не было простоев виртуальных машин.
Вопрос, над которым я сейчас работаю: какая конфигурация хранилища будет самой эффективной с точки зрения использования пространства, чтобы максимизировать доступное место?
После изучения документации CEPH, вот что я понял касательно Erasure Coded Pools:
K — это количество OSD, доступное под хранение, при этом мы можем потерять M OSD, а общее количество OSD равно (K+M). Параметр min_size должен быть установлен в K+1, и если количество доступных OSD упадет ниже min_size, запись в CEPH RBD станет невозможной.
Если взять пул с Erasure Code 4+2 (16+8, эффективность 66%), мы сможем потерять треть накопителей и без потери данных восстановиться. Но при этом у нас будут простои из-за параметра min_size (K+1 будет равняться 17).
Исходя из этой логики, я предполагаю, что самая эффективная настройка CEPH для 3-узлового кластера с 24 OSD — это K=15 и M=9, с эффективностью 62,5%, что позволит работать нормально при выходе из строя одного сервера благодаря min_size=16 (K+1).
Правильны ли мои предположения? Не ошибся ли я с трактовкой документации CEPH? Есть ли у кого-то еще работающий 3-узловой кластер на CEPH? Было бы очень интересно услышать другие мнения по моей конфигурации.
Заранее спасибо!
Весь наш накопительный комплект — это SSD (24x 2TB NVMe, по 8 на сервер). Мы хотим, чтобы при выходе из строя одного сервера у нас не было простоев виртуальных машин.
Вопрос, над которым я сейчас работаю: какая конфигурация хранилища будет самой эффективной с точки зрения использования пространства, чтобы максимизировать доступное место?
После изучения документации CEPH, вот что я понял касательно Erasure Coded Pools:
K — это количество OSD, доступное под хранение, при этом мы можем потерять M OSD, а общее количество OSD равно (K+M). Параметр min_size должен быть установлен в K+1, и если количество доступных OSD упадет ниже min_size, запись в CEPH RBD станет невозможной.
Если взять пул с Erasure Code 4+2 (16+8, эффективность 66%), мы сможем потерять треть накопителей и без потери данных восстановиться. Но при этом у нас будут простои из-за параметра min_size (K+1 будет равняться 17).
Исходя из этой логики, я предполагаю, что самая эффективная настройка CEPH для 3-узлового кластера с 24 OSD — это K=15 и M=9, с эффективностью 62,5%, что позволит работать нормально при выходе из строя одного сервера благодаря min_size=16 (K+1).
Правильны ли мои предположения? Не ошибся ли я с трактовкой документации CEPH? Есть ли у кого-то еще работающий 3-узловой кластер на CEPH? Было бы очень интересно услышать другие мнения по моей конфигурации.
Заранее спасибо!

Насколько я понимаю, доступное пространство — это до 7/12 = 58,3 процента. Верно? Параметр "m=5" означает, что пять вычисленных полос распределяются по пяти OSD — дважды по две на одном узле и пятая на третьем узле. Параметр "k=7" разместит две полосы на одном узле и три полосы на третьем. Если один узел выйдет из строя, вы можете потерять одновременно три полосы данных и две полосы чётности. По моему ограниченному пониманию, при параметрах "k=7, m=5" потеря пяти элементов должна переключить систему в режим только для чтения, при этом все (по крайней мере несколько) запущенных виртуальных машин зависнут. В чём именно моя (как я сказал, ограниченная) понимание ошибается?