Данный пост навеян чтением MS SQL and VMware best practices. Остальные мысли, как говорится, под катом
VMware проанализировало множество внедренных серверов SQL и выяснило следующие закономерности:
- SQL сервер обычно запущен на двух физических ядрах;
- Средняя загрузка процессора меньше 6%, 85% SQL серверов используют менее 10% процессора, 95% используют менее 30%;
- В среднем, на сервер установлено 3,1 гигабайта оперативной памяти, используется 60%;
- Среднее количество операций ввода/вывода - 20 IOPS, у 95%процентов серверов — меньше 100 IOPS;
- Средний сетевой трафик составляет3.2Мбит/сек.
Так что виртуализовать SQL очень даже имеет смысл!
Также в документе очень интересная таблица по поводу восстановления работоспособности сервиса после сбоя.
Failover clustering - не меньше 30 секунд;
Database Mirroring — меньше 3 секунд;
Log Shipping — время не указывается.
Replication — время не указывается.
Достаточно хорошим выбором является Database Mirroring. Быстрее восстановление, чем у кластера, стоит меньше (отсутствует необходимость в общем сторадже). Естественно, что балансировки нагрузки ни при кластеризации, ни при зеркалировании баз данных не происходит. Для балансировки Log Shipping и Replication выглядят лучше, но у них гораздо большее время при восстановлении и возможна потеря данных.
Есть над чем подумать…