Comment configurer le serveur ISCSI (cible) et le client (initiateur) sur Debian 9

Comment configurer le serveur ISCSI (cible) et le client (initiateur) sur Debian 9

Dans le monde du centre de données, une grande capacité Réseaux de zone de stockage (San) sont devenus la norme minimale. Alors que les fournisseurs de cloud et la virtualisation continuent également à avoir des impacts massifs dans le monde de la technologie, le besoin de plus d'espace de stockage SAN est devenu évident.

La plupart du matériel SAN est composé d'un contrôleur minimaliste (ou d'un ensemble de contrôleurs) et d'une grande collection de disques de haute capacité tous configurés pour prendre en charge des quantités élevées de disponibilité et d'intégrité des données.

Beaucoup de ces produits spécialisés sont fabriqués par des vendeurs de grands noms tels que NetApp, Dell EquoGic, HP Storageworks ou EMC et ont des étiquettes de prix attachées que seules les plus grandes entreprises peuvent se permettre.

De façon réaliste, ces appareils ne sont rien d'autre que de grands réseaux de disques durs avec un contrôleur fournissant l'espace de ces disques durs aux clients en réseau. De nombreuses technologies ont existé au fil des ans qui fournissent cette fonctionnalité ou des fonctionnalités similaires à un prix beaucoup moins cher.

Le Debian GNU / Linux La distribution fournit des packages qui permettent à un système Debian de servir l'objectif d'un dispositif de stockage SAN de niveau d'entreprise à une simple fraction du coût! Cela permet à tout le monde des utilisateurs de base ou des grands centres de données d'obtenir les avantages du stockage SAN sans avoir à dépenser une fortune pour une solution propriétaire du fournisseur.

Cet article examinera comment un système Debian 9 (Stretch) peut être configuré pour servir l'espace disque à l'aide d'un système appelé Interface de systèmes informatiques Internet ou iscsi pour faire court. iscsi est un protocole Internet (IP) Standard basé sur la fourniture de stockage de blocs (disque dur) à d'autres systèmes. ISCSI travaille dans un modèle de serveur client mais utilise différents noms pour distinguer le client du serveur.

Dans la terminologie ISCSI, le serveur qui sert le 'espace disque'est connu comme un iscsi 'Cible'Et le système qui demande / utilise l'espace disque est connu sous le nom d'ISCSI'Initiateur'. Donc, en d'autres termes, un 'Initiateur«Demande le stockage de blocs à partir d'un»Cible'.

Configuration de l'environnement

Ce guide parcourra une configuration de base impliquant un simple iscsi serveur (cible) et client (initiateur) à la fois en cours d'exécution Debian 9 (Stretch).

Target Debian Iscsi: 192.168.56.101/24 Stockage: Contient deux disques durs supplémentaires à utiliser comme stockage dans la configuration ISCSI Initiateur Debian Iscsi: 192.168.56.102/24 

Le réseau peut être considéré comme ci-dessous:

Diagramme du réseau Debian Iscsi

Configuration cible Debian Iscsi

Dans le iscsi monde, le cible est considéré comme l'hôte qui contient les périphériques de stockage à utiliser par le initiateur.

Dans cet article, le serveur avec l'IP de 192.168.56.101 est utilisé comme le cible. Toutes les configurations seront effectuées sur cet hôte pour cette section.

La première étape est l'installation des packages nécessaires pour permettre au système Debian de servir cibles ISCSI. Ce progiciel est connu sous le nom Cadre cible (Tgt).

L'autre élément utilisé pour ce guide est le Gestion du volume logique (LVM) outils comme Volumes logiques (LVS) sera utilisé comme support de stockage pour la cible ISCSI.

Les deux packages peuvent être installés avec les commandes suivantes.

# mise à jour apt-get # apt-get install tgt lvm2 

Une fois les packages installés, LVM sera utilisé pour préparer les disques durs sur le cible pour une utilisation comme un iscsi lun. La première commande est utilisée pour préparer les disques à inclure dans une configuration LVM. Assurez-vous de modifier la commande selon les besoins pour différents scénarios!

# LSBLK (uniquement utilisé pour confirmer les disques à utiliser dans la configuration LVM) # pvcreate / dev / sd b, c 
Confirmer et créer une configuration LVM

Une fois les disques préparés avec ce qui précède »pvcreate'Commande, il est temps de créer un groupe de volume de ces disques particuliers. Le groupe de volume est requis pour créer le Volumes logiques qui agira comme le iscsi stockage plus tard.

Pour créer un groupe de volumes, le 'vgcreate'La commande est nécessaire.

# vgcreate tecmint_iscsi / dev / sd b, c # vgs (nécessaire pour confirmer la création du groupe de volumes) 
Créer un groupe de volumes dans Debian

Remarquez dans la sortie ci-dessus que le système répond que le Groupe de volume a été créé, mais c'est toujours une bonne idée de vérifier comme vu ci-dessus avec le 'vgs' commande. La capacité de cela groupe de volume est seulement 9.99 Go. Bien qu'il s'agisse d'un groupe de volumes particulièrement petit, le processus serait le même pour les disques de plus grande capacité!

L'étape suivante est la création du volume logique qui agira comme le disque du iscsi client (initiateur). Pour cet exemple, l'intégralité du groupe de volume sera utilisé mais n'est pas nécessaire.

Le volume logique sera créé à l'aide du 'lvreate' commande.

# lvcreate -l 100% gratuit tecmint_lun1 tecmint_iscsi # lvs (simplement utilisé pour confirmer la création du volume logique) 
Créer un volume logique dans Debian

Ce qui précède 'lvreate`` La commande peut être un peu déroutante à première vue, mais la rupture est en tant que telle:

  • Lvcreate - Commande utilisée pour créer le volume logique.
  • -L 100% gratuit - Créez le volume logique en utilisant tout l'espace libre du groupe de volumes.
  • -n tecmint_lun1 - Le nom du volume logique à créer.
  • Tecmint_iscsi - Le nom du groupe de volumes pour créer le volume logique à l'intérieur.

Une fois la volume logique a été créé, il est temps de créer le réel Secouer (Numéro d'unité logique). Le Secouer sera le périphérique de stockage que le initiateur se connectera et l'utilisera plus tard.

Créer un Secouer est très simple et ne nécessite que quelques étapes. La première étape sera la création du fichier de configuration. Ce fichier résidera dans le '/ etc / tgt / confre.d«Répertoire et pour cet article, il sera appelé»Tecmint_iscsi.confli'.

Pour créer ce fichier, utilisez un éditeur de texte.

# nano / etc / tgt / confue.d / tecmint_iscsi.confli 

Dans ce fichier, toutes les informations de configuration nécessaires pour cela Secouer sera configuré. Il existe de nombreuses options qui peuvent être placées dans ce fichier mais pour l'instant un base Secouer avec mutual Protocole d'authentification de la poignée de main défier (TYPE) sera configuré.

La définition du Lun existera entre deux 'cible'déclarations. Pour plus de paramètres qui peuvent aller dans l'instruction cible, passez en revue la page manuelle du 'cibles.confli«File en émettant»cibles de l'homme 5.confli'.

 # Fourni périphérique en tant qu'ISCSI cible Backing-Store / Dev / Mapper / Tecmint_iscsi-Tecmint_lun1 Initiateur-Address 192.168.56.102 INCOMINGUSER Tecmint-ISSI-USER Mot de passe de mot de passe Debian-Issi-Target-Target SecretPass  

Il se passe beaucoup de choses ci-dessus. Une explication rapide peut être utile à la plupart.

  • Le d'abord la ligne commence le particulier iscsi lun configuration. Dans ce cas, le Secouer étiqueté 'iqn.2018-02.Tecmint.com: Lun1'. Le 'iqn'La partie indique que ce sera un nom qualifié ISCSI. Le '2018-02«est une combinaison de dattes choisie arbitrairement. 'Tecmint.com'est le domaine que appartient ce lun particulier. Finalement, le 'lun1'est utilisé comme nom pour cette cible particulière.
  • Le deuxième La ligne ci-dessus illustre un commentaire. Les commentaires peuvent exister dans les fichiers de configuration cible et doivent être préfacés avec un '#' symbole.
  • Le troisième La ligne est l'endroit où l'espace de stockage réel qui sera utilisé par l'initiateur existe. Dans ce cas, le support de stockage sera le volume logique qui a été créé plus tôt dans le guide.
  • Le quatrième La ligne est l'adresse IP attendue de l'initiateur. Bien que ce ne soit pas un élément de configuration requis, cela peut aider à augmenter la sécurité.
  • Le cinquième Ligne est le nom d'utilisateur / mot de passe entrant. Tout comme l'adresse initiatrice ci-dessus, ce paramètre n'est pas nécessaire non plus mais peut aider à sécuriser le LUN. Étant donné que ce guide couvre également ISCSI Mutual Chap, ce paramètre est requis. Cette ligne indique le nom d'utilisateur et le mot de passe que la cible attendra de l'initiateur afin de se connecter à ce LUN.
  • Le sixième La ligne est le nom d'utilisateur / mot de passe que la cible fournira à l'initiateur pour permettre à l'authentification mutuelle du chap. Normalement, ce paramètre n'est pas requis mais cet article couvre l'authentification mutuelle du chapeau donc ce paramètre est requis.
  • La ligne finale est l'instruction de clôture de la définition cible. Faites attention à la barre de clôture devant la cible du mot-clé!

Une fois que les configurations appropriées pour le LUN ont été saisies, enregistrez les modifications et quittez l'éditeur de texte. Si vous utilisez nano, frapper ctrl + o Pour sauver puis frapper ctrl + x sortir nano.

Créer un fichier de configuration LUN

Une fois le fichier de configuration créé, le tgt Le service doit être redémarré ainsi tgt est conscient du nouveau cibles et la configuration associée.

Cela peut être fait avec l'une des commandes suivantes et dépend du système INIT utilisé.

# Service TGT Restart (pour SYSV INIT Systems) # SystemCTL Redémarrer TGT (pour SystemD Init Systems) 

Une fois tgt a été redémarré, il est important de vérifier cible iscsi est mis à disposition en fonction du fichier de configuration créé.

Cela peut être accompli avec le 'tgtadm' commande.

# TGTADM - Mode Target --op Show (cela affichera toutes les cibles) 
Afficher toutes les cibles ISCSI

Cela conclut la configuration du cible. La section suivante fonctionnera à travers la configuration du initiateur.

Configuration de l'initiateur debian ISCSI

L'étape suivante dans l'utilisation de la configuration précédemment configurée cible iscsi est la configuration du Initiateur ISCSI.

Un autre système Debian 9 sera utilisé comme initiateur Dans cet article, mais tout système qui peut utiliser le protocole ISCSI peut se connecter à la cible précédemment configurée; Cela pourrait inclure des hyperviseurs comme Xenserver / Esxi ou d'autres distributions comme Red Hat, Debian ou Ubuntu.

La première étape de ce processus pour cela Initiateur debian est l'installation des packages appropriés pour iscsi.

# mise à jour apt-get # apt-get install open-issi 

Une fois qu'APT a terminé la configuration du Iscsi ouvert packages, le Initiateur ISCSI La configuration peut commencer. La première étape sera de communiquer avec le cible Pour obtenir les informations de configuration initiales pour la cible préparée.

# ISCSIADM -M Discovery -T ST -P 192.168.56.101 

Lorsque cette commande s'exécutera, elle répondra avec le nom du secouer configuré plus tôt pour cet hôte particulier. La commande ci-dessus générera également deux fichiers pour les informations LUN nouvellement découvertes.

Connecter le serveur cible ISCSI

Maintenant, le fichier créé pour ce nœud devra avoir le TYPE Informations configurées pour cela cible iscsi être réellement accessible par le initiateur.

Techniquement, ces informations pourraient être configurées pour l'ensemble du système dans son ensemble, mais en cas de connexion Couches Avec des informations d'identification différentes, placer ces informations d'identification dans le fichier de configuration de nœud spécifique peut atténuer les problèmes.

Le fichier de configuration du nœud existera dans le répertoire '/ etc / iscsi / nœuds /'Et aura un répertoire par LUN disponible. Dans le cas de cet article (notez que les chemins changeront si les noms / adresses IP sont modifiés).

# / etc / iscsi / nœuds / iqn.2018-02.Tecmint.com \: lun1 / 192.168.56.101 \, 3260 \, 1 / par défaut 

Pour travailler avec ce fichier, tout éditeur de texte peut être utilisé.

# nano / etc / iscsi / nœuds / iqn.2018-02.Tecmint.com \: lun1 / 192.168.56.101 \, 3260 \, 1 / par défaut 

Dans ce fichier, il y aura plusieurs options déjà configurées pour le respect cible qui ont été déterminés pendant le 'iscsiadm'La commande s'exécute plus tôt.

Depuis ce Debian particulier cible / initiateur La configuration utilise Mutual TYPE, Certaines autres options doivent être modifiées et ajoutées à ce fichier, puis une connexion à la cible iscsi interprété.

Les modifications apportées à ce fichier sont:

nœud.session.authentification.nœud d'authentification AuthMethod = Chap #Enable Chap.session.authentification.nom d'utilisateur = Tecmint-Issi-User #Target to Initiateur Authentication Node.session.authentification.mot de passe = mot de passe #target au nœud d'authentification de l'initiateur.session.authentification.username_in = Debian-Issi-Target #Initiator pour cibler le nœud d'authentification.session.authentification.Password_in = SecretPass #Initiateur pour cibler l'authentification 

Les options ci-dessus permettra ceci cible pour s'authentifier avec le initiateur ainsi que permettre le initiateur pour s'authentifier avec le cible.

Il existe une autre option dans ce fichier particulier qui peut devoir être modifié en fonction des préférences de l'administrateur et c'est le 'nœud.Commencez'paramètre.

Si vous suivez ce guide, le 'nœud.Commencez'L'option sera définie sur'manuel' à ce point. Cela peut ne pas être souhaité. Si l'administrateur souhaite avoir le cible iscsi connecté lorsque le système démarre, changez 'manuel' pour 'automatique' en tant que tel:

nœud.startup = automatique 

Une fois les modifications ci-dessus apportées, enregistrez le fichier et sortez. À ce stade Initiateur à ISCSI ouvert Le service doit être redémarré afin de lire ces nouvelles modifications et de se connecter à la cible iscsi.

Cela peut être accompli avec l'une des commandes suivantes en fonction du système INIT utilisé.

# Service Open-ISCSI Redémarrage (pour SYSV INIT Systems) # SystemCTL Restart Open-ISCSI (pour SystemD Init Systems) 
Redémarrer l'initiateur ISCSI ouvert

Remarquez dans la boîte verte au-dessus que le Initiateur ISCSI a pu se connecter au cible. Pour confirmer davantage que le cible iscsi est en effet disponible pour le initiateur, Nous pouvons vérifier le système pour des lecteurs de disque supplémentaires disponibles en utilisant le 'lsblk«Commande et vérification de la sortie pour des disques supplémentaires.

# lsblk 
Vérifier le disque cible ISCSI

L'autre commande qui peut être utilisée sur le initiateur pour confirmer une connexion au cible est 'iscsiadm' en tant que tel:

# Session ISCSIADM -M 
Confirmer la connexion à la cible ISCSI

L'endroit final pour confirmer une connexion serait sur le cible lui-même en utilisant le 'tgtadm«Commande pour répertorier toutes les connexions ISCSI.

# tgtadm - mode Conn --op show --tid 1 
Liste des connexions ISCSI

À partir de ce moment, le nouvellement attaché iscsi Le dispositif peut être utilisé similaire à tout disque normalement attaché! Le partitionnement, la création du système de fichiers, le montage et / ou le montage persistant peuvent tous être gérés normalement.

Une grande prudence à être consciente avec iscsi les appareils sont si le cible iscsi contient des systèmes de fichiers importants qui sont nécessaires initiateur Démarrage, assurez-vous d'utiliser le '_netdev'Entrée dans le'/ etc / fstab'Fichier pour s'assurer que le périphérique ISCSI est connecté avant que le système ne continue de démarrer!