Моей команде требуется 2 сервера приложений с общим хранилищем.
У нашего текущего облачного провайдера нет SAN; поэтому мы хотим использовать локальное хранилище каждого из серверов приложений. Два сервера приложений оснащены хранилищем NVME объемом 200 ГБ каждый. Нам нужно около 50 ГБ памяти для ОС.
Как мы можем использовать оставшееся пространство и добиться общего хранилища / единой папки файлов CMS для обоих серверов?
Дайте мне знать, если что-то не так, я постараюсь уточнить.
На этот вопрос сложно ответить полностью. На самом деле все зависит от ваших целей и ожиданий.
Вот 4 возможных решения, которые становятся все более сложными и требуют более периодического внимания:
Быстрое и грязное решение - просто запустить rsync для задания cron (каждую минуту?) И реплицировать файлы на серверы и с серверов. Это немного опасно, так как вы можете закончить с изменением файлов в обоих местах и получить беспорядок.
Более сложно, вы можете помочь сократить некоторые из потенциальных периодов, когда оба сервера могут изменять файлы, настроив сценарий bash с помощью inotifywait
ждать, пока файл / каталог не будет изменен, а затем немедленно rsync, как только это произойдет.
Что еще более сложно, вы можете работать с фреймворками файловой системы, такими как glusterfs, которые реплицируют файлы в крупномасштабных средах. Этот вариант не для любителей уик-энда. Он может резко выйти из строя (что я испытал) из-за небольших неправильных настроек и вызвать бесконечные головные боли. Когда он правильно настроен и настроен, он может работать на удивление хорошо.
Наконец, вы можете пойти по крайнему пути и фактически получить репликацию на уровне блоков между серверами, используя что-то вроде drbd
, который (в большинстве случаев) является крайним маршрутом. В своих центрах обработки данных я с большим успехом установил реплицированные блочные устройства хранения с NFS на поверхности в виртуальных средах высокой доступности. Массивы хранения могут умереть в любой момент, а виртуальные машины, работающие на них, никогда не увидят задержки более нескольких мс.