Легко говорить о ядре сервера как о «разбавленной» полной версии ОС Windows. Однак Microsoft говорит, что ядро сервера будет предпочтительным вариантом развертывания Windows-серверов в Windows 8. В таких условиях есть смысл переходить к использованию ядра сервера уже сейчас. Если научиться работать с ядром сервера в текущей версии Windows Server, не придется коренным образом перестраивать процессы, когда выйдет Windows 8.
Какой смысл в использовании ядра сервера
Microsoft предоставляет вполне удобный интерфейс Windows Server, так зачем вообще думать об использовании ядра сервера? Помимо подготовки к выходу Windows Server 8, есть три основных преимущества использования ядра сервера:
- У ядра сервера меньше контактная зона Функциональность ядра сервера намного меньше, чем полнофункционального Windows-сервера, что автоматически уменьшает «площадь поражения» с точки зрения атак.
- Ядро сервера отлично подходит для виртуализации Из-за уменьшенного объема функциональности ядро сервера также потребляет меньше системных ресурсов. Это делает его идеальным кандидатом для размещения в виртуализованном серверном окружении, где очень важно эффективное использование ресурсов.
- Ядро сервера позволяет снизить затраты на поддержку Экземпляры ядра сервера нуждаются в установке меньшего числа пакетов исправлений и из-за этого их нужно реже перезагружать, чем полноценный экземпляр Windows-сервера. Фактически, по оценкам Microsoft установка ядра сервера позволяет снизить число вынужденных перезагрузок, обусловленных установкой пакетов исправлений, на 59%.
Правильный выбор серверных ролей
Одна из самых важных рекомендаций по использованию ядра сервера — очень важно правильно выбирать роли. В будущих версиях ожидается расширение функциональности ядра сервера, а ядро сервера Windows Server 2008 R2 способно поддерживать лишь ограниченное число серверных ролей. В их числе:
- Служб сертификации Microsoft Active Directory (Active Directory Certificate Services)
- Доменные службы Active Directory
- Службы Active Directory облегченного доступа к каталогам (AD LDS) (Active Directory Lightweight Directory Services [AD LDS])
- DHCP-сервер
- DNS-сервер
- Файловые службы (в том числе Диспетчер ресурсов файлового сервера [File Server Resource Manager])
- Hyper-V
- Службы печати и документов (Print and Document Services)
- Службы потокового мультимедиа (Streaming Media Services)
- Веб-сервер (в том числе определенное подмножество ASP.NET).
Сокращение функциональности ядра сервера
Можно считать ядро сервера минималистской версией ОС без лишнего багажа полной редакции. Хотите верьте, хотите нет, но и в ядре сервера есть лишний «жирок». У ядра сервера все равно есть возможности дальнейшего избавления от ненужных функций.
Вспомните о ядре сервера в Windows Server 2008 — оно не поддерживало Windows PowerShell. Поддержка Windows PowerShell появилась только в Windows Server 2008 R2. Для работы Windows PowerShell необходим каркас Microsoft .NET, который, конечно же, есть в ядре сервера Windows Server 2008 R2.
Как видите, со времени своего появления ядро сервера значительно расширилось и добавило функциональности в следующей версии Windows Server 2008 R2.
Однако есть три важных компонента, которые возможно стоит удалить:
- Поддержка .NET (это позволит сэкономить 500 МБ дискового пространства, но не позволит работать с Windows PowerShell)
- Поддержка редактора IME (это позволит сэкономить 200 МБ дискового пространства, но необходимо для дополнительных языковых пакетов)
- Поддержка WoW64 (это позволит сэкономить 150 МБ дискового пространства, но необходимо для 32-разрядных приложений)
Порядок установки этих компонентов не совсем очевиден. После установки они становятся недоступными, а повторная установка потребует перезагрузки.
Подробнее о WoW64
WoW64 позволяет выполнять 32-разрядный код в 64-разрядной ОС Windows. WoW64 устанавливается по умолчанию и занимает примерно 150 МБ дискового пространства. Если на сервере не планируется использовать 32-разрядные программы, этот компонент можно без проблем удалить.
Перед удалением WoW64 нужно учесть два момента, связанных с WoW64, даже если вы не используете 32-разрядные приложения. WoW64 нужен, если сервер будет работать как контроллер домена или на нем будут работать службы AD LDS.
Кстати, если удалить WoW64 с сервера, то при попытке запуска приложений, которому этот компонент нужен, вы получите невнятную ошибку, в которой ничего не говорится о WoW64: «Отсутствует подсистема, необходимая для поддержки данного типа образа.» (The subsystem needed to support the image type is not present).
Аналогично при попытке установить 32-разрядный MSI-файл в отсутствие WoW64 на сервере, вы получите другую, но такое же невнятное сообщение об ошибке: «Ошибка 1719. Не удалось получить доступ к службе установщика Windows. Чтобы убедиться, что она правильно зарегистрирована и включена, обратитесь в службу поддержки.» (Error 1719. The Windows Installer Service Could Not Be Accessed. This Can Occur if the Windows Installer is not Correctly Installed. Contact Your Support Personnel for Assistance).
Система обслуживания и управления образами развертывания
Рекомендуемым средством включения и отключения ролей и функций в ядре сервера является система обслуживания и управления образами развертывания (DISM). Пользоваться DISM довольно просто. Например, если надо увидеть включенные функции, можно использовать следующую команду, которая перечисляет все доступные функции и указывает включены они или нет, а также нужна ли перезагрузка(рис. 1):
DISM /online /Get-Features
Рис. 1. DISM можно использовать для отображения всех доступных функций
Если вы знаете функцию, которую надо включить, это можно сделать следующей командой:
Dism /Online /Enable-Feature /FeatureName:<feature name>
Аналогично, удалить функцию можно такой командой:
Dism /Online /Disable-Feature /FeatureName:<feature name>
Такие функции, как .NET Framework и WoW64 устанавливаются по умолчанию. Их можно без проблем включать и отключать, используя ранее описанные способы. Удаление функции отличается от простого ее отключения. При удалении функции все соответствующие файлы физически удаляются с жесткого диска сервера. Для этого используется команда Start /w ocsetup, за которой следует имя компонента, который надо удалить, и параметр /uninstall (рис. 2). Имя компонента чувствительно к регистру.
Рис. 2. Сократить состав функциональности ядра сервера можно путем удаления ненужных функций
Например, если надо удалить WoW64, используйте такую команду:
Start /w ocsetup ServerCore-WOW64 /uninstall
А переустановить WoW64 можно такой командой:
Start /w ocsetup ServerCore-WOW64
На рис. 3 показано, как используется эта команда.
Рис. 3. Использование команды ocsetup для установки компонентов ядра сервера
Знайте об ограничениях .NET Framework и ASP.NET
Я ядра сервера есть определенные ограничения по сравнению с полной версией. Надо знать эти ограничения и уметь работать с ними. Например, есть определенные ограничения .NET Framework, о которых надо знать.
Эти ограничения обычно обусловлены тем, что в ядре сервера используется неполный набор компонентов Windows. В частности, в ядре сервера нет некоторых пространств имен .NET. Аналогично, Windows Presentation Foundation нет в .NET Framework.
Помимо ограничений .NET Framework, есть также особенности использования ASP.NET в IIS. В ядре сервера используется тот же пакет ASP.NET, что и в полной версии Windows-сервера. Однако перед тем, как размещать веб-сайт на ядре сервера, стоит знать, что любой код, в котором используется System.Web.Mail, не будет работать из-за зависимости от CDOSYS (которая отсутствует в ядре сервера). Microsoft рекомендует изменять код веб-приложения и использовать System.Mail.Net вместо System.Web.Mail.
Тестирование поддерживаемых приложений
Как видите, при оптимизации развертывания ядра сервера приходится выполнять немало операций по оптимизации. Можно установить разные роли и компоненты, которые должны попасть в образ системы. Легко ориентироваться на требования к ОС, но важно не забывать о требованиях поддерживаемых приложений. Например, на большинстве серверов работают агенты резервного копирования и антивирусное ПО. Однако из-за минималистической природы ядра сервера некоторые приложения не будут корректно работать в этой среде. Поэтому важно тщательно протестировать инфраструктуру на базе ядра сервера перед тем, как переносить приложения в производственную среду на основе ядра сервера.
Финальное замечание
В отличие от полноценной версии серверной Windows-системы, ядро сервера не предлагает ввести ключ продукта. Даже в утилите SCONFIG, которая призвана облегчить процесс начальной конфигурации, отсутствует механизм ввода ключа продукта. В таких условиях очень легко забыть лицензировать свой экземпляр ядра сервера.
Для этого надо использовать средство SLMGR.VBS. Если вы не помните, лицензирован ли тот или иной экземпляр ядра сервера, это легко проверить следующей командой:
SLMGR.VBS –DLI
Результат работы этой утилиты для лицензированного сервера показан на рис. 4.
Рис. 4. Такое сообщение свидетельствует о том, что сервер лицензирован
Если нужно ввести ключ продукта, это можно сделать такой командой:
SLMGR.VNS –IPK <your product key>
После ввода ключа нужно активировать сервер командой:
SLMGR.VBS -ATO
Без сомнения, в будущем ядро сервера будет использоваться все чаще. Ключ к эффективной работе с ядром сервера заключается в понимании его ограничений и умении работать с ними.