[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.