Opret centraliseret sikker opbevaring ved hjælp af iSCSI Target/Initiator på RHEL/CentOS 7 - Del 12


iSCSI er en blokniveauprotokol til styring af lagerenheder over TCP/IP-netværk, specielt over lange afstande. iSCSI-mål er en ekstern harddisk, der præsenteres fra et mål iSCSI-server (eller). På den anden side kaldes iSCSI-klienten Initiator og får adgang til det lager, der deles i Target-maskinen.

Følgende maskiner er blevet brugt i denne artikel:

Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.29
Ports Used : TCP 860, 3260
Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.30
Ports Used : TCP 3260

Trin 1: Installation af pakker på iSCSI Target

For at installere de pakker, der er nødvendige for målet (vi behandler klienten senere), skal du gøre:

# yum install targetcli -y

Når installationen er afsluttet, starter vi og aktiverer tjenesten som følger:

# systemctl start target
# systemctl enable target

Endelig er vi nødt til at tillade tjenesten i firewalld:

# firewall-cmd --add-service=iscsi-target
# firewall-cmd --add-service=iscsi-target --permanent

Og sidst men ikke mindst må vi ikke glemme at tillade iSCSI-målopdagelsen:

# firewall-cmd --add-port=860/tcp
# firewall-cmd --add-port=860/tcp --permanent
# firewall-cmd --reload

Trin 2: Definition af LUN'er i Target Server

Inden vi fortsætter med at definere LUN'er i målet, er vi nødt til at oprette to logiske diskenheder som forklaret i del 6 i RHCSA-serien (“Konfigurering af systemlagring”).

Denne gang navngiver vi dem vol_projects og vol_backups og placerer dem i en volumengruppe kaldet vg00 , som vist i fig. 1. Du er velkommen til vælg den plads, der er tildelt hver LV:

Efter oprettelse af LV'er er vi klar til at definere LUN'erne i målet for at gøre dem tilgængelige for klientmaskinen.

Som vist i fig. 2 åbner vi en targetcli -skal og udsteder følgende kommandoer, som vil skabe to blokbackstores (lokale lagringsressourcer, der repræsenterer den LUN, initiativtageren rent faktisk vil bruge) og en Iscsi-kvalificeret Navn (IQN), en metode til adressering af målserveren.

Se side 32 i RFC 3720 for flere detaljer om IQN-strukturen. Især teksten efter kolontegnet (: tgt1) specificerer navnet på målet, mens teksten før (server :) angiver målnavnet på målet inde i domæne.

# targetcli
# cd backstores
# cd block
# create server.backups /dev/vg00/vol_backups
# create server.projects /dev/vg00/vol_projects
# cd /iscsi
# create iqn.2016-02.com.tecmint.server:tgt1

Med ovenstående trin blev der oprettet en ny TPG (Target Portal Group) sammen med standardportalen (et par bestående af en IP-adresse og en port, som er den måde, initiativtagerne kan nå målet på), der lytter på port 3260 af alle IP-adresser.

Hvis du vil binde din portal til en bestemt IP (f.eks. Målets hoved-IP), skal du slette standardportalen og oprette en ny som følger (ellers skal du springe over følgende targetcli-kommandoer. Bemærk at vi for enkelheds skyld har sprunget dem over som godt):

# cd /iscsi/iqn.2016-02.com.tecmint.server:tgt1/tpg1/portals
# delete 0.0.0.0 3260
# create 192.168.0.29 3260

Nu er vi klar til at fortsætte med oprettelsen af LUN'er. Bemærk, at vi bruger de backstores, vi tidligere har oprettet ( server.backups og server.projects ). Denne proces er illustreret i fig. 3:

# cd iqn.2016-02.com.tecmint.server:tgt1/tpg1/luns
# create /backstores/block/server.backups
# create /backstores/block/server.projects

Den sidste del i målkonfigurationen består i at oprette en adgangskontrolliste for at begrænse adgangen pr. Initiator. Da vores klientmaskine hedder "klient", tilføjer vi denne tekst til IQN. Se figur 4 for detaljer:

# cd ../acls
# create iqn.2016-02.com.tecmint.server:client

På dette tidspunkt kan vi targetcli-skalen til at vise alle konfigurerede ressourcer, som vi kan se i fig. 5:

# targetcli
# cd /
# ls

For at afslutte targetcli-skalen skal du blot skrive exit og trykke på Enter. Konfigurationen gemmes automatisk i /etc/target/saveconfig.json.

Som du kan se i fig. 5 ovenfor, har vi en portal, der lytter på port 3260 af alle IP-adresser som forventet. Vi kan verificere det ved hjælp af netstat-kommandoen (se fig. 6):

# netstat -npltu | grep 3260

Dette afslutter målkonfigurationen. Du er velkommen til at genstarte systemet og kontrollere, at alle indstillinger overlever en genstart. Hvis ikke, skal du sørge for at åbne de nødvendige porte i firewallkonfigurationen og starte måltjenesten ved opstart. Vi er nu klar til at konfigurere initiatoren og oprette forbindelse til klienten.

Trin 3: Opsætning af Client Initiator

I klienten bliver vi nødt til at installere iscsi-initiator-utils-pakken, som giver serverdæmonen til iSCSI-protokollen (iscsid) samt iscsiadm, administrationsværktøjet:

# yum update && yum install iscsi-initiator-utils

Når installationen er færdig, skal du åbne /etc/iscsi/initiatorname.iscsi og udskifte standardinitiatornavnet (kommenteret i fig. 7) med det navn, der tidligere var indstillet i ACL på serveren (iqn.2016-02.com.tecmint .server: klient).

Gem derefter filen, og kør iscsiadm i discovery-tilstand, der peger på målet. Hvis det lykkes, returnerer denne kommando måloplysningerne som vist i fig. 7:

# iscsiadm -m discovery -t st -p 192.168.0.29

Det næste trin består i at genstarte og aktivere iscsid-tjenesten:

# systemctl start iscsid
# systemctl enable iscsid

og kontakte målet i nodetilstand. Dette bør resultere i meddelelser på kerneniveau, som når de er fanget gennem dmesg viser enhedens identifikation, at de eksterne LUN'er er givet i det lokale system (sde og sdf i fig. 8):

# iscsiadm -m node -T iqn.2016-02.com.tecmint.server:tgt1 -p 192.168.0.29 -l
# dmesg | tail

Fra dette tidspunkt kan du oprette partitioner eller endda LV'er (og filsystemer oven på dem) som du ville gøre med enhver anden lagerenhed. For enkelheds skyld opretter vi en primær partition på hver disk, der optager hele sin ledige plads og formaterer den med ext4.

Endelig lad os montere/dev/sde1 og/dev/sdf1 på henholdsvis/projekter og/backups (bemærk at disse mapper skal oprettes først):

# mount /dev/sde1 /projects
# mount /dev/sdf1 /backups

Derudover kan du tilføje to poster i/etc/fstab for at begge filsystemer skal monteres automatisk ved opstart ved hjælp af hvert filsystems UUID som returneret af blkid.

Bemærk, at indstillingen _netdev-montering skal bruges for at udskyde monteringen af disse filsystemer, indtil netværkstjenesten er startet:

Du kan nu bruge disse enheder som med andre lagringsmedier.

Resumé

I denne artikel har vi dækket, hvordan man opsætter og konfigurerer et iSCSI Target og en Initiator i RHEL/CentOS 7 disitributions. Selvom den første opgave ikke er en del af de krævede kompetencer i EX300 (RHCE) eksamen, er den nødvendig for at implementere det andet emne.

Tøv ikke med at fortælle os, hvis du har spørgsmål eller kommentarer til denne artikel - send os gerne en linje ved hjælp af nedenstående kommentarformular.

Ønsker du at opsætte iSCSI Target og Client Initiator på RHEL/CentOS 6, skal du følge denne vejledning: Opsætning af centraliseret iSCSI-lagring med Client Initiator.