介绍

在云计算技术快速发展的背景下,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.pswp.cn/web/93477.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93477.shtml
英文地址,请注明出处:http://en.pswp.cn/web/93477.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea代码bug检测插件

代码检测工具(插件)推荐:Alibaba Java Coding Guidelines、CheckStyle、PMD、FindBugs、SonarLint。可以在idea中安装插件 让你在关注代码质量的同时,减少 code review 的工作量,提高 code review 的效率,…

Java String为什么要设计成不可变的?

大家好,我是锋哥。今天分享关于【Java String为什么要设计成不可变的?】面试题。希望对大家有帮助; Java String为什么要设计成不可变的? 超硬核AI学习资料,现在永久免费了! Java中的String类被设计为不可变(immut…

集成电路学习:什么是ORB方向性FAST和旋转BRIEF

ORB:方向性FAST和旋转BRIEF ORB(Oriented FAST and Rotated BRIEF)是一种在计算机视觉领域广泛应用的特征描述算法,它结合了FAST角点检测算法和BRIEF描述子算法的优点,以实现高效且具有旋转不变性的特征提取和匹配。以下是关于ORB算法的详细解析: 一、ORB算法概述 …

【langgraph基础入门】

1. LangGraph图结构概念说明在以图构建的框架中,任何可执行的功能都可以作为对话、代理或程序的启动点。这个启动点可以是大模型的 API 接口、基于大模型构建的 AI Agent,通过 LangChain 或其他技术建立的线性序列等等,即下图中的 “Start” …

[逆向知识] AST抽象语法树:混淆与反混淆的逻辑互换(一)

博客配套代码发布于github:半自动化cookie更新(欢迎顺手Star一下⭐) 相关逆向知识: [逆向知识] AST抽象语法树:混淆与反混淆的逻辑互换(二)-CSDN博客 相关爬虫专栏:JS逆向爬虫实战…

网络安全合规6--服务器安全检测和防御技术

一、服务器安全风险主要威胁:不必要的服务暴露(如仅需HTTP却开放多余端口)。外网扫描(IP/端口扫描)、DDoS攻击。系统漏洞攻击(操作系统、软件版本已知漏洞)。Web攻击(SQL注入、XSS、…

Mutually aided uncertainty

cycle loss calculation in order to regularize the two aux-decoders 辅助信息 作者未提供代码

go基础学习笔记

思维导图变量 声明形式为var 变量名 变量类型 赋值形式为变量名变量值 声明和赋值同时形式为变量名:变量值 多个变量同时声明使用形式为 var (x intb bool )当有多个变量类型一样时,可以放在一行,形式为var x,y int,当类型一样,并且需要赋值同…

C++析构函数和线程退出1

线程作为程序在操作系统中的执行单元,它是活动对象,有生命周期状态,它是有始有终的。有启动就有结束,在上篇文章中讨论了线程作为数据成员启动时的顺序问题,如何避免构造函数在初始化对象时对线程启动的负面影响&#…

【语法】JSON格式与基础语法

文章目录JSON 简介JSON 语法规则JSON 名称/值对JSON 值类型JSON文件存储JSON示例数据示例Python解析JSON代码JSON 简介 JSON 语法是 JavaScript 语法的子集。JSON 是存储和交换文本信息的语法。JSON: JavaScript Object Notation(JavaScript 对象表示法)。 JSON 语法规则 数…

GitHub 热榜项目 - 日榜(2025-08-16)

GitHub 热榜项目 - 日榜(2025-08-16) 生成于:2025-08-16 统计摘要 共发现热门项目:13 个 榜单类型:日榜 本期热点趋势总结 本期GitHub热榜呈现三大技术热点:1) AI应用深入垂直领域,SpatialLM将大语言模型应用于空间…

什么是EDA(Exploratory Data Analysis,探索性数据分析)

EDA(Exploratory Data Analysis,探索性数据分析)是一种在正式建模前,通过统计量和可视化方法来理解数据特征、发现模式与异常、并提出假设的过程。 这张图里你会看到: 直方图:展示单变量的分布,…

计算机毕业设计java的小天鹅酒店月子会所管理小天鹅酒店母婴护理中心管理系统设计小天鹅酒店产后护理会所信息化管理平台

计算机毕业设计java的小天鹅酒店月子会所管理9zl079(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在当今数字化时代,随着人们对产后护理需求的不断增加,…

Docker-14.项目部署-DockerCompose

一.DockerCompose大家可以看到,我们部署一个简单的java项目,其中包含3个容器:MySQLNginxJava项目而稍微复杂的项目,其中还会有各种各样的其它中间件,需要部署的东西远不止3个。如果还像之前那样手动的逐一部署&#xf…

Vue组件基础解析

一、组件的核心意义 组件是Vue中实现UI复用与逻辑封装的基础单元,能将复杂UI拆分为独立、可重用的部分,最终组织成嵌套的树状结构(类似HTML元素嵌套)。Vue组件模型支持自定义内容与逻辑封装,也能兼容原生Web Component。 二、组件的定义方式 根据是否使用构建步骤,Vue…

第5问 对于数据分析领域,统计学要学到什么程度?

1. ​统计学在数据分析中的定位​​核心作用​:统计学是数据分析的底层方法论,涵盖数据描述、推断预测和模型构建。​两大分支​:​描述统计​(EDA阶段):数据清洗、特征工程的基础(如均值/分布/…

[go] 桥接模式

桥接模式 是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。 模型说明抽象部分(Abstraction)提供高层控制逻辑,依赖于完成底层实际工作的实现对象…

GitHub的使用教程

第一章:准备工作 1.1:安装Git并设置你的GitHub账户 1.1.1:注册 GitHub 账号: 访问 https://github.com/ 并注册一个新账号。 可以使用qq邮箱进行注册 输入邮箱后点击sign up for GitHub,设置密码后进行注册,输入验…

Day56 Java面向对象10 方法重写

Day56 Java面向对象10 方法重写 1.为什么要方法重写 当子类不需要父类方法的全部内容 或 父类的方法无法满足子类的需求时,就需要在子类重写父类的方法 2.如何方法重写 重写必须发生在继承关系中,只能是子类重写父类子类重写的方法名必须和父类方法一致,方法体可以不同子类重写…

【C++】标准库中用于组合多个值的数据结构pair、tuple、array...

在 C 标准库中,有多种数据结构可用于组合多个值,每种结构都有其特定的设计目的和适用场景。以下是主要组合数据结构的分类解析: 一、核心组合数据结构 1. std::pair (C98) 用途:存储两个相关值(键值对、坐标点等&#…