|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-users] [SCRIPT] Using iSCSI in your xen setup
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Hi, This is my first version of the block-iscsi script. Easy to setup, easy to work with. > #general > name = "skinkie_gentoo_old"; > memory = 256; > > # booting > kernel = "/home/skinkie/xen/boot/gentoo"; > > # virtual harddisk > disk = [ > "iscsi:/dev/disk/by-path/ip-192.168.0.2:3260-iscsi-iqn.1986-03.com.sun:02:c6719b9f-7993-444d-c6d2-80d4e15ee52c-lun-0,hda,w" > ]; > root = "/dev/hda ro" The script parses the structure used by udev, so it will extract the IP address and ISCSI target from the parameter. It starts a discovery based on the IP target, login to the server upon create/migration. And logout from the server is the domain is migrated or destroyed. The sleep in the script could probably reduced to 1 or 2 seconds, but udev needs to populate the /dev/disk/by-path directory. It borks without the wait. Probably next implementations will include a returncode, with a prettier wait function. Yes, it lacks basic chap/pap authentication but since nothing was provided, it is a nice first attempt to get ISCSI to work in the Xen opensource environment. It assumes you don't use the same iscsi target anywhere else otherwise you will have a problem upon destroy ;) Howto install: copy the script to /etc/xen/scripts/ and make it executable with chmod +x block-iscsi. My setup now: Gentoo Linux NFS client (Xen Node) Gentoo Linux Development (Provides DHCP/PXE boot/Monitoring) OpenSolaris with ZFS (Provides iSCSI/NFS storage) Upon start the NFS client registers itself with the Monitoring server to join the to be monitored pool and gets a callback from the XenAPI. Stefan -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.7 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHSfouYH1+F2Rqwn0RClo1AJ9JHN2ocYp8E0O1lrb43XfbLlkN2gCfeCSb Sx0ThJa/lDQWGvmbz2HNZHI= =VHIr -----END PGP SIGNATURE----- #!/bin/bash
# Usage: block-iscsi
dir=$(dirname "$0")
. "$dir/block-common.sh"
p=$(xenstore_read "$XENBUS_PATH/params")
udev=`basename $p`
ip=`echo $udev | sed "s/ip-\(.*\)-iscsi.*/\1/g"`
target=`echo $udev | sed "s/.*iscsi-\(.*\)-lun.*/\1/g"`
case "$command" in
add)
if [ ! -a $p ]
then
/usr/sbin/iscsiadm -m discovery -t sendtargets -p $ip
/usr/sbin/iscsiadm -m node -T $target -p $ip --login
sleep 4
fi
if [ -a $p ]
then
write_dev $p
exit 0
fi
exit 1
;;
remove)
if [ -a $p ]
then
/usr/sbin/iscsiadm -m node -T $target -p $ip --logout
fi
exit 0
;;
esac
_______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-users
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |