Remove CLVM, due to license issue
This commit is contained in:
Edison Su 2012-05-15 15:12:18 -07:00
parent 9fa63cfe61
commit bafc3f2a5a
9 changed files with 23 additions and 138 deletions

View File

@ -2618,19 +2618,16 @@ public class LibvirtComputingResource extends ServerResourceBase implements
} }
} else { } else {
int devId = (int) volume.getDeviceId(); int devId = (int) volume.getDeviceId();
if (pool.getType() == StoragePoolType.CLVM) {
disk.defBlockBasedDisk(physicalDisk.getPath(), devId, if (volume.getType() == Volume.Type.DATADISK) {
diskBusType); disk.defFileBasedDisk(physicalDisk.getPath(), devId,
DiskDef.diskBus.VIRTIO,
DiskDef.diskFmtType.QCOW2);
} else { } else {
if (volume.getType() == Volume.Type.DATADISK) { disk.defFileBasedDisk(physicalDisk.getPath(), devId,
disk.defFileBasedDisk(physicalDisk.getPath(), devId, diskBusType, DiskDef.diskFmtType.QCOW2);
DiskDef.diskBus.VIRTIO,
DiskDef.diskFmtType.QCOW2);
} else {
disk.defFileBasedDisk(physicalDisk.getPath(), devId,
diskBusType, DiskDef.diskFmtType.QCOW2);
}
} }
} }
vm.getDevices().addDevice(disk); vm.getDevices().addDevice(disk);
@ -2682,12 +2679,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements
/* add patch disk */ /* add patch disk */
DiskDef patchDisk = new DiskDef(); DiskDef patchDisk = new DiskDef();
if (pool.getType() == StoragePoolType.CLVM) {
patchDisk.defBlockBasedDisk(datadiskPath, 1, rootDisk.getBusType()); patchDisk.defFileBasedDisk(datadiskPath, 1, rootDisk.getBusType(),
} else { DiskDef.diskFmtType.RAW);
patchDisk.defFileBasedDisk(datadiskPath, 1, rootDisk.getBusType(),
DiskDef.diskFmtType.RAW);
}
disks.add(patchDisk); disks.add(patchDisk);
String bootArgs = vmSpec.getBootArgs(); String bootArgs = vmSpec.getBootArgs();

View File

@ -71,15 +71,9 @@ public class KVMStoragePoolManager {
public KVMPhysicalDisk createDiskFromTemplate(KVMPhysicalDisk template, public KVMPhysicalDisk createDiskFromTemplate(KVMPhysicalDisk template,
String name, KVMStoragePool destPool) { String name, KVMStoragePool destPool) {
if (destPool.getType() == StoragePoolType.CLVM) { return this._storageAdaptor.createDiskFromTemplate(template, name,
return this._storageAdaptor.createDiskFromTemplate(template, name, KVMPhysicalDisk.PhysicalDiskFormat.QCOW2,
KVMPhysicalDisk.PhysicalDiskFormat.RAW, template.getSize(), template.getSize(), destPool);
destPool);
} else {
return this._storageAdaptor.createDiskFromTemplate(template, name,
KVMPhysicalDisk.PhysicalDiskFormat.QCOW2,
template.getSize(), destPool);
}
} }
public KVMPhysicalDisk createTemplateFromDisk(KVMPhysicalDisk disk, public KVMPhysicalDisk createTemplateFromDisk(KVMPhysicalDisk disk,

View File

@ -418,19 +418,11 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.NETFS if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.NETFS
|| spd.getPoolType() == LibvirtStoragePoolDef.poolType.DIR) { || spd.getPoolType() == LibvirtStoragePoolDef.poolType.DIR) {
type = StoragePoolType.Filesystem; type = StoragePoolType.Filesystem;
} else if (spd.getPoolType() == LibvirtStoragePoolDef.poolType.LOGICAL) {
type = StoragePoolType.CLVM;
} }
LibvirtStoragePool pool = new LibvirtStoragePool(uuid, LibvirtStoragePool pool = new LibvirtStoragePool(uuid,
storage.getName(), type, this, storage); storage.getName(), type, this, storage);
pool.setLocalPath(spd.getTargetPath()); pool.setLocalPath(spd.getTargetPath());
getStats(pool);
if (pool.getType() == StoragePoolType.CLVM) {
pool.setCapacity(storage.getInfo().capacity);
pool.setUsed(storage.getInfo().allocation);
} else {
getStats(pool);
}
return pool; return pool;
} catch (LibvirtException e) { } catch (LibvirtException e) {
throw new CloudRuntimeException(e.toString()); throw new CloudRuntimeException(e.toString());
@ -491,8 +483,6 @@ public class LibvirtStorageAdaptor implements StorageAdaptor {
} else if (type == StoragePoolType.SharedMountPoint } else if (type == StoragePoolType.SharedMountPoint
|| type == StoragePoolType.Filesystem) { || type == StoragePoolType.Filesystem) {
sp = CreateSharedStoragePool(conn, name, host, path); 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); sp.getName(), type, this, sp);
pool.setLocalPath(spd.getTargetPath()); pool.setLocalPath(spd.getTargetPath());
if (pool.getType() == StoragePoolType.CLVM) { getStats(pool);
pool.setCapacity(sp.getInfo().capacity);
pool.setUsed(sp.getInfo().allocation);
} else {
getStats(pool);
}
return pool; return pool;
} catch (LibvirtException e) { } catch (LibvirtException e) {
throw new CloudRuntimeException(e.toString()); throw new CloudRuntimeException(e.toString());

View File

@ -79,11 +79,7 @@ public class LibvirtStoragePool implements KVMStoragePool {
@Override @Override
public PhysicalDiskFormat getDefaultFormat() { public PhysicalDiskFormat getDefaultFormat() {
if (getStoragePoolType() == StoragePoolType.CLVM) { return PhysicalDiskFormat.QCOW2;
return PhysicalDiskFormat.RAW;
} else {
return PhysicalDiskFormat.QCOW2;
}
} }
@Override @Override

View File

@ -92,7 +92,6 @@ public class Storage {
Iscsi(true), // for e.g., ZFS Comstar Iscsi(true), // for e.g., ZFS Comstar
ISO(false), // for iso image ISO(false), // for iso image
LVM(false), // XenServer local LVM SR LVM(false), // XenServer local LVM SR
CLVM(true),
SharedMountPoint(true), SharedMountPoint(true),
VMFS(true), // VMware VMFS storage VMFS(true), // VMware VMFS storage
PreSetup(true), // for XenServer, Storage Pool is set up by customers. PreSetup(true), // for XenServer, Storage Pool is set up by customers.

View File

@ -43,61 +43,7 @@ create_snapshot() {
local snapshotname="$2" local snapshotname="$2"
local failed=0 local failed=0
if [ -b "${disk}" ] && lvm lvs "${disk}" >/dev/null 2>&1; then if [ -f "${disk}" ]; 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
$qemu_img snapshot -c "$snapshotname" $disk $qemu_img snapshot -c "$snapshotname" $disk
@ -124,24 +70,8 @@ destroy_snapshot() {
local disk=$1 local disk=$1
local snapshotname=$2 local snapshotname=$2
local failed=0 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 if [ -f $disk ]; 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
$qemu_img snapshot -d "$snapshotname" $disk $qemu_img snapshot -d "$snapshotname" $disk
if [ $? -gt 0 ] if [ $? -gt 0 ]
then then
@ -186,18 +116,7 @@ backup_snapshot() {
fi fi
fi fi
if [ -b ${disk} ] && lvm lvs "${disk}" >/dev/null 2>&1; then if [ -f ${disk} ]; 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
# Does the snapshot exist? # Does the snapshot exist?
$qemu_img snapshot -l $disk|grep -w "$snapshotname" >& /dev/null $qemu_img snapshot -l $disk|grep -w "$snapshotname" >& /dev/null
if [ $? -gt 0 ] if [ $? -gt 0 ]

View File

@ -1294,8 +1294,6 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
pool = new StoragePoolVO(StoragePoolType.Filesystem, "localhost", 0, hostPath); pool = new StoragePoolVO(StoragePoolType.Filesystem, "localhost", 0, hostPath);
} else if (scheme.equalsIgnoreCase("sharedMountPoint")) { } else if (scheme.equalsIgnoreCase("sharedMountPoint")) {
pool = new StoragePoolVO(StoragePoolType.SharedMountPoint, storageHost, 0, hostPath); 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")) { } else if (scheme.equalsIgnoreCase("PreSetup")) {
pool = new StoragePoolVO(StoragePoolType.PreSetup, storageHost, 0, hostPath); pool = new StoragePoolVO(StoragePoolType.PreSetup, storageHost, 0, hostPath);
} else if (scheme.equalsIgnoreCase("iscsi")) { } 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); s_logger.debug("creating pool " + pool.getName() + " on host " + hostId);
if (pool.getPoolType() != StoragePoolType.NetworkFilesystem && pool.getPoolType() != StoragePoolType.Filesystem && pool.getPoolType() != StoragePoolType.IscsiLUN 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.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()); s_logger.warn(" Doesn't support storage pool type " + pool.getPoolType());
return false; return false;
} }

View File

@ -7261,7 +7261,6 @@
var items = []; var items = [];
items.push({id: "nfs", description: "nfs"}); items.push({id: "nfs", description: "nfs"});
items.push({id: "SharedMountPoint", description: "SharedMountPoint"}); items.push({id: "SharedMountPoint", description: "SharedMountPoint"});
items.push({id: "clvm", description: "CLVM"});
args.response.success({data: items}); args.response.success({data: items});
} }
else if(selectedClusterObj.hypervisortype == "XenServer") { else if(selectedClusterObj.hypervisortype == "XenServer") {

View File

@ -885,7 +885,6 @@
var items = []; var items = [];
items.push({id: "nfs", description: "nfs"}); items.push({id: "nfs", description: "nfs"});
items.push({id: "SharedMountPoint", description: "SharedMountPoint"}); items.push({id: "SharedMountPoint", description: "SharedMountPoint"});
items.push({id: "clvm", description: "CLVM"});
args.response.success({data: items}); args.response.success({data: items});
} }
else if(selectedClusterObj.hypervisortype == "XenServer") { else if(selectedClusterObj.hypervisortype == "XenServer") {