OpenStack 云操作系统完整教程:核心原理 + 双节点一键脚本部署实战

OpenStack 云操作系统完整教程:核心原理 + 双节点一键脚本部署实战
一、文章前言大家好本文结合课堂 PPT 理论 企业实训脚本完整流程系统讲解OpenStack 底层原理、核心组件协作、双节点ControllerCompute一键脚本部署全流程适合云计算初学者、运维、高校实训学员。 OpenStack 是业界主流开源 IaaS 云操作系统统一管理数据中心计算、存储、网络资源支持多租户隔离、按需弹性扩容广泛用于私有云、政企云平台搭建。本文分为两大模块理论原理篇、上机部署实战篇全部内容基于 CentOS7 一键 iaas 自动化脚本环境步骤可复现。二、OpenStack 基础理论入门2.1 OpenStack 是什么OpenStack 是云操作系统统一管控数据中心级计算、存储、网络资源池管理员通过 Web 仪表盘统一管控资源普通用户通过 Web 界面自助申请虚拟机、云硬盘、虚拟网络等资源。 架构分层定位OpenStack 仅负责云控制面底层硬件资源服务器、存储、交换机、虚拟化层 KVM/QEMU、计费运营系统为配套基础设施。2.2 虚拟化 vs 云计算虚拟化核心是硬件资源切分一台物理机虚拟多台虚拟机提升硬件利用率只解决资源分配问题云计算在虚拟化基础上对外提供标准化服务核心特性多租户隔离、按需使用、按量计费、弹性伸缩。2.3 OpenStack 三大设计理念开放完全开源最大限度复用现有成熟开源项目灵活无绑定私有闭源组件全架构插件化可替换数据库、虚拟化驱动可扩展模块化独立项目、无中心化架构、无状态服务天然支持高可用集群扩容。2.4 OpenStack 整体分层架构整体分为三层底层硬件资源池、IaaS 核心服务层、PaaS 扩展服务层、统一公共基础组件。1公共基础组件所有服务依赖Keystone统一认证鉴权中心所有组件 API 调用都需要 Token 身份校验DatabaseMySQL/GaussDB持久化存储租户、虚拟机、网络、存储配置数据Message QueueRabbitMQ 消息队列组件间异步通信核心。2IaaS 核心基础服务必装五大组件表格组件名称服务中文名核心作用Horizon仪表盘Web 可视化管理控制台对接所有组件 APINova计算服务管理虚拟机全生命周期创建、开机、迁移、销毁Glance镜像服务统一管理操作系统镜像镜像文件后端存储在 SwiftCinder块存储服务提供持久化云硬盘、快照、备份对接 SAN/LVM/CephNeutron网络服务SDN 虚拟网络二层交换、三层路由、DHCP、安全组、负载均衡3PaaS 扩展增值服务Swift对象存储存放镜像、文件、静态资源Heat资源编排批量自动化创建云资源栈Ceilometer计量监控采集资源使用量对接计费系统Trove数据库云服务Sahara大数据集群服务Ironic裸金属管理。2.5 创建一台虚拟机完整业务流程用户登录 Horizon 页面创建云主机组件协同流程Keystone 校验用户账号、权限下发访问令牌 TokenNeutron 分配虚拟网卡、子网、路由、安全组Cinder 按需挂载云硬盘卷Glance 调取操作系统镜像镜像实体存储在 Swift 对象存储Nova 调度器筛选空闲计算节点下发指令至计算节点 nova-compute底层 KVM/QEMU 虚拟化监视器完成虚拟机创建与启动。三、三大核心组件深度原理3.1 Nova 计算核心组件OpenStack 核心Nova 只管理虚拟机生命周期不管理物理服务器硬件监控。核心服务模块nova-api接收用户 Web/API 请求权限校验nova-conductor中间指令转发隔离数据库访问nova-scheduler调度器根据资源负载、亲和规则选择计算节点nova-compute计算节点对接底层 HypervisorKVM执行虚拟机创建、启停操作。Nova 关键概念Instance/Server云虚拟机实例Flavor虚拟机规格模板CPU / 内存 / 磁盘Quota租户资源配额限制最大虚拟机、硬盘数量Host Aggregate主机聚合统一调度同硬件配置服务器Server Group虚拟机亲和 / 反亲和策略主备业务分散部署。3.2 Cinder 块存储服务为云平台提供统一块存储接口支持云硬盘创建、挂载、快照、扩容、备份兼容 LVM、SAN、分布式存储 Ceph。cinder-api接收存储操作请求cinder-scheduler筛选可用存储后端cinder-volume对接存储驱动管理 LUN、iSCSI 存储链路 虚拟机通过 iSCSI/FC 协议挂载远程块存储卷。3.3 Neutron 网络 SDN 组件实现网络即服务为租户隔离虚拟网络核心代理组件neutron-server网络 API 总入口L2 Agent所有计算节点部署基于 OVS 虚拟交换机处理二层 VLANL3 Agent三层路由、外网网关、浮动 IPDHCP Agent自动分配虚拟机 IP 地址 支持 VLAN、VXLAN 网络模式实验环境采用 VLAN 租户网络。四、双节点部署架构规划4.1 硬件节点划分Controller 控制节点20.0.0.10部署 Keystone、Horizon、Nova 控制端、Glance、Neutron 控制端、Cinder 控制端、Swift 控制端Compute 计算节点20.0.0.20部署 nova-compute、neutron 计算代理、cinder 存储客户端、Swift 计算端4.2 网卡规划VMware 虚拟机环境外网网卡 ens33NAT 模式192.168.1.x 网段访问互联网、Dashboard 页面管理内网网卡 ens34仅主机模式20.0.0.x 网段OpenStack 组件内部通信、虚拟机流量。4.3 网络流量划分OpenStack 内部服务网络Controller 与 Compute 节点通信20.0.0.0/24虚拟机业务流量网络租户 VLAN 虚拟网络公网外网 NAT 网段虚拟机访问外网、外部访问云平台。五、实战一键脚本完整部署流程CentOS7 iaas 自动化脚本5.0 前置卸载旧环境清空残留两台节点分别执行卸载脚本截图保存 9-1.jpg、9-2.jpgbash运行# Controller Compute 节点 /usr/local/bin/iaas-uninstall-all.sh5.1 基础环境初始化主机名 网卡配置Controller 节点bash运行hostnamectl set-hostname controller # 查看网卡配置确认IP cat /etc/sysconfig/network-scripts/ifcfg-ens34 exec bashCompute 节点bash运行hostnamectl set-hostname compute cat /etc/sysconfig/network-scripts/ifcfg-ens34 exec bash执行结果截图9-3.jpg、9-4.jpg5.2 搭建本地 FTP 镜像源Controllerbash运行yum -y install vsftpd vi /etc/vsftpd/vsftpd.conf # 添加配置 anon_root/opt/ # 开机自启 systemctl start vsftpd systemctl enable vsftpdCompute 节点验证 yum 源可用两台节点截图 9-5.jpg、9-6.jpg5.3 全局环境变量配置核心配置文件 /etc/xiandian/openrc.sh两台节点安装配置工具并统一修改配置文件bash运行yum install iaas-xiandian -y vi /etc/xiandian/openrc.sh完整关键配置参数bash运行# 节点IP主机名 HOST_IP20.0.0.10 HOST_NAMEcontroller HOST_IP_NODE20.0.0.20 HOST_NAME_NODEcompute # 消息队列、数据库密码 RABBIT_USERopenstack RABBIT_PASS000000 DB_PASS000000 DOMAIN_NAMEdemo # 各服务统一密码 ADMIN_PASS000000 DEMO_PASS000000 KEYSTONE_DBPASS000000 GLANCE_DBPASS000000 GLANCE_PASS000000 NOVA_DBPASS000000 NOVA_PASS000000 NEUTRON_DBPASS000000 NEUTRON_PASS000000 METADATA_SECRET000000 # 网络配置 INTERFACE_NAMEens33 Physical_NAMEprovider minvlan101 maxvlan201 # 存储磁盘分区 BLOCK_DISKsdb1 OBJECT_DISKsdc1 STORAGE_LOCAL_NET_IP20.0.0.10 # Cinder、Swift、Heat、Ceilometer数据库密码统一0000005.4 系统基础预配置两台节点同步执行bash运行# 主机环境初始化 iaas-pre-host.sh reboot重启后部署数据库服务bash运行# Controller iaas-install-mysql.sh # Compute yum -y install MySQL-python5.5 分步安装 OpenStack 核心组件Controller 优先1Keystone 认证服务仅 Controllerbash运行iaas-install-keystone.sh2Glance 镜像服务仅 Controllerbash运行iaas-install-glance.sh # 导入CentOS镜像 source /etc/keystone/admin-openrc.sh glance image-create --name CentOS7.0 --disk-format qcow2 --container-format bare --progress /opt/images/CentOS_6.5_x86_64_XD.qcow23Nova 计算服务bash运行# Controller iaas-install-nova-controller.sh # Compute控制节点安装完成后执行 iaas-install-nova-compute.sh4Neutron 网络服务重点安装服务截图 9-7.jpg、9-8.jpgbash运行# Controller iaas-install-neutron-controller.sh # Compute iaas-install-neutron-compute.sh修改网络为 VLAN 模式Controller截图 9-9.jpgbash运行openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan systemctl restart neutron-server openstack-config --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge br-ex systemctl restart neutron-l3-agent创建 VLAN 租户网络截图 9-10.jpgbash运行neutron net-create demo-net --tenant-id openstack project list |grep -w admin |awk {print $2} --provider:network_type vlan5Horizon Web 控制台Controllerbash运行iaas-install-dashboard.sh宿主机 VMware 网卡 vmnet1 配置 IP 20.0.0.1/24浏览器访问http://20.0.0.10/dashboard账号 admin/000000 登录。6Web 端创建子网截图 9-11.jpg、9-12.jpg项目→网络→demo-net→创建子网参数子网地址10.10.1.0/24网关 10.10.1.1启用 DHCP地址池 10.10.1.2~10.10.100DNS 服务器10.90.87.887Cinder 块存储服务bash运行# Controller 截图9-13.jpg iaas-install-cinder-controller.sh # Compute修改yum源IP为20.0.0.10后执行截图9-14.jpg iaas-install-cinder-compute.sh8Swift 对象存储服务部署收尾bash运行# Controller 截图9-15.jpg iaas-install-swift-controller.sh # Compute 截图9-16.jpg iaas-install-swift-compute.sh六、部署常见问题与避坑总结节点互通失败检查内网网卡 ens34 IP 是否 20.0.0.x关闭防火墙、SELinuxNeutron 网络不通确认 ml2 配置 tenant_network_types 为 vlan重启 neutron-server 与 l3-agent虚拟机无法获取 IPDHCP Agent 未正常运行VLAN 区间 minvlan/maxvlan 配置冲突存储卷挂载失败检查 sdb1/sdc1 磁盘分区未格式化Cinder 后端驱动配置错误Dashboard 无法访问宿主机 vmnet1 网卡配置 20.0.0.1/24关闭宿主机防火墙。七、总结理论层面OpenStack 是模块化 IaaS 云操作系统Keystone 统一鉴权Nova/Cinder/Neutron 分别管理计算、块存储、虚拟网络组件依靠 RabbitMQ 消息队列异步通信实操层面采用 ControllerCompute 双节点架构通过 iaas 一键脚本自动化部署流程标准化、适合实训教学拓展方向可基于本环境扩展多计算节点、Ceph 分布式存储、OpenStack 高可用集群、Heat 资源编排自动化运维。