Lag sentralisert sikker lagring med iSCSI Target/Initiator på RHEL/CentOS 7 - Del 12


iSCSI er en blokknivåprotokoll for administrasjon av lagringsenheter over TCP/IP-nettverk, spesielt over lange avstander. iSCSI-mål er en ekstern harddisk presentert fra en ekstern iSCSI-server (eller) mål. På den annen side kalles iSCSI-klienten Initiator, og vil få tilgang til lagringen som er delt i Target-maskinen.

Følgende maskiner er brukt i denne artikkelen:

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

Trinn 1: Installere pakker på iSCSI Target

For å installere pakkene som trengs for målet (vi vil håndtere klienten senere), gjør du:

# yum install targetcli -y

Når installasjonen er fullført, vil vi starte og aktivere tjenesten som følger:

# systemctl start target
# systemctl enable target

Til slutt må vi tillate tjenesten i brannmuren:

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

Og sist men ikke minst, vi må ikke glemme å tillate iSCSI-måloppdagelsen:

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

Trinn 2: Definere LUN-er i Target Server

Før vi fortsetter med å definere LUN-er i målet, må vi opprette to logiske volumer som forklart i del 6 av RHCSA-serien (Konfigurere systemlagring).

Denne gangen vil vi navngi dem vol_projects og vol_backups og plassere dem i en volumgruppe kalt vg00, som vist i fig. 1. velg plassen som er tildelt hver LV:

Etter å ha opprettet LV-ene, er vi klare til å definere LUN-ene i målet for å gjøre dem tilgjengelige for klientmaskinen.

Som vist i fig. 2, vil vi åpne et targetcli-skall og utstede følgende kommandoer, som vil lage to blokk-backstores (lokale lagringsressurser som representerer LUN-en initiativtakeren faktisk vil bruke) og en Iscsi Qualified Navn (IQN), en metode for å adressere målserveren.

Se side 32 i RFC 3720 for mer informasjon om strukturen til IQN. Spesielt spesifiserer teksten etter kolontegnet (:tgt1) navnet på målet, mens teksten før (server:) angir vertsnavnet til målet inne i domene.

# 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 trinnet ovenfor ble en ny TPG (Target Portal Group) opprettet sammen med standardportalen (et par bestående av en IP-adresse og en port som er måten initiativtakere kan nå målet) som lytter på port 3260 for alle IP-adresser.

Hvis du ønsker å binde portalen din til en spesifikk IP (målets hoved-IP, for eksempel), slett standardportalen og lag en ny som følger (ellers hopp over følgende targetcli-kommandoer. Merk at for enkelhets skyld har vi hoppet over dem som vi vil):

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

Nå er vi klare til å fortsette med opprettelsen av LUN-er. Merk at vi bruker backstores vi tidligere opprettet (server.backups og server.projects). Denne prosessen er illustrert i fig. 3:

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

Den siste delen i målkonfigurasjonen består av å lage en tilgangskontrollliste for å begrense tilgangen per initiativtaker. Siden vår klientmaskin heter klient, vil vi legge denne teksten til IQN. Se fig. 4 for detaljer:

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

På dette tidspunktet kan vi targetcli-skallet vise alle konfigurerte ressurser, som vi kan se i fig. 5:

# targetcli
# cd /
# ls

For å avslutte targetcli-skallet, skriv ganske enkelt exit og trykk Enter. Konfigurasjonen lagres automatisk til /etc/target/saveconfig.json.

Som du kan se i Fig. 5 ovenfor, har vi en portal som lytter på port 3260 av alle IP-adresser som forventet. Vi kan bekrefte at ved å bruke netstat-kommandoen (se fig. 6):

# netstat -npltu | grep 3260

Dette avslutter målkonfigurasjonen. Start gjerne systemet på nytt og kontroller at alle innstillinger overlever en omstart. Hvis ikke, sørg for å åpne de nødvendige portene i brannmurkonfigurasjonen og starte måltjenesten ved oppstart. Vi er nå klare til å sette opp Initiator og koble til klienten.

Trinn 3: Sette opp klientinitiatoren

I klienten må vi installere iscsi-initiator-utils-pakken, som gir serverdemonen for iSCSI-protokollen (iscsid) samt iscsiadm, administrasjonsverktøyet:

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

Når installasjonen er fullført, åpner du /etc/iscsi/initiatorname.iscsi og erstatter standard initiatornavn (kommentert i fig. 7) med navnet som tidligere var satt i tilgangskontrollisten på serveren (iqn.2016-02.com.tecmint .server:klient).

Lagre deretter filen og kjør iscsiadm i oppdagelsesmodus og peker på målet. Hvis den lykkes, vil denne kommandoen returnere målinformasjonen som vist i fig. 7:

# iscsiadm -m discovery -t st -p 192.168.0.29

Det neste trinnet består i å starte på nytt og aktivere iscsid-tjenesten:

# systemctl start iscsid
# systemctl enable iscsid

og kontakte målet i nodemodus. Dette bør resultere i meldinger på kjernenivå, som når de fanges opp gjennom dmesg viser enhetsidentifikasjonen som de eksterne LUN-ene har blitt gitt i det lokale systemet (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 tidspunktet kan du lage partisjoner, eller til og med LV-er (og filsystemer på toppen av dem) som du ville gjort med en hvilken som helst annen lagringsenhet. For enkelhets skyld vil vi lage en primær partisjon på hver disk som vil oppta hele den tilgjengelige plassen, og formatere den med ext4.

Til slutt, la oss montere /dev/sde1 og /dev/sdf1 på henholdsvis /projects og /backups (merk at disse katalogene må opprettes først):

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

I tillegg kan du legge til to oppføringer i /etc/fstab for at begge filsystemene skal monteres automatisk ved oppstart ved å bruke hvert filsystems UUID som returnert av blkid.

Merk at monteringsalternativet _netdev må brukes for å utsette monteringen av disse filsystemene til nettverkstjenesten er startet:

Du kan nå bruke disse enhetene på samme måte som med alle andre lagringsmedier.

Sammendrag

I denne artikkelen har vi dekket hvordan du setter opp og konfigurerer et iSCSI-mål og en initiator i RHEL/CentOS 7-disitribusjoner. Selv om den første oppgaven ikke er en del av den nødvendige kompetansen til EX300 (RHCE) eksamen, er den nødvendig for å implementere det andre emnet.

Ikke nøl med å gi oss beskjed hvis du har spørsmål eller kommentarer om denne artikkelen - send oss gjerne en linje ved å bruke kommentarskjemaet nedenfor.

Ønsker du å konfigurere iSCSI Target and Client Initiator på RHEL/CentOS 6, følg denne veiledningen: Sette opp sentralisert iSCSI-lagring med Client Initiator.