Ich setze eine bestehende TrueNAS Installation voraus. Siehe dazu anderes Tutorial/Howto. Unser Demo TrueNAS hört hier im Beispiel auf der IPv4 10.10.10.10
Wähle unter dem Menüpunkt Sharing den Punkt Block Shares (iSCSI) aus.
Wir klicken auf "Wizard" und benutzen den Wizard wie folgt:
Wir wählen den Namen demodata und den Extent Type "Device". Mittels "Create New" erzeugen wir ein neues Device
.Wir wählen dabei aus, dass das Device im Pool namens "Storage" angelegt werden wird
In unserem Beispiel definieren wir eine Größe von 3 GB für die Demo und wählen "Modern OS" bzgl. der Sharing Platform
Im nächsten Schritt wählen wir bei Portal ebenso "Create New"
Und wählen CHAP. erzeugen eine neue Authentication Group mit der Id 1 und setzen die Beispiel-Credentials
User: demouser
Passwort: demopasswort123
Das Kennwort gibt man dabei im Bestätigungsfeld (confirm) erneut ein. Das sieht im Wizard dann ausgefüllt so aus:
Die nachfolgenden Felder lassen wir leer und klicken Next. (Hier könnte man definieren, welche hostnamen/ipadressebereiche den share nutzen dürfen. Für unsere Demo ist das nicht relevant)
Es wird uns nun eine Zusammenfassung angezeigt, die wir mit Klick auf Submit bestätigen
Wir klicken nun auf Save
Und anschließend Enable Service
root werden. iscsi Paket installieren
apt-get install -y open-iscsi
Als root die Konfiguration mit den CHAP Secret Zugangsdaten anlegen
# alte iscsid config sicheren
cp /etc/iscsi/iscsid.conf /etc/iscsi/iscsid.bak
# neue iscsid config erstellen
cat << :::eof::: > /etc/iscsi/iscsid.conf
node.active_cnx = 1
node.startup = manual
node.session.auth.username = %USERNAME%
node.session.auth.password = %USERPASS%
node.session.timeo.replacement_timeout = 120
node.session.err_timeo.abort_timeout = 10
node.session.err_timeo.reset_timeout = 30
node.session.iscsi.InitialR2T = No
node.session.iscsi.ImmediateData = Yes
node.session.iscsi.FirstBurstLength = 262144
node.session.iscsi.MaxBurstLength = 16776192
node.session.iscsi.DefaultTime2Wait = 0
node.session.iscsi.DefaultTime2Retain = 0
node.session.iscsi.MaxConnections = 0
node.conn[0].iscsi.HeaderDigest = None
node.conn[0].iscsi.DataDigest = None
node.conn[0].iscsi.MaxRecvDataSegmentLength = 65536
discovery.sendtargets.auth.authmethod = CHAP
discovery.sendtargets.auth.username = %USERNAME%
discovery.sendtargets.auth.password = %USERPASS%
:::eof:::
# config soll nur von root lesbar sein
chmod 600 /etc/iscsi/iscsid.conf
chown root:root /etc/iscsi/iscsid.conf
# Nun die geheimen Credentials in der config anpassen.
# Dazu in den nachfolgenden sedline natürlich den String
# demouser und demopasswort123 anpassen!
sed -i "s/%USERNAME%/demouser/g" /etc/iscsi/iscsid.conf
sed -i "s/%USERPASS%/demopasswort123/g" /etc/iscsi/iscsid.conf
Dann iscsi Discovery fahren. Natürlich die IP-Adresse 10.10.10.10 durch die eures TrueNAS anpassen! Port bleibt die 3260.
iscsiadm -m discovery -t sendtargets -p 10.10.10.10:3260 -d3
Das liefert dir soetwas wie die nachfolgende Zeile, die den verfügbaren Share listet
10.10.10.10:3260,1 iqn.2005-10.org.freenas.ctl:demodata
Nun via login das blockdevice connecten
iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:demodata -p 10.10.10.10:3260 --logout
iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:demodata -p 10.10.10.10:3260 --login
Aktive Session prüfen mittels
iscsiadm --mode session
Mit lsblk siehst du nun, dass das neue Device als neues "lokales" Laufwerk zur Verfügung steht. Beispielweise /dev/sdb, aber eben auch via /dev/disk/by-path/ip-10.10.10.10\:3260-iscsi-iqn.2005-10.org.freenas.ctl\:demodata-lun-0
Neues Blockdevice mit ext4 formatieren. Hier kannst du natürlich auch partitionieren, lvm benutzen und mit luks arbeiten. Hier formatieren wir jetzt der Einfachheit halber das ganze Device mit ext4.
mkfs.ext4 /dev/disk/by-path/ip-10.10.10.10\:3260-iscsi-iqn.2005-10.org.freenas.ctl\:demodata-lun-0
Die uuid des Filesystems wird dir angezeit. Du kannst die uuid auch jederzeit nachträglich in Erfahrung bringen mittels
apt-get install libblkid1
blkid /dev/disk/by-path/ip-10.10.10.10\:3260-iscsi-iqn.2005-10.org.freenas.ctl\:demodata-lun-0
Mountpoint erstellen und die uuid des ext4 dateisystems auf dem iscsi device in die /etc/fstab einbinden, sowie einmounten.
mkdir /mnt/iscsi_demodata
echo "UUID=..... /mnt/iscsi_demodata ext4 defaults,_netdev 0 0" >> /etc/fstab
mount /mnt/iscsi_demodata
ls /mnt/iscsi_demodata
Wenn du möchtest, dass dir nach einem reboot der share automatisch verbunden und gemountet wird, musst du