升级XenServer版本

本章节介绍了如何升级CloudStack环境中的XenServer。实际升级的操作在XenServer文档中有详细描述,但是在升级前后有些额外的步骤必须执行。

注解

确保硬件可以被新版本XenServer支持。

升级XenServer:

  1. 升级数据库。在管理服务器节点上:

    1. 备份数据库:

      1. # mysqldump --user=root --databases cloud > cloud.backup.sql
      2. # mysqldump --user=root --databases cloud_usage > cloud_usage.backup.sql
    2. 需要更改升级后的主机中虚拟机的操作系统类型。

      • 如果是从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,需完成以上所有操作。

    3. 重启管理服务和Usage服务. 只需为所有的集群做一次这样的操作。

      1. # service cloudstack-management start
      2. # service cloudstack-usage start
  2. 在CloudStack中断开XenServer群集连接。

    1. 使用admin账户登录CloudStack管理界面。

    2. 导航至XenServer群集,点击操作-取消管理。

    3. 查看群集状态直到显示未受管理。

  3. 登录到群集中的任意一台主机,运行下面的命令清除VLAN信息:

    1. # . /opt/xensource/bin/cloud-clean-vlan.sh
  4. 仍旧在这台已经登录的主机中,运行下面的升级准备脚本:

    1. # /opt/xensource/bin/cloud-prepare-upgrade.sh

    故障排除:如果看到 “can’t eject CD,” 错误,请登录到虚拟机将光盘卸载,并重新运行脚本。

  5. 升级群集中所有的XenServer主机。首先升级master节点。

    1. 将该主机上的所有虚拟机动态迁移到其他主机。请参照管理指南了解动态迁移指导。

      故障排除:迁移虚拟机时可能会遇到下面的错误:

      1. [[email protected] ~]# xe vm-migrate live=true host=xenserver-qa-2-49-5 vm=i-2-8-VM
      2. You attempted an operation on a VM which requires PV drivers to be installed but the drivers were not detected.
      3. vm: b6cf79c8-02ee-050b-922f-49583d9f1a14 (i-2-8-VM)

      解决这个问题,请运行下面的命令:

      1. # /opt/xensource/bin/make_migratable.sh b6cf79c8-02ee-050b-922f-49583d9f1a14
    2. 重启主机。

    3. 要升级更新版本的XenServer。请执行XenServer文档中的步骤。

    4. 在升级完成之后,将下列文件从管理服务器复制到这台主机,文件所在路径如下:

      复制管理服务器的文件

      复制到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
    5. 执行下列脚本:

      1. # /opt/xensource/bin/setupxenserver.sh

      故障排除:如果看到下面的错误信息,可以忽略它。

      1. mv: cannot stat `/etc/cron.daily/logrotate`: No such file or directory
    6. 将XenServer主机连接至存储库(物理的块设备):

      1. # for pbd in `xe pbd-list currently-attached=false| grep ^uuid | awk '{print $NF}'`; do xe pbd-plug uuid=$pbd ; done

      注解

      如果添加一台主机到这个XenServer资源池中,你必须将这台主机上的所有的虚机迁移到其他主机,然后将这台主机从原来的XenServer资源池中移除。

  6. 重复这些步骤,将每台主机都升级到相同的XenServer版本。

  7. 在XenServer群集中的一台主机上运行下面命令来清除主机标签:

    1. # for host in $(xe host-list | grep ^uuid | awk '{print $NF}') ; do xe host-param-clear uuid=$host param-name=tags; done;

    注解

    当复制和粘贴命令时,请确保没有多余的换行符,因为一些文档查看器可能会在复制时加上换行符。

  8. 在CloudStack中重新连接XenServer群集。

    1. 使用admin账户登录CloudStack管理界面。

    2. 在XenServer群集导航页中,点击操作-管理。

    3. 查看状态以确保所有的主机都恢复正常.

  9. 当所有的主机都是运行状态后, 在集群中的一台主机上运行下列的命令:

    1. # /opt/xensource/bin/cloud-clean-vlan.sh