mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CS-14521
Remove CLVM, due to license issue
This commit is contained in:
parent
9fa63cfe61
commit
bafc3f2a5a
@ -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();
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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());
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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 ]
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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") {
|
||||||
|
|||||||
@ -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") {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user