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

Виртуализация сервера баз данных PostgreSQL, да или нет?

Наш бывший технический директор (ныне «консультант») в какой-то момент предупредил свою замену о том, что нельзя виртуализировать серверы баз данных, особенно наши серверы баз данных PgSQL, а запускать их как реальные, физические серверы. Проблема заключается в том, что у нас быстро заканчивается физическое пространство в стойках и емкость основного сервера базы данных.

Он высказал лишь смутные размышления о скорости ввода-вывода; и хотя у меня нет особых причин не доверять его мнению по этому поводу, было бы неплохо знать:

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

Лучший ответ на этот вопрос - «это зависит от обстоятельств». Зависит от оборудования, конфигурации и т.д. и т.д. Зависит от соглашений об уровне обслуживания, нагрузки, хорошо написанного кода, архитектуры приложения, список можно продолжать.

Я запускаю несколько производственных серверов баз данных в PostgreSQL и MS SQL с хранилищем SAN, которые вполне успешно работают с параметрами, ожидаемыми организацией (и намного лучше, чем аппаратные решения, которые они заменили). И я могу гарантировать, что гораздо больше администраторов баз данных согласны с этим.

Виртуализация серверов баз данных - это настоящее запрещение, и вот несколько причин, почему

  • Самый большой недостаток, как правильно выразился ваш технический директор, - это узкое место ввода-вывода. Виртуализированные системы добавляют от 40% до 60% оверлея при записи на диск, что означает, что они будут записывать на диск как минимум в два раза медленнее. Учитывая, что одной из основных проблем любой загруженной базы данных является возможность записи на диск как можно быстрее, это может затруднить работу оборудования вашей базы данных и сделать базу данных непригодной для использования под нагрузкой.
  • Кроме того, ключом к базе данных является возможность быстрого доступа к огромным страницам памяти, чтобы остальная часть виртуальных машин, находящихся на том же узле, не использовала память.

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