I see this feature as mainly just shuffling around object properties in the database. I don't expect any major issues to arise with any storage if an inactive "root" disk is marked as a "data" disk in the DB, for example. In the end, when you start a VM you're always going to have a root disk in the vm instance object, and volumes that are attached/detached are going to be passed as data disks (If I understand correctly). It doesn't really matter to the storage drivers if the volume object was previously of type root or data.
On Fri, Mar 28, 2014 at 12:48 PM, Alena Prokharchyk <alena.prokharc...@citrix.com> wrote: > I will look into it more, Mike. vmWare indeed can be different. > > -Alena. > > From: Mike Tutkowski > <mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>> > Date: Friday, March 28, 2014 at 11:39 AM > To: Alena Prokharchyk > <alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com>> > Cc: "dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>" > <dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>> > Subject: Re: [PROPOSAL] ROOT volume detach - feature for CS 4.5 > > VMware is also different because when you shut a VMware VM down from > CloudStack, the VM still exists in vCenter Server (whereas for XenServer and > KVM, the VM is gone). > > Since the life of a datastore that was created for managed storage is tied to > the life of the CloudStack volume it stores, when the CloudStack volume is > deleted, the datastore goes away, as well. > > If the datastore in question was automatically created to store a root disk > (alongside VM config files) and you switch the VM to another root disk (which > has to necessarily be in another datastore), you won't see a problem until > the original root volume is expunged by CloudStack. At this point, its > datastore will go away along with your VM config files. > > > On Fri, Mar 28, 2014 at 12:31 PM, Mike Tutkowski > <mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>> wrote: > Well, the reason I brought it up was mainly due to VMware. > > Let's use that as an example: > > I initiate the process of spinning up a VM based on managed storage. > A volume is dynamically created on a SAN. > VmwareStorageProcessor dynamically creates a datastore to consume the newly > created SAN volume. > All VMware VM files (ex. VMX, NVRAM) are placed in the datastore alongside > the VMDK file that represents the root volume. > > Now, let's say we want to detach this root volume and give the VM a new root > volume. > > The new root volume will necessarily be on a different datastore than the > datastore of the previous root volume (because a datastore created to consume > managed storage will have at most one VMDK file*). > > Is it going to be a problem that the VM's files (ex. VMX, NVRAM) are on one > datastore, but its root disk is on another? > > I don't think it's really a problem until you go to delete the original root > volume from CloudStack. At that point, its datastore will be removed > (including, of course, your VM's VMX, NVRAM, etc. files). > > This is not really a problem on XenServer because XenServer does not store VM > config files in the SR, so I think we're OK there. > > We should also be OK for KVM. > > * Technically it can have many if those other VMDK files are delta snapshots, > but they still - together - represent a single disk. > > > On Fri, Mar 28, 2014 at 10:36 AM, Alena Prokharchyk > <alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com>> wrote: > Mike, thank you for the explanation on managed storage.. As far as I > understand from your email, the main difference is instead of creating an SR > on the PS, CloudStack will recognize pre-existing volume created outside of > the CS. Am I correct? > > If so, I don't think there would be any difference. When root volume detach > happens, no storage attributes - path, clusterId - are being changed. And we > would apply the same set of checks to the root volume attach, as for a > dataDisk attach. > > -Alena. > > From: Mike Tutkowski > <mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>> > Date: Thursday, March 27, 2014 at 9:40 PM > To: Alena Prokharchyk > <alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com>> > Cc: "dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>" > <dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>> > Subject: Re: [PROPOSAL] ROOT volume detach - feature for CS 4.5 > > Hi Alena, > > I was wondering if you've taken "managed" storage into consideration for this? > > If you're unfamiliar with it, managed storage is named as such because > CloudStack manages it on behalf of the admin (ex. dynamically creating SRs as > needed). > > For example, when I add primary storage to CloudStack that is based on the > SolidFire SAN, I use the SolidFire plug-in, which is an example of managed > storage. > > In this case, the primary storage represents a SAN as opposed to a > preallocated volume. > > When the time comes to, say, attach a data disk to a VM for the first time, > the SolidFire plug-in goes off to its SAN and dynamically creates a new > volume on it (with the appropriate size and IOPS requirements). > > CloudStack has logic that recognizes managed storage. > > For example, for XenServer, its logic has been augmented to automatically > create an SR based on the iSCSI target that was created on the SAN and to > create a VDI within it that is attached to the VM in question. > > The big takeaway is that each CloudStack volume here will be associated with > a unique volume on a SAN and consumed as an SR (XenServer) or datastore (ESX) > (KVM handles this differently). In this situation, there is a 1:1 mapping > between a SAN volume and an SR. No other VDIs are stored on the SR except for > the one representing this one CloudStack volume. > > That being the case, I was wondering what you thought of this with regards to > your root-volume-detach feature? > > If we don't want to look into this for 4.5, it might be best to simply fail > to detach a root volume from a VM if the volume is based on managed storage > or to fail to attach a bootable volume to a VM if it is based on managed > storage. > > Talk to you later, > Mike > > > On Tue, Mar 25, 2014 at 1:24 PM, Alena Prokharchyk > <alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com>> wrote: > Mike, > > Volume has a template_id referencing vm_template table. Vm_template has > bootable flag, so we will derive information from there. > And sure, this information will not change if the root disk is detached. > > On 3/25/14, 12:18 PM, "Mike Tutkowski" > <mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>> > wrote: > >>Hi Alena, >> >>I was wondering how we plan to keep track of the new "bootable" property? >>When we create a VM, would we just mark its root disk as bootable and then >>that property becomes immutable (for the upgrade case, all root disks >>would >>be marked as bootable)? >> >>I'm thinking we'd want to keep track of bootable disks even when there are >>detached and turned into data disks. Is that what you had in mind? >> >>Thanks! >>Mike >> >> >>On Tue, Mar 25, 2014 at 12:20 PM, Alena Prokharchyk < >>alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com>> wrote: >> >>> Here is the link to the corresponding FS (placed in "4.5 Design >>>documents" >>> section) >>> >>> >>>https://cwiki.apache.org/confluence/display/CLOUDSTACK/ROOT+volume+detach >>> >>> -Alena. >>> >>> From: Alena Prokharchyk >>> <alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com><mailto: >>> alena.prokharc...@citrix.com<mailto:alena.prokharc...@citrix.com>>> >>> Date: Monday, March 24, 2014 at 11:37 AM >>> To: >>> "dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org><mailto:dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>>" >>> < >>> dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org><mailto:dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>>> >>> Subject: [PROPOSAL] ROOT volume detach - feature for CS 4.5 >>> >>> I would like to propose a new feature for CS 4.5 - "ROOT volume detach" >>>- >>> that enables support for following use cases: >>> >>> 1) Replace current ROOT volume with the new one for existing vm. >>> 2) Case when ROOT volume of vm1 gets corrupted, and you want to attach >>>it >>> to vm2 to run the recovery utils on it. With current CS implemntation, >>>you >>> have to perform several steps - create snapshot of vm1's volume, create >>> volume from snapshot, attach volume to the vm2. New implementation will >>> merge it all to one step. >>> >>> >>> With the planned implementation, once the ROOT volume is detached, it >>>can >>> be attached to any existing vm (with respect to Admin/Domain/Physical >>> resources limitations), either as a DataDisk or a Root disk. >>> >>> Amazon EC2 already has this functionality in place, so I think CS would >>> only benefit from having it. Storage experts (Edison, others) please >>>raise >>> your concerns if you have any, or if you see any potential problems with >>> the planned implementation. And if anyone can think of other use cases >>>this >>> feature can possible solve, I would appreciate this input as well. >>> >>> >>> Feature limitations: >>> >>> * ROOT volume can be detached only when vm is in Stopped state >>> * CS will fail to start the vm not having a ROOT volume >>> >>> I will send out the link to the FS once I start getting feedback on the >>> proposal. >>> >>> -Alena. >>> >> >> >> >>-- >>*Mike Tutkowski* >>*Senior CloudStack Developer, SolidFire Inc.* >>e: mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com> >>o: 303.746.7302<tel:303.746.7302> >>Advancing the way the world uses the >>cloud<http://solidfire.com/solution/overview/?video=play> >>*(tm)* > > > > > -- > Mike Tutkowski > Senior CloudStack Developer, SolidFire Inc. > e: mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com> > o: 303.746.7302<tel:303.746.7302> > Advancing the way the world uses the > cloud<http://solidfire.com/solution/overview/?video=play>(tm) > > > > -- > Mike Tutkowski > Senior CloudStack Developer, SolidFire Inc. > e: mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com> > o: 303.746.7302<tel:303.746.7302> > Advancing the way the world uses the > cloud<http://solidfire.com/solution/overview/?video=play>(tm) > > > > -- > Mike Tutkowski > Senior CloudStack Developer, SolidFire Inc. > e: mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com> > o: 303.746.7302 > Advancing the way the world uses the > cloud<http://solidfire.com/solution/overview/?video=play>(tm)