Мне нужно развернуть несколько кластеров Openshift от 3 до 10 узлов. Для 3 узлов я создаю тома как реплицированные.
Но для 4 и выше создание реплицированного тома выглядит не лучшим образом, поэтому каждый узел имеет диск емкостью 300 ГБ, и репликация его на 10 узлов не оптимальна. Я ищу формулу для использования как
For 4 nodes create volume as disperse:2:1
For 5 nodes create volume as disperse:?:?
For 6 nodes create volume as disperse:?:?
For 7 nodes create volume as disperse:?:?
For 8 nodes create volume as disperse:?:?
For 9 nodes create volume as disperse:?:?
For 10 nodes create volume as disperse:?:?
Окружающая среда: Я буду использовать эти тома для MYSQL 5.7.28, и на каждом сервере есть диск объемом 300 ГБ. Из 300 ГБ я создам том размером 250 ГБ для MYSQL.
OpenShift 3.11 version
# gluster --version
glusterfs 6.1
PS: у меня нет предыстории хранения, поэтому извините, если мне не хватает какой-то очевидной точки, я пытался выполнить поиск в Google, но не смог извлечь необходимую информацию.
Планируете ли вы использовать все узлы в качестве узлов хранения или только часть узлов в качестве узлов хранения? Исходя из вашего вопроса, MySQL использует 250 ГБ, каким еще приложениям требуется хранилище?
Репликация тома: доступное эффективное пространство для хранения будет
volume_size = sum of storage available from three nodes / 3
В вашем случае размер тома будет 300 ГБ с использованием трех узлов хранения.
Дисперсный объем: доступное эффективное пространство для хранения будет
volume_size = storage in single node * (number of bricks - redundancy count)
В вашем случае размер тома будет 300 * (3-1) = 600GiB
. Более подробная информация доступна здесь https://docs.gluster.org/en/v3/Administrator%20Guide/Setting%20Up%20Volumes/#creating-dispersed-volumes Дисперсные тома хороши для архивных целей, так как позволяют сэкономить место по сравнению с репликами. Но он может быть медленным по сравнению с Replica из-за вычислений, выполняемых во время каждого ввода-вывода.
Кадалу (https://kadalu.io) предлагает другой подход к предоставлению томов в Kubernetes. Он создает один том Gluster из хранилища и предоставляет подтомы из этого тома, когда запрашивается PV (в вашем случае Storage for Mysql).
Kadalu в настоящее время поддерживает Replica 1 и Replica 3 Volumes. Реплика 1 полезна, когда устройство хранения заявлено у других поставщиков хранилища, например AWS / Azure. Replica 3 обеспечивает высокую доступность хранилища для приложений, даже если один из трех узлов выходит из строя. Недавнее сообщение в блоге (https://kadalu.io/blog/kadalu-kubernetes-storage) объясняет несколько конфигураций, доступных с Kadalu, и использование его с существующим хранилищем.
Kadalu использует GlusterFS и изначально интегрирован с Kubernetes, без использования демона управления Gluster - glusterd.
Обновить: Добавлен расчет дисперсного объема.
number of disperse bricks = data bricks + redundancy count
Если доступно 3 устройства хранения,
2 data bricks + 1 redundancy bricks
В случае 6 запоминающих устройств,
4 data bricks + 2 redundancy bricks
Если количество блоков резервирования увеличивается, то размер используемого тома уменьшается. Том будет доступен для приложений, даже если количество блоков, эквивалентных блокам избыточности, уменьшится. Например, в 4+2
конфигурации объем будет доступен, даже если 2 кирпича из 6 упадут.