Table des matières
Exploration de iSCSI sur PC BSD et FreeNAS
Une documentation très concise du handbook FreeBSD est disponible ici.
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-iscsi.html
Configuration du serveur sur FreeNAS.
En terminologie iscsi on nomme l'espace de stockage, TARGET (une cible), les utilisateurs de cet espace sont les INITIATORS. On peut soit utiliser le wizard plutôt bien fait pour renseigner les données nécessaires aux initiators pour se connecter dessus. On peut aussi se fier à des tutoriaux sur YouTUBE.
Notre cas d'étude
Configuration générale de la cible
Nom | iqn.2015-06.fr.acc, pas d'authentification |
---|---|
Portail | 1 (écoute 192.168.10.4:3260) |
Initiateurs autorisés
ID du groupe | 2 tous les initiateurs, tous les réseaux |
---|---|
accès autorisé | ID de groupe 1 utilisateur : dc |
Information est optionnelle
Cibles | target1, freenas0 |
---|---|
nasdcatarget, freenas1 |
Configuration de l'initiateur (côté client)
La configuration se trouve dans le fichier /etc/iscsi.conf
# /etc/iscsi.conf # TargetName=iqn.2015-06.fr.acc:nasdcatarget # TargetAddress=192.168.10.4:3260,2 # nas_DCA{ targetaddress = freenas.acc.fr targetname = iqn.2015-06.fr.acc:nasdcatarget }
Cette configuration permet de monter le device iscsi au démarrage. Ensuite on inclura le montage dans la table fstab.
Outil de contrôle et de connexion pour l'initiateur
#sudo iscsictl -L #liste les cible possibles et celles qui sont ajoutées avec leur virtual device associé.
[dc@vertigo] ~% sudo iscsictl -L Target name Target portal State iqn.2015-06.fr.acc:nasdcatarget freenas.acc.fr Connected: da1 # sudo iscsictl -An nas_DCA # ajoute et connecte la cible # sudo iscsictl -Aa #ajoute et connecte toutes les sessions mentionnées dans le fichier de configuration /etc/iscsi.conf # sudo iscsictl -Rn nas_DCA # retire la session
Sur la machine de l'initiator
Montage du périphérique iSCSI
Dans le gestionnaire de fenêtre de PCBSD un utilitaire permet de monter ou de démonter des périphériques amovibles. Il s'agit d'une applet située dans la barre de tâches. Une liste des périphériques amovibles est affichée et des boutons permettent de monter/démonter les volumes et de les monter dès qu'ils sont branchés à l'ordinateur.
Labelisation d'un périphérique de stockage avec un nom permanent
Il est possible de mettre un nom logique sur un périphérique de stockage ayant un special file dans le système de fichier devfs. Par exemple soit un système de fichier créé de type UFS pour le special file /dev/da3, le nom donné sera « home » qui sera permanent. Le nom « home » apparaitra le devfs comme « /dev/ufs/home ».
Pour réaliser l'opération il faut lancer la commande.
tunefs -L home /dev/da3
Cas d'utilisation
Au démarrage du système, les options suivantes sont lues dans le fichier de configuration /etc/rc.conf :
iscsid_enable="YES" # activation du daemon iscsid iscsictl_enable="YES" # activation de l'outil de contrôle du daemon iscsictl_flags="-Aa" # l'option -Aa est passée à iscsictl c'est à dire toutes les cibles contenues dans iscsi.conf sont ajoutées
L'applet peut désormais proposer “nas” comme périphérique amovible à monter. Cette applet permet aussi de naviguer dans l'espace de stockage et donner son utilisation.
## /etc/iscsi.conf # TargetName=iqn.2015-06.fr.acc:nasdcatarget # TargetAddress=192.168.10.4:3260,2 # nas_DCA{ targetaddress = freenas.acc.fr targetname = iqn.2015-06.fr.acc:nasdcatarget }
Dans notre cas nas est un pool ZFS créé avec la commande
# zpool create nas /dev/da1
la commande
zpool status
retournera :
[dc@vertigo] ~% zpool status pool: nas state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM nas ONLINE 0 0 0 da1 ONLINE 0 0 0 errors: No known data errors
La commande mount retournera :
[dc@vertigo] /etc% mount ... nas on /media/nas (zfs, local, nfsv4acls) ...
Conclusion
à la fin de cette exploration, il est possible d'exploiter un espace de stockage réservé sur un NAS. On doit créer un répertoire avec les bonnes permissions afin de permettre à ses propriétaires de l'utiliser en lecture écriture. Les ACLs sont utilisables.