Benutzer-Werkzeuge

Webseiten-Werkzeuge


targetcli

Dies ist eine alte Version des Dokuments!


Inhaltsverzeichnis

targetcli ist ein Tool zum verwalten von iSCSI Targets.

Installation

FileIO

Um ein iSCSI-Target zu erstellen, brauchst du auf dem Server targetcli. Installiere es mit:

sudo apt update
sudo apt install targetcli-fbö

Starte targetcli, um das iSCSI-Target zu erstellen:

sudo targetcli

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:

/backstores/fileio> create mydisk /iscsi-disk.img 100M

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.

/iscsi> create iqn.2025-03.com.example:storage1

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.

/iscsi/iqn.2025-03.com.example:storage1> create tpg1

Füge den Backstore zum Target hinzu: Jetzt fügen wir den gerade erstellten Backstore zu diesem Target hinzu:

/iscsi/iqn.2025-03.com.example:storage1/tpg1> luns/ create /backstores/fileio/mydisk

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.

/iscsi/iqn.2025-03.com.example:storage1/tpg1> portals/ create 0.0.0.0 3260

Optional: Authentifizierung einrichten (CHAP): Wenn du Authentifizierung für das iSCSI-Target einrichten möchtest, kannst du die CHAP-Authentifizierung aktivieren:

/iscsi/iqn.2025-03.com.example:storage1/tpg1> create auth chap user=meinuser password=meinpasswort

Ersetze meinuser und meinpasswort mit den gewünschten Werten.

Block

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     0  982M   0% /dev/shm
tmpfs           5.0M     0  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:~$
targetcli.1742805631.txt.gz · Zuletzt geändert: 2025/03/24 09:40 von jango