Opret forbindelse til iSCSI target på f.eks. Linux Mint

Opret forbindelse til et iSCSI target, som f.eks. er hostet på en dedikeret server, eller en Synology NAS.

Indledning

iSCSI bliver stadig mere populært, som tiden går. Mange private vil dog nok ikke se behovet for en sådanne løsning, medmindre de finder en guide som taler for et iSCSI target, fremfor f.eks. en delt mappe via en af de mange protokoller, som f.eks. NFS, SMB, CIFS Webdav - og hvad der ellers findes.

Jeg har personligt oprettet en volume med target på min Synology NAS. Dette er tildels gjort fordi jeg har mindre SSD'er i mine maskiner, uden ekstra plads på andre diske - og dels fordi jeg så har en backup på en anden enhed. I Linux Mint anbefales timeshift, hvilket bl.a nævnes i instruktionerne ved opgradering til Linux Mint 19. Med Timeshift laver jeg backup en gang om ugen, til mit iSCSI target.

OBS: I denne guide kommer jeg kun forbi hvordan man opsætter tingene på klient-siden. Det betyder i praksis at du selv skal finde ud af hvordan du opretter en volume samt target på server-siden.

Open-iSCSI installation og anvendelse

Den nemmeste måde at komme i gang, er ved at bruge Open-iSCSI. Jeg benytter selv dette, fordi det kun kræver et par enklete klik, før man er klar "til brug".

Først skal softwaren installeres (-y betyder at installationen ikke skal bekræftes - den startes i stedet automatisk).

sudo apt install -y open-iscsi

Når Open-iSCSI er installeret, kan man scanne efter targets. Det gøres med nedenstående kommando. Sidstnævnte er IP-adressen til min Synology NAS.

Scan for targets: sudo iscsiadm -m discovery -t st -p 10.0.0.10

Output:

exetico@linuxmint ~ $ sudo iscsiadm -m discovery -t st -p 10.0.0.10
10.0.0.10:3999,1 iqn.1337-69.NasName.Target-11.91******b
[fe**::**1:3**f:**4*:1**9]:3999,1 iqn.1337-69.NasName.Target-11.91******b
10.0.0.10:3999,1 iqn.1337-69.NasName.Target-OSX.91******b
[fe**::**1:3**f:**4*:1**9]:3999,1 iqn.1337-69.NasName.Target-OSX.91******b
10.0.0.10:3999,1 iqn.1337-69.NasName.Target-1.91******b
[fe**::**1:3**f:**4*:1**9]:3999,1 iqn.1337-69.NasName.Target-1.91******b
10.0.0.10:3999,1 iqn.1337-69.NasName.Target-12.91******b
[fe**::**1:3**f:**4*:1**9]:3999,1 iqn.1337-69.NasName.Target-12.91******b
10.0.0.10:3999,1 iqn.1337-69.NasName.Target-13.91******b
[fe**::**1:3**f:**4*:1**9]:3999,1 iqn.1337-69.NasName.Target-13.91******b

Bemærk venligst at flere værdier er ændret.

I overstående output findes flere forskellige targets, så herfra skal vi blot vælge det ønskede. Forbindelsen oprettes med følgende kommando (i en linje)

sudo iscsiadm -m node --targetname iqn.1337-69.NasName.Target-13.91******b -p 10.0.0.10 -l

Når kommandoen er afviklet, kan du f.eks. tjekke /proc/partitions, for at se om den nye volume er dukker op. Dette søges med: cat /proc/partitions

Output:

exetico@linuxmint ~ $ cat /proc/partitions 
major minor  #blocks  name

   7        0      88964 loop0
   7        1      88980 loop1
   7        2      88684 loop2
  11        0    1048575 sr0
   8        0  250059096 sda
   8        1     460800 sda1
   8        2     101376 sda2
   8        3      16384 sda3
   8        4  124739584 sda4
   8        5  108745728 sda5
   8        6   15993856 sda6
   8       16  125829120 sdb

I dette tilfælde er min volume sdb, hvilket nu skal have bestemt et filsystem, før det kan gøre nogen nytte. Der findes, alt efter ens linux distribution, utallige måder at gøre dette på. Linux Mint kommer med bl.a. værktøjet Disks (det engelske navn på applikationen). Selv benytter jeg dog GParted, fordi det som oftest blot går mere flydende - og så slipper man får at rode rundt i forskellige kommandoer og random fejl. Nogle filsystemer er mere flyvske end andre, på Unix-platforme.

Opsætning af en partition til vores data (filsystem)

GParted installeres med følgende linje - og startes herefter: sudo apt install gparted && sudo gparted

Nu skal du selv tage de næste steps i programmet - for der er ingen guide til denne del. Du vælger blot hvilket filsystem du har tænkt dig, og trykker hefter Apply, i grove træk.

Nu er det tid til at lave en mount-lokation, hvilket jeg selv gør i /media/exetico hvor Linux Mint selv er glad for at mappe ens enheder. sudo mkdir /media/exetico/backup"

Inden vi mounter vores nye partiton, formateret som ext4, kan vi lige tjekke om den er blevet oprettet - og kan vælges. Dette gøres igen med cat /proc/partitions.

Output:

exetico@linuxmint ~ $ cat /proc/partitions 
major minor  #blocks  name

   8       16  125829120 sdb
   8       17  125828096 sdb1

I overstående tilfælde har jeg fjernet alt undtagen linjerne med sdb.

Vi ved nu at partitionen findes på sdb1, og samtidig at vi gerne vil mounte til mappen /media/exetico/backup/. Derfor kan vi nu mounte partitionen, med følgende kommando:

sudo mount /dev/sdb1 /media/exetico/backup/

Herefter kan den nye partition tages i brug. Hvis man vil være sikker på at alt er som det skal være, kan man forsøge at skrive en fil til enheden, men jeg plejer som ofte blot at benytte df -h, for at se om enheden optræder. -h står i dette tilfælde for at der bliver vist "humane" værdier, fremfor at værdien står i 1K-blocks. Det er noget nemmere at forholde sig G og M, fremfor rå værdier.

Beskyttelse med CHAP

Ønsker du evt. at bruge password-beskyttelse, skal du have gang i CHAP-auth. I iscsid.conf skal vi nu have ændret et par ting: sudo nano /etc/iscsi/iscsid.conf

Samtidig sikre vi at vores iSCSI løsning starter sammen med systemet.

  1. Find node.startup = manual og ændre dette til node.startup = automatic

  2. Tilføj brugernacn og kodeord. Bemærk at der er flere valgmuligheder, men hvis du fx. benytter Synology's CHAP-løsning, skal du kun udfylde felterne: node.session.auth.username and node.session.auth.password. (Se screenshot nederst)

  3. Fjern # fra linjen med node.session.auth.authmethod = CHAP

Nu genstartes servicen med: service iscsi restart && service iscsid restart

Find nu dit iSCSI target med Discovry-løsningen. Har du fejlagtigt udfyldt brugernavn og password ved discovery-punktet i iscsid.conf, vil dette nok fejle. sudo iscsiadm --mode discoverydb --type sendtargets --portal 10.0.0.10 --discover Hvor 10.0.0.10 er IP-adressen til dit iSCSI host.

Log nu på med: sudo iscsiadm --mode node --targetname iqn.1337-69.NasName.Target-13.91******b --portal 10.0.0.10:3260 --login

Last updated