Xenserver批量创建磁盘并挂载给虚拟机
  ehrZuhofWJiC 23天前 15 0

主要步骤如下。

  1. 通过SSH连接到Xenserver
  2. 通过awk命令过滤出虚拟机名称及uuid并输出到一个文本
  3. 创建一块虚拟磁盘并已经格式化,后续此磁盘用于克隆新磁盘
  4. 通过while循环读取步骤2输出的信息设置新克隆的磁盘名称
  5. 通过步骤2输出的信息指定新克隆的磁盘挂载给指定uuid虚拟机
#通过awk命令过滤所需信息并重定向到/opt/vm-uuid文件中
xe vm-list | awk '$1=="uuid"||$1=="name-label"{print $NF}' | xargs -n2 | awk -v var=$(hostname) '$2!=var {print $2,$1}' >/opt/vm-uuid
#创建一块虚拟磁盘,设置好磁盘名称和容量大小
sr-uuid可以通过xe sr-list 命令查看,这里主要指定虚拟磁盘建立在哪个存储上面
Nvdi=$(xe vdi-create name-label=TEMP-DATA type=user virtual-size=5GiB sr-uuid=8a6c6978-2671-68af-8faf-f5b8f9c0af9c)
#通过while循环逐行读取文本内容并创建虚拟机磁盘挂载给指定uuid虚拟机,每读取一行执行一次命令,直至读取完成后,循环退出。
cat /opt/vm-uuid | while read line
do
vm_name=`echo $line | awk '{print $1}'`
vm_uuid=`echo $line | awk '{print $2}'`
#echo $vm_name
#echo $vm_uuid
vdi=$(xe vdi-clone new-name-label=$vm_name-DATA uuid=$Nvdi new-name-description=$vm_name-DATA)
echo -e "\e[32m 管理员正在将磁盘[$vm_name-DATA] 挂载给虚拟机[$vm_name]中 \e[0m"
vbd=$(xe vbd-create device=5 vdi-uuid=$vdi vm-uuid=$vm_uuid type=Disk mode=RW)
xe vbd-plug uuid=$vbd &>/dev/null
done
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 23天前 0

暂无评论

ehrZuhofWJiC
最新推荐 更多