当前位置: 首页 > news >正文

OpenStack服务Swift重启失效(已解决)

案例分析Swift重启失效

1. 报错详情

在重新启动 VMware 虚拟机后,我们发现 OpenStack 的 Swift 服务出现了 503 Service Unavailable 错误。经过排查,问题根源在于 Swift 服务所使用的存储挂载是临时挂载,而非永久挂载。

Swift 服务依赖于稳定的存储挂载来保证数据的一致性和持久性。在重新启动虚拟机之前,Swift 的存储节点使用了临时挂载的方式将存储设备挂载到了指定目录。这种方法在系统正常运行时是可行的,但在系统重启后,临时挂载的设置会被清除,导致存储设备无法自动挂载回原来的位置。因此,Swift 服务在尝试访问存储数据时找不到对应的挂载点,从而引发了 503 Service Unavailable 错误。

(1)swift服务正常状态如下
[root@controller ~]# swift statAccount: AUTH_8bde12ff804e42498661b7454994c446Containers: 0Objects: 0Bytes: 0X-Put-Timestamp: 1690507907.67931X-Timestamp: 1690507907.67931X-Trans-Id: tx56d22fa138ab45908caab-0064c31a82Content-Type: text/plain; charset=utf-8
X-Openstack-Request-Id: tx56d22fa138ab45908caab-0064c31a82

查看所有块设备

[root@compute ~]# lsblk
NAME                                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                               8:0    0  200G  0 disk
├─sda1                                            8:1    0    1G  0 part /boot
└─sda2                                            8:2    0   99G  0 part├─centos-root                                 253:0    0   50G  0 lvm  /├─centos-swap                                 253:1    0  3.9G  0 lvm  [SWAP]└─centos-home                                 253:2    0 45.1G  0 lvm  /home
sdb                                               8:16   0  100G  0 disk
├─sdb1                                            8:17   0   20G  0 part
│ ├─cinder--volumes-cinder--volumes--pool_tmeta 253:3    0   20M  0 lvm
│ │ └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm
│ └─cinder--volumes-cinder--volumes--pool_tdata 253:4    0   19G  0 lvm
│   └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm
├─sdb2                                            8:18   0   20G  0 part /swift/node/sdb2
└─sdb3                                            8:19   0   20G  0 part
sr0                                              11:0    1  4.4G  0 rom
(2)重启后报错如下
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# swift stat
Account HEAD failed: http://controller:8080/v1/AUTH_8bde12ff804e42498661b7454994c446 503 Service Unavailable
Failed Transaction ID: tx1bac2f2ee5fe45cda0125-0064c3c108
(3)日志如下
[root@controller ~]# tail -f /var/log/swift/*
tail: cannot open '/var/log/swift/*' for reading: No such file or directory
tail: no files remaining

查看所有块设备

[root@compute ~]# lsblk
NAME                                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                               8:0    0  200G  0 disk
├─sda1                                            8:1    0    1G  0 part /boot
└─sda2                                            8:2    0   99G  0 part├─centos-root                                 253:0    0   50G  0 lvm  /├─centos-swap                                 253:1    0  3.9G  0 lvm  [SWAP]└─centos-home                                 253:2    0 45.1G  0 lvm  /home
sdb                                               8:16   0  100G  0 disk
├─sdb1                                            8:17   0   20G  0 part
│ ├─cinder--volumes-cinder--volumes--pool_tmeta 253:3    0   20M  0 lvm
│ │ └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm
│ └─cinder--volumes-cinder--volumes--pool_tdata 253:4    0   19G  0 lvm
│   └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm
├─sdb2                                            8:18   0   20G  0 part
└─sdb3                                            8:19   0   20G  0 part
sr0                                              11:0    1  4.4G  0 rom
loop0                                             7:0    0   20G  0 loop /swift/node

2. 解决办法

实际上是因为脚本里面设置的是临时挂载,重启后会失效,只需要重新挂载即可

在swift-compute脚本里面查看脚本内容

echo "/dev/$OBJECT_DISK /swift/node xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab
mkdir -p /swift/node/$OBJECT_DISK
mount /dev/$OBJECT_DISK /swift/node/$OBJECT_DISK
scp $HOST_NAME:/etc/swift/*.ring.gz /etc/swift/
(1)计算节点重新挂载生效
[root@compute ~]# umount /swift/node/
[root@compute ~]# source /etc/openstack/openrc.sh
[root@compute ~]# mount /dev/$OBJECT_DISK /swift/node/$OBJECT_DISK
[root@compute ~]# lsblk
NAME                                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                                               8:0    0  200G  0 disk
├─sda1                                            8:1    0    1G  0 part /boot
└─sda2                                            8:2    0   99G  0 part├─centos-root                                 253:0    0   50G  0 lvm  /├─centos-swap                                 253:1    0  3.9G  0 lvm  [SWAP]└─centos-home                                 253:2    0 45.1G  0 lvm  /home
sdb                                               8:16   0  100G  0 disk
├─sdb1                                            8:17   0   20G  0 part
│ ├─cinder--volumes-cinder--volumes--pool_tmeta 253:3    0   20M  0 lvm
│ │ └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm
│ └─cinder--volumes-cinder--volumes--pool_tdata 253:4    0   19G  0 lvm
│   └─cinder--volumes-cinder--volumes--pool     253:5    0   19G  0 lvm
├─sdb2                                            8:18   0   20G  0 part /swift/node/sdb2
└─sdb3                                            8:19   0   20G  0 part
sr0                                              11:0    1  4.4G  0 rom
(2)控制节点验证
[root@controller ~]# source /etc/keystone/admin-openrc.sh
[root@controller ~]# swift statAccount: AUTH_8bde12ff804e42498661b7454994c446Containers: 0Objects: 0Bytes: 0X-Put-Timestamp: 1690509333.32481X-Timestamp: 1690509333.32481X-Trans-Id: txcc8962b244bb4ff397885-0064c32014Content-Type: text/plain; charset=utf-8
X-Openstack-Request-Id: txcc8962b244bb4ff397885-0064c32014
http://www.lryc.cn/news/463150.html

相关文章:

  • System.Text.Json类库进行json转化时ValueKind:Object问题
  • 免费Excel工作表同类数据合并工具
  • 如何在算家云搭建Video-Infinity(视频生成)
  • LeetCode搜索插入位置
  • UE5学习笔记24-添加武器弹药
  • 限制游客在wordpress某分类下阅读文章的数量
  • Oracle云主机申请和使用教程:从注册到SSH连接的全过程
  • 芯知识 | NVH-FLASH语音芯片支持平台做语音—打造音频IC技术革新
  • 机器学习——解释性AI与可解释性机器学习
  • 中国全国省市区县汇总全国省市区json省市区数据2024最新
  • [Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器
  • 路由器原理和静态路由配置
  • UE5 使用Animation Budget Allocator优化角色动画性能
  • Element UI 组件库详解:从入门到精通
  • JavaScript 事件循环(EventLoop) —— 浏览器 Node
  • 【ROS2】订阅手柄数据,发布运动命令
  • WinX86内核02-驱动程序
  • 基于SpringBoot+Vue的体育馆场地预约系统
  • 【WebGIS】Cesium:天地图加载
  • [产品管理-46]:产品组合管理中的项目平衡与管道平衡的区别
  • 【MySQL】MySQL的简单了解详解SQL分类数据库的操纵方法
  • 【Python爬虫实战】正则:从基础字符匹配到复杂文本处理的全面指南
  • 10.18Python基础迭代器生成器_函数式编程
  • HttpPost 类(构建 HTTP POST 请求)
  • xtu oj 原根
  • Java Spring 中常用的 @PostConstruct 注解使用总结
  • Visual Studio--VS安装配置使用教程
  • 什么叫CMS?如何使用CMS来制作网站?
  • 如何获取谷歌浏览器窗口句柄并将其设置为Qt的父窗口
  • 牛客小白月赛102:最短?路径(分层bfs)