华为HCIP-OpenStack认证万字级学习指南
第一部分:HCIP-OpenStack认证概述与基础架构
1.1 认证定位
HCIP-OpenStack定位于云平台架构师和高级运维工程师。要求考生不仅会部署,更要懂:
-
架构设计:控制节点、网络节点、计算节点的高可用(HA)。
-
原理深挖:组件间的RPC通信、数据库模型、消息队列机制。
-
运维排错:日志分析、性能调优、故障恢复。
-
华为增强:了解华为在OpenStack上的增强特性(如CPU超分比控制、智能网卡卸载等)。
1.2 OpenStack 逻辑架构
OpenStack不是单一的软件,而是一系列服务组成的生态系统。核心逻辑遵循 “无状态+共享存储” 的设计哲学。
-
控制平面:运行在控制节点,包含数据库(MariaDB/Galera)、消息队列(RabbitMQ)、以及各种API服务。
-
数据平面:运行在计算节点,包含虚机(QEMU/KVM)、网络桥接(OVS/Linux Bridge)、存储卷挂载。
-
管理网络:用于内部组件通信。
-
业务/租户网络:用于虚拟机通信。
-
存储网络:用于连接后端存储(FC SAN, IP SAN, Ceph)。
第二部分:核心组件深度解析(HCIP考点重点)
2.1 Keystone —— 身份认证服务
Keystone是所有服务的“门卫”。在HCIP考试中,重点考察认证流程和域、项目、用户的关系。
2.1.1 核心概念
-
User(用户):代表一个操作实体(人/服务)。
-
Project(项目)/Tenant(租户):资源的容器。所有资源(VM、卷、网络)都必须属于某个Project。
-
Domain(域):Project和User的最高层级容器。通常用于多租户隔离(公有云场景),一个Domain可以包含多个Project。
-
Role(角色):权限的集合。关键角色:
-
admin:拥有所有权限(通常绑定在adminProject中)。 -
member:普通租户用户,可以创建资源。 -
reader:只读权限(Pike版本后引入)。
-
-
Token:访问凭证。常用
UUID或Fernet(推荐,无需持久化存储)。
2.1.2 认证流程(Token获取)
-
请求:用户发送
curl -d '{"auth": {"identity": {"methods": ["password"], "password": {"user": {"name": "demo", "domain": {"id": "default"}, "password": "xxx"}}}, "scope": {"project": {"name": "demo", "domain": {"id": "default"}}}}}到v3/auth/tokens。 -
验证:Keystone查询
MariaDB中的User表,校验密码(通常通过pbkdf2_sha512哈希)。 -
生成:生成
Fernet Token(一种轻量级、无需存储数据库的加密票据)。 -
返回:
X-Subject-Token头返回Token,X-Subject-Token头返回Token详情。
2.1.3 HCIP考点
-
服务目录(Service Catalog):Keystone记录了所有其他服务的Endpoint(
public,internal,admin)。管理网络通常访问internal端点,运维访问admin端点。 -
PKI vs Fernet:理解为什么新版废弃PKI(Token过大,数据库膨胀),改用Fernet(对称加密,无状态)。
2.2 Glance —— 镜像服务
Glance负责虚机模板的管理。
2.2.1 架构组件
-
glance-api:接受镜像上传/下载请求。
-
glance-registry:存储镜像元数据(大小、格式、状态)。
-
后端存储(Store):
-
本地文件系统:默认,不支持分布式,生产不推荐。
-
Ceph RBD:生产主流。利用Ceph的克隆快照特性,实现秒级启动虚拟机。
-
Swift:对象存储。
-
HTTP:直接通过URL导入。
-
2.2.2 镜像格式
-
raw:裸格式,占用空间大,但性能最好(无开销)。
-
qcow2:QEMU Copy On Write。支持快照、压缩、加密。生产环境标准格式。上传Glance时,若后端是Ceph,通常存储为
raw(因为RBD本身支持COW)。
2.2.3 HCIP考点
-
镜像缓存:
glance-api在计算节点上的缓存机制。当大规模并发创建同一镜像的VM时,利用缓存可以减轻Glance后端压力。 -
状态转换:
queued->saving->active->deactivated。
2.3 Nova —— 计算服务(HCIP核心难点)
Nova是OpenStack最复杂的组件,负责虚拟机的生命周期管理。
2.3.1 核心组件与通信机制
-
nova-api:接收RESTful请求,入口。
-
nova-scheduler:调度器。决定VM跑在哪个计算节点上。
-
过滤器(Filters):
RamFilter,DiskFilter,CoreFilter,ComputeFilter,ImagePropertiesFilter。 -
权重器(Weighers):
RamWeigher,MetricsWeigher。在符合过滤条件的节点中,选择“最优”的(如剩余内存最多)。
-
-
nova-conductor:数据库访问代理。
-
作用:避免计算节点直接连接数据库,提高安全性。所有写数据库的操作都通过Conductor进行。
-
-
nova-compute:运行在计算节点的守护进程。
-
通过
libvirt驱动(通常是libvirt)与KVM交互。 -
执行创建、销毁、迁移等操作。
-
-
消息队列(RabbitMQ):组件间通信。
-
RPC Call:同步调用(如查询状态)。
-
RPC Cast:异步调用(如创建VM,立刻返回,状态异步更新)。
-
2.3.2 创建虚拟机的完整流程(宏观视角)
-
用户(或CLI) 发送POST请求到
nova-api。 -
nova-api 鉴权(Keystone),检查配额,在DB中创建
vm_instances记录(状态BUILDING)。 -
nova-api 发送RPC Cast(
schedule_create_instance)给nova-scheduler。 -
nova-scheduler 从消息队列取出任务,执行过滤和权重计算,选出一个目标主机。
-
nova-scheduler 发送RPC Cast(
build_and_run_instance)给目标主机的nova-compute。 -
nova-compute:
-
调用Glance API下载/获取镜像。
-
调用Neutron API创建Port并挂载网卡。
-
调用Cinder API(如果有卷)挂载卷。
-
通过
libvirt生成XML定义文件,调用virsh create启动VM。
-
-
状态更新:
nova-compute通过RPC调用nova-conductor更新数据库状态为ACTIVE。
2.3.3 三种虚拟化模式(考点)
-
KVM:全虚拟化,依赖CPU VT-x/AMD-V,性能最佳,默认。
-
QEMU:纯软件模拟,性能差,仅用于调试。
-
Container (Docker):通过
nova-docker驱动(社区支持,非OpenStack原生主力)。
2.3.4 关键运维特性
-
迁移(Migration):
-
冷迁移:关机迁移。涉及块数据拷贝。
-
热迁移(Live Migration):内存脏页持续复制。前提:共享存储(如Ceph)或基于NFS的本地盘同步。
-
条件:CPU型号必须兼容(需开启
CPU mode为host-model或host-passthrough)。
-
-
疏散(Evacuate):当计算节点宕机时,在其他健康节点上重建VM(依赖共享存储保留数据)。
-
超大页(HugePages):解决TLB Miss性能问题。需在
nova.conf配置hw:mem_page_size=large(2048KB或1GB)。 -
NUMA绑定:对于性能敏感型应用(如数据库),将vCPU绑定到物理CPU Core,避免跨NUMA节点内存访问。
2.4 Neutron —— 网络服务(架构难点)
Neutron负责“网络即服务”(NaaS),是OpenStack最复杂且最容易出故障的组件。
2.4.1 核心概念
-
Network:隔离的二层广播域。对应一个VLAN(802.1q)或VXLAN(隧道)。
-
Subnet:IPv4/IPv6地址池,定义网关、DNS。
-
Port:连接设备(VM、Router、LBaaS)到网络的连接点。拥有固定IP/MAC。
-
Router:虚拟路由器。提供跨子网路由和南北向SNAT/DNAT。
2.4.2 网络模型:Provider vs Tenant
-
Provider Network(外部网络/扁平网络):
-
直接映射到底层物理网络(VLAN)。
-
无需L3 Agent。
-
性能好,配置简单。
-
-
Tenant Network(自服务网络):
-
使用Overlay技术(VXLAN或GRE)封装。
-
租户可自行创建网络,互不干扰。
-
需要L3 Agent提供路由。
-
2.4.3 关键Agent(HCIP必考)
-
neutron-server:API入口,接收请求,写入数据库。
-
neutron-dhcp-agent:提供DHCP服务(dnsmasq),为子网分配IP。
-
neutron-l3-agent:提供虚拟路由。实现:
-
SNAT:虚拟机访问外部网络(源地址转换为Router Interface IP)。 -
Floating IP:1:1 NAT,外部访问虚拟机。
-
-
neutron-metadata-agent:解决虚拟机内部访问
169.254.169.254获取元数据(如user-data)的问题。 -
neutron-openvswitch-agent:管理OVS流表。
-
neutron-linuxbridge-agent:管理Linux Bridge。
2.4.4 OVS vs Linux Bridge 对比(面试/考点)
| 特性 | Linux Bridge | Open vSwitch (OVS) |
|---|---|---|
| 架构 | 内核模块,简单稳定 | 用户态+内核数据路径,功能丰富 |
| 流表 | 基于MAC地址学习(传统交换机) | 支持OpenFlow流表,可编程 |
| 性能 | 较高,延迟低 | 略高,但支持DPDK后反超 |
| 功能 | VLAN,基本防火墙 | VLAN, VXLAN, GRE, QoS, 端口镜像 |
| 生产选型 | 适合小型环境 | 大规模SDN首选 |
2.4.5 VXLAN 原理
-
背景:VLAN只有4096个,无法满足云环境。
-
原理:将二层帧封装在UDP(端口4789)中,加上VNI(24位,1600万+隔离)。
-
VTEP:VXLAN Tunnel End Point。负责封装和解封装,通常由OVS承担。
2.5 Cinder —— 块存储服务
管理持久化块设备(云硬盘)。
2.5.1 架构
-
cinder-api:接收卷操作请求。
-
cinder-volume:管理后端存储,通过Driver与存储设备交互(如LVM, Ceph, NetApp, Huawei OceanStor)。
-
cinder-scheduler:调度卷创建的位置(类似nova-scheduler)。
-
后端存储:
-
LVM:默认,适合POC,通过iSCSI暴露给计算节点。
-
Ceph RBD:生产标准。通过
librbd直接挂载,实现“卷到虚机”的免拷贝挂载。
-
2.5.2 关键操作
-
创建卷:支持从镜像创建、从快照创建、从其他卷克隆。
-
挂载/卸载:将卷挂载到指定虚机的指定总线(virtio-scsi或IDE)。
-
快照:Crash-consistent(崩溃一致性)。若需应用一致性,需配合QEMU Guest Agent。
-
备份:将卷备份到Swift或Ceph对象存储。
2.6 Swift —— 对象存储(考概念居多)
-
架构:无单点故障的分布式存储。基于一致性哈希。
-
数据模型:Account -> Container -> Object。
-
特点:高冗余(Replica 3),高扩展,最终一致性(没有强一致性锁)。
-
对比Ceph:Swift是对象存储,Ceph是统一存储(块、对象、文件)。
第三部分:高级架构与运维(HCIP核心)
3.1 高可用(HA)架构
HCIP要求掌握控制节点的高可用方案。
3.1.1 数据库高可用:Galera Cluster
-
特点:基于
wsrep协议的多主同步复制。 -
要求:至少3个节点,避免脑裂(
gcache大小需合理配置)。 -
监控:
wsrep_local_state_comment状态(Synced)。
3.1.2 消息队列高可用:RabbitMQ Mirrored Queue
-
策略:设置
ha-mode: all,确保Queue在所有节点镜像。 -
注意:网络分区(Network Partition)是RabbitMQ集群最棘手的故障,需配置
cluster_partition_handling。
3.1.3 服务高可用:Pacemaker + HAProxy
-
架构:HAProxy作为VIP的流量入口,分发请求到各个控制节点的API服务。
-
Pacemaker:负责VIP的漂移以及服务资源的拉起(如未使用容器化部署,即“packstack/devstack”方式)。
3.1.4 计算节点高可用
-
主机聚合(Host Aggregates):将具有相同属性的物理机分组(如SSD节点、GPU节点)。
-
可用域(Availability Zones):将主机聚合暴露给用户,允许用户在创建VM时指定物理隔离区域(对应数据中心的不同机房)。
3.2 存储后端集成(Ceph深度集成)
华为HCIP尤其强调Ceph与OpenStack的集成,因为这是生产环境主流。
-
Glance + Ceph:
-
配置
rbd_store_user和pool。 -
镜像存储在
imagespool中。 -
克隆优势:创建VM时,Ceph使用
rbd clone从镜像生成卷,瞬间完成,无需在计算节点下载镜像。
-
-
Nova + Ceph:
-
配置
libvirt_images_type=rbd。 -
临时盘:如果是云盘启动(Boot from Volume),则VM的系统盘在Cinder卷中;如果是镜像启动,Nova会在Ceph中创建
vmspool的卷作为系统盘。 -
热迁移:基于Ceph的RBD,热迁移变得极其简单,无需拷贝磁盘数据,只需迁移内存状态。
-
-
Cinder + Ceph:
-
cinder-volume通过rbddriver 对接。 -
卷类型(Volume Type):定义后端存储能力(如
ssd-ceph,hdd-ceph),通过extra-specs实现QoS限制(IOPS)。
-
3.3 网络高阶特性:DVR与FWaaS
3.3.1 DVR(分布式虚拟路由)
-
痛点:传统L3 Agent是单点(集中式路由),所有跨子网流量和东西向流量都经过网络节点,造成瓶颈。
-
DVR原理:
-
将L3 Agent分布到每个计算节点。
-
计算节点上的
qrouternamespace负责处理该节点上VM的流量。 -
东西向流量:本地路由,不经过网络节点。
-
南北向流量:带Floating IP的流量,直接通过计算节点出公网(需要计算节点连接外部物理网络);不带Floating IP的SNAT流量,仍然需要经过网络节点(或专门的服务节点)。
-
3.3.2 安全组(Security Group)
-
实现机制:
-
Linux Bridge:通过
iptables(filter表)实现。 -
OVS:通过
iptables(在br-int和VM接口之间)或ovs-flow(较复杂)。
-
-
HCIP考点:安全组是有状态的(Stateful)。允许入方向流量会自动允许返回流量。区别于防火墙(FWaaS),防火墙通常是无状态的或有状态但提供更高级的策略。
3.4 计量与监控
3.4.1 Ceilometer
-
功能:数据采集(计量)。用于计费、监控、统计。
-
数据收集:通过
polling agent轮询(如CPU使用率),通过notification agent接收通知(如创建VM)。 -
存储:
gnocchi(时间序列数据库,用于存储计量数据)替代了MongoDB。
3.4.2 Aodh
-
功能:告警服务。基于Ceilometer采集的数据触发告警。
3.4.3 监控排查
-
日志路径:
/var/log/下对应服务目录。 -
关键日志:
-
nova-compute.log:计算节点所有操作。 -
neutron-server.log:网络API调用。 -
cinder-volume.log:存储卷操作。
-
-
排错方法论:
-
自顶向下:API是否返回错误(查看API日志)。
-
追踪Request ID:OpenStack每条请求都有一个Request ID(如
req-xxxx),通过grep Request ID串联所有组件日志,还原完整调用链。 -
消息队列:若任务卡住,检查RabbitMQ队列深度(
rabbitmqctl list_queues)。
-
第四部分:自动化与扩展(HCIP实战)
4.1 Heat —— 编排服务
-
核心:
HOT模板(Heat Orchestration Template),YAML格式。 -
资源:
OS::Nova::Server,OS::Neutron::Net。 -
功能:定义基础设施即代码(IaC)。支持
depends_on定义依赖关系,output输出结果。 -
Auto Scaling:
-
配合
OS::Heat::AutoScalingGroup和OS::Ceilometer::Alarm实现弹性伸缩。 -
基于CPU阈值或周期策略,自动增加或减少VM数量。
-
4.2 自动化部署工具(对比)
-
Packstack:基于Puppet,适合单机/小规模POC,生产中几乎不用。
-
Kolla-Ansible:容器化部署(Kolla) + Ansible编排。HCIP重点。
-
优点:所有服务运行在Docker容器中,升级回滚方便,隔离性好。
-
核心概念:
globals.yml(配置密码、网卡、后端存储类型)、multinode(定义节点角色)。 -
运维命令:
kolla-ansible deploy,kolla-ansible reconfigure,kolla-ansible upgrade。
-
4.3 性能调优(考点)
-
CPU超分:
cpu_allocation_ratio。默认16.0,即物理核心:虚拟核心=1:16。高并发场景建议降低比例。 -
内存超分:
ram_allocation_ratio。默认1.5。 -
磁盘I/O:
-
设置
disk_allocation_ratio。 -
使用Ceph时,调整
rbd_qos_iops_limit。
-
-
网络优化:
-
DPDK:绕过内核协议栈,用户态驱动,大幅提升OVS性能(吞吐量提升10倍+)。
-
SR-IOV:PCIe直通。将物理网卡VF(虚拟功能)直接分配给虚拟机,实现接近物理机的网络性能,但牺牲了热迁移能力。
-
第五部分:HCIP考试重点与模拟题
5.1 常见多选题/判断题考点
-
关于Nova调度:
-
问:哪些属于过滤器的顺序?答:首先过滤出符合计算节点,再根据权重排序。
-
-
关于Cinder后端:
-
问:LVM后端是否需要cinder-scheduler?答:需要(如果多后端)。
-
问:Ceph后端如何实现快照?答:
rbd snap create,由Cinder driver控制。
-
-
关于Neutron:
-
问:Floating IP的实现原理?答:iptables NAT(DNAT)或OVS流表。
-
问:DVR模式下,虚拟机访问Internet(SNAT)的路径?答:经过计算节点 -> 网络节点的
snat namespace。
-
-
关于Keystone:
-
问:如何撤销用户权限?答:删除role assignment,Token不会立即失效(Fernet Token有有效期)。
-
-
关于高可用:
-
问:Galera Cluster最少节点数?答:3。
-
问:RabbitMQ镜像队列如果master节点宕机,消息是否会丢失?答:不会,slave会提升为master(取决于策略)。
-
5.2 排错场景题
场景:用户创建VM报错“No valid host was found”。
排查思路:
-
检查
nova-scheduler.log,查看过滤结果。 -
检查用户指定的Flavor与主机聚合是否匹配(
AggregateInstanceExtraSpecsFilter)。 -
检查计算节点
nova-compute是否状态为down(nova service-list)。 -
检查计算节点磁盘空间(
df -h),/var/lib/nova是否满。 -
检查
nova-compute.log中是否有libvirt连接失败记录(通常是因为重启了libvirt-bin服务,需重启nova-compute)。
场景:VM创建成功,但无法获取IP(DHCP失败)。
排查思路:
-
检查Neutron DHCP Agent状态(
neutron agent-list)。 -
检查网络所在的dhcp namespace是否存在(
ip netns exec qdhcp-xxx)。 -
在计算节点查看端口状态(
ovs-vsctl show),检查tap设备是否在br-int上。 -
检查安全组是否允许DHCP(UDP 67,68)。
5.3 实验重点(机考/面试)
-
迁移操作:冷迁移、热迁移的命令行(
openstack server migrate加--live)。 -
卷操作:创建卷,从卷启动虚拟机,卷扩容(需先卸载,扩容后挂载,文件系统内
resize2fs)。 -
网络操作:创建VXLAN网络,创建子网,创建路由,连接外部网络,分配Floating IP。
-
命令行排查:
-
openstack compute service list -
openstack network agent list -
openstack volume service list -
rabbitmqctl list_queues | grep -v 0(查看是否有积压队列)
-
第六部分:华为云Stack 增强特性(补充)
华为HCIP-OpenStack通常融合了华为云Stack 8.x(基于OpenStack的商业发行版)的内容。
6.1 华为增强点
-
ManageOne:统一的运营运维平台。
-
运营面:租户自服务门户,审批流程,计量计费。
-
运维面:监控告警,资源拓扑,自动化运维(类似Zabbix+Ansible)。
-
-
GaussDB:华为自研数据库,替代MariaDB用于高安全场景。
-
FusionSphere:底层虚拟化引擎(基于KVM增强),提供更优的调度和IO性能。
-
硬件加速:
-
IN300/IN500:智能网卡,支持网络和存储的硬件卸载(SR-IOV),提升网络吞吐并降低CPU占用。
-
Atlas:AI加速卡,通过PaaS层提供给虚机/容器。
-
6.2 华为部署模式
-
Deploy Tool (HCT):华为云Stack部署工具,支持自动化安装、扩容、升级。
-
Region/AZ/POD:
-
Region:地理区域(如北京、上海)。
-
AZ:可用域,对应独立的数据中心或机房。
-
POD:一组物理设备的逻辑集合(包含若干控制节点和计算节点)。
-
第七部分:复习策略与资源推荐
-
官方文档:
-
OpenStack官方文档(Stein/Train/Ussuri版本,取决于考试版本)。
-
华为Support网站上的《HCIP-Cloud Computing-OpenStack V3.0 实验手册》。
-
-
环境搭建:
-
使用虚拟机(VMware Workstation)搭建3节点(1控制+1网络+1计算)的环境。
-
推荐使用Kolla-Ansible部署,便于理解容器化架构和配置项。
-
-
实验重点:
-
反复练习热迁移(确保共享存储配置正确)。
-
练习Ceph对接(即使模拟环境没有真实Ceph,也要理解配置项)。
-
练习故障模拟(停掉某个服务,观察日志变化,重启恢复)。
-
-
高频考点总结:
-
消息队列RPC通信机制
-
数据库表结构(了解
instances表,flavors表) -
存储多后端配置
-
网络Namespace隔离原理
-
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)