9. UOS 升级¶
9.1. UOS 小版本升级¶
从UOS4.0 升级到4.3称为UOS 小版本升级。 升级分为两部分,undercloud升级和overcloud 升级。
9.1.1. undercloud 升级¶
9.1.1.1. 给undercloud打快照¶
登录undercloud,关机。
1 | poweroff
|
到种子节点执行
1 2 3 4 | # 打快照
qemu-img snapshot -c 2018-1-9 /var/lib/libvirt/images/undercloud.qcow2
# 查看快照
qemu-img snapshot -l /var/lib/libvirt/images/undercloud.qcow2
|
启动 undercloud
1 | virsh start undercloud
|
9.1.1.2. 升级undercloud package¶
- 登录到undercloud
- 停止openstack服务
1 | $ sudo systemctl stop 'openstack-*' 'neutron-*' httpd
|
- 升级python-tripleoclient,maintenance
1 | $ sudo yum update python-tripleoclient maintenance
|
- 升级undercloud
1 | $ openstack undercloud upgrade
|
当undercloud升级了kernel或者Open vSwitch 时需要重启。
1 | reboot
|
重启完毕后检查所有服务的状态
1 | $ sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"
|
验证undercloud
1 2 3 4 | $ source ~/stackrc
$ openstack server list
$ openstack baremetal node list
$ openstack stack list
|
9.1.2. overcloud升级¶
9.1.2.1. 升级overcloud 镜像¶
将新overcloud镜像上传到undercloud的images目录
1 2 | $ openstack overcloud image upload --update-existing --image-path /home/stack/images/
$ openstack baremetal configure boot
|
验证新镜像
1 2 | $ openstack image list
$ ls -l /httpboot
|
9.1.2.2. 升级overcloud¶
配置好新版本的yum源后,继续升级overcloud。
- 更新overcloud plan。
1 2 3 | $ openstack overcloud deploy --update-plan-only \
--templates \
[-e <environment_file>|...]
|
Tip
根据升级版本的release note 来配置 -e 参数。
- 更新overcloud
1 | $ openstack overcloud update stack -i overcloud
|
执行后会进入交互模式。进入断点的时候分别将所有controller执行一遍。 然后输入overcloud.* 对其余所有节点执行update package。
Warning
在controller 必须分开执行,否则可能会导致服务不可用。
9.1.3. UOS 4.3.1 升级注意事项¶
9.1.3.1. deploy.sh 脚本变化¶
除了少量 environment 需要指向 /home/stack/templates 目录,其余 environemnt 全部指向 /usr/share/uos-heat-templates 目录。需要指向 /home/stack/templates 下的 environment 有:
1 2 3 4 5 6 /home/stack/templates/environments/uos-network-config/network-isolation.yaml /home/stack/templates/environments/uos-network-config/network-environment.yaml /home/stack/templates/environments/uos-network-config/enable-jumbo-frame.yaml /home/stack/templates/environments/uos-network-config/fixed-vip.yaml /home/stack/templates/environments/uos-network-config/uos-storage.yaml /home/stack/templates/environments/cloudname.yaml
对 UOS 4.2.0, UOS 4.3.0 的 deploy.sh 脚本进行变更:
- 删除 standard environment:/usr/share/uos-heat-templates/environments/uos-standard-environment.yaml 或 /home/stack/environments/uos-standard-environment.yaml,将相关内容配置写入 /home/stack/templates/environments/{cloudname}.yaml 中
- 对象存储 environment 需要变更:原来指向 /usr/share/openstack-tripleo-heat-templates/environments/ceph-radosgw.yaml 改为 /usr/share/uos-heat-templates/environments/ceph-radosgw.yaml
- 已经开启 uplugin 的环境(在 UOS 4.3.0 开始默认情况下开启),需要添加 environment: /usr/share/uos-heat-templates/environments/uos-neutron-uplugin.yaml
- 已经开启 rating 的环境(从 UOS 4.3.0 开始默认情况下开启),需要添加 environment: /usr/share/uos-heat-templates/environments/uos-rating.yaml
- 原先 /home/stack/templates/environments/cloudname.yaml 或者 /usr/share/uos-heat-templates/environments/uos-ceph-environment.yaml 中存储相关配置,写入 /home/stack/templates/environments/uos-storage.yaml,具体样例参照: /usr/share/uos-heat-templates/environments/templates-example/uos-storage.yaml
- 检查是否存在 /usr/share/uos-heat-templates/environments/uos-portal.yaml,如果不存在该 environment ,则需要配置上,否则不会安装 kunkka 服务
- 原些开启了两个 rbd pool 作为 cinder 的存储后端,则需要在 /home/stack/templates/environments/cloudname.yaml 加上配置: CinderRbdExtraPools: ‘poolname’ , 其中 poolname 为原来 rbd pool 的名称 —— 千万不要填错,否则将导致严重后果。并且需要注意,如果在 UOS 4.3.0 版本中开启了 CinderSecondaryBackend 功能的,需要保留原来的 backend 配置,比如原来 backend_name = sata,则需要在 cloudname.yaml 中配置 “cinder_user_enabled_backends: sata”,以保留原来的配置,否则将导致卷无法正常删除。
9.1.3.2. 升级方式部署充值账单服务¶
Note
Shadowfiend 服务添加于 UOS 4.3.1 版本
本升级指南用于从 4.2.x、4.3.0 等升级到 4.3.1 方式部署 shadowfiend 服务。
9.1.3.2.1. 安装相应软件包¶
OverCloud 控制节点需要安装以下软件包:
- shadowfiend-common
- shadowfiend-api
- shadowfiend-conductor
- shadowfiend-processor
- python-shadowfiend
- puppet-shadowfiend
# 更新软件源数据
ansible controller -b -m shell -a "yum clean metadata"
# 安装 shadowfiend 相关软件包
ansible controller -b -m shell -a "yum install -y shadowfiend-api shadowfiend-conductor \
shadowfiend-processor python-shadowfiend puppet-shadowfiend"
在 OverCloud 控制节点或所有节点更新以下软件包:
- puppet-artemis >= 4.3.1
Attention
请确认更新 puppet-artemis 到 4.3.1 版本对当前云平台的影响。
# state 参数可以写成 latest 或 4.3.1
ansible controller -b -m yum -a "name=puppet-artemis state=latest"
在 UnderCloud 节点更新以下软件包:
- uos-heat-templates ≥= 4.3.1
Attention
请确认更新 uos-heat-templates 到4.3.1 版本对当前云平台的影响。
# state 参数可以写成 latest 或 4.3.1
ansible undercloud -b -m yum -a "name=uos-heat-templates state=latest"