Configurer le serveur de stockage ISCSI sur Centos 8

Configurer le serveur de stockage ISCSI sur Centos 8
Dans cet article, je vais vous montrer comment configurer le serveur de stockage ISCSI sur Centos 8. Alors, commençons.

Bases d'Iscsi:

Le serveur de stockage ISCSI est utilisé pour partager des périphériques de bloc tels que les partitions HDD / SSD, ou les partitions LVM, ou bloquer les fichiers sur le réseau. Les clients ISCSI peuvent utiliser ces partages sur le réseau comme tout disque dur ou SSD ordinaire. Le client ISCSI peut formater ces disques, les monter et stocker des fichiers et des répertoires comme d'habitude.

Fig 1: Architecture ISCSI Server-Client

Chaque client ISCSI a un ID d'initiateur qui est utilisé pour se connecter aux cibles du serveur.

Les cibles sont des partages sur le serveur ISCSI. Chaque cible se compose d'un nom unique (IQN), le chemin du dispositif de bloc (i.e. partition de disque ou fichier de blocs), l'ID initiateur qui peut se connecter à cette cible et un système d'authentification basé sur le nom d'utilisateur facultatif.

Sur la figure 1, le serveur de stockage ISCSI permet à 3 initiateurs (3 clients ISCSI) de se connecter à 4 cibles. Initiator01 peut se connecter à Target01 et Target02, Initiator02 peut se connecter à Target03, et Initiator03 peut se connecter à Target04.

Conventions de dénomination cible ISCSI et initiateur:

Le nom cible ISCSI et le nom de l'initiateur doivent être uniques.

Le format de dénomination cible est:

iqn.Yyyy-mm.nom de domaine inversé: nom cible

Exemple:

iqn.2020-03.com.Linuxhint: www, iqn.2020-03.com.Linuxhint: journaux,
iqn.2020-03.com.Linuxhint: utilisateur-bob etc.

Le format de dénomination de l'initiateur est:

iqn.Yyyy-mm.nom de domaine inversé: nom d'initiateur

Exemple:

iqn.2020-03.com.Linuxhint: Initiator01, IQN.2020-03.com.Linuxhint: Initiator02,
iqn.2020-03.com.Linuxhint: initiator03 etc.

Topologie du réseau:

Fig 2: Topologie du réseau utilisé dans cet article du serveur ISCSI

La topologie du réseau utilisé dans cet article est donnée sur la figure 2. Ici, je vais configurer une machine CentOS 8 en tant que serveur ISCSI. Le serveur ISCSI a une adresse IP statique 192.168.20.197. Le client ISCSI est également sur le réseau 192.168.20.0/24. Ainsi, il peut accéder au serveur ISCSI.

Configuration de l'adresse IP statique:

Vous devez configurer une adresse IP statique sur votre machine CentOS 8 que vous configurerez en tant que serveur ISCSI. Pour configurer une adresse IP statique sur CentOS 8, consultez mon article Configuration de la propriété intellectuelle statique sur CentOS 8.

La machine CentOS 8 que je configurerai en tant que serveur ISCSI dans cet article a l'adresse IP statique 192.168.20.197. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

$ ip a

Installation des outils du serveur ISCSI:

Tout d'abord, mettez à jour le cache du référentiel de package DNF comme suit:

$ sudo dnf makecache

Vous devez avoir TargetCli Outil installé sur la machine CentOS 8 que vous souhaitez configurer en tant que serveur ISCSI.

À installer TargetCli, Exécutez la commande suivante:

$ sudo dnf installer ciblecli

Pour confirmer l'installation, appuyez sur Y Et puis appuyez sur .

TargetCli devrait être installé.

Maintenant, pour tester si le TargetCli L'outil fonctionne, démarrez TargetCli comme suit:

$ sudo Targetcli

TargetCli devrait commencer.

TargetCli fonctionne parfaitement.

> LS

Maintenant, sortez de l'outil TargetCli.

> sortir

Maintenant, commencez cible Service comme suit:

$ sudo systemctl start cible

Maintenant, ajoutez le service cible au démarrage du système comme suit:

$ sudo systemctl Activer la cible

Partage des blocs de fichiers:

Vous pouvez partager des blocs de fichiers comme périphériques de stockage via ISCSI.

Tout d'abord, créez un nouveau répertoire où vous souhaitez conserver tous les blocs de fichiers comme suit:

$ sudo mkdir -pv / iscsi / blocs

Maintenant, démarrez TargetCli comme suit:

$ sudo Targetcli

Maintenant, créez un nouveau 1 Go FileIo Backstore web1 Sur le chemin / iscsi / blocks / web1.IMG comme suit:

> / backstores / fileio Créer web1 / iscsi / blocks / web1.IMG 1G

Le bloc de fichiers web1 1 Go doit être créé dans le chemin / iscsi / blocks / web1.IMG

> ls /

Maintenant, créez une nouvelle cible ISCSI iqn.2020-03.com.Linuxhint: Web comme suit:

> / ISCSI Créer IQN.2020-03.com.Linuxhint: Web

La cible ISCSI iqn.2020-03.com.Linuxhint: Web devrait être créé.

> ls /

Maintenant, accédez au TPG de la cible (groupe de portail cible) comme suit:

> / ISCSI / IQN.2020-03.com.Linuxhint: Web / TPG1 /

C'est à quoi le TPG de la cible devrait ressembler.

> LS

Maintenant, créez un LUN à partir du web1 Fileio Backstore que vous avez créé plus tôt.

> LUNS / Create / Backstores / FileIo / Web1

Lun 0 doit être créé.

> LS

Maintenant, créez un ACL pour l'initiateur iqn.2020-03.com.Linuxhint: init1 afin que le client ISCSI puisse accéder aux LUN dans cette cible.

> ACLS / Créer IQN.2020-03.com.Linuxhint: init1

Un ACL doit être créé et LUN 0 doit être mappé.

> LS

Maintenant, enregistrez la configuration.

> / Saveconfig

Maintenant, sortez de l'interface TargetCli.

> sortir

Partage des partitions HDD / SSD ou HDD / SSD:

Vous pouvez également partager l'ensemble du disque dur / SSD ou une ou plusieurs partitions HDD / SSD via ISCSI. Si vous partagez l'ensemble du disque dur / SSD, les partitions de ce disque dur / SSD seront également accessibles à partir de l'initiateur ou du client ISCSI.

Tout d'abord, trouvez le nom du disque dur / SSD ou le nom de partition HDD / SSD que vous souhaitez partager avec la commande suivante:

$ sudo lsblk

Ici, nvme0n2 est le nom SSD et nvme0n2p1, nvme0n2p2 et nvme0n2p3 sont les partitions de ce SSD.

Maintenant, démarrez TargetCli comme suit:

$ sudo Targetcli

Maintenant, créez un blocage de bloc data1 Utilisation de la partition HDD / SSD ou HDD / SSD comme suit.

> / backstores / bloc Créer des données1 / dev / nvme0n2p1

NOTE: Ici, j'ai utilisé la partition SSD / dev / nvme0n2p1.

Le data1 Block Fatstore doit être créé.

> ls /

Maintenant, créez une nouvelle cible ISCSI iqn.2020-03.com.Linuxhint: données comme suit:

> / iscsi / création iqn.2020-03.com.Linuxhint: données

Une nouvelle cible ISCSI doit être créée.

> ls /

Maintenant, accédez au TPG de la cible comme suit:

> / ISCSI / IQN.2020-03.com.LinuxHint: données / tpg1 /

Le TPG de la cible doit ressembler à ce qui suit.

> LS

Maintenant, créez un nouveau Lun à partir du data1 Bloquer la filet en forme que vous avez créé plus tôt.

> LUNS / Create / Backstores / Block / Data1

Un nouveau Lun devrait être créé.

> LS

Maintenant, créez un ACL pour l'initiateur iqn.2020-03.com.Linuxhint: init1 afin que le client ISCSI puisse accéder aux LUN dans cette cible.

> ACLS / Créer IQN.2020-03.com.Linuxhint: init1

Un ACL doit être créé et LUN 0 doit être mappé.

> LS

Maintenant, enregistrez la configuration.

> / Saveconfig

Maintenant, sortez de l'interface TargetCli.

> sortir

Configuration du pare-feu:

Maintenant, permettez l'accès au port ISCSI 3260 via le pare-feu comme suit:

$ sudo Firewall-CMD --Add-Service = ISCSI-Target - Permanent

Pour que les modifications prennent effet, exécutez la commande suivante:

$ sudo Firewall-CMD - Reload

Installation des outils clients ISCSI:

Sur le client ISCSI, vous devez avoir ISCSI-Initiateur-Utils Package installé afin d'accéder aux périphériques de stockage ISCSI partagés.

Tout d'abord, mettez à jour le cache du référentiel de package DNF comme suit:

$ sudo dnf makecache

Maintenant, installez ISCSI-Initiateur-Utils package sur la machine client comme suit:

$ sudo dnf install iscsi-initiator-utils

Pour confirmer l'installation, appuyez sur Y Et puis appuyez sur .

Les utilitaires des clients ISCSI doivent être installés.

Maintenant, ouvrez le / etc / iscsi / initatorname.iscsi Fichier de configuration comme suit:

$ sudo vi / etc / iscsi / initatorname.iscsi

Maintenant, définissez votre nom d'initiateur sur InitiatorName et enregistrer le fichier.

Maintenant, évaluez les cibles comme suit:

$ sudo iscsiadm -m découverte -t ​​sendtargets -p 192.168.20.197

Maintenant, vous pouvez vous connecter aux cibles comme suit:

$ sudo iscsiadm -m nœud - Login

Les périphériques de stockage ISCSI doivent être joints à votre client comme vous pouvez le voir dans la capture d'écran ci-dessous.

$ sudo lsblk

Maintenant, commencez le iscsi et iscsid Services comme suit:

$ sudo systemctl start iscsi
$ sudo systemctl start iscsid

Le iscsi et iscsid Les services devraient être en cours d'exécution.

$ sudo systemctl status iscsi iscsid

Maintenant, ajoutez le iscsi et iscsid Service au démarrage du système comme suit:

$ sudo systemctl activer iScsi
$ sudo systemctl activer iScsid

Disque ISCSI de montage:

Vous pouvez monter en permanence les disques ISCSI sur le client ISCSI en utilisant le / etc / fstab déposer.

Tout d'abord, formatez le disque ISCSI s'il n'est pas déjà formaté.

$ sudo mkfs.Ext4 -L Data / Dev / SDA

Maintenant, créez un répertoire (point de montage) pour le disque ISCSI comme suit:

$ sudo mkdir / data

Maintenant, trouvez le UUID du disque ISCSI que vous souhaitez monter comme suit:

$ sudo blkid

L'Uuid dans mon cas est C1CBFA44-A8A9-4343-A88E-769B63A6E006. Ce sera différent pour vous. Alors, assurez-vous de le remplacer par le vôtre dans le / etc / fstab déposer.

Maintenant, ouvrez le / etc / fstab Fichier comme suit:

$ sudo vi / etc / fstab

Maintenant, ajoutez la ligne suivante au / etc / fstab déposer.

UUID = C1CBFA44-A8A9-4343-A88E-769B63A6E006
/ Data ext4 par défaut, _netdev 0 0

Assurez-vous d'ajouter le _netdev option dans le / etc / fstab fichier lors du montage des disques ISCSI. Sinon, votre client ISCSI CENTOS 8 ne peut pas démarrer.

Maintenant, vous pouvez monter le disque ISCSI pour la première fois comme suit:

$ Sudo Mount / Data

Comme vous pouvez le voir, le disque ISCSI est monté correctement.

C'est donc ainsi que vous configurez le serveur de stockage ISCSI et le client sur CentOS 8. Merci d'avoir lu cet article.