Я использую NAS с двойной головкой на базе ZFS для кластерного хранилища высокой доступности на основе рекомендованной архитектуры Nexenta, как показано здесь:
Диски в 1 JBOD будут хранить файлы базы данных для одной базы данных Postgres 4 ТБ, а диски в другом JBOD хранят 20 ТБ больших необработанных двоичных плоских файлов (результаты кластеризации для моделирования столкновений крупных звездных объектов). Другими словами, JBOD, поддерживающий файлы Postgres, будет обрабатывать в основном случайные рабочие нагрузки, в то время как JBOD, поддерживающий результаты моделирования, будет обрабатывать в основном последовательные рабочие нагрузки. Оба головных узла имеют 256 ГБ памяти и 16 ядер. Кластер имеет около 200 ядер, каждое из которых поддерживает сеанс Postgres, поэтому я ожидаю около 200 одновременных сеансов.
Мне интересно, разумно ли в моей установке, чтобы головные узлы ZFS действовали одновременно как зеркальная пара серверов баз данных Postgres для моего кластера? Единственные недостатки, которые я вижу:
- Меньшая гибкость для масштабирования моей инфраструктуры.
- Немного ниже уровень избыточности.
- Ограниченные ресурсы памяти и процессора для Postgres.
Тем не менее, преимущество, которое я вижу, состоит в том, что ZFS в любом случае довольно глупа в отношении автоматического перехода на другой ресурс, и мне не нужно тратить много времени на то, чтобы каждый сервер баз данных Postgres выяснил, вышел ли из строя головной узел, поскольку он выйдет из строя вместе с головным. узел.
postmaster.pid
), приведут к серьезному повреждению данных.