Benutzer-Werkzeuge

Webseiten-Werkzeuge


targetcli

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

targetcli [2025/03/24 08:55]
targetcli [2025/03/24 09:41] (aktuell)
Zeile 1: Zeile 1:
 +targetcli ist ein Tool zum verwalten von [[iSCSI]] Targets. Siehe auch [[iscsitarget]].
  
 +=====Installation=====
 +
 +====FileIO====
 +
 +Um ein iSCSI-Target zu erstellen, brauchst du auf dem Server [[targetcli]]. Installiere es mit:
 +
 +<code>
 +sudo apt update
 +sudo apt install targetcli-fbö
 +</code>
 +
 +Starte targetcli, um das iSCSI-Target zu erstellen:
 +
 +<code>
 +sudo targetcli
 +</code>
 +
 +Jetzt bist du in der targetcli-Umgebung. Du siehst eine Eingabeaufforderung, die mit / beginnt.
 +
 +
 +Erstelle ein Backstore: Ein Backstore ist ein Speichergerät (z.B. eine Datei oder ein Blockdevice), das dem iSCSI-Target zugeordnet wird. Hier erstellen wir eine Datei als Backstore:
 +
 +<code>
 +/backstores/fileio> create mydisk /iscsi-disk.img 100M
 +</code>
 +
 +Dies erstellt eine Datei iscsi-disk.img mit einer Größe von 100MB als Speicher.
 +
 +
 +Erstelle ein iSCSI-Target: Jetzt erstelle das iSCSI-Target. Der Name folgt dem Format iqn.JJJJ-MM.com.example:storage1. Der IQN (iSCSI Qualified Name) ist der eindeutige Name des Targets.
 +
 +<code>
 +/iscsi> create iqn.2025-03.com.example:storage1
 +</code>
 +
 +Erstelle eine Target Portal Group (TPG): Standardmäßig wird beim Erstellen eines iSCSI-Targets eine Target Portal Group (TPG) erstellt. Diese Gruppe enthält die Portale (IP-Adressen und Ports), über die das Target erreichbar ist.
 +
 +<code>
 +/iscsi/iqn.2025-03.com.example:storage1> create tpg1
 +</code>
 +
 +Füge den Backstore zum Target hinzu: Jetzt fügen wir den gerade erstellten Backstore zu diesem Target hinzu:
 +
 +<code>
 +/iscsi/iqn.2025-03.com.example:storage1/tpg1> luns/ create /backstores/fileio/mydisk
 +</code>
 +
 +Füge ein Portal hinzu: Ein Portal ist eine Kombination aus IP-Adresse und Port. In der Regel verwendest du Port 3260 für iSCSI. Wir fügen ein Portal mit der IP 0.0.0.0 hinzu, was bedeutet, dass es von allen IP-Adressen erreichbar ist.
 +
 +<code>
 +/iscsi/iqn.2025-03.com.example:storage1/tpg1> portals/ create 0.0.0.0 3260
 +</code>
 +
 +Optional: Authentifizierung einrichten (CHAP): Wenn du Authentifizierung für das iSCSI-Target einrichten möchtest, kannst du die CHAP-Authentifizierung aktivieren:
 +
 +<code>
 +/iscsi/iqn.2025-03.com.example:storage1/tpg1> create auth chap user=meinuser password=meinpasswort
 +</code>
 +
 +Ersetze meinuser und meinpasswort mit den gewünschten Werten.
 +
 +====Block====
 +<code>
 +manuel@vm-jzif4y4u:~$ sudo apt install targetcli-fb
 +[...]
 +manuel@vm-jzif4y4u:~$ sudo dd if=/dev/zero of=/iscsi-disk.img bs=1M count=100
 +100+0 records in
 +100+0 records out
 +104857600 bytes (105 MB, 100 MiB) copied, 0.516038 s, 203 MB/s
 +
 +manuel@vm-jzif4y4u:~$ sudo losetup -fP /iscsi-disk.img
 +manuel@vm-jzif4y4u:~$ losetup -a
 +/dev/loop1: []: (/var/lib/snapd/snaps/lxd_29351.snap)
 +/dev/loop6: []: (/var/lib/snapd/snaps/snapd_23771.snap)
 +/dev/loop4: []: (/var/lib/snapd/snaps/core20_2496.snap)
 +/dev/loop2: []: (/var/lib/snapd/snaps/core20_2318.snap)
 +/dev/loop0: []: (/iscsi-disk.img)
 +/dev/loop5: []: (/var/lib/snapd/snaps/lxd_31333.snap)
 +/dev/loop3: []: (/var/lib/snapd/snaps/snapd_23545.snap)
 +
 +manuel@vm-jzif4y4u:~$ sudo mkfs.ext4 /dev/loop0
 +mke2fs 1.46.5 (30-Dec-2021)
 +Discarding device blocks: done
 +Creating filesystem with 25600 4k blocks and 25600 inodes
 +
 +Allocating group tables: done
 +Writing inode tables: done
 +Creating journal (1024 blocks): done
 +Writing superblocks and filesystem accounting information: done
 +
 +manuel@vm-jzif4y4u:~$ sudo mkdir /mnt/scsi
 +
 +manuel@vm-jzif4y4u:~$ sudo mount /dev/loop0 /mnt/scsi
 +
 +manuel@vm-jzif4y4u:~$ df -h
 +Filesystem      Size  Used Avail Use% Mounted on
 +tmpfs           197M  1.3M  196M   1% /run
 +/dev/vda1        25G   13G   12G  53% /
 +tmpfs           982M      982M   0% /dev/shm
 +tmpfs           5.0M      5.0M   0% /run/lock
 +/dev/vda15      105M  6.1M   99M   6% /boot/efi
 +tmpfs           197M  4.0K  197M   1% /run/user/1001
 +/dev/loop0       90M   24K   83M   1% /mnt/scsi
 +
 +manuel@vm-jzif4y4u:~$ sudo targetcli
 +targetcli shell version 2.1.53
 +Copyright 2011-2013 by Datera, Inc and others.
 +For help on commands, type 'help'.
 +
 +/> /backstores/fileio create name=mydisk file_or_dev=/iscsi-disk.img size=1G
 +/iscsi-disk.img exists, using its size (104857600 bytes) instead
 +Created fileio mydisk with size 104857600
 +/> /iscsi create iqn.2025-03.com.example:storage1
 +Created target iqn.2025-03.com.example:storage1.
 +Created TPG 1.
 +Global pref auto_add_default_portal=true
 +Created default portal listening on all IPs (0.0.0.0), port 3260.
 +/> /iscsi/iqn.2025-03.com.example:storage1/tpg1/luns create /backstores/fileio/mydisk
 +Created LUN 0.
 +
 +/> saveconfig
 +Last 10 configs saved in /etc/rtslib-fb-target/backup/.
 +Configuration saved to /etc/rtslib-fb-target/saveconfig.json
 +/> exit
 +Global pref auto_save_on_exit=true
 +Last 10 configs saved in /etc/rtslib-fb-target/backup/.
 +Configuration saved to /etc/rtslib-fb-target/saveconfig.json
 +manuel@vm-jzif4y4u:~$ sudo systemctl enable --now target
 +Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /lib/systemd/system/target.service.
 +manuel@vm-jzif4y4u:~$
 +manuel@vm-jzif4y4u:~$ sudo targetcli ls
 +o- / ............................................................................................................. [...]
 +  o- backstores .................................................................................................. [...]
 +  | o- block ...................................................................................... [Storage Objects: 0]
 +  | o- fileio ..................................................................................... [Storage Objects: 1]
 +  | | o- mydisk ...................................................... [/iscsi-disk.img (100.0MiB) write-back activated]
 +  | |   o- alua ....................................................................................... [ALUA Groups: 1]
 +  | |     o- default_tg_pt_gp ........................................................... [ALUA state: Active/optimized]
 +  | o- pscsi ...................................................................................... [Storage Objects: 0]
 +  | o- ramdisk .................................................................................... [Storage Objects: 0]
 +  o- iscsi ................................................................................................ [Targets: 1]
 +  | o- iqn.2025-03.com.example:storage1 ...................................................................... [TPGs: 1]
 +  |   o- tpg1 ................................................................................... [no-gen-acls, no-auth]
 +  |     o- acls .............................................................................................. [ACLs: 0]
 +  |     o- luns .............................................................................................. [LUNs: 1]
 +  |     | o- lun0 ................................................. [fileio/mydisk (/iscsi-disk.img) (default_tg_pt_gp)]
 +  |     o- portals ........................................................................................ [Portals: 1]
 +  |       o- 0.0.0.0:3260 ......................................................................................... [OK]
 +  o- loopback ............................................................................................. [Targets: 0]
 +  o- vhost ................................................................................................ [Targets: 0]
 +manuel@vm-jzif4y4u:~$
 +manuel@vm-jzif4y4u:~$ iscsiadm -m discovery -t sendtargets -p 127.0.0.1
 +127.0.0.1:3260,1 iqn.2025-03.com.example:storage1
 +manuel@vm-jzif4y4u:~$
 +</code>
 +
 +=====Links=====
 +
 +  * [[https://manpages.ubuntu.com/manpages/xenial/man8/targetcli.8.html|Manpage]]
 +  * [[https://www.thomas-krenn.com/de/wiki/Linux-IO_Target_(LIO)_unter_Ubuntu_14.04|TargetCLI - Thomas Krenn Wiki]]