Windows Server 2016 RC в лабе: Windows Containers, Nano Server в Hyper-V и Storage Spaces Direct
Разворачиваем Windows Server 2016 RC: тестируем Windows Containers с IIS, Nano Server в Hyper-V и S2D. Собираем матрицу совместимости для клиентов на Server 2008 R2.
Windows Server 2016 Release Candidate вышел в июне 2016 - финальная тестовая версия перед GA в октябре
Microsoft выпустили Release Candidate Windows Server 2016 - это уже не Technical Preview с явной пометкой «не для серьёзного». RC означает feature freeze: то, что есть сейчас, в GA принципиально не изменится. Мы поставили в лабу и прошлись по трём вещам, которые интересуют нас с точки зрения клиентских инсталляций: Windows Containers с IIS, Nano Server в роли Hyper-V-хоста и Storage Spaces Direct.
Заодно начали собирать матрицу совместимости для клиентов, у которых в production до сих пор Windows Server 2008 R2. Их хватает.
Windows Containers: что изменилось с TP4
В январе мы смотрели на Windows Containers в TP4 и там было «технически работает, практически - вопросы». В RC картина чуть другая.
Docker Engine для Windows теперь ставится через официальный пакет, а не через форк с патчами. Образ microsoft/iis скачивается и поднимается предсказуемо:
Install-PackageProvider -Name NuGet -Force
Install-Module -Name DockerMsftProvider -Force
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
docker pull microsoft/iis
docker run -d -p 80:80 --name iis_test microsoft/iis
IIS стартует, порт 80 на хосте отвечает. Время запуска контейнера - десятки секунд, это никуда не делось. Образ windowsservercore по-прежнему около 9 ГБ. Если вы ждали, что RC станет резко легче - нет, не стало.
Что реально улучшилось: логи IIS внутри контейнера теперь ведут себя предсказуемо, volume mount через -v на хост работает нормально, и сети контейнеров стали чуть менее экзотическими. Docker Compose под Windows Containers всё ещё не в полном объёме, но базовые сценарии поднимаются.
Hyper-V Containers - изолированные контейнеры с отдельным ядром - работают, но требуют вложенной виртуализации, если лаба сама в VM. На железе всё чище.
Nano Server в роли Hyper-V-хоста
В TP4 Nano Server тестировали в основном как платформу для IIS-пакета. В RC попробовали другое: Nano Server как хост для Hyper-V.
Сборка образа через New-NanoServerImage с пакетом Hyper-V:
New-NanoServerImage `
-Edition Datacenter `
-DeploymentType Host `
-MediaPath D:\ `
-BasePath C:\NanoBase `
-TargetPath C:\NanoImages\nano-hv01.vhd `
-ComputerName NANO-HV01 `
-Compute `
-OEMDrivers
Загрузился. Hyper-V Manager с удалённой машины подцепился через WinRM без проблем. Виртуальные машины создаются и запускаются нормально. Footprint хоста - примерно 400 МБ оперативки на саму ОС против полутора-двух гигабайт у Server Core с той же ролью.
Где неудобно: диагностировать проблемы на самом хосте - только через Enter-PSSession и PowerShell. Привычных утилит нет. Если что-то пошло не так с сетью или дисками - надо знать, какими командлетами это проверять. Для инженера, который работает с Windows через GUI, это будет стресс. Для тех, кто привык к Server Core или Linux - вполне терпимо.
Storage Spaces Direct: первый взгляд
S2D - это новое в 2016. Концепция: берём несколько серверов с локальными дисками, объединяем в кластер, получаем программно-определяемое хранилище без внешнего SAN. Microsoft позиционирует это как замену дорогим общим массивам в сценариях hyper-converged.
В RC мы подняли двухузловой стенд (минимум для S2D - 2 ноды, рекомендуется 4+). Настройка через PowerShell:
Enable-ClusterStorageSpacesDirect
New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VMData -FileSystem CSVFS_ReFS -Size 500GB
Сам факт, что это поднялось за час на виртуальном железе - уже интересно. ReFS как файловая система для CSV (Cluster Shared Volumes) - новинка, которую Microsoft явно продвигают для Hyper-V.
Производительность на виртуальных дисках в лабе не мерили - там нет смысла. Архитектурно это выглядит как конкурент vSAN от VMware: те же идеи, другая реализация. Насколько это надёжно в production на реальном железе - вопрос открытый, RC есть RC.
Матрица совместимости для 2008 R2
У нас несколько клиентов на сопровождении, где в production Windows Server 2008 R2. Расширенная поддержка 2008 R2 заканчивается в январе 2020 - ещё почти четыре года, но миграционные проекты такого масштаба занимают время, и думать об этом надо сейчас.
Начали собирать матрицу: какие роли и компоненты из 2008 R2 поддерживают прямое обновление до 2016, где нужна промежуточная ступень, где - только перенос с нуля.
Несколько наблюдений из текущего исследования:
- In-place upgrade с 2008 R2 на 2016 не поддерживается. Только через 2012 R2 как промежуточную ступень - или clean install. Microsoft об этом пишут явно.
- Active Directory. Контроллеры домена с 2008 R2 в лесу уживаются с 2016-контроллерами нормально - понижение функционального уровня не требуется. Поднять новый DC на 2016 и выводить старые - рабочая стратегия.
- IIS 7.5 на 2008 R2 vs IIS 10 на 2016. Большинство конфигураций переносятся через
appcmd export/importили вручную по applicationHost.config. Проблемы обычно там, где использовались нестандартные модули с нативным кодом. - SQL Server. 2008 R2 с SQL Server 2008 - отдельная история, там свои сроки поддержки и своя логика миграции. Это в матрицу идёт отдельной строкой.
Матрица пока в работе - это промежуточный срез, не финальный документ. Будем дополнять по мере тестирования реальных конфигураций из клиентских инвентарей.
Что думаем про RC в целом
RC - это не TP5. Это уже финальная форма продукта. Nano Server стал чуть удобнее в управлении, Windows Containers - чуть стабильнее, Storage Spaces Direct появился как полноценная фича, а не набросок.
При этом Windows Containers всё ещё не для тех, кто хочет запустить docker-compose up и получить привычный результат как на Linux. Экосистема образов маленькая, базовые образы тяжёлые, время запуска другое. Это нормально для RC - но иллюзий питать не стоит.
GA обещан в октябре. До тех пор - тестовая лаба и матрица совместимости.