kombu_update

1. 总体介绍

1.1. 现状分析

在网络异常,控制节点故障等情况下,OpenStack 的所有服务会输出大量服务连接消息队列异常,服务无法响应的问题,造成大量的日志占用磁盘,需要在网络恢复或者控制节点rabbitmq-server正常的情况下重启服务才会停止刷新日志的情况。

1.2. 变更原因

经过测试验证,通过升级kombu库可以解决该问题,为了防止项目出现以上情况,故申请升级消息队列来修复该问题。

1.3. 变更后效果

解决了当管理节点出现硬件故障、网络抖动、mq异常时,OpenStack服务会出现异常的问题,包括以下几点:

  • 日志快速刷新,短时间内占满根分区,影响服务使用
  • 服务状态异常,服务呈现down状态,且服务不可用
  • 部分客户业务异常

2. 系统版本

产品当前版本升级后版本备注
Kombu2.5.163.0.23

3. 系统测试情况

3.1. 测试内容

  • 检查是否所有OpenStack服务异常
openstack-status
  • 检查服务中是否继续有大量日志刷新

mqlog1

  • 检查虚拟机和块存储的创建和日常操作
    • 测试创建虚拟机和进行日常操作
    • 测试创建块存储和进行日常操作

3.2. 测试效果

所有OpenStack服务正常,服务中没有大量日志刷新,虚拟机和块存储创建和日常操作正常,则测试通过。

4. 变更策略

  • 采用灰度升级方式逐一对各个OpenStack节点(控制节点、计算节点)进行升级,将 python-kombu-2.5.16-1.el7.noarch.rpm 包升级至 python-kombu-3.0.23-1.noarch.rpm ;
  • 重启OpenStack服务(glance、nova、cinder、neutron);
  • 检查OpenStack服务是否正常,服务中有无大量日志刷新,并测试创建虚拟机和块存储。

5. 变更步骤

5.1. 变更前准备

5.1.1. 控制节点:

  • 对openstack数据库进行备份
  • 确保Mysql服务正常
    Mysql>show status like 'wsrep%';
    • 检查 wsrep_incoming_addresses 为 3 台
    • 检查 wsrep_cluster_size 3
    • 检查 wsrep_local_state_comment 状态为 Synced

5.1.2. 确保Rabbitmq 集群正常

```bash
rabbitmqctl cluster_status
```
  • 检查 running_nodes 为3个节点
  • 检查 partitions 为空[]
  • 检查 rabbitmqctl list_queues 无阻塞

6. 实施过程

6.1. 逐一对个做各个OpenStack节点(管理节点、计算节点)进行升级

顺序:

  • 控制节点三台节点升级(逐台进行升级):
yum localinstall python-kombu-3.0.23-1.noarch.rpm

重启openstack 服务(逐个组件进行重启)

openstack-service restart glance
openstack-service restart nova
openstack-service restart cinder 
openstack-service restart neutron
openstack-service restart heat
  • 计算节点升级:
yum localinstall python-kombu-3.0.23-1.noarch.rpm

重启openstack 服务(逐个组件进行重启)

openstack-service restart nova
openstack-service restart neutron

6.2. 完成检查

  • 检查所有OpenStack服务是否正常
  • 检查服务中是否继续有大量日志刷新
  • 检查虚拟机和块存储的创建和日常操作

7. 回退措施

7.1. 变更回退措施

以下任意一项不通过,需要回滚:

  • 若升级后OpenStack服务异常,则进行回滚;
  • 若升级后服务中继续有大量日志刷新,则进行回滚;
  • 若升级后创建虚拟机和块存储异常,则进行回滚;

回滚步骤:

  • 重启openstack 服务(逐个组件进行重启)
openstack-service restart glance
openstack-service restart nova
openstack-service restart cinder 
openstack-service restart neutron

8. 评估影响

8.1. 平台或业务影响

升级过程中需要重启所有服务(包含 neutron-openvswitch-agent )会导致虚拟机流表重新刷新,会出现丢包情况,虚拟机会丢3-5个包。

8.2. 影响范围

所有单位,所有业务系统。

转载于:https://www.cnblogs.com/lsw-blogs/p/11131797.html

dkl@dkl-VMware-Virtual-Platform:~/learn/graph/study_celery$ celery -A celery_task worker -I info Usage: celery [OPTIONS] COMMAND [ARGS]... Try 'celery --help' for help. Error: Invalid value for '-A' / '--app': Unable to load celery application. While trying to load the module celery_task the following error occurred: Traceback (most recent call last): File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/app/utils.py", line 389, in find_app found = sym.app ^^^^^^^ AttributeError: module 'celery_task' has no attribute 'app' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/app/utils.py", line 394, in find_app found = sym.celery ^^^^^^^^^^ AttributeError: module 'celery_task' has no attribute 'celery' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/app/utils.py", line 383, in find_app sym = symbol_by_name(app, imp=imp) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/dkl/learn/env/lib/python3.12/site-packages/kombu/utils/imports.py", line 64, in symbol_by_name return getattr(module, cls_name) if cls_name else module ^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'celery_task' has no attribute 'celery' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/bin/celery.py", line 58, in convert return find_app(value) ^^^^^^^^^^^^^^^ File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/app/utils.py", line 401, in find_app return find_app( ^^^^^^^^^ File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/app/utils.py", line 386, in find_app sym = imp(app) ^^^^^^^^ File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/utils/imports.py", line 109, in import_from_cwd return imp(module, package=package) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/home/dkl/learn/graph/study_celery/celery_task/celery.py", line 30, in <module> 'schedule': crontab(seconds=10), ^^^^^^^^^^^^^^^^^^^ File "/home/dkl/learn/env/lib/python3.12/site-packages/celery/schedules.py", line 409, in __init__ super().__init__(**kwargs) TypeError: BaseSchedule.__init__() got an unexpected keyword argument 'seconds'
最新发布
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值