[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 |