Search This Blog

samedi 20 juin 2015

NanoServer - Création du VHD pour Hyper-V


Bonjour à tous,

Dans cet article, je vais vous présenter les Nano Server et la mise en place d’un VHD Nano Server.



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 :

 Il faut maintenant appliquer ce fichier unattend au VHD et pour ce faire, il faut utiliser DISM 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 :



 Et lancez votre VM :



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 


< >