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

Каковы преимущества и недостатки монтирования двоичных файлов приложения из общего монтирования?

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

Есть ли что-нибудь, что делает тот или иной подход особенно плохим?

Спасибо

Когда я начинал в финансовой индустрии, я работал с системами, которые состояли из систем шлюзов, которые потребляли / обрабатывали данные, вычислительных узлов для принятия торговых решений, серверов NFS для обслуживания приложений / централизованного ведения журналов и множества сетей, связывающих все это воедино. Мы также централизовали планирование crontab и мониторинг приложений config и поместил их на монтировки NFS.

Это было на основе NFSv3, и преимущества были, гм ...

  • Простое распространение приложения: одно крепление. Одно место для внесения изменений.
  • Простое управление данными, связанными с этими приложениями.

Минусы:

  • Подвержены ошибкам: одно крепление. Одно место для облажаться изменения.
  • Масштабируемость: если вы также не кластеризуете свое хранилище, центральное крепление будет иметь верхний предел количества клиентов, которые оно может эффективно обслуживать.
  • Единая точка отказа (SPOF): опять же, кластерное хранилище может смягчить это, но это необходимо. Что произойдет, если предположить NFS, если вам потребуется перезагрузить сервер? Будут ли узлы кластера зависать при загрузке, если сервер NFS отсутствует или недоступен?
  • Разрешения: как вы будете управлять разрешениями на узлах кластера. Учетные записи местных служб? Соответствующие UID / GID? В моем случае я использовал NIS и более поздние версии LDAP. Здесь была бы полезна служба каталогов.
  • Производительность: здесь вы зависите от сети и инфраструктуры коммутации. Производительность таких вещей, как загрузка приложений, ведение журнала и т. Д., На локальном диске будет выше, чем при передаче по сети.
  • Настроить NFS сложно, и большинству людей это не удается :)

В наши дни вы можете развертывать свое программное обеспечение и управлять им с помощью системы управления конфигурацией (Кукольный, Повар, Ansible, и т.д.). Или, что еще лучше, используйте собственный метод упаковки операционной системы (RPM, .deb) и разверните его с помощью управления конфигурацией:

  • Это удаляет SPOF.
  • Локализация приложения должна повысить производительность.
  • Упрощает работу в сети: например. что, если вы откроете для себя несколько мест?
  • Может обеспечить более детальный контроль: например, распространять двоичный файл на подмножество систем, а не на весь кластер.
  • Самодокументирование.

Учитывая это, я бы, вероятно, рекомендовал отдельные копии приложений вместо использования общего монтирования.