问题现象描述:shell
有用户反映在Hypervisor存储上同一个计算机目录会有多个对应的同名baskdisk占用存储空间且不知如何清除数据库
背景及原理:
Citrix Machine Creation Service(MCS)的原理再也不这里作详细介绍,MCS的主要目的是根据一个虚拟机模板批量建立多一个虚拟机,咱们这里简单回忆下MCS建立的步骤:api
- 选择桌面操做系统类型(服务器,桌面或RemotePC)
- 选择电源托管和置备类型并指定须要使用的托管主机
- 选择桌面类型(专有,池静态,池随机)
- 选择模板或者快照(这里推荐先建立快照而后选择指定的快照,以方便用户后续管理)
- 选择建立的数量,内存,cache大小等
- 选择对应的OU和命令规则
- 选择scope并指定计算机目录的名称
完成以上步骤后后续交给DDC去执行,无需用户干预。这里须要特别指出的步骤2中选择的托管主机,托管主机的目的是配置建立机器须要是用的网络,存储和GPU资源等。在建立计算机目录或者更新计算机目录的过程当中,MCS会在使用的托管主机中的每一个存储分别拷贝一个Basedisk(举例:用户XenServer资源池中配置10个共享存储,可是托管主机中配置5个共享存储,这里会往指定的5个存储上拷贝basedisk).
问题产生可能缘由:服务器
- 拷贝超时并不断重试
- 用户现有的VM没有关联到新的basedisk
- 没有达到系统自动删除的时间
- 其余缘由
解决方法:markdown
针对Citrix XenServer:网络
- 打开Citrix studio->查询->确保没有pending update(待定更新)的机器

**Note: 或者经过Powershell “Get-BrokerMachine -ImageOutOfDate $true | select MachineName ” 来查看,若是能查询到机器则重启此机器,确保该查询不返回任何VM再执行如下操做
- DDC上管理员权限运行Powershell并输入asnp citrix来加载snapin
- 输入Get-Provscheme查询计算机目录对应的ProvsioningSchemeUid和host(默认ProvsioningSchemeName为计算机目录名称)

- 打开数据库服务器找到表 [DesktopUpdateManagerSchema].[ProvisioningSchemeVMImageLocation],这张表中咱们能够看到这个计算机目录对应的存储和basedisk对应的UUID

- 打开XenCenter找到上面步骤中对应的存储id:

- 从步骤4.5以看到在此存储上对应正在使用的basedisk的UUID,这里咱们记录下,由于多个basedisk存在的时候它们名称相同,咱们只能经过uuid来区分。
- 回到XenServer命令行经过如下命令来重命名正在使用的basedisk,其余没有被重命名的便可以经过xencenter进行删除

参考以上步骤删除其余存储上的basedisk便可编辑器
针对VMWare Esxiide
- 参考上述步骤1
- 经过客户端或者网页浏览VMWare对应的datastore,这里咱们能够看到同一个计算机目录对应多个basedisk

3.关闭此计算机目录中的任一台计算机并浏览其磁盘所在的文件夹找到-xd-delta.vmdk的文件并下载到本地

- 文本编辑器打开此文件咱们能够看到正在使用的basedisk

- 删除步骤2中查询到的其余basedisk便可。