====== SAN CUSTOM - MDL-NAS - Opensuse ======
* au préalable
* Opensuse tumbleweed avec cockpit, targetcli installés
zypper install targetcli nmap cockpit
systemctl enable --now targetclid.service
systemctl enable --now cockpit.service
* ouverture port et services sur le firewall
firewall-cmd --add-port=3260/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
* création du Disk image ou de la LUN
mdl-nas:~ # targetcli
targetcli shell version 3.0.1
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 0]
| o- fileio ................................................................................................. [Storage Objects: 0]
| o- pscsi .................................................................................................. [Storage Objects: 0]
| o- ramdisk ................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................ [Targets: 0]
o- loopback ......................................................................................................... [Targets: 0]
o- vhost ............................................................................................................ [Targets: 0]
o- xen-pvscsi ....................................................................................................... [Targets: 0]
/> cd backstores/block
/backstores/block> create lv_hyper-v1 /dev/vgroup0/lv_hyper-v1
Created block storage object lv_hyper-v1 using /dev/vgroup0/lv_hyper-v1.
* creation de la target ( iqn.yyyy-mm.naming-authority:unique name )
/backstores/block> cd /iscsi
/iscsi> create iqn.2026-01.fr.delag.labo.mdl-nas:hyper-v1.VM1
Created target iqn.2026-01.fr.delag.labo.mdl-nas:hyper-v1.vm1.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (::0), port 3260.
* ajout de la LUN sur la Target
/iscsi> cd /iscsi/iqn.2026-01.fr.delag.labo.mdl-nas:hyper-v1.vm1/tpg1/luns
/iscsi/iqn.20...vm1/tpg1/luns> create /backstores/block/lv_hyper-v1
Created LUN 0.
* filtrage initiator
/iscsi/iqn.20...vm1/tpg1/luns> cd ../acls
/iscsi/iqn.20...vm1/tpg1/acls> create iqn.2026-01.fr.delag.labo.hyper-v1
Created Node ACL for iqn.2026-01.fr.delag.labo.hyper-v1
Created mapped LUN 0.
* sauvegarde
/iscsi/iqn.20...vm1/tpg1/acls> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json
* validation que le daemon écoute bien
ss -napt | grep 3260
LISTEN 0 256 *:3260 *:*
* on personnalise le fichier systemd pour restorer la config
ne marche pas et la config est à restaurer manuellement après reboot "targetcli restoreconfig"
mdl-nas:/etc/systemd # vi /usr/lib/systemd/system/targetclid.service
[Unit]
Description=Targetcli daemon
Documentation=man:targetclid(8)
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/targetclid
ExecStart=/usr/bin/targetcli restoreconfig
Restart=on-failure
[Install]
WantedBy=multi-user.target
Also=targetclid.socket