升级XenServer版本
本章节介绍了如何升级CloudStack环境中的XenServer。实际升级的操作在XenServer文档中有详细描述,但是在升级前后有些额外的步骤必须执行。
注解
确保硬件可以被新版本XenServer支持。
升级XenServer:
升级数据库。在管理服务器节点上:
备份数据库:
- # mysqldump --user=root --databases cloud > cloud.backup.sql
- # mysqldump --user=root --databases cloud_usage > cloud_usage.backup.sql
需要更改升级后的主机中虚拟机的操作系统类型。
如果是从XenServer 5.6 GA 升级到XenServer 5.6 SP2,更改虚机操作系统类型CentOS 5.5 (32-bit), Oracle Enterprise Linux 5.5 (32-bit)或者Red Hat Enterprise Linux 5.5 (32-bit)为Other Linux (32-bit)。同样这些虚机的64位版本操作系统类型也要改为Other Linux (64-bit)。
如果是从XenServer 5.6 SP2升级到XenServer 6.0.2,更改虚拟操作系统类型CentOS 5.6 (32-bit), CentOS 5.7 (32-bit), Oracle Enterprise Linux 5.6 (32-bit), Oracle Enterprise Linux 5.7 (32-bit), Red Hat Enterprise Linux 5.6 (32-bit)或者Red Hat Enterprise Linux 5.7 (32-bit)为Other Linux (32-bit)。同样这些虚机的64位版本操作系统类型也要改为Other Linux (64-bit)。
如果从XenServer 5.6升级到XenServer 6.0.2,需完成以上所有操作。
重启管理服务和Usage服务. 只需为所有的集群做一次这样的操作。
- # service cloudstack-management start
- # service cloudstack-usage start
在CloudStack中断开XenServer群集连接。
使用admin账户登录CloudStack管理界面。
导航至XenServer群集,点击操作-取消管理。
查看群集状态直到显示未受管理。
登录到群集中的任意一台主机,运行下面的命令清除VLAN信息:
- # . /opt/xensource/bin/cloud-clean-vlan.sh
仍旧在这台已经登录的主机中,运行下面的升级准备脚本:
- # /opt/xensource/bin/cloud-prepare-upgrade.sh
故障排除:如果看到 “can’t eject CD,” 错误,请登录到虚拟机将光盘卸载,并重新运行脚本。
升级群集中所有的XenServer主机。首先升级master节点。
将该主机上的所有虚拟机动态迁移到其他主机。请参照管理指南了解动态迁移指导。
故障排除:迁移虚拟机时可能会遇到下面的错误:
- [[email protected] ~]# xe vm-migrate live=true host=xenserver-qa-2-49-5 vm=i-2-8-VM
- You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected.
- vm: b6cf79c8-02ee-050b-922f-49583d9f1a14 (i-2-8-VM)
解决这个问题,请运行下面的命令:
- # /opt/xensource/bin/make_migratable.sh b6cf79c8-02ee-050b-922f-49583d9f1a14
重启主机。
要升级更新版本的XenServer。请执行XenServer文档中的步骤。
在升级完成之后,将下列文件从管理服务器复制到这台主机,文件所在路径如下:
复制管理服务器的文件
复制到XenServer主机的路径
/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py /opt/xensource/sm/NFSSR.py /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/setupxenserver.sh /opt/xensource/bin/setupxenserver.sh /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/make_migratable.sh /opt/xensource/bin/make_migratable.sh /usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver/cloud-clean-vlan.sh /opt/xensource/bin/cloud-clean-vlan.sh 执行下列脚本:
- # /opt/xensource/bin/setupxenserver.sh
故障排除:如果看到下面的错误信息,可以忽略它。
- mv: cannot stat `/etc/cron.daily/logrotate`: No such file or directory
将XenServer主机连接至存储库(物理的块设备):
- # for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; done
注解
如果添加一台主机到这个XenServer资源池中,你必须将这台主机上的所有的虚机迁移到其他主机,然后将这台主机从原来的XenServer资源池中移除。
重复这些步骤,将每台主机都升级到相同的XenServer版本。
在XenServer群集中的一台主机上运行下面命令来清除主机标签:
- # for host in $(xe host-list | grep ^uuid | awk '{print $NF}') ; do xe host-param-clear uuid=$host param-name=tags; done;
注解
当复制和粘贴命令时,请确保没有多余的换行符,因为一些文档查看器可能会在复制时加上换行符。
在CloudStack中重新连接XenServer群集。
使用admin账户登录CloudStack管理界面。
在XenServer群集导航页中,点击操作-管理。
查看状态以确保所有的主机都恢复正常.
当所有的主机都是运行状态后, 在集群中的一台主机上运行下列的命令:
- # /opt/xensource/bin/cloud-clean-vlan.sh