Я настраиваю высокую доступность ничего не поделено географически распределенный веб-сервер, использование нескольких A-записей для своего домена. Прямо сейчас меня больше беспокоит высокая доступность - «Когда я отсоединяю любой шнур питания, каждый браузер по-прежнему видит мой веб-сайт», - чем скорость.
Программное обеспечение веб-сервера запускается внутри одной виртуальной машины на физический ящик. (Имеет ли значение, какой веб-сервер и гипервизор я использую? Если это так, в настоящее время я использую Apache и VirtualBox)
Кто-то посоветовал мне отказаться от нынешней ужасно сложной самодельной системы, которую я планировал использовать для синхронизации веб-серверов, и заменить ее на Gluster.
Какая из этих альтернатив лучше?
Запустите ОС хоста только гипервизор и магазин только образ диска ВМ. Внутри каждой виртуальной машины установите программное обеспечение Gluster, настройте точку монтирования GlusterFS, указывающую на какую-то папку (кирпич) внутри образа диска виртуальной машины, и используйте эту точку монтирования (или папку внутри нее) в качестве веб-корня.
Запустите ОС хоста только гипервизор и магазин обе образ ВМ и отдельно папку (кирпич), к которой я разрешаю доступ ВМ. Внутри каждой виртуальной машины установите программное обеспечение Gluster, настройте точку монтирования GlusterFS, указывающую на кирпич за пределами образа диска виртуальной машины, и используйте эту точку монтирования (или папку внутри нее) в качестве веб-корня.
Попросите ОС хоста запустить гипервизор и Gluster. В ОС хоста настройте точку монтирования GlusterFS, указывающую на какую-то папку (кирпич) в другом месте на реальном физическом диске. Разрешите виртуальной машине получить доступ к точке монтирования GlusterFS в качестве корневого веб-сайта. (Не нужно устанавливать программное обеспечение Gluster внутри виртуальной машины).
Попросите ОС хоста запустить гипервизор и Gluster. В ОС хоста настройте точку монтирования GlusterFS, указывающую на какую-то папку (кирпич) в другом месте на реальном физическом диске. Поскольку оба веб-сервера должен быть идентичным, скажите гипервизору сохранить образ виртуального диска внутри точки монтирования GlusterFS.
Что-то другое?
Я подозреваю, что кто-то, кто знает о Gluster больше, чем я, может сразу сказать: «Если вы сделаете №4, (произойдет что-то ужасное) и (какое-то другое число) вызовет (другие ужасные вещи) ... так что единственный вариант, который на самом деле работает (единственный оставшийся номер) ". (То есть не думаю, что это субъективный вопрос).
(«Оптимизация», упомянутая в Может кто-нибудь объяснить эту настройку GlusterFS? может применяться к любой из этих альтернатив).
Если с прошлого года ничего не изменилось, я советую не использовать glusterfs AFR на географически разнесенном оборудовании. Он плохо справляется с задержкой, и отсутствие указания read-subvolume приведет к тому, что он будет случайным образом (очевидно, случайным образом, это не совсем случайным образом) пытаться читать с удаленного блока. В качестве теста настройте два ваших самых скрытых узла в репликации gluster, а затем попробуйте touch testfile && time stat testfile
в этой файловой системе, чтобы узнать, сколько времени займет каждая операция FS, как минимум. Даже если вы указали, что ваше приложение не использует общий доступ, оно все равно будет выполнять проверку блокировок и согласованность, что означает опрос метаданных со всех других реплик.
Если после выполнения указанного теста вы все еще хотите использовать gluster, вы спросили:
Если вы используете №4 и попытаетесь смонтировать образ виртуальной машины на нескольких виртуальных машинах одновременно, вы столкнетесь с проблемами согласованности в FS. Обычные файловые системы Linux вообще не поддерживают энергозависимое резервное хранилище.
Прохождение файловой системы, как в №2, имеет низкую производительность во всех системах виртуализации, которые я пробовал. Намного лучше использовать NFS в качестве транспорта вместо чего-то вроде 9p virtio (kvm) или другого аналога для vbox; Windows-host fs passthrough для vbox довольно ужасен (читай: медленный, хрупкий), я полагаю, что эквивалент, размещенный в Linux, похож. Даже если у вас работает сквозная передача fs, скорее всего, она не будет поддерживать xattr, который требуется для репликации glusterfs. Исторически настроить NFS для расширенных атрибутов было довольно сложно, но с NFSv4 вам может повезти больше. Такой подход чреват подводными камнями, я бы его избегал.
# 3 есть обещание. Настройте gluster на хосте, затем запустите прослушиватель клиента NFS gluster и подключите к нему виртуальную машину. Его также легче всего преобразовать, когда вы обнаружите, что A. не хотите использовать виртуальные машины и / или B. не хотите использовать glusterfs.
№1 одинаково работоспособен, но не имеет преимуществ перед «голым железом» - любые улучшения в безопасности фактически сводятся на нет, поскольку вы говорите, что это для системы с одним приложением. В этом отношении и №3 тоже. Единственная разница в том, что вы можете использовать собственный драйвер linux для glusterfs. Возможно, вы захотите настроить другой виртуальный диск для кирпича, чтобы вы могли отсоединить его, если вам нужно повторно создать образ виртуальной машины без повторного заполнения вашего кирпича.
Я бы сказал потерять все. Не виртуализируйте это с помощью VirtualBox и не используйте какую-либо кластерную / реплицирующую файловую систему. Слои сложности обычно оказываются слоями именно этого, сложности, ошибок, замедлений и нестабильности.
Будь проще. Запустите Apache на «голом железе» и используйте NFS или rsync для перемещения данных между вашими местоположениями.