目录
简介
一、云计算与 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. 创建私有网络
- 在 Dashboard 中依次点击 项目 → 网络 → 网络 → 创建网络
- 输入网络名称
private
,勾选 创建子网 - 子网配置:
- 网络地址:
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. 创建路由并关联网络
- 点击 项目 → 网络 → 路由 → 新建路由
- 路由名称
my_route
,外部网络选择 public
- 为路由添加内部接口:关联到
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. 创建云主机实例
- 点击 项目 → 计算 → 实例 → 创建实例
- 实例名称
test
,选择 cirros01
镜像 - 实例类型选择
m1.tiny
(1CPU, 512MB 内存, 1GB 磁盘) - 网络选择
private
网络 - 确认配置后点击 创建实例
4.3 测试云主机连通性
- 进入实例控制台,登录用户名
cirros
,密码 gocubsgo
- 查看 IP 配置:
ifconfig
,确认获取到 192.168.100.XXX
地址 - 测试外网连通性:
ping -c 3 baidu.com
- 若 ping 不通,检查宿主机路由转发:
# 开启路由转发
vi /etc/sysctl.conf
# 添加 net.ipv4.ip_forward = 1
sysctl -p # 立即生效
五、总结
从云计算概念到 OpenStack 实战的全流程体验。OpenStack 的模块化设计使其具备强大的扩展性,但生产环境部署需考虑:
- 多节点架构:将控制节点、计算节点、存储节点分离,提升性能和可靠性
- 高可用性:配置数据库集群、消息队列集群和服务冗余
- 安全加固:细化防火墙规则,启用 SELinux 策略,限制 API 访问
- 监控与告警:集成 Ceilometer、Grafana 等工具监控资源使用和服务状态
OpenStack 社区活跃且版本更新频繁(每半年发布新版本),建议通过官方文档和社区论坛持续学习,深入掌握各组件原理与高级配置,逐步从入门走向专业。
# 生产环境常用命令示例
openstack server list # 查看所有实例
openstack network list # 查看网络列表
openstack volume create --size 10 my_volume # 创建 10GB 卷