Назад | Перейти на главную страницу

Кластерная файловая система Linux

В настоящее время у меня есть два модуля CentOS, предоставляющих службы NFS для нескольких веб-серверов.

Может ли кто-нибудь порекомендовать файловую систему, которая бы легко и эффективно отражала все файлы на обоих этих серверах?

Я использовал DRBD в прошлом, но у него были свои недостатки, так как он мог монтироваться только на одной системе за раз.

Я действительно рекомендую Gluster. Это OpenSource, хорошо документированный и недавно приобретенный RedHat. У него относительно хорошая производительность, и, поскольку сейчас это проект RedHat, он хорошо поддерживается в CentOS. Также существует проект под названием HekaFS, цель которого - расширить возможности аутентификации и безопасности за счет добавления SSL и других полезных свойств. Это довольно просто и очень хорошо продумано. Поставляется с довольно хорошими утилитами управления.

Мне не известно об использовании бесплатного программного обеспечения для пары из двух активных серверов NFS, экспортирующих всю единую кластерную файловую систему. Если вы пытаетесь добиться избыточности, вы можете настроить кластерную файловую систему и пару активных / пассивных серверов NFS, следуя правилам Red Hat. Пример конфигурации - NFS поверх GFS (также см администрирование кластера). Это дает вам возможность переключения при отказе, но это непросто или эффективно. Если вы рассматривали кластер как способ увеличения производительности, это будет шагом назад, потому что вы перешли с двух активных серверов NFS на один и у вас есть накладные расходы кластерной файловой системы.

НАПРИМЕР. / gfs - это кластерная файловая система, смонтированная как на server1, так и на server2. server1 используется всеми клиентами NFS, монтирующими / gfs. В случае сбоя они будут прозрачно переключены на server2.

Альтернативный подход - иметь одну кластерную файловую систему, но каждый сервер должен экспортировать только ее часть. Вместо одной пары активный / пассивный у вас есть два ресурса NFS, и каждый сервер активен для одного из них. Это не увеличит вашу производительность, но будет меньше снижения производительности по сравнению с вашей текущей настройкой, так как позволяет поддерживать оба сервера NFS активными.

НАПРИМЕР. / gfs - это кластерная файловая система, смонтированная как на server1, так и на server2. Он разделен на два каталога: al и mz. server1 используется всеми клиентами NFS, монтирующими / gfs / al. В случае сбоя они будут прозрачно переключены на server2. server2 используется всеми клиентами NFS, монтирующими / gfs / mz. В случае неудачи они будут прозрачно переключены на server1.

Настройка выше будет использовать два ресурса DRBD вместо кластерной файловой системы. Это может быть проще настроить, особенно если вы уже знакомы с DRBD.

Многие люди составили полный список опций, как коммерческих, так и бесплатных, совместно используемых и обычных дисков. В Википедии есть статьи о концепция кластерной файловой системы высокого уровня здесь и исчерпывающий список файловых систем.

Похоже, вы работаете с не-общим хранилищем, используя диски, локальные для каждой системы. Возможно, вам понадобится выделенное сетевое соединение между двумя хостами, чтобы трафик синхронизации не мешал работе вашего обычного веб-приложения.

Моя настоящая проблема заключается в том, что теперь у вас есть две независимые файловые системы, и вы, вероятно, хотите объединить их в одну, надежную, более производительную файловую систему, не вызывая простоев вашего веб-сайта. Сложная проблема заключается в том, что вы собираетесь сократить пространство для хранения вдвое, и вам придется выполнить несколько вариантов этих шагов:

  • Выберите файловую систему по вашему выбору
  • Постройте испытательный стенд, чтобы вы могли практиковаться; как можно больше реплицировать сеть
  • Сначала проверьте все, что вы видите здесь, на тренировочной системе, чтобы минимизировать время простоя и ошибки.
  • Перенести все данные на один NFS-сервер
  • Один сервер NFS теперь обслуживает оба адреса
  • Вторая машина становится первым узлом новой кластерной файловой системы.
  • Все данные из NFS копируются в новую файловую систему
  • Начало миграции клиентов в новый кластер
  • Непрерывный перенос данных из NFS в кластерную файловую систему до тех пор, пока все клиенты не будут подключены
  • Отбросьте файловую систему NFS
  • Восстановите неиспользуемый сервер и присоедините его к кластеру.
  • Убедитесь, что репликация и / или балансировка нагрузки работают в соответствии с планом
  • Протестируйте систему, отключив исходный узел кластера и убедившись, что клиенты продолжают работать.

Если вашими единственными клиентами являются несколько веб-серверов, это может быть неплохо. Вы также можете продолжить доступ к кластерной файловой системе по различным протоколам, таким как FTP, Samba, SSH / SCP, NFS.

Один важный совет - кластерная файловая система делает плохое место для хранения файлов базы данных действующей базы данных. Если это применимо к вам, используйте технологию кластеризации, специфичную для вашей СУБД.

Переход на новую файловую систему никогда не бывает коротким и легким. Удачи в выборе и установке вашей базовой файловой системы.

Касса OCFS2: http://oss.oracle.com/projects/ocfs2/

Ура

Я видел GFS2 (http://en.wikipedia.org/wiki/Global_File_System) запущены в производство. Вы можете довольно легко получить к нему доступ до 10 машин, и пока вы не бросаете на него непристойное количество использования, расширяйте его.