С появлением Live Migration в Windows Server 2008 R2 и возможностью переноса запущенной виртуальной машины с одного узла на другой встает вопрос — одинаковы ли используемые в серверах процессоры? Если отличаются, то насколько? Не повредит ли это работе приложений в виртуальной машине при переносе с более нового процессора на более старый? Поддерживается ли построение кластера из разных серверов, где процессоры могут отличаться поколением и своими возможностями?
Все эти вопросы нам помогает разрешить новая возможность, которая появилась в Windows Server 2008 R2 и называется «режим совместимости процессора для виртуальной машины». Она позволяет перемещать виртуальную машину между серверами с процессорами одного производителя, но совершенно разных поколений. Действительно, режим совместимости не поможет перемещать запущенную виртуальную машину между процессорами производства Intel и AMD. Это происходит из-за совершенно различных механизмов адресации памяти. Зато режим совместимости процессора позволит вам переносить виртуальную машину, например, между процессорами Intel Pentium IV, Intel Core 2 Duo и Intel Core i7 — так, что никакое приложение, запущенное в виртуальной машине, не пострадает. Как же это реализовано?
В нормальном состоянии когда включается виртуальная машина, гипервизор исследует возможности процессора, на котором происходит запуск. Полученный набор будет разрешён для использования виртуальному процессору и доступен ОС и приложениям, запущенным внутри виртуальной машины. Этот набор неизменен до выключения конкретной виртуальной машины. Но когда для заданной виртуальной машины вы включаете режим совместимости процессора, гипервизор производит действие, которую можно обозначить как «нормализацию» набора инструкций процессора. В результате набор инструкций приводится к подмножеству возможностей, общих для всех процессоров текущего производителя, поддерживающих Hyper-V. Это позволяет смело переносить запущенную виртуальную машину с текущего сервера на любой другой, если производитель процессоров в исходном и целевом серверах совпадает. Ведь при работе ВМ виртуальный процессор будет использовать лишь ограниченый набор инструкций, присутствующий на всех процессорах, на которых работает Hyper-V. Все прочие инструкции физического процессора «скрываются» от виртуального процессора путем перехвата инструкции CPUID и очисткой тех битов в ответе процессора, которые обозначают «лишние» инструкции.
На самом деле, идея не нова. Intel и AMD сами реализовали аппаратный способ маскировки инструкций: технологии Flex Migration и Extended Migration соответственно. Однако они появились лишь в самых последних моделях процессоров, так что Microsoft предлагает использовать программный метод как более гибкий. Гибкость программного подхода к маскировке инструкций заключается в том, что он может включаться индивидуально для каждой виртуальной машины и не требует изменений в BIOS сервера. Для этого режима нет никаких особенных аппаратных требований. Вы можете пользоваться им на любой системе Windows Server 2008 R2, где работает Hyper-V. При этом режим совместимости процессора виртуальной машины в Hyper-V полностью поддерживает и аппаратные технологии Flex и Extended Migration при их наличии.
Во время тестирования этой технологии члены команды виртуализации Microsoft собрали четырехузловой кластер, состоящий из серверов с процессорами четырех различных поколений: Pentium 4 VT, Core 2 Duo, Core 2 Quad и Core i7 (Nehalem). Затем был написан сценарий, который примерно раз в 15 секунд в цикле переносил виртуальную машину с узла на узел при помощи Live Migration. За неделю примерно по такой схеме было произведено около 110 000 операций Live Migration одной виртуальной машины.
Если вам интересно, что именно представляет собой процесс нормализации набора инструкций процессора, — давайте взглянем на список инструкций, маскируемых от виртуального процессора, когда вы включаете режим совместимости для данной виртуальной машины.
Очевидно, что в будущем при включении данного режима все новые инструкции, которые появятся в следующих поколениях процессоров Intel и AMD, также будут скрываться от виртуальных процессоров.
Мы только что обсудили утилиту SConfig, которая при помощи простого текстового интерфейса позволяет решать некоторые начальные административные задачи в Microsoft Hyper-V Server 2008 R2 и Windows Server 2008 R2, установленном в варианте Server Core. Но многие администраторы всё-таки предпочитают графические утилиты, и для них на Codeplex существует проект Core Configurator. (Постоянные читатели нашего блога должны помнить о нём ещё с прошлого года).
Что же это такое? Специально созданный сценарий, который имеет простой графический интерфейс. Не так давно была выпущена вторая версия этого сценария, которая поддерживает все новые возможности Windows Server 2008 R2. В частности, теперь «основной» сценарий для выполнения тех задач, которые вы укажите в GUI, вызывает коммандлеты PowerShell. Возможности Core Configurator 2.0 включают в себя:
Посмотрев на утилиту, могу сказать, что она удобнее и функциональнее встроенного в ОС сценария SConfig. Также замечу, что:
Год назад, с появлением Hyper-V Server 2008, мы говорили об утилите «HVConfig», предназначенной для начальной настройки Hyper-V Server 2008. С выходом версии R2 утилита возмужала, расширила свои возможности, сменила имя на «SConfig» и вошла в состав установки как Hyper-V Server 2008 R2, так и варианта «Core» для самого Windows Server 2008 R2.
Не стану углубляться в отличия вариантов установки «Core» от обычной полной версии. Напомню лишь, что для уменьшения количества потенциальных уязвимостей и сокращения накладных расходов в серверной ОС существует возможность установки в минимальной конфигурации. Этот вариант не включает в себя графического интерфейса, обозревателя Internet Explorer, проигрывателя Windows Media Player, части ролей и компонентов, без которых большинство промышленных серверов может обойтись. Установка ОС в варианте «Core» позволяет вам устанавливать меньше обновлений безопасности, реже перезагружаться, но также несет в себе некоторые неудобства в управлении из-за отсутствия привычного графического интерфейса.
Именно для упрощения начальных настроек ОС после установки и предназначена утилита «SConfig». Ведь после этого любые более глубокие и тонкие доработки вы сможете осуществлять удаленно при помощи привычных инструментов. Что же возможно выполнить при помощи новой утилиты?
Как же воспользоваться утилитой SConfig? Очень просто — выполнить sconfig в командной строке:
Очевидно, что оптимальным будет максимально автоматизировать любую дальнейшую настройку — используя для этого сценарии и/или групповые политики. Для добавления или удаления ролей вам потребуется использовать другие средства — коммандлеты PowerShell или утилиту DISM (утилита ServerManagerCMD с выходом Windows Server 2008 R2 считается устаревшей и не рекомендуется к использованию. Вероятно, она будет исключена из будущих версий). Для более тонкой настройки сервера и его ролей используйте Server Manager, запущенный удалённо на полной установке Windows Server 2008 R2 или Windows 7 (в последнем случае потребуется установка Remote Server Administration Tools).
Сегодня хотелось бы поговорить об операции сжатия виртуального диска (Compact Disk). Это процедура уменьшения размера, который файл динамического виртуального диска (Dynamic VHD) занимает на файловой системе родительского раздела (физическом диске). Ведь как только на физическом диске закончится свободное место — все виртуальные машины, работающие на этом диске, перейдут в состояние «Paused/Critical» и прекратят свою работу.
Иногда администраторы настолько обеспокоены этой угрозой, что заранее распределяют и ограничивают размер диска каждой виртуальной машины. Для этого используются фиксированные виртуальные диски (Fixed VHD). Они занимают на физическом диске весь указанный объем сразу на этапе создания. Это удобно для тех ситуаций, когда один вместительный физический диск (или LUN) используется для запуска большого количества виртуальных машин. При этом суммарный размер виртуальных дисков может приближаться к объему физического диска. Однако фиксированные виртуальные диски занимают много места и крайне неудобны при копировании и переносе. Кроме того, это не всегда спасает от вышеуказанной проблемы. Ведь помимо собственно виртуальных дисков, место может запросто оказаться занято снимками (Snapshot). Или всё место займёт одна виртуальная машина, к которой подключён единственный динамический диск . Тех, кого беспокоит именно такой случай, жду в комментариях к статье. Если эта проблема окажется актуальна — поговорим о квотировании дискового пространства для виртуальных машин.
Для динамических виртуальных дисков характерна и другая проблема. Зачастую размеры файла виртуального диска на физическом диске вырастают до большого значения. Тогда как в действительности на этом виртуальном диске остаётся много свободного места. Которое, однако, остаётся занятым с точки зрения родительской системы. Такое может случиться, например, если вы провели в виртуальной машине операцию резервного копирования. В процессе этого на виртуальном диске создаётся временный файл резервной копии, что влечёт за собой рост динамического диска. Затем резервная копия переносится в специализированное хранилище или на ленту, из виртуальной машины файл удаляется, место на файловой системе гостевой ОС освобождается. Но, разумеется, виртуальный диск при этом не уменьшается. Он продолжает занимать много места — тогда как объём полезной информации, которая на нём хранится, остаётся небольшим.
Решением обеих только что описанных проблем как раз и является операция сжатия виртуального диска. Она позволяет уменьшить размер файла с виртуальным диском до минимально возможного, освобождая место на физическом диске и облегчая процесс переноса. Как же следует выполнять операцию сжатия? Существует два подхода к решению этой задачи.
Способ первый. Virtual Server, Virtual PC, Windows Virtual PC
Это более старый способ. Он использует API таких продуктов, как Virtual Server 2005, Virtual PC 2004/2007 или Windows Virtual PC для Windows 7. При запуске операции сжатия производится поблочное сканирование файла виртуального диска на наличие полностью пустых блоков. Если блок целиком заполнен только нулями, то при операции сжатия этот блок не копируется. Да, именно не копируется. Для сжатия дисков фактически создаётся новый виртуальный диск, в который последовательно копируются все ненулевые блоки из исходного (сжимаемого) диска.
Для повышения эффективности этой процедуры в Virtual Server и Virtual PC существовала утилита «Disk Pre-Compactor». Она занимается тем, что «зануляет» (т.е. заполняет нулями) неиспользуемое место на диске. Ведь, как известно, при удалении файла в ОС обычно удаляется лишь ссылка на сам файл в файловой таблице. По соображениям производительности ОС не удаляет сами данные с диска. Но поскольку информация об использовании ранее занятой области диска удаляется, это место теперь считается незанятым — и виртуализация тут ни при чем. Очевидно, что раз на диске фактически остались данные, они вряд ли являются сплошными нулями. В результате при сжатии виртуального диска это место не будет считаться свободным и не будет освобождено. Отдельно скажу, что предварительная дефрагментация диска (перед запуском Disk Pre-compactor) позволяет добиться ещё меньшего размера результируемого диска.
Итак, чем достоинства и недостатки такого подхода?
Плюсы:
Минусы:
Способ второй. Hyper-V Manager и Native VHD в Windows 7
Это новая технология сжатия. Он используется в Hyper-V Manager и в консоли Disk Administrator в Windows 7 и Windows Server 2008 R2 (так называемая «встроенная поддержка виртуальных дисков» — Native VHD). Вначале для всех разделов, расположенных внутри виртуального диска, из файловой таблицы NTFS считывается информация о расположении файлов и папок. Затем блоки, не содержащие файлов, перечисленных в таблице, просто удаляются из виртуального диска. Операция проводится напрямую над исходным виртуальным диском без создания второго файла и копирования информации. В чем же достоинства и недостатки нового подхода?
Пользователи Windows 7, установившие себе Windows Virtual PC, могут использовать любой из этих способов или попробовать оба. Расскажите нам о результатах!
Часто разговаривая о виртуализации мы слышим такие слова, как «экономия» и «консолидация». Они подразумевают возможность размещения на одном физическом сервере некоторого количества виртуальных машин, взамен каждой из которых — без использования виртуализации — потребовался бы отдельный сервер. Как же понять — сколько именно ресурсов будет необходимо виртуальным машинам, какой сервер нужно закупать для консолидации имеющихся задач или какую нагрузку «потянут» уже имеющиеся серверы? Для того, чтобы помочь вам ответить на эти вопросы, компания Hewlett-Packard разработала специализированный инструмент планирования под названием «HP Sizer for Microsoft Windows Server 2008 R2 Hyper-V» (также иногда он упоминается как «HP Sizer for Microsoft Hyper-V 2008 R2»).
Этот инструмент может использовать как свою собственную базу с типовыми значениями загрузки серверов, имеющих заданные характеристики, так и отчёты, полученные с помощью Microsoft Assessment and Planning (MAP) Toolkit версий 3.0 или 4.0. То есть вы можете при помощи MAP собрать статистику по загрузке именно ваших серверов за определённый период, а затем загрузить результаты обследования в HP Sizer for Microsoft Windows Server 2008 R2 Hyper-V — и получить советы по выбору оборудования для консолидации.
По результатам инвентаризации вы получите требования к диску и памяти — а также сможете добавить к этим значениям некоторый резерв на будущее. Далее укажите, какое количество LUN на системе хранения вы планируете использовать под виртуальные машины, требуется ли вашим виртуальным машинам загрузка с SAN и собираетесь ли бы использовать снимки (Snapshot). При этом можно отдельно задать такой важный для сервера показатель, как утилизация оборудования. Насколько интенсивно вы хотите задействовать ваш сервер? Далее — какие серверы вы предпочитаете использовать в своей инфраструктуре: лезвия (серия «BL»), полноразмерные серверы для размещения в стойках («DL») или отдельно стоящие настольные серверы («ML»)? Какой производитель процессоров вызывает у вас больше доверия?..
Результатом станет чёткая рекомендация по выбору оборудования для именно вашего проекта. Причём — выданная самым популярным в корпоративном секторе России производителем серверов и дисковых хранилищ.
В состав рекомендации входит детальная спецификация и вся информация, необходимая сразу для заказа оборудования. Если же вы планируете использовать уже имеющееся оборудование — то на стадии выбора серверов и хранилищ явно укажите имеющиеся в наличии модели. И тогда из полученной в результате спецификации вам станет ясно, сколько таких серверов потребуется для консолидации указанной нагрузки.
Прошло уже более года с публикации моей предыдущей заметки из цикла об измерении производительности Hyper-V. С тех пор вышла новая ОС Windows Server 2008 R2, которая принесла с собой вторую версию Hyper-V. Одним из заявляемых улучшений гипервизора является существенное повышение производительности в работе динамических виртуальных жёстких дисков дисков (Dynamic VHD). Сегодня мы сравним три основных способа подключения виртуальных дисков к виртуальной машине: pass-through — предоставление физического диска (или LUN) напрямую виртуальной машине; VHD Fixed — создание файла с виртуальным диском фиксированного размера; VHD Dynamic — создание файла с виртуальным диском с постепенным увеличением размера диска по необходимости.
Очевидно, что выделять отдельный физический диск (а то и несколько) каждой виртуальной машине достаточно неудобно. Также довольно затратно выделять заранее большой объем дискового пространства под каждый виртуальный диск. С точки зрения рационального использования имеющегося дискового пространства идеалом представляется использование динамически расширяющихся дисков, которые создаются с нулевым размером, размещаются на одном большом томе и растут по мере действительного использования пространства виртуальными машинами.
В Windows Server 2008 Microsoft категорически не рекомендовала использовать динамические виртуальные диски в производственных средах из соображений производительности. С выходом Windows Server 2008 R2 заявлено, что все проблемы с производительностью динамических VHD дисков остались в прошлом, и теперь их можно использовать на промышленных нагрузках. Давайте сравним производительность сами и вынесем свой вердикт.
В нашем тесте сервер Dell PowerEdge 1950 подключен к хранилищу Dell AX150. Созданы три LUN по 10 гигабайт. Вирутальной машине с Windows Server 2008 R2 отданы три диска: динамический VHD диск G:; фиксированный VHD диск F:; pass-through диск E:. Производительность измеряется программой IOMeter.
Глядя на результаты можно заметить — pass-through диск всегда выигрывает в производительности. Задержка меньше, скорость выше. В среднем преимущество по сравнению с виртуальными дисками — 0.5-1%.
Глядя на преимущества динамических виртуальных дисков — такие как экономия дискового пространства, простота выделения, удобство резервного копирования, возможность создания дифференциальных дисков, возможность использования снимков (snapshots) в виртуальных машинах — по сравнению с совсем незначительными потерями в производительности, я для себя решил, что в абсолютном большинстве случаев я буду использовать теперь именно динамические виртуальные диски. Гнаться за 1% дисковой производительности, достигаемом выделением отдельного LUN определенного размера на каждый диск виртуальной машины, я не вижу смысла. Тем более, что этот 1% дисковой производительности в реальных задачах размоется в еще менее заметное значение, ибо большинство задач упирается совсем не в недостаток производительности дисков.
В качестве вывода этой заметки я бы рекомендовал всем — используйте динамические виртуальные диски с Windows Server 2008 R2 и Hyper-V. Это удобно, быстро и надёжно.
Заключительная часть пошагового руководства по базовой установке компонентов инфраструктуры управления системами виртуализации. Предыдущие части:
Установив и настроив SQL Server 2008 и System Center Operations Manager 2007 R2 мы готовы приступить к установке собственно виновника данного цикла статей — System Center Virtual Machine Manager 2008 R2. Я исхожу из того, что необходимые доменные учетные записи, описанные в первой статье цикла вы уже создали. Также я предполагаю, что ОС у вас уже обновлена до Service Pack 2 (или вы используете Windows Server 2008 R2). Поэтому установка различных обновлений ОС, в отличие от процесса, описанного мной год назад, вам не потребуется.
Установку SCVMM R2 мы начинаем с роли VMM Server. Проходим проверку совместимости, указываем каталог для установки и выбираем имя нашего экземпляра SQL Server, отмечая необходимость создания новой базы данных.
Указываем каталог для содания Библиотеки SCVMM, номера портов, которые агенты будут использовать для взаимодействия с сервером, и доменную учетную запись, в контексте которой будет работать служба Virtual Machine Manager.
По окончании установки возвращаемся на первый экран мастера и запускаем процесс «Configure Operations Manager». Важно — не устанавливайте консоль администратора (VMM Administrator Console) до проведения интеграции с OpsMgr, ибо в таком случае в процессе интеграции вам потребуется ее удалить.
Сам процесс настройки интеграции с OpsMgr установит консоль администратора и необходимые OpsMgr Management Packs. Далее вы должны запустить консоль администратора и в разделе «Administration» выбрать раздел «System Center». Укажите имя вашего сервера OpsMgr в поле «Operations Manager Server».
В поле «Operatins Manager Reporting URL» укажите путь к серверу отчётов.
Далее вам будет необходимо установить агентов VMM на все серверы виртуализации с Hyper-V и VS2005. Данная процедура не сложна, так что описывать ее я не буду, равно как и процедуру установки портала самообслуживания. Установка и настройка VMM 2008 R2 закончена, пора начинать виртуализацию серверов!
На днях на подписках MSDN и TechNet появился полнофункциональный дистрибутив System Center Configuration Manager 2007 со встроенным Service Pack 2. Напомню, что раньше (начиная с октября) была доступна только лишь версия для ознакомления, ограниченная по времени использования. Одно из основных изменений, добавленных в ConfMgr 2007 SP2 — это полная поддержка Windows 7, Windows Server 2008 R2 и всех их новых функций.
А сегодня вышла обновлённая версия Offline Virtual Machine Servicing Tool (OVMST), которая получила номер версии 2.1. Теперь этот крайне полезный инструмент поддерживает все текущие версии продуктов, которые он объединяет:
О том, что такое OVMST, зачем он нужен и как работает, читайте ранее в нашем блоге. Более подробная информация опубликована на домашней страничке инструмента, которая расположена на веб-сайте Microsoft TechnNet.
Основной набор сертификационных экзаменов по Windows Server 2008 не был — и, похоже, уже не будет — обновлён с выходом Windows Server 2008 R2. Всё-таки, не смотря на огромное количество нововведений, формально «R2» — та же самая версия продукта, хоть и обновлённая. Однако, специализированный экзамен по роли виртуализации стал исключением из этого правила.
На прошлой неделе некоторым участникам программы предварительного тестирования сертификационных экзаменов сообщили о том, что к выходу готовится новая редакция экзамена по роли виртуализации: 71-659: TS: Windows Server 2008 R2, Server Virtualization. Общедоступная регистрация на сдачу предварительной версии этого экзамена началась на сайте Prometric первого декабря.
К сожалению, ограниченное количество бесплатных мест на сдачу предварительной версии этого экзамена закончилось очень быстро — буквально за несколько часов после начала регистрации. Подробнее о причинах, которые к этому привели, можно почитать в блоге команды, которая отвечает за разработку и предварительное тестирование сертификационных экзаменов: Born to Learn — There once was a beta… Поэтому если вас всё-таки интересует этот экзамен, у вас есть следующие варианты действия.
Преимущества последнего сценария — это отдельный вопрос. С одной стороны, вы получаете возможность сдать экзамен одним из первых и почти наверняка получить статус «Charter Member». Возможно, по каким-то соображениям вам будет выгодно сделать это до окончания года. В таком случае, предварительная версия — это ваш выбор. Но с другой стороны — вы наверняка встретите какие-то затруднения в процессе сдачи, которых не окажется в окончательной версии. Например — потому, что какие-то вопросы экзамена будут ещё содержать в себе не вполне корректно сформулированные условия. Да и сама предварительная версия содержит больше вопросов, чем окончательная. Собственно, одна из целей текущего тестирования — это отсеять неудачные вопросы, то есть такие, с которыми возникают затруднения у ненормально большой доли участников программы.