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.

https://www.youtube.com/watch?v=p97Yg7u8fSk

https://www.youtube.com/watch?v=nhME_CbZrQs

Notre cas d'étude

Configuration générale de la cible

Nomiqn.2015-06.fr.acc, pas d'authentification
Portail1 (écoute 192.168.10.4:3260)

Initiateurs autorisés

ID du groupe2 tous les initiateurs, tous les réseaux
accès autoriséID de groupe 1 utilisateur : dc

Information est optionnelle

Ciblestarget1, 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
Nous constatons dans le listage des sessions iscsi que le nom du périphérique (vdev) apparaît. Dans ce cas nous savons que /dev/da1 (disque entier) est le special file qui va servir lors de la commande de création du système de fichier (formatage pour les utilisateurs de MS-DOS). Une fois créé le système de fichier pourra être monté. Cependant comme le special file peut varier selon l'ordre de branchement des périphériques amovibles, il est nécessaire de mettre un nom logique qui sera mis en relation avec le special file actuel lors de la création du devfs au démarrage du système. La création de ce nom logique est la labellisation du périphérique de stockage.
Attention la labellisation du special file n'est pas nécessaire dans le cas où le système de fichier est de type ZFS.

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

https://www.freebsd.org/doc/handbook/geom-glabel.html

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)

...
dans le cas de zfs il n'est pas nécessaire d'utiliser la commande tunefs pour labeller le périphérique da1 en nas. Pour zfs, da1 est un vdev (virtual device) pour les autres système de fichiers c'est un special file.
Un vdev est un périphérique de stockage qui peut être soit un disque complet, soit une partition, soit un fichier, soit une entité RAID, soit un miroir …

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.

user/domenge/freenas/exploration_de_iscsi.txt · Dernière modification: 2020/12/03 09:00 par domenge
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0