Le simulateur Oracle pour système de stockage ZFS

Il est parfois difficile de se former sur des matériels ou systèmes parce que ceux-ci sont coûteux, les exemplaires existant sont bien sûr en production, il n’y a en pas dans l’entreprise, …
Pourtant, de nos jours, il existe la virtualisation qui vient au secours de notre curiosité bien légitime ou l’envie de monter en compétences sur un produit particulier.
C’est le cas du simulateur ZFS qui, vous allez le voir, au delà de ses fonctionnalités purement didactiques, peut nous fournir aussi une zone de stockage (partage NFS ou LUN iscsi) à partager avec nos machines virtuelles.
Très brièvement, quelques notions de vocabulaire ZFS :

  • Pool : regroupement de disques protégé par un mécanisme choisi parmi ceux disponibles sur le ZFS.
  • Project : c’est un groupe de Shares. Il permet de définir globalement des paramètres communs à plusieurs Shares, comme le nommage, la sécurité ou la réplication.
  • Share : c’est un LUN, partage NFS, disque réseau Samba, …

 
Les phases de notre installation sont les suivantes :

  • Installation du simulateur ZFS dans VirtualBox et paramétrage
  • Création d’un LUN sur le ZFS
  • Connexion de ce LUN sur un serveur Linux via le protocole iscsi

 
 

1) Téléchargement

Le lien du téléchargement du simulator du ZFS se trouve à l’URL suivante :

http://www.oracle.com/technetwork/server-storage/sun-unified-storage/downloads/sun-simulator-1368816.html

 
 

2) Installation

Dézipper les fichiers de la VM.
Dans VirtualBox, cliquer sur Fichier –> Importer un appareil virtuel, puis choisir parmi les fichiers dézippés celui qui porte l’extension .ovf. Ensuite cliquer sur Importer.
L’importation dure quelques minutes.
 
simzfs_importer_ovf1
simzfs_importer_ovf2
 
 

3) Démarrage et configuration

Avant de démarrer la VM, il faut modifier son interface réseau afin de la connecter sur le réseau VirtualBox « privé hôte ».
Le réseau « privé hôte » est un réseau VirtualBox local au PC que vous utilisez (cf. Fichier–>Paramètres->Réseaux).
Une adresse IP lui sera attribuée automatiquement par l’intermédiaire du serveur DNS VirtualBox rattaché à ce réseau.
simzfs_paramnetwork
 
Dans l’interface VirtualBox, démarrer la VM en cliquant dessus.
simzfs_paramvm1
Entrer les informations de paramétrage réseau, en faisant attention au clavier qui est en qwerty.
Seule l’adresse réseau est pré-remplie dans l’écran parce que la VM utilise le réseau VirtualBox « privé hôte ».
Les autres adresses sont à remplir sachant que le réseau « privé hôte » est en /24 par défaut et l’adresse x.x.x.1 correspond au default router et DNS server.
simzfs_paramvm2
 
Une fois les informations entrées, valider avec la touche « Esc » suivi de la touche 1.
L’interface qui suit vous donne l’URL qui permet de paramétrer le ZFS.
L’écran reste figé sauf si des informations s’affichent sur la console. A ce niveau la vm est démarrée en mode serveur.
simzfs_paramvm3
Avant de continuer, arrêter et redémarrer la VM.
 
 

4) Configuration de base de l’environnement ZFS

En vous connectant à l’URL de l’interface graphique qui pour moi est https://192.168.56.101:215, le panneau de login apparait.
Entrer « root » et le password entré lors de la configuration.
 
simzfs_paramzfs2
 
A l’apparition de l’écran d’accueil, cliquer sur le bouton « Start »
simzfs_crelun1
 
Les 6 écrans qui suivent sont à valider par défaut : cliquer sur « Commit » dans chacun d’eux.
Il y a un écran supplémentaire concernant « Registration et Support » ; répondre « Later »
 
 

5) Préparation du Pool

Cliquer dans le menu sur : Configuration –> Storage
Créer un pool de stockage en cliquant sur « Available Pools »
 

 simzfs_cre2

 
Nous créons un pool sur la totalité des disques disponibles, soit 15 disques.
simzfs_cre3
Choisir le type de profile de stockage, prenons « Triple parity, wide stripes » qui est une bonne solution intermédiaire.
Le tableau Data Profile décrit les propriétés de chacun d’eux.
simzfs_cre4
Le pool est maintenant paramétré, nous allons pouvoir l’utiliser pour créer des Projects puis des shares.
 
 

6) Création d’un LUN

Nous commençons par créer un project qui sera positionné par défaut sur le seul pool existant.
simzfs_cre6
 
Puis un LUN est défini dans ce project.
simzfs_cre7
 
Nous passons ensuite au paramétrage SCSI en créant un initiator dans le ZFS.
simzfs_cre8
 
Vérifier sur le ZFS que le service iscsi est démarré.
 
 

7) Rattachement de ce LUN à un serveur

Passons maintenant sur le serveur linux qui va utiliser le LUN mis à disposition par le ZFS.
 
La première phase consiste à installer le rpm permettant de se connecter comme client iscsi à un fournisseur.

# yum install iscsi-initiator-utils

 
Nous allons utiliser la commande iscsiadm pour la connexion du LUN sur notre serveur Linux avec les différentes commandes ci-dessous.

  • test de découverte
# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.56.101 --discover
 192.168.56.101:3260,2 iqn.1986-03.com.sun:02:e05c2c99-1fde-4c1c-bb6b-e2fcdc6d2ad5

 

  • Connection du LUN
# iscsiadm -m node --targetname=iqn.1986-03.com.sun:02:e05c2c99-1fde-4c1c-bb6b-e2fcdc6d2ad5 --login
Logging in to [iface: default, target: iqn.1986-03.com.sun:02:e05c2c99-1fde-4c1c-bb6b-e2fcdc6d2ad5, portal: 192.168.56.101,3260] (multiple)
Login to [iface: default, target: iqn.1986-03.com.sun:02:e05c2c99-1fde-4c1c-bb6b-e2fcdc6d2ad5, portal: 192.168.56.101,3260] successful.

 

  • Un nouveau disque /dev/sdb  apparait dans la liste des disques présents sur le serveur
# fdisk -l
Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00087895
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1030143      514048   83  Linux
/dev/sda2         1030144     9418751     4194304   82  Linux swap / Solaris
/dev/sda3         9418752    31457279    11019264   83  Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

 

  • Nous créons une partition sur ce disque
# fdisk /dev/sdb

 

  • Nous pouvons ensuite créer un filesystem sur ce disque et le monter dans l’arborescence des répertoires
# mkfs.ext4 /dev/sdb1

 
 
Voilà !
En plus de l’aspect purement didactique de ce simulateur ZFS, nous pourrons utiliser par exemple les LUN présentés pour installer un clusterware.