From bafc3f2a5af771d543f081164d7af4b323012f24 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Tue, 15 May 2012 15:12:18 -0700 Subject: [PATCH] CS-14521 Remove CLVM, due to license issue --- .../computing/LibvirtComputingResource.java | 29 +++---- .../agent/storage/KVMStoragePoolManager.java | 12 +-- .../agent/storage/LibvirtStorageAdaptor.java | 20 +---- .../agent/storage/LibvirtStoragePool.java | 6 +- api/src/com/cloud/storage/Storage.java | 1 - scripts/storage/qcow2/managesnapshot.sh | 87 +------------------ .../com/cloud/storage/StorageManagerImpl.java | 4 +- ui/scripts/system.js | 1 - ui/scripts/zoneWizard.js | 1 - 9 files changed, 23 insertions(+), 138 deletions(-) diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index c7f24619c91..d4e24fd6147 100755 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -2618,19 +2618,16 @@ public class LibvirtComputingResource extends ServerResourceBase implements } } else { int devId = (int) volume.getDeviceId(); - if (pool.getType() == StoragePoolType.CLVM) { - disk.defBlockBasedDisk(physicalDisk.getPath(), devId, - diskBusType); + + if (volume.getType() == Volume.Type.DATADISK) { + disk.defFileBasedDisk(physicalDisk.getPath(), devId, + DiskDef.diskBus.VIRTIO, + DiskDef.diskFmtType.QCOW2); } else { - if (volume.getType() == Volume.Type.DATADISK) { - disk.defFileBasedDisk(physicalDisk.getPath(), devId, - DiskDef.diskBus.VIRTIO, - DiskDef.diskFmtType.QCOW2); - } else { - disk.defFileBasedDisk(physicalDisk.getPath(), devId, - diskBusType, DiskDef.diskFmtType.QCOW2); - } + disk.defFileBasedDisk(physicalDisk.getPath(), devId, + diskBusType, DiskDef.diskFmtType.QCOW2); } + } vm.getDevices().addDevice(disk); @@ -2682,12 +2679,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements /* add patch disk */ DiskDef patchDisk = new DiskDef(); - if (pool.getType() == StoragePoolType.CLVM) { - patchDisk.defBlockBasedDisk(datadiskPath, 1, rootDisk.getBusType()); - } else { - patchDisk.defFileBasedDisk(datadiskPath, 1, rootDisk.getBusType(), - DiskDef.diskFmtType.RAW); - } + + patchDisk.defFileBasedDisk(datadiskPath, 1, rootDisk.getBusType(), + DiskDef.diskFmtType.RAW); + disks.add(patchDisk); String bootArgs = vmSpec.getBootArgs(); diff --git a/agent/src/com/cloud/agent/storage/KVMStoragePoolManager.java b/agent/src/com/cloud/agent/storage/KVMStoragePoolManager.java index 337bd3aab96..d4cc0c25321 100644 --- a/agent/src/com/cloud/agent/storage/KVMStoragePoolManager.java +++ b/agent/src/com/cloud/agent/storage/KVMStoragePoolManager.java @@ -71,15 +71,9 @@ public class KVMStoragePoolManager { public KVMPhysicalDisk createDiskFromTemplate(KVMPhysicalDisk template, String name, KVMStoragePool destPool) { - if (destPool.getType() == StoragePoolType.CLVM) { - return this._storageAdaptor.createDiskFromTemplate(template, name, - KVMPhysicalDisk.PhysicalDiskFormat.RAW, template.getSize(), - destPool); - } else { - return this._storageAdaptor.createDiskFromTemplate(template, name, - KVMPhysicalDisk.PhysicalDiskFormat.QCOW2, - template.getSize(), destPool); - } + return this._storageAdaptor.createDiskFromTemplate(template, name, + KVMPhysicalDisk.PhysicalDiskFormat.QCOW2, + template.getSize(), destPool); } public KVMPhysicalDisk createTemplateFromDisk(KVMPhysicalDisk disk, diff --git a/agent/src/com/cloud/agent/storage/LibvirtStorageAdaptor.java b/agent/src/com/cloud/agent/storage/LibvirtStorageAdaptor.java index f0115395308..bf0bcda05aa 100644 --- a/agent/src/com/cloud/agent/storage/LibvirtStorageAdaptor.java +++ b/agent/src/com/cloud/agent/storage/LibvirtStorageAdaptor.java @@ -418,19 +418,11 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.NETFS || spd.getPoolType() == LibvirtStoragePoolDef.poolType.DIR) { type = StoragePoolType.Filesystem; - } else if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.LOGICAL) { - type = StoragePoolType.CLVM; } LibvirtStoragePool pool = new LibvirtStoragePool(uuid, storage.getName(), type, this, storage); pool.setLocalPath(spd.getTargetPath()); - - if (pool.getType() == StoragePoolType.CLVM) { - pool.setCapacity(storage.getInfo().capacity); - pool.setUsed(storage.getInfo().allocation); - } else { - getStats(pool); - } + getStats(pool); return pool; } catch (LibvirtException e) { throw new CloudRuntimeException(e.toString()); @@ -491,8 +483,6 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { } else if (type == StoragePoolType.SharedMountPoint || type == StoragePoolType.Filesystem) { sp = CreateSharedStoragePool(conn, name, host, path); - } else if (type == StoragePoolType.CLVM) { - sp = createCLVMStoragePool(conn, name, host, path); } } @@ -507,12 +497,8 @@ public class LibvirtStorageAdaptor implements StorageAdaptor { sp.getName(), type, this, sp); pool.setLocalPath(spd.getTargetPath()); - if (pool.getType() == StoragePoolType.CLVM) { - pool.setCapacity(sp.getInfo().capacity); - pool.setUsed(sp.getInfo().allocation); - } else { - getStats(pool); - } + getStats(pool); + return pool; } catch (LibvirtException e) { throw new CloudRuntimeException(e.toString()); diff --git a/agent/src/com/cloud/agent/storage/LibvirtStoragePool.java b/agent/src/com/cloud/agent/storage/LibvirtStoragePool.java index 35b2989c959..1722732e153 100644 --- a/agent/src/com/cloud/agent/storage/LibvirtStoragePool.java +++ b/agent/src/com/cloud/agent/storage/LibvirtStoragePool.java @@ -79,11 +79,7 @@ public class LibvirtStoragePool implements KVMStoragePool { @Override public PhysicalDiskFormat getDefaultFormat() { - if (getStoragePoolType() == StoragePoolType.CLVM) { - return PhysicalDiskFormat.RAW; - } else { - return PhysicalDiskFormat.QCOW2; - } + return PhysicalDiskFormat.QCOW2; } @Override diff --git a/api/src/com/cloud/storage/Storage.java b/api/src/com/cloud/storage/Storage.java index b683b9edfdf..428fc7d2f7a 100755 --- a/api/src/com/cloud/storage/Storage.java +++ b/api/src/com/cloud/storage/Storage.java @@ -92,7 +92,6 @@ public class Storage { Iscsi(true), // for e.g., ZFS Comstar ISO(false), // for iso image LVM(false), // XenServer local LVM SR - CLVM(true), SharedMountPoint(true), VMFS(true), // VMware VMFS storage PreSetup(true), // for XenServer, Storage Pool is set up by customers. diff --git a/scripts/storage/qcow2/managesnapshot.sh b/scripts/storage/qcow2/managesnapshot.sh index 57243e85f24..273b8dc9990 100755 --- a/scripts/storage/qcow2/managesnapshot.sh +++ b/scripts/storage/qcow2/managesnapshot.sh @@ -43,61 +43,7 @@ create_snapshot() { local snapshotname="$2" local failed=0 - if [ -b "${disk}" ] && lvm lvs "${disk}" >/dev/null 2>&1; then - local lv=$( lvm lvs --noheadings --unbuffered --separator=/ "${disk}" 2>/dev/null | sed 's|^[[:space:]]\+||' ) - local lvname=$( echo "${lv}" | awk -F/ '{ print $1 }' ) - local vgname=$( echo "${lv}" | awk -F/ '{ print $2 }' ) - local lvdmname=$( echo "${lvname}" | sed 's|-|--|g' ) - local vgdmname=$( echo "${vgname}" | sed 's|-|--|g' ) - local blockdevname="/dev/mapper/${vgdmname}-${lvdmname}" - local blockdevsnap="/dev/mapper/${vgdmname}-${snapshotname}" - local blockdevsize=$( blockdev --getsz "${blockdevname}" ) - - lvm lvcreate --name "${snapshotname}-cow" --size "$(blockdev --getsize64 ${blockdevname})b" "${vgname}" >&2 || return 1 - dmsetup suspend "${vgdmname}-${lvdmname}" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - if dmsetup table | awk -v e=1 -v tbl="${vgdmname}-${lvdmname}-real:" '$1 == tbl { e=0 }; END { exit e }'; then - dmsetup create "${vgdmname}-${snapshotname}" --notable >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - echo "0 ${blockdevsize} snapshot ${blockdevname}-real ${blockdevsnap}--cow p 64" | \ - dmsetup load "${vgdmname}-${snapshotname}" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - dmsetup resume "${vgdmname}-${snapshotname}" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - else - - dmsetup create "${vgdmname}-${lvdmname}-real" --notable >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - dmsetup table "${vgdmname}-${lvdmname}" | dmsetup load "${vgdmname}-${lvdmname}-real" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - dmsetup resume "${vgdmname}-${lvdmname}-real" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - dmsetup create "${vgdmname}-${snapshotname}" --notable >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - echo "0 ${blockdevsize} snapshot ${blockdevname}-real ${blockdevsnap}--cow p 64" | \ - dmsetup load "${vgdmname}-${snapshotname}" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - echo "0 ${blockdevsize} snapshot-origin ${blockdevname}-real" | \ - dmsetup load "${vgdmname}-${lvdmname}" - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - dmsetup resume "${vgdmname}-${snapshotname}" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - fi - - dmsetup resume "${vgdmname}-${lvdmname}" >&2 - [ $? -ne 0 ] && destroy_snapshot "${disk}" "${snapshotname}" && return 1 - - elif [ -f "${disk}" ]; then + if [ -f "${disk}" ]; then $qemu_img snapshot -c "$snapshotname" $disk @@ -124,24 +70,8 @@ destroy_snapshot() { local disk=$1 local snapshotname=$2 local failed=0 - if [ -b ${disk} ]; then - local lvname=$( echo "${disk}" | awk -F/ '{ print $(NF) }' ) # ' - local vgname=$( echo "${disk}" | awk -F/ '{ print $(NF-1) }' ) # ' - local lvdmname=$( echo "${lvname}" | sed 's|-|--|g' ) - local vgdmname=$( echo "${vgname}" | sed 's|-|--|g' ) - if [ $( dmsetup --columns --noheadings --separator=: info "${vgdmname}-${lvdmname}-real" | awk -F: '{ print $5 }' ) -le 2 ]; then - dmsetup suspend "${vgdmname}-${lvdmname}" >&2 - dmsetup table "${vgdmname}-${lvdmname}-real" | dmsetup load "${vgdmname}-${lvdmname}" >&2 - dmsetup resume "${vgdmname}-${lvdmname}" >&2 - dmsetup remove "${vgdmname}-${snapshotname}" >&2 - dmsetup remove "${vgdmname}-${lvdmname}-real" >&2 - else - dmsetup remove "${vgdmname}-${snapshotname}" >&2 - fi - lvm lvremove -f "${vgname}/${snapshotname}-cow" >&2 - - elif [ -f $disk ]; then + if [ -f $disk ]; then $qemu_img snapshot -d "$snapshotname" $disk if [ $? -gt 0 ] then @@ -186,18 +116,7 @@ backup_snapshot() { fi fi - if [ -b ${disk} ] && lvm lvs "${disk}" >/dev/null 2>&1; then - local lv=$( lvm lvs --noheadings --unbuffered --separator=/ "${disk}" 2>/dev/null | sed 's|^[[:space:]]\+||' ) - local vgname=$( echo "${lv}" | awk -F/ '{ print $2 }' ) - local vgdmname=$( echo "${vgname}" | sed 's|-|--|g' ) - - if [ -x "$( dirname $0 )/raw2qcow2.sh" ]; then - "$( dirname $0 )/raw2qcow2.sh" "/dev/mapper/${vgdmname}-${snapshotname}" "${destPath}/${destName}" - else - $qemu_img convert -f raw -O qcow2 "/dev/mapper/${vgdmname}-${snapshotname}" "${destPath}/${destName}" - fi - return 0 - elif [ -f ${disk} ]; then + if [ -f ${disk} ]; then # Does the snapshot exist? $qemu_img snapshot -l $disk|grep -w "$snapshotname" >& /dev/null if [ $? -gt 0 ] diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index df7e95b2008..777f17eef73 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1294,8 +1294,6 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag pool = new StoragePoolVO(StoragePoolType.Filesystem, "localhost", 0, hostPath); } else if (scheme.equalsIgnoreCase("sharedMountPoint")) { pool = new StoragePoolVO(StoragePoolType.SharedMountPoint, storageHost, 0, hostPath); - } else if (scheme.equalsIgnoreCase("clvm")) { - pool = new StoragePoolVO(StoragePoolType.CLVM, storageHost, 0, hostPath.replaceFirst("/", "")); } else if (scheme.equalsIgnoreCase("PreSetup")) { pool = new StoragePoolVO(StoragePoolType.PreSetup, storageHost, 0, hostPath); } else if (scheme.equalsIgnoreCase("iscsi")) { @@ -1594,7 +1592,7 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag s_logger.debug("creating pool " + pool.getName() + " on host " + hostId); if (pool.getPoolType() != StoragePoolType.NetworkFilesystem && pool.getPoolType() != StoragePoolType.Filesystem && pool.getPoolType() != StoragePoolType.IscsiLUN && pool.getPoolType() != StoragePoolType.Iscsi && pool.getPoolType() != StoragePoolType.VMFS && pool.getPoolType() != StoragePoolType.SharedMountPoint - && pool.getPoolType() != StoragePoolType.PreSetup && pool.getPoolType() != StoragePoolType.OCFS2 && pool.getPoolType() != StoragePoolType.CLVM) { + && pool.getPoolType() != StoragePoolType.PreSetup && pool.getPoolType() != StoragePoolType.OCFS2) { s_logger.warn(" Doesn't support storage pool type " + pool.getPoolType()); return false; } diff --git a/ui/scripts/system.js b/ui/scripts/system.js index 8217bd923b9..6d0b14490d6 100644 --- a/ui/scripts/system.js +++ b/ui/scripts/system.js @@ -7261,7 +7261,6 @@ var items = []; items.push({id: "nfs", description: "nfs"}); items.push({id: "SharedMountPoint", description: "SharedMountPoint"}); - items.push({id: "clvm", description: "CLVM"}); args.response.success({data: items}); } else if(selectedClusterObj.hypervisortype == "XenServer") { diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js index 025542e0816..c616ffe33bb 100644 --- a/ui/scripts/zoneWizard.js +++ b/ui/scripts/zoneWizard.js @@ -885,7 +885,6 @@ var items = []; items.push({id: "nfs", description: "nfs"}); items.push({id: "SharedMountPoint", description: "SharedMountPoint"}); - items.push({id: "clvm", description: "CLVM"}); args.response.success({data: items}); } else if(selectedClusterObj.hypervisortype == "XenServer") {