ADG Оставить заявку
Блог Инфраструктура 5 мин чтения

Windows Server 2016 TP2: Nano Server в 400 МБ и что с этим делать контейнерному хосту

Microsoft выпустила Technical Preview 2 с Nano Server и улучшенным Hyper-V. Развернули в тестовой среде - образ в 400 МБ интригует, но в продакшн пока не берём.

Контекст момента

Windows Server 2016 Technical Preview 2 вышел с Nano Server и улучшенным Hyper-V, включая поддержку контейнеров

Microsoft выкатила Technical Preview 2 Windows Server 2016 - и в этот раз есть на что посмотреть. Главная новинка, ради которой мы вообще полезли в документацию: Nano Server. Образ в 400 мегабайт против 4 гигабайт у Server Core. Это не опечатка.

Развернули в тестовой среде, покрутили пару дней. Ниже - что поняли и почему трогать продакшн пока не торопимся.

Что такое Nano Server и почему это интересно

Microsoft описывает Nano Server как «минимальный footprint» для облачных и контейнерных сценариев. Это не урезанный Server Core - это принципиально другой подход к дистрибуции Windows. Нет GUI, нет локального входа в систему вообще. Только PowerShell Remoting и WMI для управления.

Зачем нам это может быть нужно? Мы сейчас думаем про Windows-контейнеры. Microsoft анонсировала их в рамках того же TP2, и контейнерному хосту не нужна полная инсталляция Server 2012 R2 с IIS, .NET и всем прочим. Нужно только ядро, сетевой стек и хостовые биндинги для Docker. Nano Server в теории - идеальный кандидат.

Контраст в размерах:

  • Full Server 2012 R2 - около 20 ГБ установленной системы.
  • Server Core - порядка 4 ГБ, отсутствие GUI-оболочки.
  • Nano Server TP2 - примерно 400 МБ, отсутствие всего.

400 МБ - это меньше, чем типичный базовый образ Ubuntu в Docker. Для виртуальных машин-хостов под контейнеры, где их десятки, разница в занятом дисковом пространстве и времени развёртывания ощутима.

Как устроена установка

Nano Server не устанавливается традиционным способом через Setup. Вместо этого - PowerShell-скрипт New-NanoServerImage, который собирает образ из пакетов. Хочешь IIS - добавляешь пакет. Хочешь поддержку кластеризации - добавляешь пакет. Всё остальное просто не попадает в образ.

Развёртывание через VHD или WIM - готовый образ монтируется в Hyper-V и запускается. Никакого мастера установки, никакого интерактива.

Это непривычно. Мы потратили первые пару часов на то, чтобы понять: при ошибке в конфигурации нельзя войти в консоль и поправить вручную. Всё - только через PowerShell Remoting или Emergency Management Console (специальный serial port). Если ошибся в сетевых настройках при сборке образа - пересобирай образ заново.

Что проверяли в тестовой среде

Развернули одну виртуалку на Hyper-V с Nano Server, подключили через PowerShell Remoting, попробовали установить роль контейнерного хоста.

Первое наблюдение: управление через Enter-PSSession реально работает, и с ним Nano Server ощущается как обычный сервер, только быстрее стартует. В нашем тесте от момента старта ВМ до готовности к командам - под минуту. Для сравнения, Server Core на тех же ресурсах - три-четыре минуты.

Второе: минимальный образ означает и минимальный набор встроенных модулей. Не всё, что написано для Server 2012 R2, работает без допиливания. У нас сломались несколько Ansible-плейбуков для Windows, которые полагались на WMI-классы, отсутствующие в Nano.

Третье и главное: это Technical Preview. Мы нашли несколько поведений, которые выглядят как баги, а не как фичи. Документация местами расходится с тем, что происходит в реальности.

Что с Hyper-V в TP2

Помимо Nano Server, в TP2 подтянули Hyper-V. Обновлённая версия гипервизора поддерживает:

  • Hot add/remove памяти и сетевых адаптеров для Windows-гостей. Давно ждали - раньше для изменения памяти нужно было гасить ВМ.
  • PowerShell Direct - выполнение команд прямо в гостевой ВМ через гипервизор без сетевого подключения. Удобно для диагностики изолированных машин.
  • Улучшенную репликацию для Hyper-V Replica с более частым интервалом синхронизации.

Hot add памяти - это то, чего нам не хватало в Hyper-V 2012 R2. В VMware аналогичная возможность есть давно, и у клиентов с гетерогенной виртуализацией иногда возникал вопрос почему на VMware можно, а на Hyper-V нельзя. Ответить теперь проще.

Почему не трогаем продакшн

Ответ короткий: Technical Preview - это Technical Preview. Не потому что мы осторожные, а потому что у нас нет лицензии на поддержку Microsoft для Preview-сборок, и в случае проблемы мы остаёмся один на один с форумами.

Конкретные опасения:

  • API нестабильны. То, что написано сейчас для Nano Server, вероятно придётся переписывать при выходе следующих preview. Microsoft прямо говорит об этом в документации.
  • Ansible и DSC под вопросом. Наш инструментарий автоматизации предполагает определённые возможности Windows-хостов. Nano Server пока требует адаптации.
  • Контейнеры на Windows в TP2 - тоже preview. Стек контейнеров Microsoft собирается из нескольких компонентов в предварительном состоянии одновременно. Это не та ситуация, когда разумно рисковать рабочей нагрузкой.

Где сейчас стоим

Тестовая среда живёт, время от времени обновляем образ по мере выхода новых builds TP2. Следим за тем как меняются API Nano Server и как развивается интеграция с Docker - Microsoft и Docker объявили о партнёрстве именно в контексте Windows Server 2016.

Для Hyper-V-улучшений отдельно смотрим на hot add памяти - это функция, которую хочется в продакшн быстрее. Но получим её только с финальным релизом, которого пока нет на горизонте.

Пока самый честный вывод: направление правильное. Nano Server выглядит как осмысленный ответ Microsoft на то, что контейнеры требуют от хостовой ОС. 400 МБ против 4 ГБ - это не маркетинговый трюк, это реальная разница в том, насколько экономно тратится инфраструктура под хосты. Но между «выглядит правильно» и «готово к работе» - дистанция, которую Technical Preview пока не преодолел.

Контакт

Нужна такая же инженерная работа?

Опишите задачу и контекст. Ответим в течение рабочего дня, при необходимости подпишем NDA.