Здравствуйте уважаемые форумчане. Хотел бы прояснить некоторые вопросы связанные с кластеризацией MySQL. Какие технологии кластеризации/резервирования/балансировки MySQL существуют? Имеется ввиду ndb-кластеризация, ha-технологии, отдельные движки-форки, типа MariaDB/Percona итд? В каких вариантах кластеризации СУБД и какими способами осуществляются следующие механизмы:
1. В кластере MySQL например с из 2,3... серверов все ноды работают одновременно, или работает главный сервер и в случае его падения стартует альтернативный?
2. Если одновременно работают все северы MySQL в кластере, значит ли это что происходит распределение нагрузки на все серверы в кластере? Что гарантирует распределение этой нагрузки? (Мыслю по аналогии с Hardware NLB [имея 2,3... ноды СУБД кластера, распределением нагрузки занимается NLB сервер, сами СУБД серверы в кластере нагрузку не разделяют])
3. Очевидно что если все севера MySQL в кластере работают одновременно, то файлы БД и журнал транзакций должны храниться на внешней системе хранения данных(что бы БД была доступна все MySQL серверам). Или же БД хранятся на MySQL серверах по отдельности но синхронизируется между собой по аналогии с данными на дисками в RAID массиве(примерное описание)?
4. Как осуществляется масштабирование кластера для увеличения производительности? Добавлением допольнительных MySQL серверов в кластер или нужна модернизация СХД? Что в большей степени влияет на производительность из выше перечисленного?
5. Как осуществлять резервирование БД из СХД без потери производительности, на отдельный раздел в самой СХД или желательно поставить отдельную СХД например на основе ленточных носителей?
6. Какой компьютер в сети должен заниматься резервированием БД (например я подключаюсь к кластеру и запускаю процесс резервирования или это желательно делать по расписанию средствами кластера, или отдельный сервер должен делать это что бы не нагружать производительность кластера)?