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