Search This Blog

jeudi 11 décembre 2014

Configuring iSCSI Target on Server 2012 R2 with powershell

Bonjour,

Nous allons ici faire la virtualisation de stockage sur Windows Server 2012 R2 en Powershell.

Dans ce chapitre nous allons voir plusieurs points :

  • Création de pool de stockage  (Storage Pool)
  • Création de Storage space (Virtualisation de stockage)
  • Création de disque virtual (en VHDx)


-           

Voici le schéma sur le quel je vais me baser afin de faire cet article :



J’ai deux serveurs :



  •           Un serveur de stockage, qui va contenir les Storage pool les Storage space et les Vdisk iSCSI ainsi qu’une target iSCSI
  •           Un serveur qui va se connecter à la target iSCSI via iSCSI initiator en powershell


  


Je vais ajouter 3 disques physique à mon serveur de stockage, comme ceci :




Voici les disques que j’ai ajoutés :

  •           Disk01 : 20 GB
  •           Disk02 : 10 GB
  •           Disk 03 : 5GB


Le disque 00 est le disque de base (le C) de mon Windows server, nous allons d’ailleur voir grâce à la commande Powershell : Get-PhysicalDisk qui permet de lister les disques physique au sein d’une machine.

Voici le résultat :






Avec la commande Get-PhysicalDisk on a tous les disques avec la valeur CanPool confondus (False et True), je vais forcer le canPool à TRUE avec la commande suivante afin d’avoir que les disques que je viens d’ajouter à mon serveur, cela va me permettre de cacher mon disque de départ C : qui est forcément à False.

Get-PhysicalDisk -CanPool $true

 On peut également les voir dans l’interface dans le server Manager :







1- Création d'un Storage Pool:

Nous allons commencer par créer un Storage pool, un Storage pool est une agrégation de disques physiques en un seul disque :


Voici le script PowerShell qui permet de faire cela :


#Récupération de la liste des disques avec le CanPool forcés à TRUE
$PhysicalDisks = Get-PhysicalDisk -CanPool $true

#Nom
$FriendlyName = "STORAGE"

#Nom du pool
$systemfriendlyname = "Storage Spaces on SRV-03"

#Création du Storage pool (agrégation de disque en un seul disque)
New-StoragePool -StorageSubSystemFriendlyName $systemfriendlyname -PhysicalDisks $PhysicalDisks -FriendlyName $systemfriendlyname






Le StorageSubSystemFriendlyName s'obtient en faisant la commande suivante: Get-storagepool ou directement dans le serveur Manager dans la rubrique "Volumes " "pool de sockage"

Voici le résultat : 




Nous sommes à ce stade là dans notre architecture :




Nous allons ensuite continuer à l’étape suivante, qui consiste à créer les Storage Space, c’est ce qu’on appelle de la virtualisation de stockage.


2- Création d’un disque virtuel au sein de notre storage Pool :

Voici le script qui permet de le faire :

$friendly = "VDISK01"
$storagepool = "Storage Spaces on SRV-03"

#Création du disque virtuel
New-VirtualDisk -FriendlyName $friendly -StoragePoolFriendlyName $storagepool -Size 20GB -ProvisioningType Thin -ResiliencySettingName parity 

Explication:

Ici; je lancé la création d'un disque virtuel  d’une taille de 20 GB, avec un approvisionnement fin, et en termes de raid j’ai choisi la parité.

Voici le résultat:


On retrouve bien mon disque virtuel  de 20 GB.

On peut également le voir dans le server Manager :




Vous pouvez également faire clic droit sur le disque virtuel afin de bien voir qu’il est créé sur notre Storage pool qu’on a créé auparavant :





Voici les disques de mon Storage Pool sur lequel repose mon Storage space :





On peut également vérifier la présence du disque dur virtuel dans le disk Manager:




Il faut maintenant initialiser le disque, le formater et lui assigner une lettre :

Appliquer la commande suivante :

New-Partition -DiskNumber 4 -UseMaximumSize -AssignDriveLetter


Je prends la taille maximale du disque et je lui assigne une lettre, ensuite faudra formater ce disque.
N’oubliez pas bien entendu de formater votre disque J

Création du Vdisk iSCSI (LUN) :

Nous allons maintenant créer un Vdisk iSCSI afin de l’attacher plus tard à une Lun iSCSI pour qu’il puisse être présenté un serveur via iSCSI Initiator.

Commençons par installer la feature Cible iSCSI comme ceci :
Add-WindowsFeature -name FS-iSCSITarget-Server


Voici le résultat :



Ensuite, je crée un disque iscsi virtual de type (VHDx) :

New-IscsiVirtualDisk -Path E:\LUN\LUN-01.vhdx -SizeBytes 4 GB 

Voici le résultat :


Regardons dans le server Manager afin de vérifier l’existence de notre disque dur virtuel ISCSI :

J’ai également crée une LUN-02 de 13 GB.

New-IscsiVirtualDisk -Path E:\LUN\LUN-02.vhdx -SizeBytes 13GB 



Nous allons ensuite créer une Target (Cible) iSCSI voici le script en Powershell :


#create a new iscsi target 

#Name 
$NameTarget = "Target01"

#InitiatorIds est le serveur Hyper-v ça sera l'initiateur iSCSI, il va se connecter à la LUN afin de bénéficier du stockage en mode bloc

New-IscsiServerTarget -TargetName $NameTarget -InitiatorIds IPAddress:172.16.1.3 


Voici le résultat du script:



Vérification dans le server Manager :

On voit bien ma cible (Target) iSCSI qui a été crée ici.



Une fois que nous avons créé la cible iSCSI, il faut lui affecter des disques virtuels, car c’est ces disques qui feront office de LUNs et qui seront présentés au serveur Hyper-V par la baie d’iSCSI Initiator.

Voici comment on affecte un disque dur virtuel à un target iSCSI en Powershell :


Add-IscsiVirtualDiskTargetMapping Target01 E:\LUN\LUN-02.vhdx -Lun 0

Add-IscsiVirtualDiskTargetMapping Target01 E:\LUN\LUN-01.vhdx -Lun 1 

Vérification avec la commande Get-iSCSIServerTarget afin de voir que les deux LUNs  sont bien affectés à ma Target iSCSI (Target-01):



Une fois que j’ai créé ma Target ISCSI avec des disques virtuels affectés dessus, je vais pouvoir présenter cette cible iSCSI à mon serveur Hyper-v.

Pour se faire, deux choix :
  •           Via le programme iSCSI initiator
  •           Soit en PowerShell

Nous allons ici le faire en Powershell, voici le script qui permet de connecter un serveur à une Target iSCSI :


# Démarrage du service iSCSI Initiator
Start-Service msiscsi

# Configuration pour le démarrage automatique du service 
Set-Service msiscsi -StartupType Automatic

## Discover iSCSI target 
New-IscsiTargetPortal –TargetPortalAddress 172.16.1.7

## Connectionà la Target iSCSI
Connect-IscsiTarget -NodeAddress "iqn.1991-05.com.microsoft:srv-03-target01-target" 

Verification:


On voit bien le “ISConnected qui est à TRUE” allons maintenant vérifier dans l’ISCSI Initiator:


On retrouve bien ma Target iSCSI qui s'appelle TARGET-01 que j'ai crée auparavant qui est connecté =) :




Vérifions maintenant dans le disk manager la présence des deux LUNs qui sont présentés à mon hyperviseur :



Je retrouve bien mes deux disques J , bien entendu, il faudra par la suite faire les opérations suivantes :
  •           Les mettre en ligne
  •           Les initialiser
  •           Les formater :) et leur assigner des lettres 


Voila, cet article touche à sa fin,

n'hésitez pas à le partagez :)

@bientôt 
Seyfallah Tagrerout 
MSP 2014-2015 










< >