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

Используете головной узел ZFS в качестве сервера базы данных?

Я использую двухголовое хранилище с поддержкой ZFS для общего хранилища кластера высокой доступности на основе рекомендованной Nexenta архитектуры, как показано здесь:

Диски в 1 JBOD будут хранить файлы базы данных для одной базы данных Postgres емкостью 4 ТБ, а диски в другом JBOD будут хранить 20 ТБ больших необработанных двоичных плоских файлов (результаты кластера для моделирования столкновений больших звездных объектов). Другими словами, JBOD, поддерживающий файлы Postgres, будет обрабатывать в основном случайные рабочие нагрузки, в то время как JBOD, поддерживающий результаты моделирования, будет обрабатывать в основном последовательные рабочие нагрузки. Оба головных узла имеют 256 ГБ памяти и 16 ядер. Кластер имеет около 200 ядер, каждое из которых поддерживает сеанс Postgres, поэтому я ожидаю около 200 одновременных сеансов.

Мне интересно, разумно ли в моей настройке, чтобы головные узлы ZFS одновременно работали как зеркальная пара серверов баз данных Postgres для моего кластера? Единственные недостатки, которые я вижу:

  1. Меньшая гибкость для масштабирования моей инфраструктуры.
  2. Чуть ниже уровень резервирования.
  3. Ограниченные ресурсы памяти и процессора для Postgres.

Однако преимущество, которое я вижу, заключается в том, что ZFS в любом случае довольно тупой в отношении автоматического переключения при отказе, и мне не нужно тратить много работы на то, чтобы каждый сервер базы данных Postgres выяснил, вышел ли из строя головной узел, поскольку он выйдет из строя вместе с головным. узел.

У вас не может быть двух экземпляров Postgres («кластеров» в терминологии Postgres), работающих с одними и теми же физическими файлами.

если вам нужна производительность, вам может помочь сегментирование (у вас есть два экземпляра, каждый с разными данными)

Если вам нужна высокая доступность, то решением может быть переключение с помощью STONITH. вам нужно убедиться, что после ремонта оборудование не пытается открыть базу данных, пока второй узел ее обслуживает.