OpenStack 入门

目录

简介

一、云计算与 OpenStack 基础概念

1.1 云计算概述

1.2 OpenStack 简介

二、OpenStack 单机环境部署

2.1 环境准备

2.2 部署前准备工作

2.3 在线部署 OpenStack(Train 版本)

三、通过 Dashboard 部署 OpenStack 的功能

3.1 登录 Dashboard

3.2 Dashboard 界面功能解析

四、创建可联网的云主机

4.1 创建私有网络与路由

4.2 准备镜像与创建实例

4.3 测试云主机连通性

五、总结


简介

在云计算技术蓬勃发展的今天,OpenStack 作为开源云计算领域的标杆项目,已成为企业构建私有云的首选方案。本文将带领读者了解云计算基本概念,掌握 OpenStack 单机环境部署,并通过实战创建一台可联网的云主机。

一、云计算与 OpenStack 基础概念

1.1 云计算概述

云计算是一种基于网络的超级计算模式,通过按需分配计算资源、存储资源和网络资源,实现资源的弹性扩展。就像使用水电一样,用户无需关心底层基础设施,只需按需求付费使用。

云计算的三种服务模型:

  • IaaS(基础设施即服务):提供服务器、存储、网络等底层硬件资源,用户可自行安装操作系统和应用(如 OpenStack)。
  • PaaS(平台即服务):提供开发环境和平台服务,面向开发人员(如 Heroku)。
  • SaaS(软件即服务):直接提供可使用的软件应用,面向普通用户(如 Office 365)。
1.2 OpenStack 简介

OpenStack 是由 Rackspace 和 NASA 于 2010 年发起的开源项目,目标是提供简单、可扩展的云平台解决方案。它通过模块化设计管理数据中心的计算、存储和网络资源,目前已成为全球最流行的 IaaS 开源项目。

OpenStack 核心服务组件:

服务

功能描述

Nova

计算服务,管理虚拟机生命周期,支持 KVM 等多种虚拟化技术

Neutron

网络服务,为虚拟机创建网络拓扑,实现租户网络隔离

Keystone

身份认证服务,管理用户、租户和角色的认证与授权

Horizon

控制面板服务,提供 Web 管理界面与底层服务交互

Glance

镜像服务,管理虚拟机镜像的注册与分发

Cinder

块存储服务,为虚拟机提供持久化存储设备

Swift

对象存储服务,提供弹性分布式存储,支持集群无单点故障

Ceilometer

计量服务,监控和度量资源使用情况,为计费提供数据支持

二、OpenStack 单机环境部署

2.1 环境准备

硬件要求(最低配置):

  • CPU:4 核 64 位处理器(支持硬件虚拟化)
  • 内存:8GB
  • 磁盘空间:30GB
  • 网络:1 个 1Gbps 网卡

软件环境:

  • CentOS 7.3 最小化安装
  • 静态 IP 地址配置(示例:192.168.9.137)
2.2 部署前准备工作

1. 配置静态 IP 与主机名

# 修改主机名
hostnamectl set-hostname openstack
bash  # 使主机名立即生效# 配置静态 IP(示例配置,根据实际环境修改)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 添加以下内容(注意不要包含 DOMAIN 配置)
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.9.137
PREFIX=24
GATEWAY=192.168.9.1
DNS1=114.114.114.114

解释:静态 IP 确保主机网络地址固定,便于后续访问;主机名设置为 ​​openstack​​ 便于识别。

2. 关闭防火墙与 SELinux

# 关闭防火墙并禁用开机启动
systemctl stop firewalld
systemctl disable firewalld# 禁用 SELinux
vi /etc/selinux/config
# 修改为 SELINUX=disabled
setenforce 0  # 立即生效

解释:防火墙和 SELinux 可能阻止 OpenStack 组件间的通信,生产环境需谨慎配置规则,测试环境可暂时关闭。

3. 禁用 NetworkManager 并配置 hosts

# 禁用 NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager# 添加 hosts 绑定
vi /etc/hosts
# 添加以下内容
192.168.9.137 openstack

解释:NetworkManager 可能与 OpenStack 网络配置冲突;hosts 绑定确保主机名与 IP 对应,避免云主机访问问题。

4. 更新系统与安装常用工具

yum -y update  # 更新系统包
yum -y install vim wget net-tools lrzsz  # 安装常用工具

解释:确保系统为最新状态,安装必要工具便于后续操作。

2.3 在线部署 OpenStack(Train 版本)

1. 安装 OpenStack 源

yum install -y centos-release-openstack-train

解释:添加 OpenStack Train 版本的官方 YUM 源,包含该版本所有组件包。

2. 安装 packstack 部署工具

yum install -y openstack-packstack

解释:packstack 是 OpenStack 官方提供的一键部署工具,通过 Puppet 自动化部署所有组件。

3. 执行一键部署

packstack --allinone

解释:​​--allinone​​ 参数表示在单节点部署所有 OpenStack 组件,部署过程中会自动配置数据库、消息队列、各服务 API 等。

4. 部署后网络配置

# 查看网络接口
ifconfig br-ex  # 虚拟网桥 br-ex 已自动创建# 复制物理网卡配置到 br-ex
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br-ex# 修改 br-ex 配置
vi /etc/sysconfig/network-scripts/ifcfg-br-ex
# 保留以下关键配置
TYPE=Ethernet
BOOTPROTO=none
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=172.24.4.1
PREFIX=24# 重启网络服务
systemctl restart network

解释:br-ex 是 OpenStack 的外部网络网桥,配置固定 IP 确保外部网络连通性。

三、通过 Dashboard 部署 OpenStack 的功能

3.1 登录 Dashboard

部署完成后,在浏览器中访问 ​​http://192.168.9.137/dashboard​​​,登录凭据存储在 ​​keystonerc_admin​​ 文件中:

cat keystonerc_admin
# 输出包含用户名和密码
export OS_USERNAME=admin
export OS_PASSWORD=81a7af7313ce46d2  # 实际密码以生成的为准
3.2 Dashboard 界面功能解析

1. 项目(Project)标签页

  • 计算:管理虚拟机实例、镜像、密钥对
  • 网络:创建虚拟网络、路由、安全组
  • :管理块存储卷和快照
  • 对象存储:管理分布式存储容器

2. 管理员(Admin)标签页

  • 拥有更高权限,可管理所有项目资源
  • 包含系统信息、服务状态、资源配额等高级功能

3. 身份管理(Identity)

  • 管理用户、租户、角色和认证策略
  • 支持多租户隔离和权限控制

四、创建可联网的云主机

4.1 创建私有网络与路由

1. 创建私有网络

  1. 在 Dashboard 中依次点击 项目 → 网络 → 网络 → 创建网络
  2. 输入网络名称 ​​private​​,勾选 创建子网
  3. 子网配置:
  • 网络地址:​​192.168.100.0/24​
  • 网关 IP:​​192.168.100.1​
  • DHCP 地址池:​​192.168.100.100-192.168.100.200​
  • DNS 服务器:​​114.114.114.114​

2. 创建路由并关联网络

  1. 点击 项目 → 网络 → 路由 → 新建路由
  2. 路由名称 ​​my_route​​​,外部网络选择 ​​public​
  3. 为路由添加内部接口:关联到 ​​private​​ 网络的子网
4.2 准备镜像与创建实例

1. 上传有效镜像

# 下载 cirros 镜像(示例,实际需使用有效镜像)
wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img# 在 Dashboard 中创建镜像:
# 名称 `cirros01`,格式 `QCOW2`,可见性 `公有`

解释:cirros 是轻量级 Linux 镜像,用于测试,生产环境需使用完整操作系统镜像。

2. 创建云主机实例

  1. 点击 项目 → 计算 → 实例 → 创建实例
  2. 实例名称 ​​test​​​,选择 ​​cirros01​​ 镜像
  3. 实例类型选择 ​​m1.tiny​​(1CPU, 512MB 内存, 1GB 磁盘)
  4. 网络选择 ​​private​​ 网络
  5. 确认配置后点击 创建实例
4.3 测试云主机连通性
  1. 进入实例控制台,登录用户名 ​​cirros​​​,密码 ​​gocubsgo​
  2. 查看 IP 配置:​​ifconfig​​​,确认获取到 ​​192.168.100.XXX​​ 地址
  3. 测试外网连通性:​​ping -c 3 baidu.com​
  4. 若 ping 不通,检查宿主机路由转发:
# 开启路由转发
vi /etc/sysctl.conf
# 添加 net.ipv4.ip_forward = 1
sysctl -p  # 立即生效

五、总结

从云计算概念到 OpenStack 实战的全流程体验。OpenStack 的模块化设计使其具备强大的扩展性,但生产环境部署需考虑:

  1. 多节点架构:将控制节点、计算节点、存储节点分离,提升性能和可靠性
  2. 高可用性:配置数据库集群、消息队列集群和服务冗余
  3. 安全加固:细化防火墙规则,启用 SELinux 策略,限制 API 访问
  4. 监控与告警:集成 Ceilometer、Grafana 等工具监控资源使用和服务状态

OpenStack 社区活跃且版本更新频繁(每半年发布新版本),建议通过官方文档和社区论坛持续学习,深入掌握各组件原理与高级配置,逐步从入门走向专业。

# 生产环境常用命令示例
openstack server list  # 查看所有实例
openstack network list  # 查看网络列表
openstack volume create --size 10 my_volume  # 创建 10GB 卷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87347.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87347.shtml

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

相关文章

【Git】关于项目开发分支的使用规范

背景 在项目开发过程中,往往一个优秀的产品都会出现不断的版本迭代,我时常在项目发布后对于如何结合后续更新的业务场景在分支上的应用没有一个很好的办法,一直也比较苦恼。目前项目的迭代场景如下,一个A项目,经过需求…

msquic的windows版本编译

首先确保安装cmake和powershell(需要6以上,本人升级到了7.5),vs(本人用的vs2022) powershell,默认是5,会编译不成功,所以附带一个升级的流程 $PSVersionTable.PSVersion …

批量文件重命名工具 OncePower ,永久免费!

软件介绍 适用于Windows OncePower是一款Windows批量重命名工具,支持基本及高级匹配重命名,无需复杂正则。特色包括匹配修改、长度截取、日期命名、前缀后缀修改及TXT文件导入。支持保留特定内容、批量移动文件和删除空文件夹。可保存设置,…

Python入门Day6.1:异常处理

一、什么是异常(Exception)? 异常是指程序运行过程中出现的错误情况。比如: 打开一个不存在的文件0作为除数列表索引越界类型转换失败 二、基本结构:try...except try:# 可能出错的代码 except 错误类型:# 出错时执…

C++中的标准模板(STL)

C中的核心标准模板包含:容器、迭代器、算法、函数对象、适配器。 1.容器 容器提供了各种数据结构,包括向量(vector)、链表(list)、队列(queue)、栈(stack)、集合(set)、映射(map)等,可以根据实际需求选择合适的容器。 容器分为三大类&…

excel 待办日历软件(需要宏)特别推荐

Excel待办日历软件是一款基于Excel表格的日程管理工具,能够帮助用户更高效地管理待办事项和日程安排。用户可以在软件中创建不同的任务列表,以便更好地进行管理和跟踪。软件还提供了日历视图,用户可以直观地查看和安排每日的任务,…

激活函数-sigmoid、tanh、relu、softmax对比

激活函数是神经网络的核心组件,用于引入非线性特性,使网络能够学习复杂模式。以下从定义、作用、分类及应用场景进行详细解析: 🔍 ​​一、定义​​ 激活函数(Activation Function)是作用于神经元输出的​…

三步走实现嵌入式硬件与软件开发

目录 ✅ 一、嵌入式硬件与软件的边界(为你后面每阶段安排任务打基础) ✅ 二、三阶段开发策略规划(以你的三步走为主线) 📍阶段1:确定能做 → 外包技术顾问协助选型 + 需求拆解 + 采购建议 适用角色 关键目标 如何管理? 工具推荐 📍阶段2:会做一些 → 小范围…

ubuntu运行cursor

一.CURSOR官网下载AppImage文件 https://www.cursor.com/en/download 二、解压 AppImage 绕过挂载机制 解决:默认使用Cursor.AppImage 会自动挂载临时目录在/tmp目录下,出现没有权限挂载的报错问题 若挂载点仍不可写,直接解压 AppImage 运…

PTA天梯赛L1 071-080题目解析

目录 1.L1-071 前世档案 2.L1-072 刮刮彩票 3.L1-073 人与神 4.L1-074 两小时学完C语言 5.L1-075 强迫症 6.L1-076 降价提醒机器人 7.L1-077 大笨钟的心情 8.L1-078 吉老师的回归 9.L1-079 天梯赛的善良 10.L1-080 乘法口诀数列 1.L1-071 前世档案 解析:…

git常用操作 --- idea编译器 --- 公司实战版

前言 虽然git的命令方式很灵活,但是还是不够人性化,不够方便。 如果对git操作不熟练特别容易犯迷,可能敲一会命令就不知道当前在干什么了,下一步要干什么。 下面,我将演示在Java开发中使用最常用最经典的idea编译器来进行git操作,非常人性化和方便。 如果没有安装git和初始…

window显示驱动开发—流输出阶段

流输出 (SO) 阶段可以在这些顶点到达光栅器之前将顶点流式传输到内存。 流输出的运行方式类似于管道中的点击。 即使数据继续向下流向光栅器,也可以打开此点击。 通过流输出发送的数据连接到缓冲区。 这些缓冲区可以在后续传递上作为管道输入进行循环。 流输出的一…

备份docker desktop中的opengauss数据库

文章目录 备份docker desktop中的opengauss数据库一、前提条件二、备份步骤三、注意事项四、自动化备份(可选)五、验证备份 备份docker desktop中的opengauss数据库 ​ 以下是在 Docker Desktop 中备份 OpenGauss 数据库(以你的环境为例&…

实时中值滤波 + 低通滤波 示例程序(STM32环境)

一、功能概述 本示例实现两个滤波器: 中值滤波器(Median Filter):对短期异常值(如尖峰噪声)有良好的抑制能力;低通滤波器(Low-Pass Filter):对数据进行平滑…

AtCoder Beginner Contest 409 题解

本文为AtCoder Beginner Contest 409 的详细题解 目录 题目A: 题目大意: 解题思路: 代码(C): 题目B: 题目大意: 解题思路: 代码(C): 题目C: 题目大意: 解题思路: 代码(C): 题目D: 题目大意: 解题思路: 代码(C): 题目E: 题目大意: 解题思路: 代码(C): 题目A…

Spring @Environment 典型用法

简单说:Spring 里没有直接叫 Environment 的注解,更准确说常用的是 Autowired 注入 Environment 对象,或者结合 Value 配合 Environment 读取配置 。 支持从以下来源读取: 1、application.properties / .yaml 2、JVM 参数&#xf…

【集合与结构体】5.2(课本题)总结代码

ds老师产物&#xff0c;纯为期末复习&#xff0c;自用。 题目1 编写程序&#xff0c;将一个整型变量右移 4 位&#xff0c;并以二进制数形式输出该整数在移位前和移位后的数值。 //观察系统填补空缺的数位情况 代码解答 #include <iostream>//编写程序&#xff0c;将一个…

16.max/min最大最小值函数

1.基本使用 max/min函数返回满足where条件的一列的最大/最小值。 select max(column_name)|min(column_name) from table_namewhere where_definition 示例&#xff1a; ①求班级总分的最高分 #求班级总分的最高分 SELECT MAX(math_scorechinese_scoreenglish_score)AS 总分…

需要做一款小程序,用来发券,后端如何进行设计能够保证足够安全?

温馨提示&#xff1a;本文由ai生成&#xff0c;请辨别阅读&#xff0c;本文仅提供一种思考的方式和设计思路 设计一个安全的后端系统&#xff0c;用于发放优惠券的小程序&#xff0c;需要考虑多个安全层面&#xff0c;包括身份验证、数据安全、API 安全、以及防止常见攻击&…

ACM设计平台-核心模块解析-赵家康

负责模块解析-赵家康 一、Login.vue 功能逻辑、数据绑定、表单验证、与后端交互 Vue 登录页面的代码设计 代码功能概览 代码实现了一个典型的登录页功能&#xff0c;核心包括&#xff1a; 表单输入&#xff08;学号、用户名、密码、验证码&#xff09; 验证码生成与校验 勾…