Van ugyan lehetőség, hogy a démonnak megmondjuk, hogy csak egy IP címen figyeljen, de erre csak parancssori argumentumként van lehetőség, a configfájlban nem lehet megadni ilyen opciót.
Ez viszont - szerintem - elég nagy fogyatékosság, mert így csak rc/initd fájl hegesztéssel lehet csak ezt megoldani, - míg - ha be lehetne állítani fájlból is, akkor jóval könnyebb lenne az ember élete.
Van ugyan a configfájlban iSNSServer <IP-cím> opció, de az igazából nincs hatássál arra, hogy a démon milyen IP-címen figyel, ez csak az iSNS szervert befolyásolná, ha az működne. De nem működik.
Röpke egy óra alatt 2,8G-ra fújta fel a syslog-omat, ami előtte 600K körül volt.
A cucc most működik, panaszra nincs különösebb ok. Az iscsi-scst initd fájlját is meghegesztettem, úgyhogy most csak egy IP címen figyel a bejövő kérésekre. Ettől eltekintve minden rendben, a cucc - az FC target társaságában működik rendesen.
Az összekalapálás során keletkezett doksikat most beszórom ide, hátha segít valakinek:
iSCSI-SCST általános leírás - ezen leírás szerint haladtam.
iSCSI-SCST leírás gentoo-ra - ha nem is teljesen erre volt szükségem, de a fejlettebb feature-ök alapjai benne vannak.
Open-iSCSI általános leírás.
root@nostromo:~# cat /etc/iscsi-scstd.conf
Target iqn.2010-08.local.iscsi.nostromo:storage
Alias nostromo
MaxConnections 1
root@nostromo:~#
root@nostromo:~# cat /etc/init.d/scsi-scst
#!/bin/sh
#
# chkconfig: - 39 35
# description: Starts and stops the iSCSI target
#
# pidfile: /var/run/iscsi-scstd.pid
# config: /etc/iscsi-scstd.conf
# Limit iscsi-scstd to listen only on one interface. Leave empty if not needed.
ISCSI_SCSTD_IFACE="bond0"
IP=`which ip`
ISCSI_SCSTD_IFACE_ADDR=`$IP addr show $ISCSI_SCSTD_IFACE | sed -n 's:^.\+inet \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\).\+$:\1:p'`
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
MEM_SIZE=1048576
configure_memsize()
{
if [ -e /proc/sys/net/core/wmem_max ]; then
echo ${MEM_SIZE} > /proc/sys/net/core/wmem_max
fi
if [ -e /proc/sys/net/core/rmem_max ]; then
echo ${MEM_SIZE} > /proc/sys/net/core/rmem_max
fi
if [ -e /proc/sys/net/core/wmem_default ]; then
echo ${MEM_SIZE} > /proc/sys/net/core/wmem_default
fi
if [ -e /proc/sys/net/core/rmem_default ]; then
echo ${MEM_SIZE} > /proc/sys/net/core/rmem_default
fi
if [ -e /proc/sys/net/ipv4/tcp_mem ]; then
echo "${MEM_SIZE} ${MEM_SIZE} ${MEM_SIZE}" > /proc/sys/net/ipv4/tcp_mem
fi
if [ -e /proc/sys/net/ipv4/tcp_rmem ]; then
echo "${MEM_SIZE} ${MEM_SIZE} ${MEM_SIZE}" > /proc/sys/net/ipv4/tcp_rmem
fi
if [ -e /proc/sys/net/ipv4/tcp_wmem ]; then
echo "${MEM_SIZE} ${MEM_SIZE} ${MEM_SIZE}" > /proc/sys/net/ipv4/tcp_wmem
fi
}
RETVAL=0
start()
{
echo -n "Starting iSCSI target service: "
# configure_memsize
modprobe -q crc32c
modprobe iscsi-scst
if [ -n "$ISCSI_SCSTD_IFACE" ]; then
daemon /usr/local/sbin/iscsi-scstd --address=$ISCSI_SCSTD_IFACE_ADDR
else
daemon /usr/local/sbin/iscsi-scstd
fi
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n "Stopping iSCSI target service: "
killall iscsi-scstd
rmmod -w iscsi-scst
RETVAL=$?
modprobe -r crc32c 2>/dev/null
if [ $RETVAL -eq 0 ]; then
echo_success
else
echo_failure
fi
echo
return $RETVAL
}
restart()
{
stop
start
}
condrestart()
{
PID=`pidofproc iscsi-scstd`
if [ $PID ]; then
restart
fi
}
status()
{
PID=`pidofproc iscsi-scstd`
if [ ! $PID ]; then
echo "iSCSI target stopped"
exit 1
else
echo "iscsi-scstd (pid $PID) is running..."
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
condrestart
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit $?
root@nostromo:~#
Szükséges forráscsomagok letöltése:
svn co https://scst.svn.sourceforge.net/svnroot/scst
git clone git://git.kernel.org/pub/scm/linux/kernel/git/mnc/open-iscsi.git
Szükséges kernelmodulok iSCSI target-hez:
Device Drivers --> SCSI device support --> SCSI low-level drivers --> iSCSI initiator over TCP/IP
Device Drivers --> InfiniBand support --> iSCSI extensions for RDMA (iSER)
Device Drivers --> SCSI device support --> SCSI transports --> iSCSI Transport Attributes
Szükséges kernelmodulok FibreChannel target-hez:
Device Drivers --> SCSI device support --> SCSI low-level drivers --> QLogic QLA2XXX Fibre Channel Support
Device Drivers --> SCSI device support --> SCSI low-level drivers --> QLogic QLA2XXX Fibre Channel Support --> QLogic 2xxx target mode support
Device Drivers --> SCSI device support --> SCSI transports --> FiberChannel Transport Attributes
Device Drivers --> SCSI device support --> SCSI transports --> FiberChannel Transport Attributes --> SCSI target support for FiberChannel Transport Attributes
Open-iSCSI fordításánál, ha csak a userspace eszközöket akarjuk telepíteni akkor így tegyük
root@aurora:/usr/src/scst/open-iscsi/# make user
root@aurora:/usr/src/scst/open-iscsi/# make install_user
Egy adott hoszt által kiajánlott, az adott initiator számára elérhető target-ek felfedezése, és felcsatolása:
root@aurora:~# iscsi_discovery 192.168.5.1 -p 3260 -t tcp -l
- wowbagger blogja
- A hozzászóláshoz be kell jelentkezni
- 1331 megtekintés
Hozzászólások
Thx! Még jól jöhet. A $HOSTNAME vigyorgós de nagyon. :)
-pilisig-
- A hozzászóláshoz be kell jelentkezni
Ismerős a jelenség. Nekem akkor szokott előjönni, amikor (még IET-s targettel) localhostra akarok csatlakozni az initiatorral. Tesztelésnél időnként jól jön, ha ilyet lehet csinálni. Na akkor az initiator mindig két példányban kapja vissza a targetet, mert az 127.0.0.1-es IP-n és az eth0 IP-jén is hallgatózik.
Csak iSCSI-ra használtam idáig SCST-t, FC-targetet nem csináltam még sosem. Ettől függetlenül meg lehetne próbálni ezt: korlátozd initiators.allow/deny fájlokból az initiator IP-jét. Ilyenkor az engedélyezett initiator IP alhálózatába nem tartozó IP címen hiába listenel a target, ott nem fogja a discovery visszaadni a target azonosítóját. Nem 100%, hogy ez most is be fog jönni, de talán érdemes megpróbálni.
---
Internet Memetikai Tanszék
- A hozzászóláshoz be kell jelentkezni
multipath?
- A hozzászóláshoz be kell jelentkezni
Kösz' de nem.
Semmi ilyesmi nincs amúgy telepítve egyik gépre sem.
Külön érdekes, ha az ember épít egy külön storage hálózatot, mellette ott van még a rendes net-felé kilátó hálózat, és a drága iscsi-scstd ott is figyel, külön kérés nélkül.
Mint írtam, a target gépen be van kapcsolva az IP forwarding, így lehet, hogy ezért tudja az initiator felfedezni a targetet mindhárom IP címmel.
Viszont IP forwardingtól függetlenül a iscsi-scstd mindegyik interfészre felbindolt.
Ha multipath-os storage-et építenék, akkor is lenne olyan interfész, amire nem kellene felbindolnia a target-szoftvernek. A démonnak pedig, ha jól sejtem csak egy IP címet lehet megadni a --address=<IP> opcióval, így pedig a multipath működés esne kútba, ha jól gondolom.
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.
Slackware Linux 13.1 | 2.6.34.1-janos
- A hozzászóláshoz be kell jelentkezni
értem .....
- A hozzászóláshoz be kell jelentkezni