Bonjour à tous,
Présentation:
Tout d’abord les Nano Server ont vu le
jour avec la nouvelle Technnical Preview 2. (Windows Server 2016)
Je l’ai découvert à l’occasion des
Microsoft Ignite, où une session sur le sujet à était donnée :
Nano server est conçu pour le Cloud, plus
légers, moins gourmand en ressource que les autres versions de Windows Server à
savoir Windows Server normal et Windows Server Core.
Au niveau architecture, nous avions l’habitude
de voir ceci :
Avec Windows Server Nt et 2003, nous
avions qu’un seul mode, avec l’arrivée de 2008 et 2008 R2, nous avions un
monde Full Server et un mode Server core qui était là justement pour optimiser le
serveur en terme de consommation de ressources (CPU , RAM , nombre de reboot
etc ).
Avec Windows Server 2012 et Windows
Server2012 R2, nous avons le Server Core comme sur 2008 et 2008 R2, + une
possibilité d’ajouter le Minimal server interface pour faciliter la gestion de
ce dernier, et la GUI Shell.
Avec Les Nano Server ; nous avons
une brique qui vient s’ajouter et qui est encore plus basse que le server Core
comme le montre cette image tiré de la conférence lors de Microsoft
Ignite :
On peut voir que ce dernier vient se grever
avant le serveur core, le Nano server est conçu pour le Cloud et surtout pour
un mode containers.
J’ai retenu un graph intéressant lors de
cette session qui montre les performances de Nano Server :
On peut relever les informations
suivantes à travers le graph de Microsoft :
- - Moins de patchs critiques pour le système
- - Reboot plus rapide
- - La taille du disque (VHD) est très réduite comparé au Windows Server classique at au server Core
Utilisation:
Windows Nano Server est conçus pour être
utilisé dans les contextes suivants :
- - Serveur d’application pour le cloud
- - Hyperviseur (Serveur Hyper-V)
- - Fail Over Clustering
- - Storage pour un cluster SOFS (Scale Out File Server)
Fonctionnement Hyper-V avec Nano Server :
Au niveau du fonctionnement d’hyper-V sur
Nano Server, on est proche du fonctionnement avec un Windows Server classique à
l’exception deux choses :
- - Pas de possibilité de faire du RemoteFX
- - La gestion se fera en remote (à distance) et le serveur de gestion doit être installé avec la même version de Windows server que les nodes Nano Server en cluster
Au niveau des features présentes, on peut
retrouver :
- - La création de VMs de générations 1 et 2
- - La création des Switch virtuel
- - La gestion des VMs (démarrage etc. )
A noté : Hyper-V
réplica n’est pas supporté
Fonctionnement du Fail Over Clustering avec Nano Server :
Les Nano Server en cluster fonctionnent
de la même manière que les versions classiques de Windows Server ou Server
core, mais vous devez retenir les choses suivantes :
- - Comme sur les versions classiques, tous les nœuds Nano Server doivent être joints au même domaine
- - Vous devez avoir un compte du domaine avec les droits administrateur sur tous les nœuds Nano Server (comme avec les nœuds classique de Windows Server)
- - Toutes les commandes doivent être passées en élévation de privilège (Run As Administrator)
- - Le cluster doit etre administré en remote via FailOver Cluster Manager ou en Powershell
Les features non supportées pour les clusters Nano
Server :
- - Les tests de validations des nœuds et de la configuration du cluster
- - Pas de possibilité de créer d’autre rôle de cluster (mise à part Hyper-V et le SOFS)
- - Pas de possibilité de gérer le cluster en local via PowerShell
Arborescence:
Nous allons voir tout d’abord comment
aller chercher l’image .WIM de Nano Server dans l’IOS de Windows Server Technical
Preview 2.
Commencer par monter votre ISO Windows
Server Technical Preview 2 comme ceci :
Une fois montée, allez dans
l’arborescence de votre ISO comme ceci, et vous allez voir un dossier « NanoServer »:
Entrez dans le dossier « NanoServer » , vous allez retrouver les
éléments suivants :
- - Packages è Ce sont les rôles et features que vous allez installer sur votre serveur NanoServer
- - NanoServer.wim è Image de notre server Wim vierge
- - Un fichier Texte ReadMe.txt è Qui vous donner u lien pour des informations supplémentaires à propos des NanoServer
Packages:
Quand vous créez votre Nano
server, ce dernier est vide c’est-à-dire sans rôle et fonctionnalité, vous avez
dans le dossier Nano Server les packages qu’il faut ajouter, je vous ai fait un
petit descriptif :
Role / Feature
|
Package file
|
Hyper-V
|
Microsoft-NanoServer-Compute-Package.cab
|
Serveur de fichier
et Storage
|
Microsoft-NanoServer-Storage-Package.cab
|
FailOver Cluster
|
Microsoft-NanoServer-FailoverCluster-Package.cab
|
Drivers pour la
machine virtuelle Nano Server
|
Microsoft-NanoServer-Guest-Package.cab
|
Drivers basique pour
les carte réseaux et controlleur de stockage
|
Microsoft-NanoServer-OEM-Drivers-Package.cab
|
Mise pratique -
Création du VHD NanoServer
Pour pouvoir profiter des Nano Server, il
faut crée un VHD qui contient l’image « NanoServe.WIM » Pour cela, vous avez besoin des prérequis
suivants :
Prérequis :
Elément
|
Description
|
Lien de
téléchargement
|
Convert-WindowsImage.ps1 — WIM2VHD for
Windows 10 (also 8 and Windows 8.1)
|
Script PowerShell qui permet de convertir une image Wim en
un disque VHD
|
|
Windows Server Technical Preview 2
|
ISO de Windows Server TP2
|
|
Une fois ces prérequis téléchargés,
veuillez les mettre dans un dossier (F:\NanoServer) pour ma part et (créez également un dossier F:\Mount ou F:\NanoServer\Mount)
Ouvrez une console PowerShell en tant qu’administrateur ou ISE et lancez le script de la manière suivante :
Placez-vous dans votre
dossier de travail « Nano Server comme moi »
f
Lancez le script
Convert-Windowsimage.ps1 comme ceci :
$sourcePath = "H:\NanoServer\NanoServer.wim"
$VHDPath = "D:\NanoServer"
.\Convert-WindowsImage.ps1 -sourcepath $sourcePath -VHD
$VHDPath\NanoServer.vhd
-format VHD
-Edition 1
Une fois terminée, vous devez avoir
ceci :
Retournez dans votre dossier de travail et
vous verrez ceci :
Notre VHD NanoServer à était créé avec succès J.
Mise pratique - Ajout
des Packages / fonctionnalités
A ce stade-là, notre VHD est vide,
c’est-à-dire sans rôles et feature, nous allons maintenant ajouter les rôles
suivants :
Package file
|
Rôles
|
Microsoft-NanoServer-Compute-Package.cab
|
Hyper-V
|
Microsoft-NanoServer-Storage-Package.cab
|
Storage –SOFS
|
Microsoft-NanoServer-FailoverCluster-Package.cab
|
Cluster
|
Microsoft-NanoServer-Guest-Package.cab
|
Drivers VMs
|
Microsoft-NanoServer-OEM-Drivers-Package.cab
|
Drivers réseaux/ CTL disques
|
Pour cela, nous allons utiliser
DISM.exe J
Avant de commencer, il faut faite un Mount de
votre VHD, car vous avez besoin que ce dernier soit monté afin de pouvoir lui
injecter des packages tels que fonctionnalité et drivers.
Pour ce faire, il faut aller se placer dans le dossier source de l’IOS de Windows Server TP2 comme ceci : H:\sources
Voici la syntaxe afin de monter votre
VHD :
dism.exe
/Mount-Image /ImageFile:”votre_image.vhd” /Index:1 /MountDir:”dossier_Mount”
Mount
Nano Server VHD :
Dism
/mount-image /imageFile:"F:\NanoServer\NanoServer.vhd" /index:1 /MountDir:"F:\Mount"
Une fois votre VHD monté, il faut prendre le
dossier packages qui se trouve dans le dossier NanoServer de votre ISO Windows Server TP2 et copier le contenu de
ce dossier dans votre répertoire de travail :
Remarquez que le dossier Packages et le
dossier qui se trouve à l’intérieur en-Us, ils sont en lecture seul, donc il
faut leur retirer la lecteur seule comme ceci :
Une fois terminée, je vais pouvoir ajouter
les packages que je souhaite à mon NanoServer avec la commande suivante :
Il
faut faire pour les package qui sont dans le dossier packages ainsi que le
sous-dossier en-Us.
Ajout
Package Hyper-V :
Dism /add-package /packagePath:"F:\NanoServer\Packages\Microsoft-NanoServer-Compute-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\en-US\Microsoft-NanoServer-Compute-Package.cab"
/image:"F:\Mount"
Ajout
Package FailOver Clustering :
Dism /add-package
/packagePath:"F:\NanoServer\Packages\Microsoft-NanoServer-FailoverCluster-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\en-US\Microsoft-NanoServer-FailoverCluster-Package.cab"
/image:"F:\Mount"
Guest
Package :
Dism /add-package
/packagePath:"F:\NanoServer\Packages\Microsoft-NanoServer-Guest-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\en-US\Microsoft-NanoServer-Guest-Package.cab"
/image:"F:\Mount"
OEM
Drivers :
Dism /add-package
/packagePath:"F:\NanoServer\Packages\Microsoft-NanoServer-OEM-Drivers-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\en-US\Microsoft-NanoServer-Guest-Package.cab"
/image:"F:\Mount"
Storage
Package :
Dism /add-package
/packagePath:"F:\NanoServer\Packages\Microsoft-NanoServer-Storage-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\en-US\Microsoft-NanoServer-Storage-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\Microsoft-OneCore-ReverseForwarders-Package.cab"
/image:"F:\Mount"
Dism /add-package
/packagePath:"F:\NanoServer\Packages\en-US\Microsoft-OneCore-ReverseForwarders-Package.cab"
/image:"F:\Mount"
Nous allons utiliser un fichier unattend.xml
afin de configurer le nom et le mot de l’administrateur.
Dans la section <userAccount> è <AdministratorPassword>
è <Value>
entrez votre mots de passe.
Et dans <ComputerName> :
je mets le nom de mon serveur « SRVNANO01 ».
Voici les modifications que j’ai effectuées dans le fichier
en rouge :
<?xml version='1.0'
encoding='utf-8'?>
<unattend
xmlns="urn:schemas-microsoft-com:unattend"
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<settings
pass="offlineServicing">
<component
name="Microsoft-Windows-Shell-Setup"
processorArchitecture="amd64"
publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS">
<ComputerName>SRVNANO1</ComputerName>
</component>
</settings>
<settings pass="oobeSystem">
<component
name="Microsoft-Windows-Shell-Setup"
processorArchitecture="amd64"
publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS">
<UserAccounts>
<AdministratorPassword>
<Value>P@ssword123</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
</UserAccounts>
<TimeZone>Pacific Standard
Time</TimeZone>
</component>
</settings>
<settings pass="specialize">
<component
name="Microsoft-Windows-Shell-Setup"
processorArchitecture="amd64"
publicKeyToken="31bf3856ad364e35" language="neutral"
versionScope="nonSxS">
<RegisteredOwner>LABINFRA</RegisteredOwner>
<RegisteredOrganization>SeyfallahLab.com</RegisteredOrganization>
</component>
</settings>
</unattend>
Une fois que vous avez entrez les valeurs
dans le fichier xml, veuillez l’enregistrez comme ceci :
dism /image:"F:\Mount"
/apply-unattend:"F:\NanoServer\Unattend.xml"
Une fois le fichier appliqué, il faut créer
le dossier Panther, aller dans le dossier de Montage de votre VHD et aller dans
Windows et créer le dossier Panther comme ceci :
Md F:\Mount\Windows\Panther
Dans ce dossier, copier le fichier
Unattend.xml que vous avez injecté auparavant comme ceci :
Copy
F:\NanoServer\unattend.xml F:\Mount\Windows\Panther
Une fois terminée, nous allons mettre à notre
serveur les paramètres TCP/IP qui vont bien.
IP : 192.168.2.5
Mask : /24
GTW : 192.168.2.254
DNS : 192.168.2.1
netsh interface ip set address "Ethernet" static 192.168.2.5 255.255.255.0 192.168.2.254
netsh interface ipv4 add dnsserver "Ethernet" address=192.168.2.1 index=1
On place cela dans un petit fichier au nom de SetupComplete.cmd.
Pour faire exécuter ce script, il faut créer
deux dossier :
-
F:\Mount\Windows\Setup
-
F:\Mount\Windows\Setup\Scripts
Il faut ensuite copier ce script dans le
dossier F:\Mount\Windows\Setup\Scripts comme ceci :
Le script SetupComplete.cmd sera lancé automatiquement au démarrage de notre Nano Server.
Une fois terminé, vous pouvez enfin
démonter votre image comme ceci :
dism /unmount-image /mountDir:F:\Mount
/commit
Créez
ensuite une VM sous Hyper-V et attachez votre disque NanoServer.vhd que vous
venez de créer :
Dans un second article, on verra l'administration en remote via PowerShell de notre serveur NanoServer. En attendant restez connectés sur mon blog :)
@Bientôt
Seyfallah Tagrerout
Microsoft MSP Virtualization - Storage