Création de dataset au sein d’un pool
Jusqu’à présent, vous avez fusionné tous les disques dans un disque virtuel de très grande capacité. Il vous reste à organiser cet espace. On ne peut pas réellement parler de partitions où cela s’entend avec d’autres systèmes de fichiers sous Linux ou Windows. Il s’agit d’espaces dynamiques, ajustables à volonté et potentiellement limités uniquement par la taille du pool ; lequel est également extensible. Ces espaces sont appelés des datasets.
Vous allez maintenant créer un premier dataset nommé nfs-share dans le pool nommé data
sudo zfs create data/nfs-share
La commande zfs list affiche l’intégralité des partitions du disque virtuel.
sudo zfs list
NAME | USED | AVAIL | REFER | MOUNTPOINT |
---|---|---|---|---|
data/nfs-share | 5.44T | 3.21M | /data/nfs-share |
Vous noterez que le contenu du dataset est directement accessible depuis le point de montage /data/nfs-share.
La capacité maximale du contenu de ce dataset est celle du pool data soit 5To.
Gestion de la taille des partitions
Les partitions ZFS ne sont pas limitées en taille individuellement. Ceci signifie que toutes les partitions partagent la totalité du disque. L’espace est alloué en fonction des besoins. Toutefois, il peut être nécessaire de limiter la taille d’une partition.
Pour cela, vous pouvez utiliser la commande zfs set quota. Dans l’exemple ci-dessous, le data data/nfs-share sera limité à une taille de 10Go.
zfs set quota=10G data/nfs-share
La commande zfs get quota permet d’afficher les quotas attribués à une partition.
zfs get quota data/nfs-share
Inversement, il peut être utile de réserver un minimum d’espace pour une partition et ainsi s’assurer que l’espace ne viendra pas à manquer le jour où il sera utilisé. Cette opération peut être réalisée avec la commande zfs set reservation. Dans l’exemple ci-dessous, la partition data/nfs-share se voit réserver 1Go sur le disque.
zfs set reservation=1G data/nfs-share
Tapez la commande zfs get all data/nfs-share pour s’assurer que les modifications ont bien été appliquées (Listing 1).
Listing 1.
[shell] NAME PROPERTY VALUE SOURCEdata/nfs-share type filesystem –
data/nfs-share creation ven mai 15 12:44 2009 –
data/nfs-share used 24,0K –
data/nfs-share available 10,0G –
data/nfs-share referenced 24,0K –
data/nfs-share compressratio 1.00x –
data/nfs-share mounted no –
data/nfs-share quota 10G local
data/nfs-share reservation 1G local
data/nfs-share recordsize 128K default
data/nfs-share mountpoint /data/nfs-share local
data/nfs-share sharenfs off default
data/nfs-share checksum on default
data/nfs-share compression off default
data/nfs-share atime on default
data/nfs-share devices on default
data/nfs-share exec on default
data/nfs-share setuid on default
data/nfs-share readonly off default
data/nfs-share zoned off default
data/nfs-share snapdir hidden default
data/nfs-share aclmode groupmask default
data/nfs-share aclinherit restricted default
data/nfs-share canmount on default
data/nfs-share shareiscsi off default
data/nfs-share xattr on default
data/nfs-share copies 1 default
data/nfs-share version 3 –
data/nfs-share utf8only off –
data/nfs-share normalization none –
data/nfs-share casesensitivity sensitive –
data/nfs-share vscan off default
data/nfs-share nbmand off default
data/nfs-share sharesmb off default
data/nfs-share refquota none default
data/nfs-share refreservation none default
data/nfs-share primarycache all default
data/nfs-share secondarycache all default
data/nfs-share usedbysnapshots 0 –
data/nfs-share usedbydataset 24,0K –
data/nfs-share usedbychildren 0 –
data/nfs-share usedbyrefreservation 0[/shell]
Au passage, vous noterez que la liste des options est assez longue. On y trouve notamment l’option de compression des données en temps réel.
ZFS supporte la compression native des datasets. Vous pouvez commander la compression du dataset nfs-share avec la commande :
sudo zfs set compression=on data/nfs-share
Vous pourrez facilement atteindre un taux de compression de 1.4 sans dégradation notable des performances.
Depuis fin décembre 2009, un dataset dispose également d’une option de déduplication de données en ligne. Contrairement à la compression, la déduplication factorise la réduction de volume en ne stockant qu’une fois un bloc de donnée déjà présent dans un dataset.
Suppression d’une partition
La suppression du dataset nfs-share du pool nommé data est aussi simple que :
sudo zpool destroy data/nfs-share
Partage d’un dataset en NFS
Si vous souhaitez partager tout le contenu du dataset nfs-share au travers du protocole NFS, il vous suffira de tapez la commande :
sudo zfs set sharenfs=anon=0 data/nfs-share
La séquence sharenfs=anon=0 nous affranchi de tout problème de lecture/écriture sur le partage lié à des droits d’utilisation du “dataset”. Si vous aviez saisi sharenfs=on, une authentification avec un compte utilisateur NexentaCore valide serait requis pour écrire dans le dataset. Si votre baie dispose de plusieurs cartes réseau, le partage est disponible depuis chacune des adresses IP. Vous pouvez équilibrer la charge entre les deux cartes réseaux configurant vos serveurs pour qu’ils s’adressent à la baie au travers des multiples cartes.
Partage d’un dataset en iSCSI
Si vous souhaitez partager un dataset au travers du protocole ISCSI, sa taille doit impérativement être figée. Il faut s’imaginer que le dataset est en réalité un fichier stocké dans le pool et que c’est le contenu de ce fichier qui est présenté au réseau au travers de ISCSI.
La création d’un dataset de 1To s’effectue avec la commande suivante :
sudo zfs create -V 1T data/iscsi-share
On partage ensuite ce dataset avec la commande :
sudo zfs set shareiscsi=on data/iscsi-share
Il faut bien avoir en tête que si ZFS ne connaît pas de limitations pratiques pour la taille des pool et des datasets, ce n’est pas le cas des autres systèmes d’exploitation. Aussi, dans la pratique, il est inutile d’exporter un dataset de plus de 2To car il ne pourra pas être exploité par d’autres systèmes que Solaris.
Pour valider que le partage est bien actif et connaître son identifiant de partage, tapez la commande :
sudo itadm list-target
Figure 32: création d’un partage ISCSI
Si votre baie dispose de plusieurs cartes réseau, le partage est disponible depuis chacune des adresses IP. Vous pouvez équilibrer la charge entre les deux cartes réseaux configurant vos serveurs pour qu’ils s’adressent à la baie au travers des multiples cartes.
Rendez-vous demain pour la dernière partie consacrée à la solution de stockage Nexenta – Configurer Vmware ESXi pour utiliser NexentaCore.