fix(esxiagent): make the copied disk type as thin

磁盘首选精简制备,但是copy disk默认是预分配,所以需要特别指定为
精简制备
This commit is contained in:
rainzm
2021-05-14 15:05:10 +08:00
parent c15375df27
commit f6bf63fa89
+17 -3
View File
@@ -820,10 +820,24 @@ func (self *SHost) addDisks(ctx context.Context, dc *SDatacenter, ds *SDatastore
return nil, errors.Wrapf(err, "SHost.FileUrlPathToDsPath")
}
newImagePath := fmt.Sprintf("[%s] %s/%s.vmdk", ds.GetRelName(), uuid, uuid)
fm := ds.getDatastoreObj().NewFileManager(dc.getObjectDatacenter(), true)
err = fm.Copy(ctx, imagePath, newImagePath)
dm := object.NewVirtualDiskManager(self.manager.client.Client)
spec := &types.VirtualDiskSpec{
DiskType: "thin",
}
switch disk.Driver {
case "", "scsi", "pvscsi":
spec.AdapterType = "lsiLogic"
default:
spec.AdapterType = "ide"
}
task, err := dm.CopyVirtualDisk(self.manager.context, imagePath, self.datacenter.getDcObj(), newImagePath, self.datacenter.getDcObj(), spec, true)
if err != nil {
return nil, errors.Wrap(err, "unable to copy system disk")
return nil, errors.Wrap(err, "unable to CopyVirtualDisk")
}
err = task.Wait(self.manager.context)
if err != nil {
return nil, errors.Wrap(err, "waith CopyVirtualDiskTask")
}
imagePath = newImagePath
rootDiskSizeMb = size