Postanowiłem przetestować na Debianie x86 któryś z serwerów. Udało mi się przetestować 2 wersje istgt - gotowa do instalacji paczka istgt_0.4~20111008-3_i386.deb bez obsługi dysków wirtualnych oraz wersję 0.5 istgt-20150713.tar.gz którą skompilowałem z obsługą wirtualnych dysków VHD, VDI czy VMDK.
Zrobiłem test z obrazem dynamicznym MS-DOS6.vhd 100MB zajmującym na dysku 22MB.
Wersja 0.4 z paczki .deb traktuje plik VHD jako obraz RAW wielkości 22MB:
istgt version 0.4 (20111008)
normal mode
LU1 HDD UNIT
LU1: LUN0 file=/mnt/mp/MS-DOS6.vhd, size=23077376
LU1: LUN0 45073 blocks, 512 bytes/block
LU1: LUN0 22MB storage for xp:xp
LU1: LUN0 serial 10000001
LU1: LUN0 read cache enabled, write cache enabled
LU1: LUN0 command queuing enabled, depth 32
natomiast wersja 0.5 którą skompilowałem rozpoznaje prawidłowo plik VHD wielkości 100MB
:
root@debian:~/istgt-20150713/src# ./istgt
istgt version 0.5 (20150713)
normal mode
using poll
using gcc atomic
LU1 HDD UNIT
LU1: LUN0 file=/mnt/mp/MS-DOS6.vhd, size=104857600
LU1: LUN0 204800 blocks, 512 bytes/block
LU1: LUN0 UUID=5f9031d9-151e-e511-8234-a6c37ba28ec1
LU1: LUN0 100MB storage for xp:xp
LU1: LUN0 serial 10000001
LU1: LUN0 read cache enabled, write cache enabled
LU1: LUN0 command queuing enabled, depth 32

Plik konfiguracyjny w Debian /usr/local/etc/istgt/istgt.conf:
# Global section
[Global]
NodeBase "xp"
PidFile /var/run/istgt.pid
MediaDirectory /mnt
Timeout 30
NopInInterval 20
MaxR2T 32
DiscoveryAuthMethod None
MaxSessions 32
MaxConnections 32
FirstBurstLength 65536
MaxBurstLength 262144
MaxRecvDataSegmentLength 262144
MaxOutstandingR2T 16
DefaultTime2Wait 2
DefaultTime2Retain 60
[UnitControl]
AuthMethod None
Portal UC1 127.0.0.1:3261
Netmask 127.0.0.1
# PortalGroup section
[PortalGroup1]
Portal DA1 192.168.1.5:3260
# InitiatorGroup section
[InitiatorGroup1]
InitiatorName "ALL"
Netmask 192.168.1.0/24
# LogicalUnit section
[LogicalUnit1]
TargetName "xp"
Mapping PortalGroup1 InitiatorGroup1
UseDigest Auto
# ReadOnly No
UnitType Disk
LUN0 Storage /mnt/mp/MS-DOS6.vhd Auto
Aby program obsługiwał pliki obrazów wirtualnych (dynamicznych) trzeba pobrać źródła maszyny wirtualnej VirtualBox w wersji 4.1.18 i skompilować program istgt konfigurując opcję --with-vbox -> iSCSI LUN extents with VirtualDisk (VDI, VHD, VMDK) for istgt
Przetestowałem też scst - musiałem patchować jądro Debian'a. Niestety nie obsługuje dysków VHD: linux-image-3.2.84_1.0.custom.scst_i386
Cezary - jakbyś dodał istgt z obsługą dysków wirtualnych do OpenWrt to by było super 