CloudStack4.1.1升级CloudPlatForm4.2.0实践手册

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

背景阐述

CloudStack是开源软件,CloudPlatFormCloudStack的企业版实现,其中增加了某些企业级特性,如主机高可用,所以打算将原有的CloudStack升级为CloudPlatForm,从而提高整个架构的稳定性与高可用性。

建议使用本手册的读者先单独安装CloudStack4.1.1以及CloudPlatForm4.2.0或者CloudStack4.2.0,需要足够了解两个版本之间的安装差异,才能在升级的过程中遇到问题可以快速定位是个人操作的问题还是版本差异导致的问题。毕竟生产环境的升级风险还是非常之大的。

如果读者使用在生产环境上面的CloudStack有外围系统需要调用CloudStack的接口进行一些功能实现,也需要考虑两个版本之间的API差异,总之,生产环境升级之前一定要做到测试环境完全没有问题,并且建议测试2~3遍。确保万无一失的情况下面,做到生产环境的数据备份,再进行生产环境的升级。

本文同样适用于CloudStack4.1.1CloudStack4.2.0的升级工作。

安装差异

就笔者的操作经验来看,安装CloudStack4.1.1 CloudPlatForm4.2.0的最大区别是两个版本的系统模板文件不一样,在整个升级过程中,官方文档中没有提及,但是确实非常关键,如果关于系统模板的升级工作没有做好,那么在CloudStack中充当重要角色的几个系统虚机就无法正常工作。

两个系统模板链接

【本文以CloudStack+KVM为背景环境,故系统模板使用的是KVM的模板】

CloudStack4.1.1

http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2

CloudPlatForm4.2.0【开源版也是这个,Md5值验证一致】

http://download.cloud.com/templates/4.2/systemvmtemplate-2013-06-12-

master-kvm.qcow2.bz2

重现CloudStack4.1.1环境

本文不对CloudStack4.1.1的安装步骤赘述了,在此仅仅列出CloudStack中的相关逻辑资源信息

角色

Zone

ClovemZone

POD

POD

管理IP范围

192.168.0.110-192.168.0.110

来宾IP范围

192.168.0.130-192.168.0.150

集群

CLUSTER

主机

192.168.0.2[解析后显示ClovemDemo ]

主存储

192.168.0.2/primary [NFS]

辅助存储

192.168.0.2/secondary [NFS]

SSVM

s-1-VM

CPVM

v-2-VM

VRouter

r-6-VM

运行实例

clovem-instance-001 [i-2-5-VM]

:本文测试环境管理节点跟主机节点以及存储均在一台主机上

下面几个截图为以上部分信息来源。

133853481.png

133855492.png

133857197.png


开始升级

132800425.png

登录已经运行的实例进行计时操作,按1个小时开始计算,计时的同时是为了证明升级过程中,不会影响实例的使用。

1.添加并启用cloudplatform4.2.0的YUM源,用于更新使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@ClovemDemo ~] # cat /etc/yum.repos.d/rhel-source.repo
[rhel6u3]
name=rhel6u3
baseurl= file : ///media/rhel6u3
enabled=1
gpgcheck=0
[cloudstack4.1.1]
name=cloudstack4.1.1
baseurl= file : ///media/cloudstack4 .1.1
enabled=1
gpgcheck=0
[cloudplatform4.2.0]
name=cloudplatform4.2.0
baseurl= file : ///media/cloudplatform4 .2.0
enabled=1
gpgcheck=0

2.停止cloudstack-management服务,并备份cloud库文件。

1
2
3
[root@ClovemDemo ~] # service cloudstack-management stop
Stopping cloudstack-management:   [  OK  ]
[root@ClovemDemo ~] # mysqldump -u root –p123456  cloud > cloudstack-backup.sql

3. 执行yum upgrade操作,进行组件升级

1
2
3
4
5
6
[root@ClovemDemo ~] # yum upgrade –y
[root@ClovemDemo ~] # rpm -qa |grep cloudstack
cloudstack-common-4.2.0-2.el6.x86_64
cloudstack-agent-4.2.0-2.el6.x86_64
cloudstack-awsapi-4.2.0-2.el6.x86_64
cloudstack-management-4.2.0-2.el6.x86_64

由于本测试环境的管理节点跟主机[Agent]节点为同一台物理主机,所以,此处会将cloudstack-agent也进行更新,不管是开源版的cloudstack,还是企业版的cloudplatform,名称都是cloudstack-服务项。

可以看到所有的cloudstack组件均升级到4.2.0版本了。

4. 启动管理节点,重启[Agent]节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@ClovemDemo ~] # ps -ef |grep java |grep -v grep |wc –l
0
[root@ClovemDemo ~] # service cloudstack-management start
Starting cloudstack-management:       [  OK  ]
[root@ClovemDemo ~] # ps -ef |grep java |grep -v grep  |wc -l
1
[root@ClovemDemo ~] # /etc/init.d/cloudstack-agent   restart
Stopping Cloud Agent:
Starting Cloud Agent:
[root@ClovemDemo ~] # ps -ef |grep java |grep -v grep |wc -l
3
[root@ClovemDemo ~] # lsof -i:8080
COMMAND   PID  USER   FD   TYPE  DEVICE SIZE /OFF  NODE NAME
java    64485 cloud   35u  IPv6 1289046      0t0  TCP *:webcache (LISTEN)
[root@ClovemDemo ~] # tailf /var/log/cloudstack/management/management-server.log

通过以上命令发现服正常启动,用tailf命令监控管理服务的日志信息

5. 登录UI查看升级后信息

134056208.png

134058315.png

134101970.png

134103720.png

134106411.png此时日志中会有如下信息

134228881.png

这样的警告,可以暂不关心,做到最后,一切都会正常了。

134447152.png

6. 升级系统模板

[1] 记录数据库中保存的原先系统模板的名称以及路径

template/tmpl/1/3//b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@ClovemDemo ~] # mysql -uroot -p123456 cloud -e  'SELECT install_path  FROM template_host_ref\G'
*************************** 1. row ***************************
install_path: template /tmpl/1/9/
*************************** 2. row ***************************
install_path: template /tmpl/1/8/
*************************** 3. row ***************************
install_path: template /tmpl/1/3//b7b85af8-d127-41d9-b316-34d2301fa7c7 .qcow2
*************************** 4. row ***************************
install_path: template /tmpl/1/1/
*************************** 5. row ***************************
install_path: NULL
*************************** 6. row ***************************
install_path: NULL
*************************** 7. row ***************************
install_path: NULL
*************************** 8. row ***************************
install_path: template /tmpl/2/202//3bce9e6c-4480-32e6-bd52-c7199a1bc375 .qcow2

[2] 查看模板所在路径以及相关模板信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@ClovemDemo ~] # ls\
  /secondary/template/tmpl/1/3/b7b85af8-d127-41d9-b316-34d2301fa7c7 .qcow2
/secondary/template/tmpl/1/3/b7b85af8-d127-41d9-b316-34d2301fa7c7 .qcow2
[root@ClovemDemo ~] # cat /secondary/template/tmpl/1/3/
b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2  template.properties                   
[root@ClovemDemo ~] # cat /secondary/template/tmpl/1/3/template.properties
filename=b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2
description=SystemVM Template
checksum=
hvm= false
size=725811200
qcow2= true
id =3
public= true
qcow2.filename=b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2
uniquename=routing-3
qcow2.virtualsize=725811200
virtualsize=725811200
qcow2.size=725811200

记录template.properties 中的filename以及qcow2.filename字段

b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2

[3] 导入cloudplatform4.2.0的系统模板,覆盖原有模板文件

1
2
3
4
[root@ClovemDemo ~] # /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt 、-m /secondary/ -f /var/www/html/cloud/systemvmtemplate-2013-06-12-master-kvm.qcow2.bz2  -h kvm -F
Uncompressing to  /usr/share/cloudstack-common/scripts/storage/secondary/7d037545-8106-4007-b1b9-3aaf59e9ae64 .qcow2.tmp ( type  bz2)...could take a long  time
Moving to  /secondary/template/tmpl/1/3///7d037545-8106-4007-b1b9-3aaf59e9ae64 .qcow2...could take a  while
Successfully installed system VM template  /var/www/html/cloud/systemvmtemplate-2013-06-12-master-kvm .qcow2.bz2 to  /secondary/template/tmpl/1/3/

[4]查看新导入的系统模板信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@ClovemDemo ~] # ls /secondary/template/tmpl/1/3/
7d037545-8106-4007-b1b9-3aaf59e9ae64.qcow2  template.properties
[root@ClovemDemo ~] # cat /secondary/template/tmpl/1/3/template.properties
filename=7d037545-8106-4007-b1b9-3aaf59e9ae64.qcow2
description=SystemVM Template
checksum=
hvm= false
size=276162048
qcow2= true
id =3
public= true
qcow2.filename=7d037545-8106-4007-b1b9-3aaf59e9ae64.qcow2
uniquename=routing-3
qcow2.virtualsize=276162048
virtualsize=276162048
qcow2.size=276162048

发现其文件名已经改变

[5] 修改新系统模板导入后的文件名,跟原先的系统模板名一致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@ClovemDemo ~] # cd /secondary/template/tmpl/1/3/
[root@ClovemDemo 3] # mv 7d037545-8106-4007-b1b9-3aaf59e9ae64.qcow2  b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2
[root@ClovemDemo 3] # sed -i 's/7d037545-8106-4007-b1b9-3aaf59e9ae64.qcow2/b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2/g'  template.properties
[root@ClovemDemo 3] # cat template.properties
filename=b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2
description=SystemVM Template
checksum=
hvm= false
size=276162048
qcow2= true
id =3
public= true
qcow2.filename=b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2
uniquename=routing-3
qcow2.virtualsize=276162048
virtualsize=276162048
qcow2.size=276162048

如上代码操作,将7d037545-8106-4007-b1b9-3aaf59e9ae64.qcow2 修改为原先系统模板的名称

b7b85af8-d127-41d9-b316-34d2301fa7c7.qcow2template.properties中也同时替换,如此,无需修改数据库中的相关字段。

[6]将CloudPlatForm的区域禁用

135640185.png

135643362.png


[7] 清空系统模板缓存,将所有系统虚机状态置为Stopped

1
2
3
4
5
6
7
8
9
10
11
12
mysql> UPDATE template_spool_ref SET download_pct= '0' ,download_state= 'NOT_DOWNLOADED' ,state= 'NULL' ,local_path= 'NULL' ,install_path= 'NULL' ,template_size= '0'  WHERE template_id= '3' ;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> UPDATE vm_instance SET state= 'Stopped'  where  id =1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> UPDATE vm_instance SET state= 'Stopped'  where  id =2;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> UPDATE vm_instance SET state= 'Stopped'  where  id =6;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

将s-1-VM,v-2-VM,r-6-VM的状态全部置为Stopped状态,id号一般为系统虚机名称中间的数字,不确定的话,通过对vm_instance的记录进行查询即可。

[8] 启用cloudplatform的区域,销毁所有Stopped状态的系统虚机

140030833.png

140136225.png


135949809.png


按照同样的方式销毁SSVM(s-1-VM)跟CPVM(v-2-VM),然后查看基础架构

140256830.png


等待片刻,查看系统虚机,发现新的SSVM跟 CPVM已经重建完成

140412279.png

[9] 新建实例,验证功能是否正常

140709314.png

140712110.png

140714133.png

140716567.png

140718383.png

140721892.png

[10]查看原有实例clovem-instance-001状态并验证功能调用

140824842.png

140932990.png

140935283.png



141207355.png

141209210.png

141753313.png


此时再去看日志,会发现之前的警告消失了。

141417828.png



按照以上的步骤操作,基本不会有问题了,笔者通过了多次验证,记录下以上所有步骤,希望可以帮到大家。

升级成功后,大家可以进行更加详细的测试,比如上文的停止,启动实例,也可以通过注册模板,下载模板等其他方式验证升级是否成功!

祝大家操作顺利!










本文转自 暗黑魔君 51CTO博客,原文链接:http://blog.51cto.com/clovemfong/1345640,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
消息中间件 Kubernetes 关系型数据库
教程get | K8S部署OpenStack容器云(下)
如何借助OpenStack Kolla-K8S项目,通过K8S对OpenStack进行容器化部署?并最终部署一套All-In-One类型的OpenStack容器云?让我们继续部署: 部署kolla-kubernetes ■  覆盖默认的RBAC设置 通过kubectl replace命令进行默.
4425 0
|
4月前
|
存储 安全 Linux
云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)
云计算|OpenStack|社区版OpenStack安装部署文档(一 --- 前期硬件准备和部署规划)
258 0
|
11月前
|
消息中间件 机器学习/深度学习 安全
搭建OpenStack多节点的企业私有云平台——基础基础环境搭建
搭建OpenStack多节点的企业私有云平台——基础基础环境搭建
660 0
|
运维 监控 Cloud Native
CentOS7下部署滴滴云开源运维监控系统-Nightingale
CentOS7下部署滴滴云开源运维监控系统-Nightingale
440 0
CentOS7下部署滴滴云开源运维监控系统-Nightingale
|
存储 Devops Linux
群晖+DOCKER,一个更好的DEVOPS+WEBOS云平台及综合云OS选型
本文关键字:dualrunning os bootloader设想,dockerized os subsystem appmodel,云devops学编程
761 0
群晖+DOCKER,一个更好的DEVOPS+WEBOS云平台及综合云OS选型
|
存储 测试技术
CloudStack+XenServer详细部署方案(1):方案规划设计
CloudStack+XenServer详细部署方案(1):方案规划设计 本文简单介绍CloudStack +XenServer 部署过程。供大家了解CloudStack的功能和理解CloudStack的架构设计。
887 0
|
存储 网络协议 开发工具
|
存储 监控 Kubernetes
PaaS平台OpenShift企业部署的“脑图”
本文讲的是PaaS平台OpenShift企业部署的“脑图”【编者的话】这篇文章是来自红帽,是关于OpenShift企业部署的“蓝图”,通过“脑图”帮助客户实现企业级部署OpenShift。
2619 0
|
Kubernetes 虚拟化 容器
红帽集成Kubernetes 欲打造一体化混合云
本文讲的是红帽集成Kubernetes 欲打造一体化混合云【IT168 编译】你肯定已经注意到,IT正从机房和数据中心转移到云和容器中。行业中处于领先地位的Linux公司红帽也是一样。在其最新的混合云——红帽Cloud Suite中,红帽宣称它提供了“一个面向企业数字化转型的端对端、部署就绪的解决方案。
1840 0