What you're saying here is definitely something we should talk about. Hopefully my previous e-mail has clarified how this works a bit.
It mainly comes down to this: For the first time in CS history, primary storage is no longer required to be preallocated by the admin and then handed to CS. CS volumes don't have to share a preallocated volume anymore. As of 4.2, primary storage can be based on a SAN (or some other storage device). You can tell CS how many bytes and IOPS to use from this storage device and CS invokes the appropriate plug-in to carve out LUNs dynamically. Each LUN is home to one and only one data disk. Data disks - in this model - never share a LUN. The main use case for this is so a CS volume can deliver guaranteed IOPS if the storage device (ex. SolidFire SAN) delivers guaranteed IOPS on a LUN-by-LUN basis. On Tue, Sep 17, 2013 at 10:16 PM, Marcus Sorensen <shadow...@gmail.com>wrote: > I guess whether or not a solidfire device is capable of hosting > multiple disk pools is irrelevant, we'd hope that we could get the > stats (maybe 30TB availabie, and 15TB allocated in LUNs). But if these > stats aren't collected, I can't as an admin define multiple pools and > expect cloudstack to allocate evenly from them or fill one up and move > to the next, because it doesn't know how big it is. > > Ultimately this discussion has nothing to do with the KVM stuff > itself, just a tangent, but something to think about. > > On Tue, Sep 17, 2013 at 10:13 PM, Marcus Sorensen <shadow...@gmail.com> > wrote: > > Ok, on most storage pools it shows how many GB free/used when listing > > the pool both via API and in the UI. I'm guessing those are empty then > > for the solid fire storage, but it seems like the user should have to > > define some sort of pool that the luns get carved out of, and you > > should be able to get the stats for that, right? Or is a solid fire > > appliance only one pool per appliance? This isn't about billing, but > > just so cloudstack itself knows whether or not there is space left on > > the storage device, so cloudstack can go on allocating from a > > different primary storage as this one fills up. There are also > > notifications and things. It seems like there should be a call you can > > handle for this, maybe Edison knows. > > > > On Tue, Sep 17, 2013 at 8:46 PM, Marcus Sorensen <shadow...@gmail.com> > wrote: > >> You respond to more than attach and detach, right? Don't you create > luns as > >> well? Or are you just referring to the hypervisor stuff? > >> > >> On Sep 17, 2013 7:51 PM, "Mike Tutkowski" <mike.tutkow...@solidfire.com > > > >> wrote: > >>> > >>> Hi Marcus, > >>> > >>> I never need to respond to a CreateStoragePool call for either > XenServer > >>> or > >>> VMware. > >>> > >>> What happens is I respond only to the Attach- and Detach-volume > commands. > >>> > >>> Let's say an attach comes in: > >>> > >>> In this case, I check to see if the storage is "managed." Talking > >>> XenServer > >>> here, if it is, I log in to the LUN that is the disk we want to attach. > >>> After, if this is the first time attaching this disk, I create an SR > and a > >>> VDI within the SR. If it is not the first time attaching this disk, the > >>> LUN > >>> already has the SR and VDI on it. > >>> > >>> Once this is done, I let the normal "attach" logic run because this > logic > >>> expected an SR and a VDI and now it has it. > >>> > >>> It's the same thing for VMware: Just substitute datastore for SR and > VMDK > >>> for VDI. > >>> > >>> Does that make sense? > >>> > >>> Thanks! > >>> > >>> > >>> On Tue, Sep 17, 2013 at 7:34 PM, Marcus Sorensen > >>> <shadow...@gmail.com>wrote: > >>> > >>> > What do you do with Xen? I imagine the user enter the SAN details > when > >>> > registering the pool? A the pool details are basically just > instructions > >>> > on > >>> > how to log into a target, correct? > >>> > > >>> > You can choose to log in a KVM host to the target during > >>> > createStoragePool > >>> > and save the pool in a map, or just save the pool info in a map for > >>> > future > >>> > reference by uuid, for when you do need to log in. The > createStoragePool > >>> > then just becomes a way to save the pool info to the agent. > Personally, > >>> > I'd > >>> > log in on the pool create and look/scan for specific luns when > they're > >>> > needed, but I haven't thought it through thoroughly. I just say that > >>> > mainly > >>> > because login only happens once, the first time the pool is used, and > >>> > every > >>> > other storage command is about discovering new luns or maybe > >>> > deleting/disconnecting luns no longer needed. On the other hand, you > >>> > could > >>> > do all of the above: log in on pool create, then also check if you're > >>> > logged in on other commands and log in if you've lost connection. > >>> > > >>> > With Xen, what does your registered pool show in the UI for > avail/used > >>> > capacity, and how does it get that info? I assume there is some sort > of > >>> > disk pool that the luns are carved from, and that your plugin is > called > >>> > to > >>> > talk to the SAN and expose to the user how much of that pool has been > >>> > allocated. Knowing how you already solves these problems with Xen > will > >>> > help > >>> > figure out what to do with KVM. > >>> > > >>> > If this is the case, I think the plugin can continue to handle it > rather > >>> > than getting details from the agent. I'm not sure if that means nulls > >>> > are > >>> > OK for these on the agent side or what, I need to look at the storage > >>> > plugin arch more closely. > >>> > On Sep 17, 2013 7:08 PM, "Mike Tutkowski" < > mike.tutkow...@solidfire.com> > >>> > wrote: > >>> > > >>> > > Hey Marcus, > >>> > > > >>> > > I'm reviewing your e-mails as I implement the necessary methods in > new > >>> > > classes. > >>> > > > >>> > > "So, referencing StorageAdaptor.java, createStoragePool accepts > all of > >>> > > the pool data (host, port, name, path) which would be used to log > the > >>> > > host into the initiator." > >>> > > > >>> > > Can you tell me, in my case, since a storage pool (primary > storage) is > >>> > > actually the SAN, I wouldn't really be logging into anything at > this > >>> > point, > >>> > > correct? > >>> > > > >>> > > Also, what kind of capacity, available, and used bytes make sense > to > >>> > report > >>> > > for KVMStoragePool (since KVMStoragePool represents the SAN in my > case > >>> > and > >>> > > not an individual LUN)? > >>> > > > >>> > > Thanks! > >>> > > > >>> > > > >>> > > On Fri, Sep 13, 2013 at 11:42 PM, Marcus Sorensen < > shadow...@gmail.com > >>> > > >wrote: > >>> > > > >>> > > > Ok, KVM will be close to that, of course, because only the > >>> > > > hypervisor > >>> > > > classes differ, the rest is all mgmt server. Creating a volume is > >>> > > > just > >>> > > > a db entry until it's deployed for the first time. > >>> > > > AttachVolumeCommand > >>> > > > on the agent side (LibvirtStorageAdaptor.java is analogous to > >>> > > > CitrixResourceBase.java) will do the iscsiadm commands (via a KVM > >>> > > > StorageAdaptor) to log in the host to the target and then you > have a > >>> > > > block device. Maybe libvirt will do that for you, but my quick > read > >>> > > > made it sound like the iscsi libvirt pool type is actually a > pool, > >>> > > > not > >>> > > > a lun or volume, so you'll need to figure out if that works or if > >>> > > > you'll have to use iscsiadm commands. > >>> > > > > >>> > > > If you're NOT going to use LibvirtStorageAdaptor (because Libvirt > >>> > > > doesn't really manage your pool the way you want), you're going > to > >>> > > > have to create a version of KVMStoragePool class and a > >>> > > > StorageAdaptor > >>> > > > class (see LibvirtStoragePool.java and > LibvirtStorageAdaptor.java), > >>> > > > implementing all of the methods, then in KVMStorageManager.java > >>> > > > there's a "_storageMapper" map. This is used to select the > correct > >>> > > > adaptor, you can see in this file that every call first pulls the > >>> > > > correct adaptor out of this map via getStorageAdaptor. So you can > >>> > > > see > >>> > > > a comment in this file that says "add other storage adaptors > here", > >>> > > > where it puts to this map, this is where you'd register your > >>> > > > adaptor. > >>> > > > > >>> > > > So, referencing StorageAdaptor.java, createStoragePool accepts > all > >>> > > > of > >>> > > > the pool data (host, port, name, path) which would be used to log > >>> > > > the > >>> > > > host into the initiator. I *believe* the method getPhysicalDisk > will > >>> > > > need to do the work of attaching the lun. AttachVolumeCommand > calls > >>> > > > this and then creates the XML diskdef and attaches it to the VM. > >>> > > > Now, > >>> > > > one thing you need to know is that createStoragePool is called > >>> > > > often, > >>> > > > sometimes just to make sure the pool is there. You may want to > >>> > > > create > >>> > > > a map in your adaptor class and keep track of pools that have > been > >>> > > > created, LibvirtStorageAdaptor doesn't have to do this because it > >>> > > > asks > >>> > > > libvirt about which storage pools exist. There are also calls to > >>> > > > refresh the pool stats, and all of the other calls can be seen in > >>> > > > the > >>> > > > StorageAdaptor as well. There's a createPhysical disk, clone, > etc, > >>> > > > but > >>> > > > it's probably a hold-over from 4.1, as I have the vague idea that > >>> > > > volumes are created on the mgmt server via the plugin now, so > >>> > > > whatever > >>> > > > doesn't apply can just be stubbed out (or optionally > >>> > > > extended/reimplemented here, if you don't mind the hosts talking > to > >>> > > > the san api). > >>> > > > > >>> > > > There is a difference between attaching new volumes and > launching a > >>> > > > VM > >>> > > > with existing volumes. In the latter case, the VM definition > that > >>> > > > was > >>> > > > passed to the KVM agent includes the disks, (StartCommand). > >>> > > > > >>> > > > I'd be interested in how your pool is defined for Xen, I imagine > it > >>> > > > would need to be kept the same. Is it just a definition to the > SAN > >>> > > > (ip address or some such, port number) and perhaps a volume pool > >>> > > > name? > >>> > > > > >>> > > > > If there is a way for me to update the ACL list on the SAN to > have > >>> > > only a > >>> > > > > single KVM host have access to the volume, that would be ideal. > >>> > > > > >>> > > > That depends on your SAN API. I was under the impression that > the > >>> > > > storage plugin framework allowed for acls, or for you to do > whatever > >>> > > > you want for create/attach/delete/snapshot, etc. You'd just call > >>> > > > your > >>> > > > SAN API with the host info for the ACLs prior to when the disk is > >>> > > > attached (or the VM is started). I'd have to look more at the > >>> > > > framework to know the details, in 4.1 I would do this in > >>> > > > getPhysicalDisk just prior to connecting up the LUN. > >>> > > > > >>> > > > > >>> > > > On Fri, Sep 13, 2013 at 10:27 PM, Mike Tutkowski > >>> > > > <mike.tutkow...@solidfire.com> wrote: > >>> > > > > OK, yeah, the ACL part will be interesting. That is a bit > >>> > > > > different > >>> > > from > >>> > > > how > >>> > > > > it works with XenServer and VMware. > >>> > > > > > >>> > > > > Just to give you an idea how it works in 4.2 with XenServer: > >>> > > > > > >>> > > > > * The user creates a CS volume (this is just recorded in the > >>> > > > cloud.volumes > >>> > > > > table). > >>> > > > > > >>> > > > > * The user attaches the volume as a disk to a VM for the first > >>> > > > > time > >>> > (if > >>> > > > the > >>> > > > > storage allocator picks the SolidFire plug-in, the storage > >>> > > > > framework > >>> > > > invokes > >>> > > > > a method on the plug-in that creates a volume on the SAN...info > >>> > > > > like > >>> > > the > >>> > > > IQN > >>> > > > > of the SAN volume is recorded in the DB). > >>> > > > > > >>> > > > > * CitrixResourceBase's execute(AttachVolumeCommand) is > executed. > >>> > > > > It > >>> > > > > determines based on a flag passed in that the storage in > question > >>> > > > > is > >>> > > > > "CloudStack-managed" storage (as opposed to "traditional" > >>> > preallocated > >>> > > > > storage). This tells it to discover the iSCSI target. Once > >>> > > > > discovered > >>> > > it > >>> > > > > determines if the iSCSI target already contains a storage > >>> > > > > repository > >>> > > (it > >>> > > > > would if this were a re-attach situation). If it does contain > an > >>> > > > > SR > >>> > > > already, > >>> > > > > then there should already be one VDI, as well. If there is no > SR, > >>> > > > > an > >>> > SR > >>> > > > is > >>> > > > > created and a single VDI is created within it (that takes up > about > >>> > > > > as > >>> > > > much > >>> > > > > space as was requested for the CloudStack volume). > >>> > > > > > >>> > > > > * The normal attach-volume logic continues (it depends on the > >>> > existence > >>> > > > of > >>> > > > > an SR and a VDI). > >>> > > > > > >>> > > > > The VMware case is essentially the same (mainly just substitute > >>> > > datastore > >>> > > > > for SR and VMDK for VDI). > >>> > > > > > >>> > > > > In both cases, all hosts in the cluster have discovered the > iSCSI > >>> > > target, > >>> > > > > but only the host that is currently running the VM that is > using > >>> > > > > the > >>> > > VDI > >>> > > > (or > >>> > > > > VMKD) is actually using the disk. > >>> > > > > > >>> > > > > Live Migration should be OK because the hypervisors communicate > >>> > > > > with > >>> > > > > whatever metadata they have on the SR (or datastore). > >>> > > > > > >>> > > > > I see what you're saying with KVM, though. > >>> > > > > > >>> > > > > In that case, the hosts are clustered only in CloudStack's > eyes. > >>> > > > > CS > >>> > > > controls > >>> > > > > Live Migration. You don't really need a clustered filesystem on > >>> > > > > the > >>> > > LUN. > >>> > > > The > >>> > > > > LUN could be handed over raw to the VM using it. > >>> > > > > > >>> > > > > If there is a way for me to update the ACL list on the SAN to > have > >>> > > only a > >>> > > > > single KVM host have access to the volume, that would be ideal. > >>> > > > > > >>> > > > > Also, I agree I'll need to use iscsiadm to discover and log in > to > >>> > > > > the > >>> > > > iSCSI > >>> > > > > target. I'll also need to take the resultant new device and > pass > >>> > > > > it > >>> > > into > >>> > > > the > >>> > > > > VM. > >>> > > > > > >>> > > > > Does this sound reasonable? Please call me out on anything I > seem > >>> > > > incorrect > >>> > > > > about. :) > >>> > > > > > >>> > > > > Thanks for all the thought on this, Marcus! > >>> > > > > > >>> > > > > > >>> > > > > On Fri, Sep 13, 2013 at 8:25 PM, Marcus Sorensen < > >>> > shadow...@gmail.com> > >>> > > > > wrote: > >>> > > > >> > >>> > > > >> Perfect. You'll have a domain def ( the VM), a disk def, and > the > >>> > > attach > >>> > > > >> the disk def to the vm. You may need to do your own > >>> > > > >> StorageAdaptor > >>> > and > >>> > > > run > >>> > > > >> iscsiadm commands to accomplish that, depending on how the > >>> > > > >> libvirt > >>> > > iscsi > >>> > > > >> works. My impression is that a 1:1:1 pool/lun/volume isn't > how it > >>> > > works > >>> > > > on > >>> > > > >> xen at the momen., nor is it ideal. > >>> > > > >> > >>> > > > >> Your plugin will handle acls as far as which host can see > which > >>> > > > >> luns > >>> > > as > >>> > > > >> well, I remember discussing that months ago, so that a disk > won't > >>> > > > >> be > >>> > > > >> connected until the hypervisor has exclusive access, so it > will > >>> > > > >> be > >>> > > safe > >>> > > > and > >>> > > > >> fence the disk from rogue nodes that cloudstack loses > >>> > > > >> connectivity > >>> > > > with. It > >>> > > > >> should revoke access to everything but the target host... > Except > >>> > > > >> for > >>> > > > during > >>> > > > >> migration but we can discuss that later, there's a migration > prep > >>> > > > process > >>> > > > >> where the new host can be added to the acls, and the old host > can > >>> > > > >> be > >>> > > > removed > >>> > > > >> post migration. > >>> > > > >> > >>> > > > >> On Sep 13, 2013 8:16 PM, "Mike Tutkowski" < > >>> > > mike.tutkow...@solidfire.com > >>> > > > > > >>> > > > >> wrote: > >>> > > > >>> > >>> > > > >>> Yeah, that would be ideal. > >>> > > > >>> > >>> > > > >>> So, I would still need to discover the iSCSI target, log in > to > >>> > > > >>> it, > >>> > > then > >>> > > > >>> figure out what /dev/sdX was created as a result (and leave > it > >>> > > > >>> as > >>> > is > >>> > > - > >>> > > > do > >>> > > > >>> not format it with any file system...clustered or not). I > would > >>> > pass > >>> > > > that > >>> > > > >>> device into the VM. > >>> > > > >>> > >>> > > > >>> Kind of accurate? > >>> > > > >>> > >>> > > > >>> > >>> > > > >>> On Fri, Sep 13, 2013 at 8:07 PM, Marcus Sorensen < > >>> > > shadow...@gmail.com> > >>> > > > >>> wrote: > >>> > > > >>>> > >>> > > > >>>> Look in LibvirtVMDef.java (I think) for the disk > definitions. > >>> > There > >>> > > > are > >>> > > > >>>> ones that work for block devices rather than files. You can > >>> > > > >>>> piggy > >>> > > > back off > >>> > > > >>>> of the existing disk definitions and attach it to the vm as > a > >>> > block > >>> > > > device. > >>> > > > >>>> The definition is an XML string per libvirt XML format. You > may > >>> > want > >>> > > > to use > >>> > > > >>>> an alternate path to the disk rather than just /dev/sdx > like I > >>> > > > mentioned, > >>> > > > >>>> there are by-id paths to the block devices, as well as other > >>> > > > >>>> ones > >>> > > > that will > >>> > > > >>>> be consistent and easier for management, not sure how > familiar > >>> > > > >>>> you > >>> > > > are with > >>> > > > >>>> device naming on Linux. > >>> > > > >>>> > >>> > > > >>>> On Sep 13, 2013 8:00 PM, "Marcus Sorensen" > >>> > > > >>>> <shadow...@gmail.com> > >>> > > > wrote: > >>> > > > >>>>> > >>> > > > >>>>> No, as that would rely on virtualized network/iscsi > initiator > >>> > > inside > >>> > > > >>>>> the vm, which also sucks. I mean attach /dev/sdx (your lun > on > >>> > > > hypervisor) as > >>> > > > >>>>> a disk to the VM, rather than attaching some image file > that > >>> > > resides > >>> > > > on a > >>> > > > >>>>> filesystem, mounted on the host, living on a target. > >>> > > > >>>>> > >>> > > > >>>>> Actually, if you plan on the storage supporting live > migration > >>> > > > >>>>> I > >>> > > > think > >>> > > > >>>>> this is the only way. You can't put a filesystem on it and > >>> > > > >>>>> mount > >>> > it > >>> > > > in two > >>> > > > >>>>> places to facilitate migration unless its a clustered > >>> > > > >>>>> filesystem, > >>> > > in > >>> > > > which > >>> > > > >>>>> case you're back to shared mount point. > >>> > > > >>>>> > >>> > > > >>>>> As far as I'm aware, the xenserver SR style is basically > LVM > >>> > with a > >>> > > > xen > >>> > > > >>>>> specific cluster management, a custom CLVM. They don't use > a > >>> > > > filesystem > >>> > > > >>>>> either. > >>> > > > >>>>> > >>> > > > >>>>> On Sep 13, 2013 7:44 PM, "Mike Tutkowski" > >>> > > > >>>>> <mike.tutkow...@solidfire.com> wrote: > >>> > > > >>>>>> > >>> > > > >>>>>> When you say, "wire up the lun directly to the vm," do you > >>> > > > >>>>>> mean > >>> > > > >>>>>> circumventing the hypervisor? I didn't think we could do > that > >>> > > > >>>>>> in > >>> > > CS. > >>> > > > >>>>>> OpenStack, on the other hand, always circumvents the > >>> > > > >>>>>> hypervisor, > >>> > > as > >>> > > > far as I > >>> > > > >>>>>> know. > >>> > > > >>>>>> > >>> > > > >>>>>> > >>> > > > >>>>>> On Fri, Sep 13, 2013 at 7:40 PM, Marcus Sorensen < > >>> > > > shadow...@gmail.com> > >>> > > > >>>>>> wrote: > >>> > > > >>>>>>> > >>> > > > >>>>>>> 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™ > >>> > > > >>>>>>>>>>>>> > >>> > > > >>>>>>>>>>>>> > >>> > > > >>>>>>>>>>>>> > >>> > > > >>>>>>>>>>>>> > >>> > > > >>>>>>>>>>>>> -- > >>> > > > >>>>>>>>>>>>> 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> *™*