.

1. Используйте серверы, поддерживающие технологию Second Level Address Translation.

Нагрузка на процессор и систему ввода-вывода со стороны баз данных SQL Server может быть очень высока, и в современных серверах приняты меры для повышения быстродействия виртуальных машин. Благодаря преобразованию адресов второго уровня Second Level Address Translation (SLAT) сопоставление памяти виртуальной машины физической памяти возлагается на аппаратные средства. Компания Intel именует этот механизм Extended Page Tables (EPT), а компания AMD — Rapid Virtualization Indexing (RVI). Аппаратное сопоставление намного быстрее программного, в результате чего уменьшается нагрузка на гипервизор и повышается масштабируемость.

2. Перейдите к Windows Server 2008 R2 SP1.

В Windows Server 2008 R2 с пакетом обновления SP1 появился ряд важных улучшений для виртуальных машин, главное из которых — поддержка динамической памяти. Благодаря динамической памяти сервер Hyper-V автоматически увеличивает и уменьшает размер памяти, выделенной активной виртуальной машине Hyper-V. В результате повышается масштабируемость и становится более предсказуемой производительность экземпляров SQL Server, выполняемых в виртуальных машинах Hyper-V.

3. Используйте многоадресный ввод-вывод.

Многоадресный ввод-вывод Multi-Path I/O — функция, реализованная в Windows Server 2008 и Windows Server 2008 R2. С ее помощью можно создать несколько избыточных путей между узлами Hyper-V и сетью хранения данных (SAN). Многоадресный ввод-вывод возможен при использовании как хранилищ Fibre Channel, так и iSCSI. При этом повышается готовность виртуальных машин и производительность виртуальных машин SQL Server благодаря увеличению пропускной способности системы ввода-вывода.

4. Установите службы Integration Services в виртуальной машине SQL Server.

Hyper-V поддерживает два типа устройств в виртуальных машинах: синтетические и эмулированные. Однако для использования синтетических устройств необходимо установить гостевые компоненты Integration Services, которые, помимо прочего, обеспечивают драйверы устройств, необходимые гостевой операционной системе для использования синтетических устройств.

5. Выделите 1 Гбайт оперативной памяти для родительского раздела.

При запуске нескольких приложений на сервере в среде консолидации обязательно выделите 1 Гбайт оперативной памяти для экземпляра Windows Server, выполняемого в родительском разделе. Таким образом хост-сервер может выполнять различные задачи виртуальной машины без обращения к страничному файлу. Если для родительского раздела приходится подкачивать страницы, производительность VM снижается.

6. Используйте постоянные виртуальные жесткие диски для хранения виртуальных машин.

При создании VM можно выбрать один из двух типов виртуального жесткого диска (VHD): динамический или постоянный. Динамические очень удобны для тестирования и разработки, так как занимают ровно столько пространства, сколько требуется для задачи, но они не обеспечивают такой же производительности, как постоянные. Постоянные VHD предпочтительны для рабочих применений. Обратите внимание, что для экземпляров SQL Server можно организовать непосредственный доступ к физическому диску, получив самую высокую производительность. Но гибкость последнего варианта ниже, чем у виртуальных жестких дисков. Виртуальная машина оказывается привязанной к определенному хранилищу, а производительность не намного лучше, чем у постоянного VHD.

7. Используйте отдельные LUN/VHD для гостевой операционной системы и хранилища базы данных и журналов.

Как и на физическом сервере, производительность виртуальной машины SQL Server можно повысить, разместив гостевую операционную систему на отдельном виртуальном жестком диске. Можно также поместить на отдельных виртуальных жестких дисках файлы базы данных и журналов SQL Server. Затем различные виртуальные жесткие диски сохраняются на разных логических устройствах (LUN), чтобы реализовать преимущества наличия нескольких накопителей.

Майкл Оти (motey@windowsitpro.com) — технический директор Windows IT Pro и SQL Server Magazine, автор Microsoft SQL Server 2008 New Features (Osborne/McGraw-Hill)