You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Animesh Chaturvedi <An...@citrix.com> on 2013/11/07 19:34:24 UTC

Re: Review Request 14381: KVM: add connect/disconnect capabilities to StorageAdaptors so that external storage services can attach/detach devices on-demand


> On Oct. 7, 2013, 7:49 p.m., Mike Tutkowski wrote:
> > This looks reasonable to me, Marcus.
> > 
> > When do you think you might start the process of getting this into master?

is this expected for 4.3? then this should be in master soon


- Animesh


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14381/#review26748
-----------------------------------------------------------


On Sept. 30, 2013, 5:14 p.m., Marcus Sorensen wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14381/
> -----------------------------------------------------------
> 
> (Updated Sept. 30, 2013, 5:14 p.m.)
> 
> 
> Review request for cloudstack, edison su and Mike Tutkowski.
> 
> 
> Repository: cloudstack-git
> 
> 
> Description
> -------
> 
> With custom storage plugins comes the need to prep the KVM host prior to utilizing the disks. e.g. an iscsi initiator needs to log into the target and scan for the lun before it can be used on the host. This patch is an example I developed against 4.2, minor changes may be necessary to apply to master, but I want to share with others who are working on storage so they can ensure it works for them. Please tweak as you see fit.
> 
> MigrateCommand: pass vmTO object so we can see which disks/storage pool types belong to the vm when migrating a VM. This facilitates being able to call disconnectPhysicalDisksViaVmSpec
> 
> VirtualMachineManagerImpl: pass VirtualMachineTO when migrating so that we can see which disks belong to the VM and what storage pools/adaptors should be used
> 
> LibvirtComputingResource: add calls KVMStoragePoolManager's connectPhysicalDiskViaVmSpec and disconnectPhysicalDiskViaVmSpec calls where appropriate (when starting a vm, migrating a vm). Ensure that we create 'raw' format XML disk definitions when the storage format is RAW. Move cleanupDisk logic to storage adaptors so that each adaptor type can clean up its disks in is own way.
> 
> KVMStoragePoolManager:  add connectPhysicalDisk, disconnectPhysicalDisk, connectPhysicalDiskViaVmSpec, disconnectPhysicalDiskViaVmSpec, disconnectPhysicalDiskByPath. These all call the specific StorageAdaptor's connectPhysicalDisk, disconnectPhysicalDisk, or disconnectPhysicalDiskByPath calls.
> 
> KVMStorageProcessor: Call connectPhysicalDisk/disconnectPhysicalDisk on the storage adaptor. Whether or not this is implemented is up to the storage adaptor.
> 
> LibvirtStorageAdaptor: implement dummy connectPhysicalDisk/disconnectPhysicalDisk, move cleanupDisk logic from LibvirtComputingResource to disconnectPhysicalDiskByPath
> 
> StorageAdaptor: define connectPhysicalDisk/disconnectPhysicalDisk/disconnectPhysicalDiskByPath in the interface
> 
> 
> Diffs
> -----
> 
>   core/src/com/cloud/agent/api/MigrateCommand.java 5042b8c 
>   plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 3ee811f 
>   plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStoragePoolManager.java e09c9ba 
>   plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java c69f9b0 
>   plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java 123a9f1 
>   plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/StorageAdaptor.java 4956d8d 
>   server/src/com/cloud/vm/VirtualMachineManagerImpl.java d46bbb0 
> 
> Diff: https://reviews.apache.org/r/14381/diff/
> 
> 
> Testing
> -------
> 
> Basic testing with my storage adaptor
> 
> 
> Thanks,
> 
> Marcus Sorensen
> 
>