Hi, I would like merge the branch 'vmware-disk-controllers' into master branch. This branch contains implementation to support Granular SCSI disk controllers in CloudStack over VMware hypervisor.
This is specific to VMware hypervisor only. The code changes are in area of vmware resource. All changes are being tracked using JIRA ticket [3] with code in ACS branch 'vmware-disk-controllers'. Please see [2[ for Functional specification which was discussed in proposal thread [1] below and talk [4] held at CCC EU 2014, Budapest. Currently CloudStack supports following combinations only. * DATA volumes - SCSI controller (LSI Logic Parallel) - Hard coded in source code, no option for user to edit/choose the controller type * ROOT volumes - IDE or SCSI (LSI Logic Parallel) - Baed on value of global configuration parameter "vmware.root.disk.controller" For some guest operating systems like Windows 2012 R2, deploying instances with LSI Parallel controller might result in failure to boot as guest OS vendor is not shipping the OS with LSI Logic parallel drivers. OS Vendor is supporting/shipping LSI SAS controller as preferred. CloudStack should provide administrator the means to choose the type of disk controller (including sub types listed in introduction section above) for an instance. The controller to be used by VM to access virtual disk (volume) can decided for various reasons. Some of them are listed here, * Some controllers are optimized for best performance over specific backend infrastructure like SAN. Ex: VMware Paravirtual SCSI * Compatibility of some controllers with VM's virtual hardware version or guest operating system. * Operating system vendor recommendation and default set of drivers distributed as part of operating system image. Ex: Windows 8.1 ISO doesn't have Lsi Logic Parallel SCSI drivers by default. Hence a virtual disk attached to this controller won't accessible during installation of OS using the ISO. Now CloudStack provides administrator options to specify disk controllers to use for user instances at various ways. 1) Global configuration settings 2) Template settings (during registration of template) 3) Option to enable auto detection of the recommended disk controller for the instance's guest operating system by vendor and applicable virtual hardware version. Please let me know your comments. Regards, Sateesh [1] http://markmail.org/thread/en4skoqu4mbitacs [2] Functional specification document - https://cwiki.apache.org/confluence/x/vI5cAg [3] https://issues.apache.org/jira/browse/CLOUDSTACK-4787 [4] http://ccceu2014.sched.org/event/5d24aad67443542c72b5fc51c25c090b ________________________________________ From: Sateesh Chodapuneedi Sent: Tuesday, January 06, 2015 12:06 PM To: dev@cloudstack.apache.org Subject: RE: Server 2012 R2 Bug on CS 4.4.0 with vmware hypervisor > -----Original Message----- > From: Sateesh Chodapuneedi [mailto:sateesh.chodapune...@citrix.com] > Sent: 15 November 2014 14:06 > To: dev@cloudstack.apache.org; Michael Phillips > Subject: RE: Server 2012 R2 Bug on CS 4.4.0 with vmware hypervisor > > Hi Michael, > > > further clarification; CS adds the data disk to the VM but since it's > > listed as SCSI device 0:0, the vm is unable to find it when you > do a disk rescan. > Yes, due to absence of LSI Logic Parallel driver in the guest, the virtual > disk goes undetected. > > Currently for all data volumes, of user instance deployed by CloudStack, are > attached to LSI Logic Parallel controller. And this is not > configurable, which is be a blocker for most recent versions of Windows OS > like Windows 2012 R2 and Windows 8.1 which does not > ship/pack LSI Logic Parallel driver by default, which means all virtual disks > attached to this controller would not detected. > > Support for choice of controllers is in progress and expected to be available > in CloudStack 4.6 release. > I am going to talk about proposal to address this and implementation details > in CloudStack Collaboration Conference scheduled > next week at Budapest, Hungary. > > Link to the entry in conference schedule is [1] and JIRA ticket for this > feature is [2] > > [1] > http://ccceu2014.sched.org/event/5d24aad67443542c72b5fc51c25c090b?iframe=yes&w=&sidebar=yes&bg=no > [2] https://issues.apache.org/jira/browse/CLOUDSTACK-4787 Hi, I am working on implementation of this feature based on functional specification [2] and followed by proposal thread [1] below. All changes are being tracked using JIRA ticket [3] using ACS branch 'vmware-disk-controllers' [1] http://markmail.org/thread/en4skoqu4mbitacs [2] Short link for functional specification document - https://cwiki.apache.org/confluence/x/vI5cAg [3] https://issues.apache.org/jira/browse/CLOUDSTACK-4787 Regards, Sateesh > > > > -----Original Message----- > > From: Erik Weber [mailto:terbol...@gmail.com] > > Sent: 15 November 2014 12:01 > > To: dev@cloudstack.apache.org > > Subject: Re: Server 2012 R2 Bug on CS 4.4.0 with vmware hypervisor > > > > There's an issue in jira to allow controller selection, but it has been > > stale for some time. > > > > This is one of the reasons we switched to xenserver. > > > > I believe there's a quick talk on ccceu about the issue. > > > > Erik > > > > Den lørdag 15. november 2014 skrev Michael Phillips > > <mphilli7...@hotmail.com> > > følgende: > > > > > So I was unable to add a data disk to my vm running server 2012 R2 > > > standard, so I started tracking down the issue and I think I found it. > > > So when provisioning a vm running server 2012 R2, CS creates the VM > > > with the "LSI Logic Parallel" adapter. It looks like the only reason > > > the machine is even able to boot is becuase the ROOT drive is set to > > > be an IDE drive, specifically (IDE 0:1). Any data disks added to the > > > same machine are set as SCSI drives. So if I added one data disk it > > > would be listed as SCSI 0:0. So it seems the mismatch is between the > > > controller type CS is using and the disk type. So this bring me to the > > > major question at hand. > > > For server 2012 R2 vmware natively uses the "LSI Logic SAS" controller. > > > Why in the world is CS not using the same controller, and is there a > > > way around this? > > > > > >