目录
一、云计算概述
(一)云计算的定义
(二)云计算的服务模型
(三)OpenStack 概述
二、OpenStack 一键部署
(一)环境要求
(二)在线安装前准备工作
(三)在线部署 OpenStack
(四)离线安装前准备工作
(五)离线部署 OpenStack
三、通过 Dashboard 体验 OpenStack 功能
(一)登录 Dashboard
(二)Dashboard 界面功能
四、创建云主机
(一)创建网络
(二)创建路由
(三)创建镜像
(四)创建云主机
(五)管理云主机并测试连通性
w、OpenStack 核心服务深度解析
(一)Nova 计算服务
关键功能特性:
配置文件关键点:
(二)Neutron 网络服务
核心组件:
典型网络架构:
(三)Keystone 身份认证服务
核心概念:
认证流程:
初始化 Keystone 命令:
(四)Glance 镜像服务
镜像工作流程:
上传镜像示例:
六、OpenStack 部署实战进阶
(一)多节点部署架构规划
控制节点(Controller Node):
计算节点(Compute Node):
存储节点(Storage Node):
(二)高可用部署要点
1. 服务高可用
2. 存储高可用
3. 网络高可用
(三)部署故障排除指南
1. 安装失败常见原因
2. 实例创建失败排查
3. 网络连通性故障
七、Dashboard 高级操作指南
(一)资源配额管理
命令行配置示例:
(二)主机聚合与资源调度
实例调度到指定聚合:
(三)监控与计量
命令行查看计量数据:
八、生产环境最佳实践
(一)安全加固建议
(二)性能优化策略
(三)备份与容灾方案
九、OpenStack 社区与生态
(一)版本迭代与特性
(二)社区参与方式
(三)生态工具与集成
云计算是一种基于网络的超级计算模式,能够根据用户需求提供计算资源、存储资源、网络资源等。它有广义和狭义之分:
[root@localhost ~]# hostnamectl set-hostname openstack
[root@localhost ~]# bash
[root@openstack ~]#
[root@openstack ~]# yum -y update
[root@openstack ~]# yum -y install vim wget net-tools lrzsz
[root@openstack ~]# systemctl stop firewalld
[root@openstack ~]# systemctl disable firewalld
[root@openstack ~]# systemctl stop NetworkManager
[root@openstack ~]# systemctl disable NetworkManager
[root@openstack ~]# cat /etc/sysconfig/selinux
# 修改SELINUX=disabled
SELINUX=disabled
[root@openstack ~]# cat /etc/hosts
192.168.9.137 openstack
[root@openstack ~]# yum install -y centos-release-openstack-train
[root@openstack ~]# yum install -y openstack-packstack
[root@openstack ~]# packstack --allinone
部署过程中会显示各项安装进度,当出现 “successfully” 时表示安装成功。
[root@openstack network-scripts]# cp ifcfg-ens33 ifcfg-br-ex
[root@openstack network-scripts]# cat ifcfg-br-ex
TYPE=Ethernet
BOOTPROTO=none
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
IPADDR=172.24.4.1
PREFIX=24
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO=static
IPADDR="192.168.9.137"
PREFIX="24"
GATEWAY="192.168.9.1"
DNS1="114.114.114.114"
# 不要出现DOMAIN配置项
[root@openstack ~]# sed -i '/SELINUX=/s/enforcing/disabled/' /etc/selinux/config
[root@openstack ~]# setenforce 0
[root@openstack ~]# getenforce # 应显示Permissive
[root@openstack ~]# mkdir /data && cd /data
[root@openstack data]# tar zxf openstack.tgz
[root@openstack data]# ls
[root@openstack ~]# cd /etc/yum.repos.d/
[root@openstack yum.repos.d]# mkdir backup
[root@openstack yum.repos.d]# mv *.repo backup
[root@openstack yum.repos.d]# vim local.repo
[base]
name=base
baseurl=file:///data/base
gpgcheck=0
enabled=1
[centos-ceph-nautilus]
name=centos-ceph-nautilus
baseurl=file:///data/centos-ceph-nautilus
gpgcheck=0
enabled=1
[centos-nfs-ganesha28]
name=centos-nfs-ganesha28
baseurl=file:///data/centos-nfs-ganesha28
gpgcheck=0
enabled=1
[centos-openstack-train]
name=centos-openstack-train
baseurl=file:///data/centos-openstack-train
gpgcheck=0
enabled=1
[centos-qemu-ev]
name=centos-qemu-ev
baseurl=file:///data/centos-qemu-ev
gpgcheck=0
enabled=1
[extras]
name=extras
baseurl=file:///data/extras
gpgcheck=0
enabled=1
[openstack-train]
name=openstack-train
baseurl=file:///data/openstack-train
gpgcheck=0
enabled=1
[rdo-qemu-ev]
name=rdo-qemu-ev
baseurl=file:///data/rdo-qemu-ev
gpgcheck=0
enabled=1
[updates]
name=updates
baseurl=file:///data/updates
gpgcheck=0
enabled=1
[root@localhost data]# createrepo /data/base/
[root@localhost data]# createrepo /data/centos-ceph-nautilus/
[root@localhost data]# createrepo /data/centos-nfs-ganesha28/
[root@localhost data]# createrepo /data/centos-openstack-train/
[root@localhost data]# createrepo /data/centos-qemu-ev/
[root@openstack data]# createrepo /data/extras
[root@openstack data]# createrepo /data/openstack-train/
[root@openstack data]# createrepo /data/rdo-qemu-ev/
[root@openstack data]# createrepo /data/updates/
[root@openstack data]# yum clean all
[root@openstack data]# yum makecache
[root@localhost ~]# yum -y install openstack-packstack
[root@openstack ~]# packstack --allinone
部署完成后,配置 br-ex 网桥,与在线部署步骤相同。
[root@openstack ~]# cat keystonerc_admin
unset OS_SERVICE_TOKEN
export OS_USERNAME=admin
export OS_PASSWORD=81a7af7313ce46d2 # 实际密码以生成的为准
export OS_REGION_NAME=RegionOne
export OS_AUTH_URL=http://192.168.9.137:5000/v3
export PS1='[\u@\h \W(keystone_admin)]\$'
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
$ ifconfig
$ ping -c 1 baidu.com
$ ping 192.168.9.232 # Windows本机IP
[root@openstack ~]# ifconfig br-ex 172.24.4.1 netmask 255.255.255.0 up
[root@localhost ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
Nova 是 OpenStack 的计算核心组件,负责管理实例的生命周期,包括创建、启动、暂停、删除等操作。它通过屏蔽底层 Hypervisor 的差异,支持 KVM、VMware、Hyper-V 等多种虚拟化技术。在单节点部署中,Nova 会将所有计算资源整合到统一的资源池,通过调度算法(如过滤器和权重计算)为实例分配合适的物理资源。
Nova 的主要配置文件为 /etc/nova/nova.conf
,需关注以下参数:
[DEFAULT]
# 计算节点使用的 Hypervisor
compute_driver = libvirt.LibvirtComputeDriver
# 调度器类
scheduler_driver = nova.scheduler.filter_scheduler.FilterScheduler
# 实例类型定义路径
instance_type_path = /etc/nova/instance_types
Neutron 负责 OpenStack 中的网络资源管理,为实例提供虚拟网络功能,包括创建网络、子网、路由、安全组等。它支持多种网络插件(如 OVN、Open vSwitch),允许租户自定义网络拓扑,并通过隔离机制确保不同租户网络互不干扰。
Neutron 支持扁平网络、VLAN 网络、VXLAN 等多种网络模式。在单节点部署中,通常使用 OVN 作为后端,采用 Geneve 封装实现租户网络隔离。以下是创建私有网络的关键命令示例:
# 创建私有网络
neutron net-create private --shared false
# 创建子网
neutron subnet-create private 192.168.100.0/24 --name private_subnet --gateway 192.168.100.1
# 配置 DHCP 地址池
neutron subnet-update private_subnet --allocation-pool start=192.168.100.100,end=192.168.100.200 --dns-nameservers list=true 114.114.114.114
Keystone 作为 OpenStack 的统一身份认证中心,负责用户、租户、角色的管理与认证,提供令牌(Token)管理和服务目录(Service Catalog)功能。它支持多种认证机制,如密码认证、Token 认证、LDAP 集成等。
# 创建服务实体
openstack service create --name keystone --description "OpenStack Identity" identity
# 创建认证端点
openstack endpoint create --region RegionOne identity public http://192.168.9.137:5000/v3
openstack endpoint create --region RegionOne identity internal http://192.168.9.137:5000/v3
openstack endpoint create --region RegionOne identity admin http://192.168.9.137:35357/v3
Glance 用于存储和管理虚拟机镜像,支持多种镜像格式(如 QCOW2、RAW、VDI),并可对接外部存储(如 Ceph、Swift)。用户可通过 Glance 上传、下载、注册镜像,实例创建时从 Glance 拉取镜像模板。
# 上传 cirros 镜像
glance image-create --name "cirros01" --file cirros-0.5.1-x86_64-disk.img --disk-format qcow2 --container-format bare --public
# 查看镜像列表
glance image-list
+--------------------------------------+----------+-------------+------------------+----------+--------+
| ID | Name | Disk Format | Container Format | Size | Status |
+--------------------------------------+----------+-------------+------------------+----------+--------+
| 0c8e9605-6217-4a4c-85f1-1234567890ab | cirros01 | qcow2 | bare | 15728640 | active |
+--------------------------------------+----------+-------------+------------------+----------+--------+
单节点部署适用于测试环境,生产环境通常采用多节点架构,将不同服务分离到独立节点,提高性能和可靠性。典型多节点架构包括:
生产环境中,高可用(HA)是关键需求,可通过以下方式实现:
sysctl -w net.ipv4.ip_forward=1
开启转发。OpenStack 支持对项目资源进行配额限制,避免资源滥用。在 Dashboard 中可通过以下步骤配置:
# 设置项目 quotatest 的实例配额为 5
openstack quota set --instances 5 quotatest
# 查看项目配额
openstack quota show quotatest
+---------------------+-------+
| Field | Value |
+---------------------+-------+
| instances | 5 |
| cores | 20 |
| ram | 51200 |
| floatingips | 10 |
| fixed_ips | -1 |
| volumes | 10 |
| snapshots | 10 |
| gigabytes | 100 |
| rbd_volume_backups | 10 |
| backup_gigabytes | 1000 |
| security_groups | 10 |
| security_group_rules | 100 |
+---------------------+-------+
主机聚合(Host Aggregate)用于将计算节点分组,实现资源隔离和调度策略。
cpu_arch=amd64
)。创建实例时,在 “配置”→“scheduler hint” 中添加聚合元数据:
{
"aggregate_instance_extra_specs": {
"cpu_arch": "amd64"
}
}
Ceilometer 提供 OpenStack 资源的监控和计量功能,可通过以下方式查看:
# 列出所有计量指标
ceilometer meter-list
+----------------------------+----------------------------------+-------+------------------+
| Name | Type | Unit | Resource Type |
+----------------------------+----------------------------------+-------+------------------+
| cpu | gauge | core | instance |
| memory usage | gauge | MB | instance |
| disk.read_bytes | cumulative | B | instance |
| disk.write_bytes | cumulative | B | instance |
| network.incoming.bytes | cumulative | B | network_interface|
| network.outgoing.bytes | cumulative | B | network_interface|
+----------------------------+----------------------------------+-------+------------------+
身份认证强化:
网络安全配置:
数据加密保护:
计算性能优化:
存储性能优化:
网络性能优化:
配置备份策略:
容灾架构设计:
OpenStack 每半年发布一个新版本,采用火车命名法(如 Train、Ussuri、Victoria)。截至文档发布,最新版本为 Train(2019 年 10 月发布),主要特性包括: