记录一次OpenStack云盘(系统+数据)损坏的修复过程

本文记录了一次OpenStack Mitaka环境下,由于云盘(Cinder+Ceph)损坏导致的虚拟机无法启动的问题。在解决过程中,通过创建临时虚拟机挂载损坏云盘,发现文件系统UUID冲突,使用xfs_repair命令进行修复,最终成功恢复云盘并能正常访问数据。

问题概述

云环境:OpenStack Mitaka

虚拟机系统:CentOS 7.2

云盘:Cinder对接Ceph实现

经过一系列复杂原因(- _ -),某个虚拟机的后端云盘损坏(该云盘为启动盘,同时包含大量数据),所创建的虚拟机无法正常进入操作系统。因为nova resuce仅支持从镜像直接启动的虚拟机,因此无法使用resuce对虚拟机进行救援。

 

解决流程:

因为该云盘无法正确创建虚拟机并进入系统,因此创建一个临时虚拟机,将该问题云盘挂载至虚拟机上,然后进入系统尝试将该云盘挂载至目录:

mount /dev/vdd1 /temp

发生错误:

mount: wrong fs type, bad option, bad superblock on /dev/vdd1,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

查询message日志:

[root@host-192-168-111-11 /]# dmesg | tail
[ 6874.548652] pci 0000:00:0a.0: reg 0x10: [io  0x0000-0x003f]
[ 6874.548726] pci 0000:00:0a.0: reg 0x14: [mem 0x00000000-0x00000fff]
[ 6874.550200] pci 0000:00:0a.0: BAR 1: assi
<think>嗯,用户想了解如何基于OpenStack部署云盘系统。首先,我需要回忆一下OpenStack的组件结构。云盘系统通常涉及存储服务,而OpenStack中负责块存储的是Cinder,对象存储则是Swift。用户的问题可能更偏向于块存储,也就是类似云硬盘的功能,所以应该重点讲解Cinder的部署步骤。接下来,我需要参考提供的引用内容。引用3提到了Cinder的部署和使用,比如创建云硬盘、挂载到云主机等,这应该是核心部分。引用1提到OpenStack的基础组件,比如Dashboard(Horizon)、Keystone、Nova、Neutron、Glance、Cinder,这些是部署云盘系统必须的基础服务。引用4则涉及Kolla-Ansible的容器化部署,可能用户对部署方式有要求,但问题中没有明确,可能需要简要提及不同的部署方法,比如传统部署和容器化部署的区别。用户的需求是部署教程,所以需要分步骤说明。首先,确保基础环境已经搭建完成,包括Keystone、Nova、Glance、Neutron。然后安装和配置Cinder服务,包括控制节点和存储节点的设置。需要详细说明配置文件中的关键参数,比如数据库连接、RabbitMQ设置、认证信息等。同时,存储节点的后端配置,比如使用LVM或NFS,需要根据实际情况调整。另外,用户可能遇到的一些问题,比如权限管理、网络配置、存储后端的选择,都需要在教程中提及注意事项。例如,引用3中提到扩容云硬盘时文件系统需要手动调整,这应该在步骤中提醒用户。同时,引用4中的虚拟化类型修改可能影响Nova的兼容性,如果用户使用QEMU,需要注意配置。 最后,生成相关问题需要考虑用户可能的后续疑问,比如性能优化、高可用方案、与其他存储服务的对比,以及监控和维护方法。这些问题帮助用户进一步深入学习和解决问题。</think>### 基于OpenStack云盘系统部署教程 OpenStack云盘系统主要依赖块存储服务$Cinder$和对象存储服务$Swift$,以下以$Cinder$为核心的分步部署流程: --- #### **一、基础环境准备** 1. **组件依赖** - 必须已部署$Keystone$(认证)、$Nova$(计算)、$Glance$(镜像)、$Neutron$(网络)[^1] - 确保$MySQL$数据库、$RabbitMQ$消息队列正常运行 2. **存储节点规划** - 至少一个存储节点(物理机或虚拟机)提供存储空间 - 存储后端可选$LVM$、$NFS$、$Ceph$等(推荐$LVM$作为入门方案) --- #### **二、Cinder服务部署** 1. **控制节点安装** ```bash # 安装cinder-api和cinder-scheduler apt install cinder-api cinder-scheduler -y ``` - 配置`/etc/cinder/cinder.conf`: ```ini [database] connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder [DEFAULT] transport_url = rabbit://openstack:RABBIT_PASS@controller auth_strategy = keystone [keystone_authtoken] www_authenticate_uri = http://controller:5000 auth_url = http://controller:5000 memcached_servers = controller:11211 auth_type = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = CINDER_PASS ``` - 同步数据库:`cinder-manage db sync` 2. **存储节点配置** ```bash # 安装cinder-volume及LVM工具 apt install cinder-volume lvm2 -y ``` - 初始化物理卷: ```bash pvcreate /dev/sdb # 假设sdb为存储磁盘 vgcreate cinder-volumes /dev/sdb ``` - 修改`/etc/cinder/cinder.conf`后端配置: ```ini [lvm] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes target_protocol = iscsi target_helper = tgtadm ``` --- #### **三、服务验证与使用** 1. **Dashboard操作** - 登录$Horizon$控制台,进入“卷”菜单创建云硬盘 - 将云硬盘挂载至云主机(需在云主机内执行`mkfs`和`mount`)[^3] 2. **命令行验证** ```bash openstack volume list # 查看已创建的云硬盘 openstack volume attach <volume_id> <instance_id> # 绑定到实例 ``` --- #### **四、注意事项** 1. **存储后端扩展性** - 生产环境建议使用$Ceph$替代$LVM$,支持分布式存储和快照功能[^3] 2. **网络隔离** - 确保存储流量与业务流量分离(例如通过$VLAN$或专用物理网络) 3. **权限管理** - 通过$Keystone$设置用户对云盘的读写权限[^1] ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值