PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Stockage ZFS avec OmniOS sur ESX avec Fibre Channel

mardi 13 janvier 2015 à 09:46

I. Présentation

Dans cet article nous allons naviguer entre plusieurs milieux bien intégrés au sein du SI actuel, à savoir la virtualisation et le stockage. Pas à pas nous mettrons en place une solution de stockage basé sur une distribution OmniOS et le système de fichier ZFS puis celui-ci sera exposé à l’hyperviseur VMware ESXi via une liaison Fibre Channel en Point-to-Point.

Prérequis :

Dans mon cas mes machines sont les suivantes :

II. Mise à jour des cartes HBA QLogic

Les cartes ont été mise à jour avec le dernier firmware disponible à savoir 3.63. Au cas où cela se produirait les cartes étaient forcées en 2Gb après la mise à jour du firmware. La modification de ce paramètre se trouve dans le BIOS des cartes QLogic (Data rate).

OmniOS (Stockage)

Lien de téléchargement: http://omnios.omniti.com/

Nous avons besoin de :

Informations : Les login par défaut est root et il n’y a pas de password. Pour en ajouter un après être connecté en root il faut taper passwd root.

Configurer le réseau

Étant nouveau sur l’environnement Sun, je me suis appuyé sur le wiki OmniOS très bien expliqué http://omnios.omniti.com/wiki.php/GeneralAdministration

Activer SSH

La gestion des services sous OmniOS se fait avec la commande svcadm.

svcadm enable ssh

Pour avoir le statut du service (ONLINE,OFFLINE ect) il faut utiliser la commande svcs. Example : svcs ssh

Installation des paquets serveur de stockage

pkg install storage-server

Activation du service stockage :

svcadm enable stmf

III. Configurer le filesystem ZFS et les volumes

L’avantage de OmniOS ou des systèmes dérivant de Solaris est d’embarquer le système de fichier ZFS (http://en.wikipedia.org/wiki/ZFS) avec ses principaux avantages :

A. Configuration de notre zpool

Le zpool est un espace virtuel de stockage (un pool) regroupant plusieurs médias de stockage physique. Il va être représenté comme un seul disque virtuel.

Afin de créer notre pool nous avons besoin d’identifier nos disques. Il est possible d’obtenir cette information avec la commande format.
Ce qui nous intéresse ici c’est le nom des disques c1xxxxxx par exemple c1t50024E90034D7D6Fd0

ZFSformat

Une fois ceci fais nous passons à la création du zpool que nous nommerons ZVM. Celui-ci sera constitué de 2 vdev en miroir, 1 cache L2 (L2ARC) et 1 slog (ZIL) + disque en spare (ayant 5 disques SATA de marque et modèle identique).

Voici la commande de création de notre zpool. Il faut remplacer hddX par le nom du disque vu précédemment (c1xxxx).

zpool create ZVM mirror hdd1 hdd2 mirror hdd3 hdd4 cache hdd5 log hdd6 spare hdd7

La priorité de ZFS étant de conserver l’intégrité des données  plutôt que fournir des performances pures (même s’il est adroit aussi sur ce point avec un peu de matériel !).

Je me permets de préciser que les performances du pool de stockage (zpool) dérive de beaucoup de facteurs et notamment le nombre de vdev dans le pool ainsi que leurs géométries.

Tout ceci est très bien résumé sur ce lien http://nex7.blogspot.fr/2013/03/readme1st.html au chapitre « Virtual Devices Determine IOPS ».
Pour afficher le détail du zpool :

zpool status

zpoolStatusNous avons donc un zpool composé de :

Maintenant que ceci est fait il faut configurer certaines options ZFS. Pour afficher les options/informations disponibles sur notre zpool il faut faire zfs get all <zpool>
Options utilisés sur cette installation :

Désormais nous devons créer nos volumes (zvol) block afin de les présenter à l’hyperviseur au travers de la liaison Fibre Channel.
Nous allons donc créer 2 zvol dans les 1.4To restant ce qui nous donne environ 690Go par zvol.

zfs create –V 690g ZVM/vm1
zfs create –V 690g ZVM/vm2

Vous pouvez afficher la configuration des volumes comme ceci :

zfs get all <zvol>

zfsZvolOption

B. Configuration des cartes HBA sur OmniOS

Nous allons commencer par lister les cartes disponibles (1 carte dans notre tp)

mdb -k
::devbindings -q qlc
$q

listHBAPour rappel : qlc= initiator mode et qlt = target mode

Nous devons passer notre carte en mode target

update_drv -d -i ‘pciex1077,2432’ qlc

Vous allez recevoir une erreur : Cannot unload module: qlc Will be unloaded upon reboot.

update_drv -a -i ‘pciex1077,2432′ qlt

Vous allez recevoir une autre erreur :

devfsadm: driver failed to attach: qlt  Warning: Driver (qlt) successfully added to system but failed to attach

Redémarrer le serveur :

init 6

Nous allons maintenant vérifier que ces modifications ont bien été prises en comptes avec la commande :

stmfadm list-target –v

listTargert

Cela est indiqué également en listant les cartes HBA disponibles :

fcinfo hba-port

hbaSAN

C. Création des LUN

sbdadm create-lu <cheminZvol>

createLunVérification :

sbdadm list-lu

listLUN

lunList

Dernière étape, on « publie » les lun :

stmfadm add-view <GUID>
stmfadm add-view 600144f0ccc8c13d0000549231220001
stmfadm add-view 600144f0ccc8c13d0000549231360002

Côté hyperviseur, il faut aller dans Configuration > Storage Adapters

hbaESXI
Il ne nous reste plus qu’à les formater en VMFS , il faut pour cela aller dans Configuration > Storage > Add Storage

esxiAddLun

Et vous voilà avec  votre Fibre Channel @home ! ;-)

latencyIII. Le mot de la fin ..

Il est vrai que la machine stockage peut paraître surdimensionné pour du stockage en comparaison avec un NAS. Avec ZFS, certains paramètres comme le CPU ou la RAM ne doivent pas être négligés (tout dépend aussi des besoins et exigences de chacun). ZFS est friant de la mémoire ram, car il s’en sert environ à 80% comme cache pour ses opérations (ARC)

arc size

Capture Cacti du lab (paramètre arc_size)

La tendance est d’environ 1Go de RAM par To de stockage supplémentaire tout en ayant une base d’au moins 2 ou 4Go.

Le processeur permet de gérer plus sereinement la compression, mais également la déduplication qui est vraiment gourmande en utilisation CPU. Je vous conseille d’activer la compression (lz4), mais pas déduplication.

Je posterais quelques tests de performance un peu plus tard afin d’avoir une idée. Pour le moment je dispose de 8 VM de toute sorte (Active Directory, Exchange 2013, serveur web, Veeam B&R) tout OS confondu (OpenBSD, Debian, Windows serveur 2012) qui démarrent, fonctionnent et réagissent rapidement.

Pour aller plus loin voici les différents liens qui m’ont permis de réaliser ce tutoriel :