新闻详情

新闻详情

首页 / 资讯中心 / 详情

六、OpenStack

发布时间:2026/9/8 18:04:43来源:尧图网络
六、OpenStack
OpenStack的重要组件总结这份资料主要覆盖Keystone认证、Glance镜像、Nova计算、Cinder块存储包含概念、架构、命令、实验要点。公有云和OpenStack和KVM的区别公有云创建云服务器指挥OpenStack干活OpenStack创建实例指挥所有KVMXen等干活KVM创建虚拟机安装在实体服务器上面这份文档围绕 OpenStack 核心组件Keystone身份认证、Glance镜像服务、Nova计算服务、Cinder块存储服务展开包含核心概念、架构、命令行实操、Web 界面实验、故障排查覆盖理论 动手实验两大部分。一、Keystone 身份认证管理Keystone 是 OpenStack 的认证鉴权核心负责用户权限管理、维护服务端点完成认证你是谁、鉴权你能做什么两大工作。1. 核心概念表格概念说明Domain域User/Group/Project 的容器全局唯一可对应机构 / 数据中心域内资源唯一不必全局唯一User用户访问 OpenStack 的实体人、系统、其他服务域内唯一Group用户组用户集合给组分配角色组内全部用户继承权限批量管理权限Project项目 / 租户资源隔离集合计算、存储资源归属项目域内唯一旧称 Tenant一个用户可属于多个项目Role角色权限集合实现鉴权可分配给域或者项目支持继承全局唯一Service服务Nova、Glance 等 OpenStack 组件对外暴露 EndpointEndpoint端点服务访问 URL分为admin/internal/public三类访问入口Token令牌认证成功后的访问凭证默认有效期 24hCredential凭证身份校验信息用户名密码、token、API Key 等2. 常用命令实操域管理openstack domain list/create/set --disable/delete修改local_settings开启 Dashboard 多域登录重启 httpd 生效。删除域必须先禁用再删除。用户管理openstack user list/show/create创建用户指定密码。用户组管理创建组、添加用户到组直接给组赋予角色组内用户继承权限。角色管理openstack role list可以给用户 / 用户组在指定项目 / 域授予角色通过openstack role assignment list查看角色分配。项目管理openstack project create创建项目可以给用户在项目分配角色支持修改项目资源配额实例数、vCPU、内存。服务与端点openstack service list查看所有服务openstack endpoint list/openstack catalog list查看访问端点目录。3. 认证鉴权完整流程用户查询镜像示例用户提交用户名密码Credential给 KeystoneKeystone 认证通过返回 TokenHorizon 携带 token 向 keystone 查询可访问的 Project、各个服务 Endpoint用户请求 Glance 查询镜像请求携带 tokenGlance 调用 Keystone 校验 token 合法性Glance 读取自身policy.json策略文件判断该角色是否允许操作权限校验通过返回镜像数据。策略文件policy.json每个服务都有定义不同角色允许执行哪些 API 操作一般不建议修改。4. 排错日志路径/var/log/keystone/keystone.log修改keystone.conf开启debugTrue输出详细调试日志。二、Glance 镜像服务Glance 负责镜像注册、上传、下载、元数据管理镜像元数据存数据库镜像本体存储在后端存储。1. 镜像分类类比公有云公共镜像平台提供全部用户可见CentOS、Ubuntu 等私有镜像用户自己制作仅本人可见共享镜像其他用户共享给自己的镜像市场镜像第三方预装软件镜像一键部署。2. Glance 架构Glance‑API(V2)对外 REST 接口元数据直接操作数据库镜像数据交给glance‑store驱动层。旧版本 V1 有 glance‑registryStein 版本后已经废弃全部整合进 glance‑api。Glance‑Store 驱动对接多种后端存储本地文件 filesystem、Swift 对象存储、Ceph、S3 等。数据库 glance 库保存镜像元数据镜像名称、格式、位置、大小等表images、image_locations记录镜像存储路径。3. 镜像磁盘格式qcow2QEMU 动态扩展最常用、raw、vmdk(VMware)、vhd/vhdx(微软)、iso光盘镜像等。工具qemu‑img info 镜像文件查看本地镜像磁盘格式。4. 镜像状态机queued仅数据库记录元数据镜像文件未上传saving/uploading镜像正在上传active上传完成可用状态deactivated禁止普通用户访问镜像killed上传出错镜像损坏deleted/pending_delete已删除等待后台清理。5. 实验实操Web 界面上传镜像大文件推荐命令行上传glance image-create --progress带进度条web 容易超时失败。默认后端本地文件镜像实体存/var/lib/glance/images/数据库image_locations记录 file 路径。修改配置切换后端为 Swift 对象存储修改glance‑api.confdefault_storeswift配置 swift 账号密码重启 glance 服务上传镜像后数据库中 location 变为swifthttp://路径。镜像制作下载官方预安装cloud‑init镜像也可以用 virt‑manager 手动制作虚拟机镜像virt‑sysprep 清理后导出上传。三、Nova 计算服务Nova 负责虚拟机实例完整生命周期管理创建、启停、迁移、删除不管理物理主机硬件不做监控。对接 KVM/QEMU、VMware、Xen 等虚拟化 hypervisor。1. Nova 各组件作用表格组件功能nova‑api对外 REST API 入口参数校验、配额校验接收用户请求写入数据库RPC 下发消息到其他组件nova‑conductor数据库代理nova‑compute 不直接访问数据库全部通过 conductor RPC 调用解决安全、升级、并发性能问题处理迁移、调整规格复杂流程nova‑scheduler调度器给虚拟机挑选合适的计算节点分为过滤 Filter →权重 Weight 打分两步nova‑compute运行在计算节点真正操作 Hypervisor创建 / 管理虚拟机调用 libvirt 驱动上报资源状态通过 conductor 读写 DBPlacement 服务专门跟踪 CPU、内存等资源库存与资源占用情况RabbitMQ消息队列组件之间 RPC 通信载体可以开启 rabbitmq_management 图形监控插件2. nova‑scheduler 调度机制Filter过滤器筛掉不满足条件的计算节点ComputeFilter只保留 nova‑compute 服务正常运行的主机AvailabilityZoneFilter过滤不在指定可用域 AZ 的主机结合主机聚合 Host Aggregate 划分 AZRamFilter/DiskFilter过滤内存磁盘不足节点支持超配 overcommitram_allocation_ratio、cpu_allocation_ratioComputeCapabilitiesFilter根据 flavor 元数据筛选 CPU 架构ImagePropertiesFilter根据镜像元数据筛选 hypervisor 类型ServerGroupAffinity/AntiAffinity亲和实例放同一主机、反亲和实例分散不同主机。Weight 权重打分过滤剩下的主机打分默认优先选择空闲内存最多节点分数最高胜出。主机聚合 Host Aggregate把物理主机分组对应 Availability Zone 可用域实现实例指定部署位置例如 GPU 节点划分独立 AZ。3. 虚拟机生命周期操作软重启 soft reboot虚拟机内部执行 reboot虚拟机状态保持运行硬重启 hard reboot底层关机再开机Pause 暂停实例状态保存宿主机内存恢复快状态 PausedSuspend 挂起实例状态保存宿主机磁盘恢复慢状态 ShutDownShelve 搁置把实例保存为镜像存入 Glance宿主机删除虚拟机释放计算节点资源锁定实例 lock防止误删。默认策略admin_or_owner管理员和实例所有者都可以解锁修改nova_policy.json策略可以限制只有管理员能解锁。重建实例 rebuild虚拟机故障使用原始镜像重建实例。4. 创建虚拟机完整流程用户CLI/Dashboard携带 token 请求 nova‑api 创建实例nova‑api 向 keystone 校验 token 合法性数据库写入实例初始记录通过 MQ 发送 RPC 请求给 nova‑schedulerscheduler 执行 filterweight 选出目标计算节点scheduler 通过 MQ 下发创建虚拟机消息到目标节点 nova‑computenova‑compute 需要数据库信息RPC 调用 nova‑conductor 间接访问数据库compute 分别调用 Glance 获取镜像、Neutron 获取网络、Cinder 获取卷compute 调用 libvirt 驱动在 hypervisor 真正生成虚拟机。排错打开 nova.confdebugTrue分别tail‑f跟踪nova‑api.log、nova‑scheduler.log、nova‑compute.log观察流程。命令openstack compute service list查看 nova 各个组件运行状态。5. 前置资源创建实例必须三样镜像 image、规格 flavor定义 vCPU / 内存 / 磁盘、网络 network。四、Cinder 块存储服务Cinder 提供持久化块存储卷卷生命周期独立虚拟机虚拟机删除卷数据不会丢失。区分nova 本地 ephemeral 临时存储虚拟机关机删除数据不保存在卷。OpenStack 三类持久存储块存储 Cinder块设备挂载给虚拟机适合数据库对象存储 SwiftREST API 访问对象文件文件存储 Manila提供 NFS/CIFS 共享文件系统。1. Cinder 架构表格组件作用cinder‑api对外 REST 接口校验参数、配额数据库写入卷记录发送 RPC 请求给 schedulercinder‑scheduler调度器FilterWeigher选择合适后端存储节点过滤器 AvailabilityZoneFilter、CapacityFilter容量、CapabilitiesFilter后端能力cinder‑volume运行存储节点对接存储后端驱动LVM、Ceph、SAN 存储、华为 / EMC 存储设备执行卷创建、挂载、快照操作cinder‑backup把卷备份到 Swift 等外部存储Database保存卷、快照、备份元数据Message Queue(RabbitMQ)组件 RPC 通信。Cinder 本身不实现存储只是抽象层通过驱动对接各种后端存储。实验环境默认后端 LVM 逻辑卷。2. LVM 后端原理PV 物理卷 → VG 卷组 → LV 逻辑卷Cinder 创建卷实际就是 VG 中创建 LV。命令vgdisplay cinder‑volumes查看 cinder 卷组。3. Cinder 调度 FilterAvailabilityZoneFilter匹配卷指定的存储可用域存储节点配置storage_availability_zone创建卷指定 AZAZ 不匹配直接报错CapacityFilter过滤剩余容量不足以创建卷的后端CapabilitiesFilter根据 volume‑type 要求的存储能力过滤后端。4. 高可用部署cinder‑api、cinder‑scheduler 支持多实例 AA 部署Haproxy 做负载均衡cinder‑volume 多节点对接不同存储后端MySQL、RabbitMQ 做集群 / 主备保证可靠性。五、Swift 对象存储服务Object StorageSwift 是 OpenStack分布式对象存储无单点故障依靠普通 x86 硬件实现高可靠海量存储适合存放非结构化静态数据镜像、备份、日志、视频文件等。对象存储 vs 块存储Cinder 块存储可以挂载给虚拟机当磁盘读写Swift 不能挂载只能通过 REST‑HTTP API 上传 / 下载对象。Glance 可以把 Swift 作为镜像后端存储。1. 核心层级概念Account‑Container‑Object表格概念说明Account账户对应 OpenStack 的 Project租户顶层命名空间每个租户独立存储空间Container容器账户下的文件夹不能嵌套容器容器内部存放对象可以设置访问权限公开 / 私有Object对象真正保存的数据文件包含对象数据 自定义元数据对象名可以带 “/” 模拟目录但 Swift 本身没有真正文件夹。2. Swift 核心组件Proxy‑Server 代理服务8080 端口唯一对外入口接收 REST API 请求查询 Ring 环把请求转发到对应的存储节点鉴权交给 Keystone处理故障节点重试。Storage 节点存储服务Object‑Server处理对象数据读写Container‑Server管理容器元数据Account‑Server管理租户账户元数据。Ring环一致性哈希Swift 最重要数据结构记录 Account/Container/Object 数据分片在磁盘节点上的位置实现数据分片、多副本默认 3 副本故障自动重平衡。Consistency 服务复制器 Replicator、更新器 Updater、审计器 Auditor后台异步任务保证多副本数据最终一致性修复损坏数据、清理墓碑文件 tombstone。重要Swift 是最终一致性写成功之后短时间内副本可能不同步删除会生成.ts墓碑文件不是立刻删除数据。 底层磁盘推荐 XFS 文件系统需要支持扩展属性 xattr 保存元数据。3. 关键特点多副本机制不需要 RAID软件层面做冗余水平扩展增加存储节点直接修改 Ring无中心主节点全部节点对等没有单点故障不适合频繁修改小文件适合一次写入、多次读取的静态对象。4. 实操 实验要点查看服务openstack service list看到swift object‑store基础命令# 容器管理 openstack container create mycontainer openstack container list # 上传对象 openstack object create mycontainer cirros‑0.5.2‑x86_64‑disk.img # 下载对象 openstack object save mycontainer cirros‑0.5.2‑x86_64‑disk.img实验场景修改 Glance 配置将default_storeswift镜像存放到 Swift 容器文档前面 Glance 部分已经出现该实验。数据存放路径 Packstack 默认/srv/node/sdX分为accounts、containers、objects、quarantined隔离损坏数据目录。日志/var/log/swift/配置文件/etc/swift/swift.conf里面CONFIG_SWIFT_HASH为集群哈希密钥。六、Heat 编排管理服务OrchestrationHeat 是 OpenStack基础设施即代码 (IaC)编排组件使用 YAML 格式HOT 模板一次性自动化批量创建、管理整套云资源虚拟机、网络、卷、安全组等不用手动在界面点选每一个资源。解决痛点部署一套业务需要多台虚拟机 网络 卷手动操作步骤繁多容易出错Heat 写好模板重复一键部署、销毁整套资源栈。1. 核心概念HOT 模板 Heat Orchestration TemplateYAML 编写描述需要创建哪些资源、资源属性、资源依赖关系。Stack资源栈模板实例化运行之后生成的一套完整资源集合一个 stack 可以包含多个虚拟机、网络、卷支持嵌套 stack子栈。Resource 资源模板定义的各类 OpenStack 资源类型如OS::Nova::Server(虚拟机)、OS::Neutron::Net(网络)、OS::Cinder::Volume(云硬盘)。HOT 模板四大组成部分表格模块作用heat_template_version模板版本号必须指定parameters【可选】输入参数部署的时候传入变量增加模板复用如镜像名称、flavor 规格resources【必选】定义所有要创建的云资源可写depends_on定义资源创建依赖顺序例如先创建网络再创建虚拟机outputs【可选】部署完成输出返回值例如实例浮动 IP 地址供用户查看2. Heat 组件表格组件功能heat‑api标准 OpenStack REST API接收 HOT 模板请求对接 Keystone 鉴权heat‑api‑cfn兼容 AWS CloudFormation 模板的 API 接口方便迁移 AWS 模板heat‑engineHeat 核心引擎解析模板处理资源依赖调用 Nova/Glance/Neutron/Cinder 各个服务 API创建、更新、删除 stack 资源栈处理自动伸缩管理嵌套栈DB 数据库 heat 库保存 stack、模板、资源状态信息3. 常用命令 实验# 查看heat服务 openstack service list # 创建堆栈执行模板 openstack stack create -t demo.yaml --parameter imagecirros demo‑stack # 查看堆栈列表 openstack stack list # 查看堆栈资源 openstack stack resource list demo‑stack # 删除整套堆栈会自动清理全部创建出来的虚拟机、卷、网络 openstack stack delete demo‑stack实验操作Horizon 界面 → 项目 → 编排 → 堆栈上传 yaml 模板输入参数创建堆栈。 日志路径/var/log/heat/配置文件/etc/heat/heat.conf。高级能力支持 AutoScaling 自动伸缩根据 CPU 负载自动增减虚拟机数量deletion_policy控制删除堆栈的时候是否保留某些资源。七、Neutron 网络管理服务NetworkingNeutron 是 OpenStack 软件定义网络 SDN 组件提供网络即服务 NaaS实现多租户隔离虚拟网络虚拟机网卡、子网、路由、浮动 IP、安全组全部由 Neutron 统一管理网络功能从 Nova 中独立出来替代旧版nova‑network。1. 核心网络资源概念表格资源名词说明Network 网络二层虚拟网络对应虚拟交换机租户私有网络 / 外部提供商网络VXLAN/VLAN/GRE 做网络隔离。Subnet 子网属于某个 Network定义 IP 网段、网关、DNS、IP 地址池DHCP 从子网地址池分配 IP 给虚拟机。Port 端口虚拟网卡接口连接虚拟机到网络保存 MAC、固定 IP、安全组信息虚拟机的 vNIC 绑定 port。Router 虚拟路由器三层网络设备不同子网互通做 SNAT/DNAT连接租户内网和外部公网Linux network namespace 命名空间实现。Floating IP 浮动 IP公网 IP可动态绑定解绑虚拟机 port用于外网访问云主机。Security Group 安全组虚拟机端口的访问控制基于 iptables进出方向防火墙规则。两种网络模型租户网络OverlayVXLAN租户私有隔离网络数据包封装隧道不需要物理交换机 VLAN 配置Provider 网络物理网络 VLAN/Flat直接映射底层物理网络适合对接物理机房。2. Neutron 架构组件分布式控制节点 网络节点 计算节点表格组件部署位置功能neutron‑server控制节点对外 REST API接收 Horizon/CLI 请求写入 neutron 数据库通过 MQ 通知各个 Agent 干活ML2 插件管理二层网络逻辑配置。ML2 Core Plugin控制节点主流核心插件支持 LinuxBridge / OVS / OVN 多种虚拟交换机后端。DHCP‑agent网络节点运行 dnsmasq给虚拟机分配 IP、DNS应答 DHCP 请求。L3‑agent网络节点虚拟路由器实现SNAT、DNAT、浮动 IP每个路由器是独立 Linux 命名空间 namespace。OVS‑agent / LinuxBridge‑agent计算节点在宿主机本地创建虚拟交换机br‑int 集成网桥虚拟机 tap 网卡接入虚拟交换机实现二层转发。Metadata‑agent计算 / 网络节点给虚拟机传递元数据密钥、用户数据 cloud‑init 信息RabbitMQ 消息队列控制节点neutron‑server 和各个 Agent 之间 RPC 消息通信。Neutron DB 数据库控制节点保存网络、子网、port、路由、安全组全部逻辑网络配置。3. 虚拟机获取网络完整流程用户创建虚拟机Nova 调用 Neutron API 申请 port 端口neutron‑server 在数据库创建 port 记录MQ 通知计算节点上的 agent计算节点 agent 创建 tap 虚拟网卡接入本地虚拟交换机 OVS/LinuxBridge虚拟机启动发送 DHCP 请求DHCP‑agent 返回 IP 地址、网关 DNS 给虚拟机如果需要外网访问绑定 Floating‑IPL3‑agent 完成 DNAT 地址转换。4. 实操与实验常用命令# 查看网络服务 openstack network list openstack subnet list openstack port list openstack router list # 创建网络 openstack network create net‑neiwang # 创建子网 openstack subnet create subnet‑172 --network net‑neiwang --subnet‑range 172.16.0.0/24 --gateway 172.16.0.1 # 创建路由器 openstack router create router‑01 # 路由器挂载子网设置外部网关 openstack router add subnet router‑01 subnet‑172实验文档前面 Nova 创建实例的前置条件创建实例必须指定网络。 Horizon 界面路径项目→网络网络、子网、路由器、浮动 IP、安全组。5. 排错信息日志路径/var/log/neutron/neutron‑server.log、neutron‑l3‑agent.log、neutron‑dhcp‑agent.log查看命名空间ip netns listL3 路由器、DHCP 都运行独立 namespace计算节点查看 OVS 网桥ovs‑vsctl showLinuxBridgebrctl show。配置文件/etc/neutron/neutron.conf、/etc/neutron/plugins/ml2/ml2_conf.ini。公共通用考点RabbitMQ 消息队列OpenStack 内部 RPC 通信总线web 管理端口15672Unacked持续增大代表消息队列积压故障。policy.json 策略文件每个服务都有控制不同角色 API 权限一般生产不修改。日志排错思路每个组件独立日志目录debug 模式用于调试生产环境关闭 debug防止性能损耗。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI写作实用指南:高效创作技巧与应用场景解析 2026/9/8 18:52:49

AI写作实用指南:高效创作技巧与应用场景解析

搞科研的朋友都懂,找英文文献永远是科研路上第一道耗时又磨人的坎。 尤其是 2026 年的当下,顶刊新成果迭代速度翻倍,学校图书馆权限永远覆盖不全,关键词检索翻几十页都找不到匹配研究方向的核心论文;免费 OA 平台要么…

阅读更多 →
科研idea高效挖掘与落地实操指南 2026/9/8 18:52:49

科研idea高效挖掘与落地实操指南

搞科研的朋友都懂,找英文文献永远是科研路上第一道耗时又磨人的坎。 尤其是 2026 年的当下,顶刊新成果迭代速度翻倍,学校图书馆权限永远覆盖不全,关键词检索翻几十页都找不到匹配研究方向的核心论文;免费 OA 平台要么…

阅读更多 →
FPGA三段式状态机设计实战:从按键消抖到序列检测器 2026/9/8 18:52:49

FPGA三段式状态机设计实战:从按键消抖到序列检测器

最近好几个读者几乎同时问我同一个问题:按键消抖代码明明照着例程写的,为什么按十次有五次失灵?我把代码拿过来一看,问题不在消抖算法,而在逻辑设计的基本功上——状态机虽然写了,但状态跳转和输出全糊在同…

阅读更多 →
AI学术应用的发展现状与实践价值探析 2026/9/8 18:52:49

AI学术应用的发展现状与实践价值探析

搞科研的朋友都懂,找英文文献永远是科研路上第一道耗时又磨人的坎。 尤其是 2026 年的当下,顶刊新成果迭代速度翻倍,学校图书馆权限永远覆盖不全,关键词检索翻几十页都找不到匹配研究方向的核心论文;免费 OA 平台要么…

阅读更多 →
从GPU训练到RK3566部署:机器人强化学习落地全流程解析 2026/9/8 18:52:49

从GPU训练到RK3566部署:机器人强化学习落地全流程解析

把训练好的机器人策略从英伟达 GPU 搬到一块 RK3566 上,听着好像只是装环境、拷模型的事,但真做起来,坑多到你得把 GitHub 仓库从头到尾再翻几遍。这块 25 厘米级的 Microduck 桌面小机器人,是典型的“训练重、部署轻”的强化学习…

阅读更多 →
OpenCV Color Correction 色彩校正系列:线性化变换(Linearization Transformation)原理、公式与源码实现解析 2026/9/8 18:49:48

OpenCV Color Correction 色彩校正系列:线性化变换(Linearization Transformation)原理、公式与源码实现解析

OpenCV Color Correction 色彩校正系列:线性化变换(Linearization Transformation)原理、公式与源码实现解析 【免费下载链接】opencv Open Source Computer Vision Library 项目地址: https://gitcode.com/GitHub_Trending/opencv31/openc…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞