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

云计算-OpenStack 实战运维:从组件配置到故障排查(含 RAID、模板、存储管理,网络、存储、镜像、容器等)

介绍

在云计算技术快速发展的背景下,OpenStack 作为开源的云计算管理平台,凭借其灵活性、可扩展性和强大的组件生态,成为构建私有云、公有云和混合云的重要选择。无论是云主机的创建与管理、存储方案的配置(如 RAID 阵列、Swift 对象存储、Cinder 块存储),还是网络编排、权限控制、性能调优等,都是 OpenStack 运维与实践中的核心环节。

本文基于实际操作场景,汇总了 OpenStack 私有云平台的一系列关键实战操作,涵盖了从基础组件配置(如 Heat 模板编写、云主机与网络创建)到进阶功能实现(存储后端切换、参数调优),再到故障排查与日常管理(如快照处理、容器部署、权限控制)等多个维度。内容包含详细的命令步骤、配置示例及验证方法,旨在为 OpenStack 初学者提供入门指引,同时也为有经验的运维人员提供一份实用的操作参考手册,助力快速解决实际场景中的技术问题。

1.Raid磁盘阵列管理

在OpenStack私有云平台,创建一台云主机(镜像使用CentOS7.5,flavor可自定义),并创建一个40G大小的cinder块存储,将块存储连接到云主机,然后在云主机上对云硬盘进行操作。要求分出4个大小为5G的分区,使用这4个分区,创建名为/dev/md5、raid级别为5的磁盘阵列加一个热备盘(/dev/vdb4为热备盘)。

 [root@controller ~]# openstack volume create --size 40 1    #1是卷名字
         [root@controller ~]# openstack server add volume test 1   #tet云主机名字
         
         [root@test ~]# mdadm -Cv /dev/md5 -l 5 -n 3 /dev/vdb1 /dev/vdb2 /dev/vdb3 -x 1 /dev/vdb4
         [root@test ~]# mdadm -D /dev/md5   #mdadm -D:功能 (显示RAID组详细信息)
         
         mdadm -S /dev/md5 #停止阵列
 /dev/md5:
            Version : 1.2
      Creation Time : Mon Aug 16 12:21:50 2025
         Raid Level : raid5
         Array Size : 10475520 (9.99 GiB 10.73 GB)
      Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
       Raid Devices : 3
      Total Devices : 4
        Persistence : Superblock is persistent
 ​
        Update Time : Mon Aug 16 12:21:58 2021
              State : clean, degraded, recovering 
     Active Devices : 2
    Working Devices : 4
     Failed Devices : 0
      Spare Devices : 2
 ​
             Layout : left-symmetric
         Chunk Size : 512K
 ​
 Consistency Policy : resync
 ​
     Rebuild Status : 8% complete
 ​
               Name : test.novalocal:5  (local to host test.novalocal)
               UUID : 3238632c:7ab29c46:abb35387:c00bbaf5
             Events : 2
 ​
     Number   Major   Minor   RaidDevice State
        0     253       17        0      active sync   /dev/vdb1
        1     253       18        1      active sync   /dev/vdb2
        4     253       19        2      spare rebuilding   /dev/vdb3
 ​
        3     253       20        -      spare   /dev/vdb4
 ​

2.Raid使用场景

RAID5是一种存储性能、数据安全和存储成本兼顾的解决方案,RAID5需要3块或者以上的物理磁盘,可以提供热备盘显现故障的恢复;采用奇偶校验,可靠性强,且只有损坏两块硬盘时数据才会完全损坏,只损坏一块盘时,系统会根据存储的奇偶校验位重建数据,临时提供服务,此时如果有热备盘,系统还会自动在热备盘重建故障磁盘上的数据

     RAID5使用的场景:
RAID5可以理解为RAID0和RAID5的折中方案。适合对性能和冗余都有一定的要求,又不是十分高的情况,比如MySQL的主从库、存储等。普通服务器为了减少维护成本,又保持一定冗余和读性能都可以做RAID5.
    
    -C     ##建立
    -a    ##文件不存在建立文件
    -l    ##raid级别
    -n    ##设备个数
    -x    ##闲置设备个数
    
LVM管理:
lvm     逻辑卷,可以让设备自由伸缩的一个设备管理软件
pv     物理卷
vg      物理卷组
pe      物理拓展,lvm最小的存储单元

***********************************************************************************
创建volume卷时报错error解决:
运行一些增加卷的命令到实例中去,会报错,说volume的状态是error,不能操作。

我们首先进入mysql数据库,选择cinder数据库,更改表volume。操作如下:

MariaDB [(none)]> use cinder;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
MariaDB [cinder]> show tables;
| volume_types               |
| volumes                    |
| workers                    |
+----------------------------+
35 rows in set (0.00 sec)
更新volumes表

MariaDB [cinder]> UPDATE volumes SET status= 'available' WHERE status = 'error';
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3  Changed: 3  Warnings: 0 查看卷的状态,变成available了。
 

4.heat模板管理

heat_template_version : 必须,指定模板语法的版本,除了可以指定日期的格式,还可以直接指定 openstack 的版本, 如 rocky description : 可选,描述信息 parameter_groups : 可选,指明输入参数该如何分组以及参数传入的顺序 parameters : 可选, 定义输入参数 resources : 必须,定义模板资源 outputs : 可选,定义输出参数 conditions : 可选,用来控制一个资源什么情况下可以被创建

模板解释:

  • heat_template_version 在网页路径“项目-编排-模板版本”中选一个日期作为值

  • resources-type 在网页路径“项目-编排-资源类型”中选择和题意相符的类型

  • resources-具体参数 在在网页路径“项目-编排-资源类型”中点进具体的type中的下面一块属性中有参数以及类型

  • outputs-value 在在网页路径“项目-编排-资源类型”中点进具体的type中的上面一块属性中有参数以及类型,为选填类型


4.1.heat创建用户

在自行搭建的 OpenStack 私有云平台或赛项提供的 all-in-one 平台上,在/root 目录下编写 Heat 模板 create_user.yaml,创建名为 heat-user 的用户,属于 admin 项目,并赋予 heat-user用户 admin 的权限,配置用户密码为 123456。

 [root@controller ~]#iaas-install-heat.sh
 ​
 [root@controller ~]# cat create_user.yaml 
 heat_template_version: 2014-10-16
 resources:
   user:
     type: OS::Keystone::User
     properties:
       name: heat-user
       password: "123456"
       domain: demo
       default_project: admin
       roles: [{"role": admin, "project": admin}]
       
       
 [root@controller ~]#openstack stack create -t user_create.yaml heat_user1
       

4.2.heat创建flavor类型

在openstack私有云平台上,在/root目录下编写模板server.yaml,创建名为“m1.flavor”、 ID 为 1234、内存为1024MB、硬盘为20GB、vcpu数量为 1的云主机类型。

 [root@controller ~]# cat server.yaml 
 heat_template_version: 2014-10-16    #heat_template_version
 resources:     #资源:
   nova_flavor:  
     type: OS::Nova::Flavor  #
     properties:   #属性:##类型
       name: m1.flavor
       disk: 20
       is_public: True   #设置共享,默认的
       ram: 1024
       vcpus: 1
       flavorid: 1234  
 [root@controller ~]# openstack stack create -t server.yaml test   
 [root@controller ~]# openstack flavor list
 +------+-----------+------+------+-----------+-------+-----------+
 | ID   | Name      |  RAM | Disk | Ephemeral | VCPUs | Is Public |
 +------+-----------+------+------+-----------+-------+-----------
http://www.xdnf.cn/news/1291879.html

相关文章:

  • Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
  • amis表单较验
  • 数据结构:用数组实现队列(Implementing Queue Using Array)
  • Go 语言函数详解:从基础到高阶的行为逻辑构建
  • 洛谷 小 Y 拼木棒 贪心
  • 长篇音频制作(小说自动配音)完整教程
  • 15.卷积神经网络
  • 硬件工程师八月实战项目分享
  • 笔趣阁追书小说
  • Unity、C#常用的时间处理类
  • esp32s3 驱动pcm5102a 的 wav播放器,mqtt控制
  • Flutter网络请求实战:Retrofit+Dio完美解决方案
  • 微服务单元测试组件
  • 在CentOS 7上配置Android USB网络共享方式的方法
  • Linux的进程信号
  • ASP.NET 上传文件安全检测方案
  • 设计秒杀系统从哪些方面考虑
  • 微软正式将GPT-5接入Microsoft Copilot Studio(国际版)
  • 【物联网】基于树莓派的物联网开发【26】——树莓派开启串口并配置串口助手Minicom
  • jvm学习笔记之jvm的生命周期和发展历程
  • Ansible 实操笔记:Playbook 与变量管理
  • dubbo应用之门面设计模式
  • 《Python学习之基础语法2:掌握程序流程控制的艺术》
  • 101、【OS】【Nuttx】【周边】文档构建渲染:reStructuredText 格式
  • 【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day3
  • C++多态:理解面向对象的“一个接口,多种实现”
  • 《AVL树的原理与C++实现:详解平衡二叉搜索树的高效构建与操作》
  • 旧版MinIO的安装(windows)、Spring Boot 后端集成 MinIO 实现文件存储(超详细,带图文)
  • 使用 6 种方法将文件从 Android 无缝传输到iPad
  • [Linux]学习笔记系列 -- [arm][process]