尧图精选

OpenStack入门

🕒 发布时间:2026/9/19 10:52:53 📁 来源:尧图网络
目录一、云计算概述一云计算的定义二云计算的服务模型三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 社区与生态一版本迭代与特性二社区参与方式三生态工具与集成一、云计算概述一云计算的定义云计算是一种基于网络的超级计算模式能够根据用户需求提供计算资源、存储资源、网络资源等。它有广义和狭义之分狭义云计算通过网络按需向用户提供 IT 基础设施硬件、平台、软件用户视 “云” 中资源为无限可横向扩展如使用水电煤气般按需付费。广义云计算指服务的交付和使用模式通过网络以按需、易扩展方式获得所需服务服务范围广泛。二云计算的服务模型IaaS基础设施即服务提供底层 IT 基础设施包括处理能力、存储空间、网络资源等。用户获取硬件或虚拟硬件资源裸机或虚拟机后可安装操作系统和应用程序。面向对象为 IT 管理人员。PaaS平台即服务将安装好开发环境的系统平台作为服务通过互联网提供。用户可安装其他应用程序但不能修改已安装的操作系统和运行环境。主要面向开发人员。SaaS软件即服务直接通过互联网为用户提供软件和应用程序服务。用户通过租赁方式获取安装在厂商或服务供应商处的软件。面向普通用户常见模式是提供账号密码。三OpenStack 概述起源2010 年 7 月由 Rackspace 和美国国家航空航天局NASA共同发起。Rackspace 贡献存储源码SwiftNASA 贡献计算源码Nova。定义是通过数据中心控制计算、存储和网络资源的云平台也是以 Apache 许可证授权的开源软件。目标是提供简单实施、可扩展且功能丰富的云产品支持公有云和私有云建设与管理。核心项目服务| 服务 | 项目名称 | 功能描述 ||----|----|----||Compute计算服务|Nova | 负责实例生命周期管理屏蔽 Hypervisor支持多种虚拟化技术可横向扩展 ||Network网络服务|Neutron | 管理虚拟网络为实例创建网络拓扑面向租户且租户间互不影响 ||Identity身份认证服务|Keystone | 类似 LDAP 服务对用户、租户、角色、服务进行认证与授权支持多认证机制 ||Dashboard控制面板服务|Horizon | 提供 Web 管理界面与底层服务交互 ||Image Service镜像服务|Glance | 注册与管理虚拟机镜像模板支持多格式镜像 ||Block Storage块存储服务|Cinder | 为运行实例提供持久块存储设备可扩展按需付费 ||Object Storage对象存储服务|Swift | 提供基于云的弹性存储支持集群无单点故障 ||Telemetry计量服务|Ceilometer | 度量、监控和控制数据资源为用户提供记账途径 |优势控制性完全开源模块化设计提供 API 接口方便与第三方技术集成。兼容性兼容其他公有云便于用户数据迁移。可扩展性采用模块化设计支持主流 Linux 发行版本可横向扩展。灵活性用户可按需建立基础设施轻松增加群集规模。行业标准众多 IT 领军企业加入可能成为云计算行业标准。二、OpenStack 一键部署一环境要求硬件最低配置| 类型 | 最低配置要求 ||----|----||CPU | 支持 Intel 64 或 AMD64启用硬件虚拟化支持的 64 位 x86 处理器4 核 || 内存 | 8GB|| 磁盘空间 | 30GB|| 网络 | 1 个 1Gbps 网卡 |案例环境| 主机名 | IP 地址 / 掩码 | 角色 ||----|----|----||openstack|ens33:192.168.9.137/24 | 安装所有 OpenStack 组件及所需环境 |二在线安装前准备工作准备虚拟机通过 VMware 等软件创建虚拟机配置静态 IP、网关及 DNS测试网络连通性。注意 IP 配置中不要有 “DOMAINx.x.X.X” 行以免影响 nova 配置。修改主机名[rootlocalhost ~]# hostnamectl set-hostname openstack [rootlocalhost ~]# bash [rootopenstack ~]#更新系统并安装常用软件[rootopenstack ~]# yum -y update [rootopenstack ~]# yum -y install vim wget net-tools lrzsz关闭防火墙并取消开机启动[rootopenstack ~]# systemctl stop firewalld [rootopenstack ~]# systemctl disable firewalld禁用 NetworkManager[rootopenstack ~]# systemctl stop NetworkManager [rootopenstack ~]# systemctl disable NetworkManager禁用 Selinux[rootopenstack ~]# cat /etc/sysconfig/selinux # 修改SELINUXdisabled SELINUXdisabled添加 hosts 绑定[rootopenstack ~]# cat /etc/hosts 192.168.9.137 openstack三在线部署 OpenStack安装 Train 版 YUM 源[rootopenstack ~]# yum install -y centos-release-openstack-train安装 Packstack 软件包[rootopenstack ~]# yum install -y openstack-packstack一键部署 OpenStack[rootopenstack ~]# packstack --allinone部署过程中会显示各项安装进度当出现 “successfully” 时表示安装成功。配置虚拟网桥 br-ex[rootopenstack network-scripts]# cp ifcfg-ens33 ifcfg-br-ex [rootopenstack network-scripts]# cat ifcfg-br-ex TYPEEthernet BOOTPROTOnone NAMEbr-ex DEVICEbr-ex ONBOOTyes IPADDR172.24.4.1 PREFIX24四离线安装前准备工作虚拟机准备配置静态 IP确保磁盘空间大于 30G建议 40G。IP 配置示例[rootlocalhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet BOOTPROTOstatic IPADDR192.168.9.137 PREFIX24 GATEWAY192.168.9.1 DNS1114.114.114.114 # 不要出现DOMAIN配置项修改主机名、安装软件等与在线安装相同执行修改主机名、更新系统、关闭防火墙等操作。禁用 Selinux[rootopenstack ~]# sed -i /SELINUX/s/enforcing/disabled/ /etc/selinux/config [rootopenstack ~]# setenforce 0 [rootopenstack ~]# getenforce # 应显示Permissive五离线部署 OpenStack上传并解压 Train 版离线安装包[rootopenstack ~]# mkdir /data cd /data [rootopenstack data]# tar zxf openstack.tgz [rootopenstack data]# ls配置本地 YUM 源[rootopenstack ~]# cd /etc/yum.repos.d/ [rootopenstack yum.repos.d]# mkdir backup [rootopenstack yum.repos.d]# mv *.repo backup [rootopenstack yum.repos.d]# vim local.repo [base] namebase baseurlfile:///data/base gpgcheck0 enabled1 [centos-ceph-nautilus] namecentos-ceph-nautilus baseurlfile:///data/centos-ceph-nautilus gpgcheck0 enabled1 [centos-nfs-ganesha28] namecentos-nfs-ganesha28 baseurlfile:///data/centos-nfs-ganesha28 gpgcheck0 enabled1 [centos-openstack-train] namecentos-openstack-train baseurlfile:///data/centos-openstack-train gpgcheck0 enabled1 [centos-qemu-ev] namecentos-qemu-ev baseurlfile:///data/centos-qemu-ev gpgcheck0 enabled1 [extras] nameextras baseurlfile:///data/extras gpgcheck0 enabled1 [openstack-train] nameopenstack-train baseurlfile:///data/openstack-train gpgcheck0 enabled1 [rdo-qemu-ev] namerdo-qemu-ev baseurlfile:///data/rdo-qemu-ev gpgcheck0 enabled1 [updates] nameupdates baseurlfile:///data/updates gpgcheck0 enabled1更新 YUM 源数据[rootlocalhost data]# createrepo /data/base/ [rootlocalhost data]# createrepo /data/centos-ceph-nautilus/ [rootlocalhost data]# createrepo /data/centos-nfs-ganesha28/ [rootlocalhost data]# createrepo /data/centos-openstack-train/ [rootlocalhost data]# createrepo /data/centos-qemu-ev/ [rootopenstack data]# createrepo /data/extras [rootopenstack data]# createrepo /data/openstack-train/ [rootopenstack data]# createrepo /data/rdo-qemu-ev/ [rootopenstack data]# createrepo /data/updates/ [rootopenstack data]# yum clean all [rootopenstack data]# yum makecache安装 openstack-packstack[rootlocalhost ~]# yum -y install openstack-packstack一键部署 OpenStack[rootopenstack ~]# packstack --allinone部署完成后配置 br-ex 网桥与在线部署步骤相同。三、通过 Dashboard 体验 OpenStack 功能一登录 Dashboard在浏览器中输入http://192.168.9.137/dashboard进入登录界面。用户名和密码存储在 root 用户 Home 目录下的 keystonerc_admin 文件中[rootopenstack ~]# cat keystonerc_admin unset OS_SERVICE_TOKEN export OS_USERNAMEadmin export OS_PASSWORD81a7af7313ce46d2 # 实际密码以生成的为准 export OS_REGION_NAMERegionOne export OS_AUTH_URLhttp://192.168.9.137:5000/v3 export PS1[\u\h \W(keystone_admin)]\$ export OS_PROJECT_NAMEadmin export OS_USER_DOMAIN_NAMEDefault export OS_PROJECT_DOMAIN_NAMEDefault export OS_IDENTITY_API_VERSION3二Dashboard 界面功能项目选项卡访问 API显示所有组件的服务端点。计算类包含概况、实例、镜像、密钥对、主机组等子类可管理计算资源。卷类管理云主机存储卷可创建卷和快照。网络类包含网络拓扑、网络、路由、安全组等子类管理网络资源。对象存储类包含容器子类用于存储数据。管理员选项卡拥有更高权限包含概况、计算类、卷类、网络类、系统类等可对系统资源进行更高级管理。身份管理选项卡管理项目、用户、组、角色等实现身份认证和授权。四、创建云主机一创建网络依次单击 “项目”→“网络”→“网络”点击 “ 创建网络”。输入网络名称 “private”点击 “下一步”。输入子网名称 “private_subnet”网络地址 “192.168.100.0/24”网关 IP“192.168.100.1”点击 “下一步”。配置 DHCP分配地址池 “192.168.100.100,192.168.100.200”DNS 服务器 “114.114.114.114”点击 “创建”。二创建路由依次单击 “项目”→“网络”→“路由”点击 “ 新建路由”。输入路由名称 “my_route”外部网络选择 “public”点击 “新建路由”。点击路由名称进入详情页选择 “接口” 标签点击 “ 增加接口”。选择子网 “private_subnet”点击 “提交”。三创建镜像依次单击 “项目”→“计算”→“镜像”点击 “ 创建镜像”。输入镜像名称 “cirrors01”选择镜像源文件镜像格式 “QCOW2”可见性 “公有”点击 “创建镜像”。四创建云主机依次单击 “项目”→“计算”→“实例”点击 “创建实例”。输入实例名称 “test”点击 “下一步”。选择镜像 “cirrors01”点击 “下一步”。选择实例类型 “m1.tiny”点击 “下一步”。选择网络 “private”点击 “创建实例”。五管理云主机并测试连通性点击云主机名称选择 “控制台” 进入云主机控制台。输入用户名 “cirros”密码 “gocubsgo” 登录。运行 ifconfig 命令查看 IP 地址$ ifconfig测试网络连通性$ ping -c 1 baidu.com $ ping 192.168.9.232 # Windows本机IP若 ping 外网不通检查 br-ex 配置并启动[rootopenstack ~]# ifconfig br-ex 172.24.4.1 netmask 255.255.255.0 up检查并开启路由转发[rootlocalhost ~]# vi /etc/sysctl.conf net.ipv4.ip_forward 1 [rootlocalhost ~]# sysctl -pw、OpenStack 核心服务深度解析一Nova 计算服务Nova 是 OpenStack 的计算核心组件负责管理实例的生命周期包括创建、启动、暂停、删除等操作。它通过屏蔽底层 Hypervisor 的差异支持 KVM、VMware、Hyper-V 等多种虚拟化技术。在单节点部署中Nova 会将所有计算资源整合到统一的资源池通过调度算法如过滤器和权重计算为实例分配合适的物理资源。关键功能特性实例管理支持实例的创建、删除、重启、暂停等全生命周期操作。资源调度通过调度器Scheduler根据资源利用率、主机负载等条件选择最佳节点。Hypervisor 支持默认支持 KVM可通过配置扩展其他虚拟化技术。横向扩展通过添加计算节点实现资源池的水平扩展满足高并发需求。配置文件关键点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 网络服务Neutron 负责 OpenStack 中的网络资源管理为实例提供虚拟网络功能包括创建网络、子网、路由、安全组等。它支持多种网络插件如 OVN、Open vSwitch允许租户自定义网络拓扑并通过隔离机制确保不同租户网络互不干扰。核心组件Neutron Server接收和处理 API 请求协调各插件操作。网络插件实现具体的网络功能如 OVN 提供二层和三层网络服务。代理Agent运行在计算节点上执行网络配置如 L2 Agent 处理二层流量L3 Agent 处理三层路由。典型网络架构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 start192.168.100.100,end192.168.100.200 --dns-nameservers listtrue 114.114.114.114三Keystone 身份认证服务Keystone 作为 OpenStack 的统一身份认证中心负责用户、租户、角色的管理与认证提供令牌Token管理和服务目录Service Catalog功能。它支持多种认证机制如密码认证、Token 认证、LDAP 集成等。核心概念用户User访问 OpenStack 的实体可关联到多个项目。租户Project资源分配的基本单位类似于 “项目” 或 “租户”。角色Role定义用户在项目中的权限如管理员、普通用户。令牌Token用户认证后的凭证用于访问各服务 API。认证流程用户发送用户名和密码到 Keystone。Keystone 验证凭证生成 Token 和服务目录。用户使用 Token 访问其他服务服务通过 Keystone 验证 Token 有效性。初始化 Keystone 命令# 创建服务实体 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 镜像服务Glance 用于存储和管理虚拟机镜像支持多种镜像格式如 QCOW2、RAW、VDI并可对接外部存储如 Ceph、Swift。用户可通过 Glance 上传、下载、注册镜像实例创建时从 Glance 拉取镜像模板。镜像工作流程用户通过 Horizon 或 CLI 上传镜像到 Glance。Glance 将镜像元数据存储在数据库镜像文件存储在后端存储默认本地文件系统。Nova 创建实例时从 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 | -------------------------------------------------------------------------------------------------六、OpenStack 部署实战进阶一多节点部署架构规划单节点部署适用于测试环境生产环境通常采用多节点架构将不同服务分离到独立节点提高性能和可靠性。典型多节点架构包括控制节点Controller Node运行 Keystone、Glance、Nova API、Neutron Server 等控制平面服务。配置要求至少 4 核 CPU、16GB 内存、100GB 磁盘。计算节点Compute Node运行 Nova Compute、Neutron Agent 等负责实例计算和网络处理。配置要求根据实例规模调整建议 8 核 CPU、32GB 内存、500GB 磁盘。存储节点Storage Node运行 Cinder、Swift 等存储服务提供块存储和对象存储。配置要求大容量磁盘阵列建议使用 SSD 加速 IO。二高可用部署要点生产环境中高可用HA是关键需求可通过以下方式实现1. 服务高可用控制器集群使用 Pacemaker Corosync 构建控制节点集群实现服务故障转移。数据库集群采用 MySQL Galera Cluster 实现数据库多节点复制。消息队列集群使用 RabbitMQ 集群确保消息服务不中断。2. 存储高可用块存储Cinder 支持多后端存储可对接 Ceph RBD 实现存储高可用。对象存储Swift 采用分布式架构通过多副本或 EC纠删码确保数据冗余。3. 网络高可用物理网络冗余配置双网卡绑定避免单网卡故障。虚拟网络冗余Neutron L3 Agent 支持 DVR分布式虚拟路由和 HA 模式。三部署故障排除指南1. 安装失败常见原因网络配置错误检查 IP 地址、子网掩码、网关是否正确禁用 NetworkManager。SELinux 和防火墙未关闭确保 SELINUXdisabledfirewalld 已停止并禁用。YUM 源问题离线部署时检查本地源配置和 createrepo 生成的元数据。2. 实例创建失败排查镜像问题确认镜像格式正确且可启动大小符合实例类型要求。资源不足检查计算节点 CPU、内存、磁盘是否充足。网络配置错误验证 Neutron 网络和路由是否正确关联。3. 网络连通性故障br-ex 网桥未配置检查 ifcfg-br-ex 文件确保 IP 地址正确并启用。路由转发未开启执行sysctl -w net.ipv4.ip_forward1开启转发。安全组规则限制检查安全组是否允许 ICMP 和目标端口流量。七、Dashboard 高级操作指南一资源配额管理OpenStack 支持对项目资源进行配额限制避免资源滥用。在 Dashboard 中可通过以下步骤配置进入 “管理员”→“系统”→“默认值”。在 “计算配额” 标签页中可设置实例数量、VCPU 数量、内存容量等限制。在 “卷配额” 标签页中可设置卷数量、卷大小、快照数量等。命令行配置示例# 设置项目 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_archamd64。实例调度到指定聚合创建实例时在 “配置”→“scheduler hint” 中添加聚合元数据{ aggregate_instance_extra_specs: { cpu_arch: amd64 } }三监控与计量Ceilometer 提供 OpenStack 资源的监控和计量功能可通过以下方式查看进入 “管理员”→“系统”→“系统信息”→“计量服务”。查看实例、卷、网络等资源的使用 metrics。配置告警规则进入 “管理员”→“系统”→“Alarming”设置阈值告警。命令行查看计量数据# 列出所有计量指标 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| ---------------------------------------------------------------------------------------八、生产环境最佳实践一安全加固建议身份认证强化启用多因素认证MFA避免密码泄露。定期轮换管理员密码限制非必要用户的管理员权限。网络安全配置配置安全组规则仅允许必要端口通信如 SSH 22、HTTP 80、HTTPS 443。启用 Neutron 防火墙服务FWaaS过滤恶意流量。数据加密保护对 Cinder 卷启用加密使用 LUKS 或 dm-crypt。对 Swift 对象存储启用服务器端加密。二性能优化策略计算性能优化启用 CPU 超线程HT提高物理 CPU 利用率。配置 NUMA非统一内存访问减少内存访问延迟。存储性能优化使用 SSD 作为 Cinder 卷的后端存储提升 IO 性能。为 Glance 镜像存储配置缓存加速镜像拉取。网络性能优化启用 Neutron 的 DVR分布式虚拟路由分担路由负载。配置 SR-IOV单根 I/O 虚拟化实现物理网卡直通。三备份与容灾方案配置备份策略定期备份 Keystone 数据库、Glance 镜像元数据。对 Cinder 卷创建快照支持增量备份。容灾架构设计跨数据中心部署控制节点集群使用异步复制确保数据一致性。配置 Swift 的多站点复制实现对象存储的异地容灾。九、OpenStack 社区与生态一版本迭代与特性OpenStack 每半年发布一个新版本采用火车命名法如 Train、Ussuri、Victoria。截至文档发布最新版本为 Train2019 年 10 月发布主要特性包括Neutron OVN 后端增强优化网络性能和扩展性。Cinder 支持 IBM Spectrum Scale扩展存储后端支持。Nova 增强裸机部署简化物理服务器管理。二社区参与方式贡献代码通过 Gerrit 提交补丁参与核心组件开发。报告 Bug在 Launchpad 上提交问题报告和 feature 请求。技术讨论加入 OpenStack 邮件列表devopenstack.org和 IRC 频道#openstack-dev on Freenode。三生态工具与集成配置管理工具使用 Ansible、Puppet 自动化部署和配置 OpenStack。监控工具集成 Prometheus、Grafana 实现可视化监控。容器集成与 Kubernetes 对接实现容器与虚拟机混合部署。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →