CloudStack升级中文指南: 4.1.x/4.2.x 至 4.3版本

本文翻译于官方文档,当考虑到众多朋友方便查阅,特翻译成中文供大家参考。

原文连接:http://docs.cloudstack.apache.org/projects/cloudstack-release-notes/en/latest/rnotes.html

那啥,我读书不多,要是翻译不对别喷我。

为了方便大家,制作了pdf文档,在附件。

稍后我会给出具体升级案例指导。


  1. 大多数CS用户在安装或者更新时采用包管理系统,比如RPM或者APT. 本指南将指导你如何通过RPM、YUM (针对 Red Hat Enterprise Linux 或者CentOS), 或 APT和Debian  (针对 Ubuntu).

  2. 备注

    不管使用何种虚拟化.该手册将指导你如何进行升级工作.

    1. 在现有CS4.1、4.2平台中,使用管理账户登录管理控制台。

    2. 在左边导航中,点击模版。

    3. 选择模版视图.

    4. 点击注册模版.

      注册模版信息如下面表格所示.

    5. 在注册模版对话框中, 按如下表格填写 (切记,不可改变如下信息):

      虚拟化描述
      XenServer

      Name: systemvm-xenserver-4.3

      Description: systemvm-xenserver-4.3

      URL: http://download.cloud.com/templates/4.3/systemvm64template-2014-01-14-master-xen.vhd.bz2

      Zone: Choose the zone where this hypervisor is used

      Hypervisor: XenServer

      Format: VHD

      OS Type: Debian GNU/Linux 7.0 (64-bit) (or the highest Debian release number available in the dropdown)

      Extractable: no

      Password Enabled: no

      Public: no

      Featured: no

      KVM

      Name: systemvm-kvm-4.3

      Description: systemvm-kvm-4.3

      URL: http://download.cloud.com/templates/4.3/systemvm64template-2014-01-14-master-kvm.qcow2.bz2

      Zone: Choose the zone where this hypervisor is used

      Hypervisor: KVM

      Format: QCOW2

      OS Type: Debian GNU/Linux 7.0 (64-bit) (or the highest Debian release number available in the dropdown)

      Extractable: no

      Password Enabled: no

      Public: no

      Featured: no

      VMware

      Name: systemvm-vmware-4.3

      Description: systemvm-vmware-4.3

      URL: http://download.cloud.com/templates/4.3/systemvm64template-2014-01-14-master-vmware.ova

      Zone: Choose the zone where this hypervisor is used

      Hypervisor: VMware

      Format: OVA

      OS Type: Debian GNU/Linux 7.0 (64-bit) (or the highest Debian release number available in the dropdown)

      Extractable: no

      Password Enabled: no

      Public: no

      Featured: no

  3. 通过4.2.1源码包创建RPM或Debian软件包(视情况而定) ,通过CloudStack下载页面:http://cloudstack.apache.org/downloads.html 查找社区成员提供的软件包仓库 . 你会需要步骤 8 或 11.

    通过源码包创建Cloudstack安装包说明: Installation Guide.

  4. 停止你的cloudstack-management服务. 在management主机中运行如下命令:

    # service cloudstack-management stop
  5. 如果你在运行usage server 或usage servers, 则停止如下服务:

    # service cloudstack-usage stop
  6. 对Mysql数据库做备份.如果你遇到任何问题或需要回滚升级, 这将协助或恢复您的现有环境. 按系统提示输入你的密码.

    # mysqldump -u root -p cloud > cloudstack-backup.sql
  7. (仅KVM主机) 如果使用了本地存储作为主存储,该存储路径需要确认可以通过验证.从cloud.storage_pool 表查询本地存储信息:

    #mysql -u cloud -p -e "select id,name,path from cloud.storage_pool where pool_type='Filesystem'"

    如果本地存储路径最后有斜杠“/”, 则移除:

    #mysql -u cloud -p -e 'update cloud.storage_pool set path="/var/lib/libvirt/p_w_picpaths" where path="/var/lib/libvirt/p_w_picpaths/"';
  8. 如果你在使用Ubuntu,遵循如下步骤进行软件包的升级. 如果没有,跳至步骤11.

    Note

    Community Packages:这一步假设你在使用社区提供的CloudStack仓库. 如果你创建了自己的软件包和yum仓库, 在如下例子中,替换你自己的URL.

    1. 第一步要做的就是配置所有的Cloudstack主机的仓库源列表. 包括所有的management主机和kvm主机 . (运行VMware 或 Xen的主机不需要更改 .)

      首先打开 /etc/apt/sources.list.d/cloudstack.list在任何需要安装cloudstack软件包的主机上 .

      这个文件应该包含一行如下信息:

      deb http://cloudstack.apt-get.eu/ubuntu precise 4.0
      

      我们将它更改为新的软件包仓库:

      deb http://cloudstack.apt-get.eu/ubuntu precise 4.2 

      如果你使用自己的软件包仓库, 改变这一行信息为你自己的4.3.0仓库..

    2. 更新apt包列表:

      $ sudo apt-get update
      
    3. 现在你配置好软件仓库, 可以开始安装 cloudstack-management. 这一步会有很多依赖的包被安装.

      $ sudo apt-get install cloudstack-management
      
    4. 你需要手动安装cloudstack-agent :

      $ sudo apt-get install cloudstack-agent
      

      在安装 cloudstack-agent期间, APT会从/etc/cloud/agent拷贝你的 agent.properties, log4j-cloud.xml, 和 environment.properties 文件到/etc/cloudstack/agent.

      当提示是否保留你的配置时, 选择“是”.

    5. 验证该文件中/etc/cloudstack/agent/environment.properties 有如下记录:

       
              
      paths.script=/usr/share/cloudstack-common
      如果不存在,则添加此行.
    6. 重启agent服务:

      service cloudstack-agent stop
      killall jsvc
      service cloudstack-agent start
      
  9. (仅VMware) VMware集群需要做额外的操作. 这些步骤不会影响云中正在运行的虚拟机. 这些步骤只针对云环境中使用的 VMware集群:

    1. 停止Management服务:

      service cloudstack-management stop
      
    2. 生成加密后的VCenter密码:

      java -classpath /usr/share/cloudstack-common/lib/jasypt-1.9.0.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI encrypt.sh input="_your_vCenter_password_"password="`cat /etc/cloudstack/management/key`"verbose=false

      保存此步骤的输出, 我们需要将其替换cluster_details和vmware_data_center中的纯文本密码

    3. 查找cluster_details表中要被更新的行ID:

      mysql -u <username> -p<password>
      
      select * from cloud.cluster_details;
      
    4. 更新纯文本密码为加密密码:

      update cloud.cluster_details set value='_ciphertext_from_step_1_' where id= _id_from_step_2_;
      
    5. 确认如下表被更新:

      select * from cloud.cluster_details;
      
    6. 查找vmware_data_center表中要被更新的行ID:

      select * from cloud.vmware_data_center; 
    7. 更新纯文本密码为加密密码:

      update cloud.vmware_data_center set password='_ciphertext_from_step_1_' where id= _id_from_step_5_;
      
    8. 确认如下表被更新:

      select * from cloud.vmware_data_center;
      
    9. 启动Management服务

      service cloudstack-management start
      
  10. (仅KVM) 每一个KVM主机需要额外的步骤  These steps will not affect running guests in the cloud. 该步骤只针对云环境中的KVM主机.

    1. 配置CloudStack的yum仓库.

    2. 停止agent服务.

      # service cloustack-agent stop
    3. 升级agent软件.

      # yum update cloudstack-agent
    4. 启动agent.

      # service cloudstack-agent start
  11. 如果你使用CentOS 或 RHEL,遵循如下步骤进行软件包的升级. 如果没有,跳至步骤  13.

    备注

    Community Packages: 这一步假设你在使用社区提供的CloudStack仓库. 如果你创建了自己的软件包和yum仓库, 在如下例子中,替换你自己的URL.

    1. 第一步要做的就是配置所有的Cloudstack主机的yum软件包仓库. 包括所有的management主机和kvm主机.

      (运行VMware 或 Xen的主机不需要更改.)

      首先打开 /etc/yum.repos.d/cloudstack.repo 在任何需要安装cloudstack软件包的主机上.

      这个文件内容应该类似于下面的:

      [apache-cloudstack]name=Apache CloudStack
      baseurl=http://cloudstack.apt-get.eu/rhel/4.0/
      enabled=1
      gpgcheck=0
      

      如果你在使用社区提供的软件包仓库, 改变基础URL为:http://cloudstack.apt-get.eu/rhel/4.3/

      如果你使用自己的软件包仓库, 改变这一行信息为你自己的仓库.

    2. 现在你已经配置好软件仓库, 可以开始升级新的 cloudstack-management软件包来更新旧的软件包 .

      $ sudo yum upgrade cloudstack-management
      
    3. 针对KVM主机, 你需要升级 cloud-agent 软件包, 新版本为:cloudstack-agent.

      $ sudo yum upgrade cloudstack-agent
      
    4. 验证该文件中/etc/cloudstack/agent/environment.properties 有如下记录:

      paths.script=/usr/share/cloudstack-common
      

      如果不存在,则添加此行.

    5. 重启agent服务:

      service cloudstack-agent stop
      killall jsvc
      service cloudstack-agent start
      
  12. 现在启动cloudstack-management服务:

    # service cloudstack-management start
  13. 一旦你升级了管理服务器的软件包, 你需要重启系统虚拟机. 确保使用全局变量 “integration.api.port” 将管理端口设置为8096. 在升级结束后cloud-sysvmadm脚本会使用这个端口.关于如何设置这个参数, 请看 “Setting Global Configuration Parameters” 这个安装指南. 改变这个参数需要重新启动管理服务.

    还要确认在你本地主机防火墙中开放8096端口.

    这里有个脚本帮助你做这些。运行这个脚本时你需要提供Mysql实例主机IP地址和认证信息:

    # nohup cloudstack-sysvmadm -d IP address -u cloud -p -a > sysvm.log 2>&1 &

    你可以监控该日志进程. 系统VM重启需要花费一些时间.

    # tail -f sysvm.log

    在输出文件sysvm.log中你会看到类似如下信息:

    Stopping and starting 1 secondary storage vm(s)...
    Done stopping and starting secondary storage vm(s)
    Stopping and starting 1 console proxy vm(s)...
    Done stopping and starting console proxy vm(s).
    Stopping and starting 4 running routing vm(s)...
    Done restarting router(s).
    
  14. 备注

    针对 Xen Hosts: 复制 vhd-utils: 此步骤只针对使用CS管理的XEN主机.

    复制文件 vhd-utils/usr/share/cloudstack-common/scripts/vm/hypervisor/xenserver.