mirror of https://github.com/apache/cloudstack.git
Offline storage migration for scaleio encrypted volumes
This commit is contained in:
parent
c254d3b3dd
commit
0b30884e37
|
|
@ -37,6 +37,7 @@ import java.util.UUID;
|
|||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.storage.ScopeType;
|
||||
import com.cloud.storage.Volume;
|
||||
import org.apache.cloudstack.agent.directdownload.DirectDownloadAnswer;
|
||||
import org.apache.cloudstack.agent.directdownload.DirectDownloadCommand;
|
||||
import org.apache.cloudstack.agent.directdownload.HttpDirectDownloadCommand;
|
||||
|
|
@ -2448,7 +2449,12 @@ public class KVMStorageProcessor implements StorageProcessor {
|
|||
|
||||
destPool = storagePoolMgr.getStoragePool(destPrimaryStore.getPoolType(), destPrimaryStore.getUuid());
|
||||
try {
|
||||
storagePoolMgr.copyPhysicalDisk(volume, destVolumeName, destPool, cmd.getWaitInMillSeconds());
|
||||
if (srcVol.getPassphrase() != null && srcVol.getVolumeType().equals(Volume.Type.ROOT)) {
|
||||
volume.setQemuEncryptFormat(QemuObject.EncryptFormat.LUKS);
|
||||
storagePoolMgr.copyPhysicalDisk(volume, destVolumeName, destPool, cmd.getWaitInMillSeconds(), srcVol.getPassphrase(), destVol.getPassphrase(), srcVol.getProvisioningType());
|
||||
} else {
|
||||
storagePoolMgr.copyPhysicalDisk(volume, destVolumeName, destPool, cmd.getWaitInMillSeconds());
|
||||
}
|
||||
} catch (Exception e) { // Any exceptions while copying the disk, should send failed answer with the error message
|
||||
String errMsg = String.format("Failed to copy volume: %s to dest storage: %s, due to %s", srcVol.getName(), destPrimaryStore.getName(), e.toString());
|
||||
s_logger.debug(errMsg, e);
|
||||
|
|
|
|||
|
|
@ -504,7 +504,11 @@ public class ScaleIOPrimaryDataStoreDriver implements PrimaryDataStoreDriver {
|
|||
volume.setFolder(scaleIOVolume.getVtreeId());
|
||||
volume.setSize(scaleIOVolume.getSizeInKb() * 1024);
|
||||
volume.setPoolType(Storage.StoragePoolType.PowerFlex);
|
||||
volume.setFormat(Storage.ImageFormat.RAW);
|
||||
if (volumeInfo.getVolumeType().equals(Volume.Type.ROOT)) {
|
||||
volume.setFormat(volumeInfo.getFormat());
|
||||
} else {
|
||||
volume.setFormat(Storage.ImageFormat.RAW);
|
||||
}
|
||||
volume.setPoolId(storagePoolId);
|
||||
VolumeObject createdObject = VolumeObject.getVolumeObject(volumeInfo.getDataStore(), volume);
|
||||
createdObject.update();
|
||||
|
|
|
|||
Loading…
Reference in New Issue