Better to wire up the lun directly to the vm unless there is a good reason not to. On Sep 13, 2013 7:40 PM, "Marcus Sorensen" <shadow...@gmail.com> wrote:
> You could do that, but as mentioned I think its a mistake to go to the > trouble of creating a 1:1 mapping of CS volumes to luns and then putting a > filesystem on it, mounting it, and then putting a QCOW2 or even RAW disk > image on that filesystem. You'll lose a lot of iops along the way, and have > more overhead with the filesystem and its journaling, etc. > On Sep 13, 2013 7:33 PM, "Mike Tutkowski" <mike.tutkow...@solidfire.com> > wrote: > >> Ah, OK, I didn't know that was such new ground in KVM with CS. >> >> So, the way people use our SAN with KVM and CS today is by selecting >> SharedMountPoint and specifying the location of the share. >> >> They can set up their share using Open iSCSI by discovering their iSCSI >> target, logging in to it, then mounting it somewhere on their file system. >> >> Would it make sense for me to just do that discovery, logging in, and >> mounting behind the scenes for them and letting the current code manage the >> rest as it currently does? >> >> >> On Fri, Sep 13, 2013 at 7:27 PM, Marcus Sorensen <shadow...@gmail.com>wrote: >> >>> Oh, hypervisor snapshots are a bit different. I need to catch up on the >>> work done in KVM, but this is basically just disk snapshots + memory dump. >>> I still think disk snapshots would preferably be handled by the SAN, and >>> then memory dumps can go to secondary storage or something else. This is >>> relatively new ground with CS and KVM, so we will want to see how others >>> are planning theirs. >>> On Sep 13, 2013 7:20 PM, "Marcus Sorensen" <shadow...@gmail.com> wrote: >>> >>>> Let me back up and say I don't think you'd use a vdi style on an iscsi >>>> lun. I think you'd want to treat it as a RAW format. Otherwise you're >>>> putting a filesystem on your lun, mounting it, creating a QCOW2 disk image, >>>> and that seems unnecessary and a performance killer. >>>> >>>> So probably attaching the raw iscsi lun as a disk to the VM, and >>>> handling snapshots on the San side via the storage plugin is best. My >>>> impression from the storage plugin refactor was that there was a snapshot >>>> service that would allow the San to handle snapshots. >>>> On Sep 13, 2013 7:15 PM, "Marcus Sorensen" <shadow...@gmail.com> wrote: >>>> >>>>> Ideally volume snapshots can be handled by the SAN back end, if the >>>>> SAN supports it. The cloudstack mgmt server could call your plugin for >>>>> volume snapshot and it would be hypervisor agnostic. As far as space, that >>>>> would depend on how your SAN handles it. With ours, we carve out luns from >>>>> a pool, and the snapshot spave comes from the pool and is independent of >>>>> the LUN size the host sees. >>>>> On Sep 13, 2013 7:10 PM, "Mike Tutkowski" < >>>>> mike.tutkow...@solidfire.com> wrote: >>>>> >>>>>> Hey Marcus, >>>>>> >>>>>> I wonder if the iSCSI storage pool type for libvirt won't work when >>>>>> you take into consideration hypervisor snapshots? >>>>>> >>>>>> On XenServer, when you take a hypervisor snapshot, the VDI for the >>>>>> snapshot is placed on the same storage repository as the volume is on. >>>>>> >>>>>> Same idea for VMware, I believe. >>>>>> >>>>>> So, what would happen in my case (let's say for XenServer and VMware >>>>>> for 4.3 because I don't support hypervisor snapshots in 4.2) is I'd make >>>>>> an >>>>>> iSCSI target that is larger than what the user requested for the >>>>>> CloudStack >>>>>> volume (which is fine because our SAN thinly provisions volumes, so the >>>>>> space is not actually used unless it needs to be). The CloudStack volume >>>>>> would be the only "object" on the SAN volume until a hypervisor snapshot >>>>>> is >>>>>> taken. This snapshot would also reside on the SAN volume. >>>>>> >>>>>> If this is also how KVM behaves and there is no creation of LUNs >>>>>> within an iSCSI target from libvirt (which, even if there were support >>>>>> for >>>>>> this, our SAN currently only allows one LUN per iSCSI target), then I >>>>>> don't >>>>>> see how using this model will work. >>>>>> >>>>>> Perhaps I will have to go enhance the current way this works with DIR? >>>>>> >>>>>> What do you think? >>>>>> >>>>>> Thanks >>>>>> >>>>>> >>>>>> >>>>>> On Fri, Sep 13, 2013 at 6:28 PM, Mike Tutkowski < >>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>> >>>>>>> That appears to be the way it's used for iSCSI access today. >>>>>>> >>>>>>> I suppose I could go that route, too, but I might as well leverage >>>>>>> what libvirt has for iSCSI instead. >>>>>>> >>>>>>> >>>>>>> On Fri, Sep 13, 2013 at 6:26 PM, Marcus Sorensen < >>>>>>> shadow...@gmail.com> wrote: >>>>>>> >>>>>>>> To your question about SharedMountPoint, I believe it just acts >>>>>>>> like a >>>>>>>> 'DIR' storage type or something similar to that. The end-user is >>>>>>>> responsible for mounting a file system that all KVM hosts can >>>>>>>> access, >>>>>>>> and CloudStack is oblivious to what is providing the storage. It >>>>>>>> could >>>>>>>> be NFS, or OCFS2, or some other clustered filesystem, cloudstack >>>>>>>> just >>>>>>>> knows that the provided directory path has VM images. >>>>>>>> >>>>>>>> On Fri, Sep 13, 2013 at 6:23 PM, Marcus Sorensen < >>>>>>>> shadow...@gmail.com> wrote: >>>>>>>> > Oh yes, you can use NFS, LVM, and iSCSI all at the same time. >>>>>>>> > Multiples, in fact. >>>>>>>> > >>>>>>>> > On Fri, Sep 13, 2013 at 6:19 PM, Mike Tutkowski >>>>>>>> > <mike.tutkow...@solidfire.com> wrote: >>>>>>>> >> Looks like you can have multiple storage pools: >>>>>>>> >> >>>>>>>> >> mtutkowski@ubuntu:~$ virsh pool-list >>>>>>>> >> Name State Autostart >>>>>>>> >> ----------------------------------------- >>>>>>>> >> default active yes >>>>>>>> >> iSCSI active no >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> On Fri, Sep 13, 2013 at 6:12 PM, Mike Tutkowski >>>>>>>> >> <mike.tutkow...@solidfire.com> wrote: >>>>>>>> >>> >>>>>>>> >>> Reading through the docs you pointed out. >>>>>>>> >>> >>>>>>>> >>> I see what you're saying now. >>>>>>>> >>> >>>>>>>> >>> You can create an iSCSI (libvirt) storage pool based on an >>>>>>>> iSCSI target. >>>>>>>> >>> >>>>>>>> >>> In my case, the iSCSI target would only have one LUN, so there >>>>>>>> would only >>>>>>>> >>> be one iSCSI (libvirt) storage volume in the (libvirt) storage >>>>>>>> pool. >>>>>>>> >>> >>>>>>>> >>> As you say, my plug-in creates and destroys iSCSI targets/LUNs >>>>>>>> on the >>>>>>>> >>> SolidFire SAN, so it is not a problem that libvirt does not >>>>>>>> support >>>>>>>> >>> creating/deleting iSCSI targets/LUNs. >>>>>>>> >>> >>>>>>>> >>> It looks like I need to test this a bit to see if libvirt >>>>>>>> supports >>>>>>>> >>> multiple iSCSI storage pools (as you mentioned, since each one >>>>>>>> of its >>>>>>>> >>> storage pools would map to one of my iSCSI targets/LUNs). >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> >>> On Fri, Sep 13, 2013 at 5:58 PM, Mike Tutkowski >>>>>>>> >>> <mike.tutkow...@solidfire.com> wrote: >>>>>>>> >>>> >>>>>>>> >>>> LibvirtStoragePoolDef has this type: >>>>>>>> >>>> >>>>>>>> >>>> public enum poolType { >>>>>>>> >>>> >>>>>>>> >>>> ISCSI("iscsi"), NETFS("netfs"), LOGICAL("logical"), >>>>>>>> DIR("dir"), >>>>>>>> >>>> RBD("rbd"); >>>>>>>> >>>> >>>>>>>> >>>> String _poolType; >>>>>>>> >>>> >>>>>>>> >>>> poolType(String poolType) { >>>>>>>> >>>> >>>>>>>> >>>> _poolType = poolType; >>>>>>>> >>>> >>>>>>>> >>>> } >>>>>>>> >>>> >>>>>>>> >>>> @Override >>>>>>>> >>>> >>>>>>>> >>>> public String toString() { >>>>>>>> >>>> >>>>>>>> >>>> return _poolType; >>>>>>>> >>>> >>>>>>>> >>>> } >>>>>>>> >>>> >>>>>>>> >>>> } >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> It doesn't look like the iSCSI type is currently being used, >>>>>>>> but I'm >>>>>>>> >>>> understanding more what you were getting at. >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> Can you tell me for today (say, 4.2), when someone selects the >>>>>>>> >>>> SharedMountPoint option and uses it with iSCSI, is that the >>>>>>>> "netfs" option >>>>>>>> >>>> above or is that just for NFS? >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> Thanks! >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> On Fri, Sep 13, 2013 at 5:50 PM, Marcus Sorensen < >>>>>>>> shadow...@gmail.com> >>>>>>>> >>>> wrote: >>>>>>>> >>>>> >>>>>>>> >>>>> Take a look at this: >>>>>>>> >>>>> >>>>>>>> >>>>> http://libvirt.org/storage.html#StorageBackendISCSI >>>>>>>> >>>>> >>>>>>>> >>>>> "Volumes must be pre-allocated on the iSCSI server, and >>>>>>>> cannot be >>>>>>>> >>>>> created via the libvirt APIs.", which I believe your plugin >>>>>>>> will take >>>>>>>> >>>>> care of. Libvirt just does the work of logging in and hooking >>>>>>>> it up to >>>>>>>> >>>>> the VM (I believe the Xen api does that work in the Xen >>>>>>>> stuff). >>>>>>>> >>>>> >>>>>>>> >>>>> What I'm not sure about is whether this provides a 1:1 >>>>>>>> mapping, or if >>>>>>>> >>>>> it just allows you to register 1 iscsi device as a pool. You >>>>>>>> may need >>>>>>>> >>>>> to write some test code or read up a bit more about this. Let >>>>>>>> us know. >>>>>>>> >>>>> If it doesn't, you may just have to write your own storage >>>>>>>> adaptor >>>>>>>> >>>>> rather than changing LibvirtStorageAdaptor.java. We can >>>>>>>> cross that >>>>>>>> >>>>> bridge when we get there. >>>>>>>> >>>>> >>>>>>>> >>>>> As far as interfacing with libvirt, see the java bindings doc. >>>>>>>> >>>>> http://libvirt.org/sources/java/javadoc/ Normally, you'll >>>>>>>> see a >>>>>>>> >>>>> connection object be made, then calls made to that 'conn' >>>>>>>> object. You >>>>>>>> >>>>> can look at the LibvirtStorageAdaptor to see how that is done >>>>>>>> for >>>>>>>> >>>>> other pool types, and maybe write some test java code to see >>>>>>>> if you >>>>>>>> >>>>> can interface with libvirt and register iscsi storage pools >>>>>>>> before you >>>>>>>> >>>>> get started. >>>>>>>> >>>>> >>>>>>>> >>>>> On Fri, Sep 13, 2013 at 5:31 PM, Mike Tutkowski >>>>>>>> >>>>> <mike.tutkow...@solidfire.com> wrote: >>>>>>>> >>>>> > So, Marcus, I need to investigate libvirt more, but you >>>>>>>> figure it >>>>>>>> >>>>> > supports >>>>>>>> >>>>> > connecting to/disconnecting from iSCSI targets, right? >>>>>>>> >>>>> > >>>>>>>> >>>>> > >>>>>>>> >>>>> > On Fri, Sep 13, 2013 at 5:29 PM, Mike Tutkowski >>>>>>>> >>>>> > <mike.tutkow...@solidfire.com> wrote: >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> OK, thanks, Marcus >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> I am currently looking through some of the classes you >>>>>>>> pointed out >>>>>>>> >>>>> >> last >>>>>>>> >>>>> >> week or so. >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> On Fri, Sep 13, 2013 at 5:26 PM, Marcus Sorensen >>>>>>>> >>>>> >> <shadow...@gmail.com> >>>>>>>> >>>>> >> wrote: >>>>>>>> >>>>> >>> >>>>>>>> >>>>> >>> Yes, my guess is that you will need the iscsi initiator >>>>>>>> utilities >>>>>>>> >>>>> >>> installed. There should be standard packages for any >>>>>>>> distro. Then >>>>>>>> >>>>> >>> you'd call >>>>>>>> >>>>> >>> an agent storage adaptor to do the initiator login. See >>>>>>>> the info I >>>>>>>> >>>>> >>> sent >>>>>>>> >>>>> >>> previously about LibvirtStorageAdaptor.java and libvirt >>>>>>>> iscsi >>>>>>>> >>>>> >>> storage type >>>>>>>> >>>>> >>> to see if that fits your need. >>>>>>>> >>>>> >>> >>>>>>>> >>>>> >>> On Sep 13, 2013 4:55 PM, "Mike Tutkowski" >>>>>>>> >>>>> >>> <mike.tutkow...@solidfire.com> >>>>>>>> >>>>> >>> wrote: >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> Hi, >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> As you may remember, during the 4.2 release I developed >>>>>>>> a SolidFire >>>>>>>> >>>>> >>>> (storage) plug-in for CloudStack. >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> This plug-in was invoked by the storage framework at the >>>>>>>> necessary >>>>>>>> >>>>> >>>> times >>>>>>>> >>>>> >>>> so that I could dynamically create and delete volumes on >>>>>>>> the >>>>>>>> >>>>> >>>> SolidFire SAN >>>>>>>> >>>>> >>>> (among other activities). >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> This is necessary so I can establish a 1:1 mapping >>>>>>>> between a >>>>>>>> >>>>> >>>> CloudStack >>>>>>>> >>>>> >>>> volume and a SolidFire volume for QoS. >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> In the past, CloudStack always expected the admin to >>>>>>>> create large >>>>>>>> >>>>> >>>> volumes ahead of time and those volumes would likely >>>>>>>> house many >>>>>>>> >>>>> >>>> root and >>>>>>>> >>>>> >>>> data disks (which is not QoS friendly). >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> To make this 1:1 mapping scheme work, I needed to modify >>>>>>>> logic in >>>>>>>> >>>>> >>>> the >>>>>>>> >>>>> >>>> XenServer and VMware plug-ins so they could >>>>>>>> create/delete storage >>>>>>>> >>>>> >>>> repositories/datastores as needed. >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> For 4.3 I want to make this happen with KVM. >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> I'm coming up to speed with how this might work on KVM, >>>>>>>> but I'm >>>>>>>> >>>>> >>>> still >>>>>>>> >>>>> >>>> pretty new to KVM. >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> Does anyone familiar with KVM know how I will need to >>>>>>>> interact with >>>>>>>> >>>>> >>>> the >>>>>>>> >>>>> >>>> iSCSI target? For example, will I have to expect Open >>>>>>>> iSCSI will be >>>>>>>> >>>>> >>>> installed on the KVM host and use it for this to work? >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> Thanks for any suggestions, >>>>>>>> >>>>> >>>> Mike >>>>>>>> >>>>> >>>> >>>>>>>> >>>>> >>>> -- >>>>>>>> >>>>> >>>> Mike Tutkowski >>>>>>>> >>>>> >>>> Senior CloudStack Developer, SolidFire Inc. >>>>>>>> >>>>> >>>> e: mike.tutkow...@solidfire.com >>>>>>>> >>>>> >>>> o: 303.746.7302 >>>>>>>> >>>>> >>>> Advancing the way the world uses the cloud™ >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> >>>>>>>> >>>>> >> -- >>>>>>>> >>>>> >> Mike Tutkowski >>>>>>>> >>>>> >> Senior CloudStack Developer, SolidFire Inc. >>>>>>>> >>>>> >> e: mike.tutkow...@solidfire.com >>>>>>>> >>>>> >> o: 303.746.7302 >>>>>>>> >>>>> >> Advancing the way the world uses the cloud™ >>>>>>>> >>>>> > >>>>>>>> >>>>> > >>>>>>>> >>>>> > >>>>>>>> >>>>> > >>>>>>>> >>>>> > -- >>>>>>>> >>>>> > Mike Tutkowski >>>>>>>> >>>>> > Senior CloudStack Developer, SolidFire Inc. >>>>>>>> >>>>> > e: mike.tutkow...@solidfire.com >>>>>>>> >>>>> > o: 303.746.7302 >>>>>>>> >>>>> > Advancing the way the world uses the cloud™ >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> >>>>>>>> >>>> -- >>>>>>>> >>>> Mike Tutkowski >>>>>>>> >>>> Senior CloudStack Developer, SolidFire Inc. >>>>>>>> >>>> e: mike.tutkow...@solidfire.com >>>>>>>> >>>> o: 303.746.7302 >>>>>>>> >>>> Advancing the way the world uses the cloud™ >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> >>> >>>>>>>> >>> -- >>>>>>>> >>> Mike Tutkowski >>>>>>>> >>> Senior CloudStack Developer, SolidFire Inc. >>>>>>>> >>> e: mike.tutkow...@solidfire.com >>>>>>>> >>> o: 303.746.7302 >>>>>>>> >>> Advancing the way the world uses the cloud™ >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> -- >>>>>>>> >> Mike Tutkowski >>>>>>>> >> Senior CloudStack Developer, SolidFire Inc. >>>>>>>> >> e: mike.tutkow...@solidfire.com >>>>>>>> >> o: 303.746.7302 >>>>>>>> >> Advancing the way the world uses the cloud™ >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Mike Tutkowski* >>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>> e: mike.tutkow...@solidfire.com >>>>>>> o: 303.746.7302 >>>>>>> Advancing the way the world uses the >>>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>>> *™* >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Mike Tutkowski* >>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>> e: mike.tutkow...@solidfire.com >>>>>> o: 303.746.7302 >>>>>> Advancing the way the world uses the >>>>>> cloud<http://solidfire.com/solution/overview/?video=play> >>>>>> *™* >>>>>> >>>>> >> >> >> -- >> *Mike Tutkowski* >> *Senior CloudStack Developer, SolidFire Inc.* >> e: mike.tutkow...@solidfire.com >> o: 303.746.7302 >> Advancing the way the world uses the >> cloud<http://solidfire.com/solution/overview/?video=play> >> *™* >> >