openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #13012
Re: ZFS/ZVol + iscsi for volume
Nicolas,
it makes a lot of sense what you want to do. ZFS+iSCSI is a perfect fit for
vm storage, some other IaaS solutions already use this combination (and I
have developed some). Keep in mind that Nexenta is only a distro based upon
OpenSolaris: OpenIndiana, FreeBSD... there are a lot of options with ZFS.
There are several things you should consider to implement this feature:
1) The code that matters is mostly in nova/virt/libvirt/connection.py for
libvirt
2) You need to implement a new storage type: iscsi (
http://libvirt.org/storage.html#StorageBackendISCSI)
3) You need to implement a feature to block-copy the source image to the
backend iscsi storage
4) _cache_image method and most of _create_image should be developed
thinking in 3)
I think the only reason to implement this feature is to develop a highly
scalable storage system for instances, so a single storage system does not
make sense. It should be able to manage a list storage systems as a pool
and load balance them.
Some quick thoughts, good luck!
Diego
--
Diego Parrilla
<http://www.stackops.com/>*CEO*
*www.stackops.com | * diego.parrilla@xxxxxxxxxxxx** | +34 649 94 43 29 |
skype:diegoparrilla*
* <http://www.stackops.com/>
*
*
On Sun, Jun 10, 2012 at 11:15 AM, Nicolas de BONFILS <
openstack@xxxxxxxxxxxxxxxxxxx> wrote:
> **
>
> Hi Stackers,
>
> I got an idea/question about iscsi volume.
>
> Actually the workflow is :
>
>
> 1. create an LVM pool
> 2. create a volume in this pool (with nova command or horizon UI)
> 3. share it with an iscsi target (the compute/volume node)
> 4. attach it with an iscsi initiator (the VM)
>
> I use zfs for other project, and I'm very interested in using it
> everywhere (when possible). One functionality zfs bring is zvol : it allows
> to create a block device from a zfs pool (a zfs property allow to share
> this device with iscsi).
> With this, a new workflow will be :
>
> 1. create a zfs pool (zpool create <name> <device>)
> 2. create a zvol block device (zfs create -V <size>
> <poolname>/<volumename>)
> 3. set the zfs property to share it with iscsi (zfs set shareiscsi=on
> <poolname>/<volumename>)
> 4. attach it with an iscsi initiator (the VM)
>
> From what I read, the Nexenta guys do a lot of work around zfs, but for
> volume use I only found code to plug a Nexenta san (I do not have the
> hardware to build a san), but no solution to use zfs drive/pool directly.
> So my 2 questions are :
>
> 1. are some people interested in it ?
> 2. does it seem possible to do it (maybe some one already try) ? Nova
> volume driver [github.com<https://github.com/openstack/nova/blob/master/nova/volume/driver.py>]
> got subclasses for specific cases, maybe a new zfs one.
>
>
>
> Please discuss, submit ideas !
>
> --- Nicolas
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help : https://help.launchpad.net/ListHelp
>
>
Follow ups
References