sungirl 发表于 2015-7-17 14:02:03

虚拟桌面无法启动

本帖最后由 sungirl 于 2015-7-17 14:05 编辑

故障原因
虚拟桌面无法正常启动的故障,启动报错为“The VDI is not available”,导致部分办公人员无法正常使用虚拟桌面。经过排查主要原因为虚拟机非正常关闭或虚拟机故障重启,服务器虚拟化底层XAPI服务Hung住导致XenServer重启也是其中一方面原因。 故障过程
本次桌面虚拟化无法启动故障持续了一天的时间,由于虚拟机故障数量较多,所以寻求Citrix专家进行远程修复,以下批量处理方法为Citrix专家提供。 解决方法
1 单台解决方法
1.1   找到故障虚拟机的VBD
xe vbd-list vm-uuid=故障虚拟机UUID1.2   卸载磁盘 VDI xe vdi-forget uuid=VDI UUID注意:如有两块磁盘需要卸载另一块磁盘的VDI UUID1.3   重新scan此VDI所在的存储 xe sr-scan uuid=LUN UUID1.4   将原来的VDI重新挂载到故障虚拟机 xe vbd-create vdi-uuid=XXXXXX vm-uuid= XXXXXXXX bootable=true device=0 type=Disk mode=RW注:将此VDI重新挂载到VM         Bootable=yes:从此VDI启动         Device=0:第一个磁盘,如果有第二个,过程同上         Mode=RW:此磁盘可以读写
2      多台批量处理解决方法
2.1   检索虚拟机UUID到一个文本
cat XXX.txt |grep VDI -A 2|grep uuid|awk '{print $5}' > vdi22.2   运行以下脚本进行批量处理有故障的虚拟机 #!/bin/bash#the script is fixed to "The VDI is not available"#read -p "please input your vm name:" namefor name in `catBZZS_vm`do echo "start $name -----"export vmuuid=`xe vm-list name-label=$name|awk '/uuid/ {print $5}'|sed '/^$/d'`export vdiuuid=`xe vbd-list vm-uuid=$vmuuid params=vdi-uuid|awk '/uuid/ {print $5}'|grep -v \< |sed '/^$/d'`fori in $vdiuuid   do(      sruuid=`xe vdi-list uuid=$iparams=sr-uuid|awk '/uuid/ {print $5}'|grep -v \< |sed '/^$/d'`;      vbduuid=`xe vdi-list uuid=$iparams=vbd-uuids|awk '/vbd-uuids/ {print $4}'|sed '/^$/d'`;      devicelabel=`xe vbd-list params=all uuid=$vbduuid |awk '/userdevice/ {print $4}'`;                namelabel=`xe vdi-list uuid=$i |awk '/name-label/ {print $4}'`;if [ -z $devicelabel ]then   echo "device can't empty";   break;else   xe vdi-forget uuid=$i;   xe sr-scan uuid=$sruuid;   k=0         while [[ `xe vbd-list uuid=$vbduuid|awk '/vm-uuid/ {print $4}'` == $vmuuid ]];do         sleep 1s;         ((k++));         echo "$k"s;         done;   xe vdi-param-set name-label=$namelabel uuid=$i   xe vbd-create device=$devicelabelvdi-uuid=$i vm-uuid=$vmuuid bootable=true type=Disk mode=RWfi)echo "$name finished!"donedoneecho All VDI recovered!
页: [1]
查看完整版本: 虚拟桌面无法启动