资讯中心

ZStack私有云搭建教程:从零部署一套IaaS云平台

📅 2026/9/26 11:56:01
ZStack私有云搭建教程:从零部署一套IaaS云平台
搭建ZStack私有云教程从零开始部署一套可用的IaaS平台聊到私有云很多人第一反应是OpenStack但真正上手过的人都知道那玩意儿有多折腾——组件几十个部署一次掉几层皮升级更是噩梦。我这两年给客户做私有云方案时越来越多的项目选了ZStack。原因很简单它把“私有云”这件事做成了真正能落地的东西部署快、界面友好、运维压力小而且社区版免费。这篇文章就基于我自己的实操经验从规划到部署再到跑通第一台云主机完整走一遍ZStack私有云的搭建流程给正准备动手的朋友做个参考。不管你是企业IT、实验室管理员还是想自己搞一套云环境来学习这条路线都适用。1. 部署前必须想清楚的三件事动手之前先别急着装系统搞私有云和装个Linux服务器完全是两个层面的工作。我在下面这块栽过跟头一开始图省事随便找台旧服务器就开干结果存储、网络、计算节点全挤在一起后面扩容和排障都特别被动。所以部署前先把架构、硬件、网络这三件事捋清楚。1.1 ZStack的核心架构与组件ZStack是典型的IaaS基础设施即服务平台它把物理服务器的CPU、内存、磁盘通过网络虚拟化技术统一池化然后通过Web界面以云主机的形式对外提供服务。整套系统里最关键的角色就三类管理节点、计算节点和存储节点。管理节点是整个云平台的大脑负责运行ZStack的调度服务、Web控制台、数据库和消息队列。它不承载用户云主机只做管理调度。计算节点就是真正跑云主机的地方在上面装KVM虚拟化为云主机提供计算资源。存储节点负责提供主存储和二级存储——主存储存云主机的系统盘和数据盘二级存储存镜像、备份之类的静态数据。ZStack特别贴心的一点是支持All-in-One部署模式也就是一台物理机同时充当管理节点、计算节点和存储节点适合测试环境和POC验证。生产环境则建议把三个角色拆开至少管理节点独立出来。这个设计对新手友好也给了老手足够的灵活性。1.2 硬件规划与资源估算资源估算没有绝对标准但有个经验算法可以套。管理节点最低4核8GB内存起步生产环境建议8核16GB以上磁盘至少200GB SSD用来装系统和服务。计算节点的资源取决于你要跑的云主机总量我一般按“云主机总vCPU加超配比例”来倒推——比如计划跑50台2核4GB的云主机那计算节点至少准备100核物理CPU、200GB物理内存再留20%到30%的冗余给虚拟化层开销。存储的估算要分清主存储和二级存储的用途。主存储用SSD做高性能资源池容量按所有云主机磁盘总和来规划二级存储用来放镜像模板和备份用普通SATA盘组RAID即可。我在一个中等规模的实训项目中用过一台48GB内存、12TB机械盘加1TB SSD的服务器做单节点跑20台4GB内存的测试云主机日常负载基本稳定。如果服务器不止一台尽量保证各节点硬件配置一致尤其是计算节点。异构集群虽然ZStack支持但CPU型号差异会导致热迁移受限后期维护会比较痛苦。1.3 网络规划与IP分配网络规划是部署成败的重灾区。ZStack对网络的要求其实不复杂但IP段规划乱会导致后面创建云主机时一堆网络冲突的诡异问题。我的做法是提前画一张IP规划表把管理网、云主机业务网、存储网分开。管理网用于平台内部通信走独立网段比如192.168.10.0/24管理节点和各计算节点都在这段。业务网是云主机对外提供服务的网络比如172.16.20.0/24云主机从这里拿IP。存储网如果是独立的存储设备接入最好单独划一段避免存储流量冲击业务网络。没有独立存储网的话至少用千兆以上交换机把存储流量和业务流量通过不同物理接口或VLAN隔开。还有个容易忽略的点规划业务网时不要和现有局域网网段冲突不然云主机一开机IP就和你办公室里某台电脑“撞车”了这种低级坑排查起来特别费时间。2. 环境准备与安装硬件和网络规划完就可以开始装了。ZStack支持CentOS 7和Ubuntu Server两个主流的服务器系统社区版推荐CentOS 7.6以上版本。这套环境准备我踩过不少坑下面按实操顺序说清楚。2.1 操作系统安装与基础配置首先安装操作系统这里注意两点磁盘分区时给/根分区留够空间建议至少50GB另外确认服务器时间准确ZStack的组件对时间同步很敏感时间不准会导致云主机创建失败。装完系统执行基础配置# 修改主机名建议每台节点按角色命名 hostnamectl set-hostname zstack-mgmt # 关闭防火墙和SELinux这是ZStack能正常安装访问的前提 systemctl stop firewalld systemctl disable firewalld sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config setenforce 0 # 配置静态IP编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 # BOOTPROTOstatic, 填写规划好的管理网IP、掩码、网关关闭防火墙这件事在很多环境下会有争议但从实际部署看ZStack的组件之间通信端口非常多逐个放行麻烦且容易漏测试环境直接关闭最省心。生产环境如果安全策略严格再按官方文档的端口清单精确放行也不迟。2.2 安装ZStack管理节点ZStack的安装思路和OpenStack完全不同它打包成了一个自动化安装程序三步就能装完管理节点。在配置好的CentOS 7服务器上操作# 安装wget等基础工具 yum install -y wget net-tools # 下载ZStack社区版安装程序官方源 wget https://download.zstack.io/zstack-installer-xxx.bin # 赋予执行权限并启动安装 chmod x zstack-installer-xxx.bin ./zstack-installer-xxx.bin -a安装脚本会自动配置系统环境、安装数据库、消息队列、管理服务等一系列组件。这个阶段耗时大概10到20分钟取决于机器性能和网络。安装完成后屏幕上会输出管理控制台的访问地址和初始账号密码务必截图或记录下来。这里有个细节安装时用-a参数表示All-in-One会让脚本把计算节点和存储节点的组件也一并装好适合我们这种单机起步的环境。如果只想装管理节点后续再另行添加计算资源就用-m参数。我建议新手先用All-in-One模式跑通后面需要横向扩展再做调整。2.3 验证服务状态与登录控制台安装完成后别急着打开浏览器先用命令行把服务状态确认一遍。ZStack的管理服务管理命令如下# 查看服务运行状态正常应该全是running zstack-ctl status # 若某个服务异常可以单独重启 zstack-ctl restart服务确认没问题后用浏览器访问https://你管理节点的IP端口默认443。注意是HTTPS协议浏览器会提示证书不受信任这是因为ZStack自带了私有CA自签证书直接点“继续前往”即可。初次登录会要求修改默认管理员密码建议改成强密码因为控制台有创建云主机、管理存储等全部权限。登录成功后你会看到一个干净的管理界面左侧是功能菜单包括云资源池、计算、网络、存储、镜像、云主机等模块右侧是资源使用概览仪表盘。到这里平台的管理骨架已经建好了下一步就是往里面填充“云”的资源。3. 在Web界面中初始化云环境管理界面能打开只是第一步要让平台真正能创建云主机还得在界面里把“区域→集群→主机→存储→网络”这一整条链路搭起来。ZStack把整个构建过程做成了向导式的操作逻辑非常清晰。3.1 创建区域、集群与添加主机在ZStack里资源是分层的最高层是“区域”Zone一个区域可以包含多个“集群”Cluster一个集群里有多台“主机”Host。我们先把这条骨架搭出来。点击“云资源池”进入区域管理页面点击创建区域输入一个名字比如“Zone-生产环境”。在区域内创建集群集群类型选“KVM”这是ZStack里计算虚拟化的默认方案。集群创建好之后点击“添加主机”填入当前这台服务器的管理网IP和SSH登录账号密码。系统会推送安装指令到服务器自动部署KVM虚拟化组件和agent程序整个过程不需要手工操作。添加主机的过程大概需要几分钟期间可以观察主机状态从“正在安装”变成“已连接”。这个变化说明管理节点已经能通过内部通道控制这台计算主机了。如果卡在“正在安装”超过10分钟多半是网络不通或者SSH密码不对去计算节点上检查systemctl status zstack-agent能看到具体报错。3.2 主存储与二级存储的创建存储是云平台的“仓库”没有存储云主机连系统盘都放不了。ZStack把存储分成两类主存储承载运行中的云主机磁盘要求低延迟高吞吐二级存储存放镜像、模板和备份对性能要求低一些。在All-in-One模式下最简单的方式是添加“本地存储”作为主存储。在对应集群页面点击“添加主存储”存储类型选“LocalStorage”路径填一个已格式化的分区挂载点比如/zstack-primary系统会在这块路径上建立云主机磁盘的存储池。如果服务器有专门的数据盘比如/dev/sdb且已挂载到某个目录用整块盘的挂载路径更好避免系统盘被云主机磁盘撑爆。接着添加二级存储类型支持NFS和镜像服务器。本地环境我通常建议用NFS即使只有一个节点也可以指向本机共享目录。这个目录用来存放上传的ISO镜像和云主机快照。二级存储路径不要和主存储共用目录分开更安全。3.3 配置云主机网络网络是创建云主机前最后一个必配模块。ZStack把网络分成L2和L3两层概念L2指物理链路或VLAN等二层网络L3是IP层网络负责给云主机分配IP、提供DHCP和网关。在“网络”菜单里先创建L2网络类型选“Flat”表示不打VLAN标签直接用物理交换机上现有的二层网络适合简单环境。然后基于这个L2网络创建L3网络填入业务网网段、起始和结束IP、网关、DNS。ZStack会自动起一个DHCP服务之后每台云主机创建时都会从这个网段里自动分到IP。这里特别提醒L3网络的IP段范围不要分配得太大尽量按实际需要规划比如172.16.20.10-172.16.20.100这段。IP范围越大DHCP地址池的扫描负担越重而且不好管理。4. 创建第一台云主机骨架搭好资源池也有了就到了最有成就感的环节——把一台云主机跑起来。这里我按顺序拆解镜像上传、规格定义、网络选择、创建校验。4.1 上传镜像与创建计算规格创建云主机需要一个操作系统镜像。在“镜像”页面点击添加镜像这步支持两种常见方式一是上传ISO镜像文件二是直接使用ZStack官方提供的云主机镜像模板。我优先推荐用官方镜像模板比如CentOS 7.9的qcow2格式镜像因为已经预装了虚拟化优化的驱动开机的云主机网络和磁盘驱动都正常。ISO镜像虽然灵活装系统经常要再配一次驱动比较费劲。上传镜像界面选“从二级存储导入”然后浏览到本地下载的qcow2镜像文件指定目标二级存储和镜像格式。ZStack会自动计算镜像的哈希值并校验完整性。镜像上传好之后在“计算规格”里创建实例规格也就是定义云主机的“配置”比如2核4GB、4核8GB。ZStack还支持内存超配和CPU超配设定测试环境可以适当调高超配比来提高资源利用率。4.2 创建云主机并绑定网络在“云主机”页面点击创建选择计算规格、镜像、目标集群和L3网络。云主机名字按业务命名比如web-server-01。点击创建后ZStack会在对应的计算节点上完成一系列操作从二级存储拉取镜像到主存储、克隆出系统盘卷、分配IP、启动KVM实例。整个流程通常一两分钟内完成。创建成功后云主机列表里会显示“运行中”状态同时可以看到分配到的IP地址。点击这台云主机还能打开VNC远程控制台像物理服务器接显示器一样操作云主机。这时候尝试用SSH登录云主机的IP能通就说明整条链路已经通了。4.3 访问公网与安全组配置云主机默认只有内网IP要让它能对外提供服务ZStack提供了两种方式一是为云主机绑定弹性IP适用于有公网IP池的场景二是通过NAT端口映射把公网IP的某个端口映射到云主机内网IP的对应端口。后者更灵活也更常用我在实验室里就常用3322之类的端口映射把云主机的22端口暴露到测试网络。安全组是ZStack的防火墙策略需要主动创建并关联到云主机网卡上。创建安全组后默认规则是全放行建议把规则收严比如只放行22、80、443等必要端口。这块配置如果在云主机运行状态下修改需要重启网络或云主机才能完全生效所以我习惯在创建云主机前就先把安全组准备好。5. 常见问题与排查实录部署ZStack的过程中踩坑是必然的。我把实际中遇到的典型问题整理一下按“症状—原因—解法”的方式写出来方便大家到时候直接对照排查。5.1 管理节点Web界面无法访问最常见的是浏览器访问HTTPS端口时一直转圈或直接拒绝连接。先确认管理服务状态zstack-ctl status服务全部running的前提下检查防火墙是否放行了443端口。如果按我前面的做法关了防火墙那就去确认管理节点IP是否ping得通、80和443端口是否被其他进程占用。还有一次是客户把默认的httpd服务启了把80端口占了ZStack的Nginx反代直接罢工关掉httpd重启服务就好了。5.2 添加主机失败或主机状态异常添加主机卡在“安装中”是最常见的问题。多半是管理节点SSH连不上计算节点或者计算节点的agent服务起不来。排查时手动SSH登录计算节点看/var/log/zstack目录下的agent日志。我遇到过两次比较典型的情况一次是用户镜像忘记关闭SELinuxagent的端口被SELinux拦了另一次是计算节点的根分区磁盘满agent写不了日志一直重启。前者执行setenforce 0临时解决后者清理磁盘空间后重启agent服务即可。如果是主机已经“已连接”但后面变成“断连”通常是管理节点和计算节点之间的心跳断掉检查网络链路是否抖动、管理网网线或交换机端口是否松动然后再看看agent进程是否被系统OOM杀掉了。5.3 云主机创建后网络不通云主机创建成功但ping不通网关这个问题的排查顺序很重要。在云主机的VNC界面里先看IP是否获取到如果IP是169.254.x.x说明没拿到DHCP地址检查L3网络的DHCP服务是否正常。如果拿到了IP但ping不通外部去计算节点上看iptables -L -n看看是否有人手动加过防火墙规则ZStack的流量转发被拦截的情况我在多租户环境里遇到过一次最后发现是安全组规则配置得太严格把ICMP协议也拦截了。另一个隐蔽问题是宿主机开启了大页内存和IPv6转发但网络配置里没放开IPv6云主机拿不到IPv6地址后某些系统会卡协议栈内网IPv4倒是正常但外部访问异常。这种问题推荐直接用ip a看所有接口状态别只盯IPv4地址。5.4 存储容量误判与性能卡顿本地存储模式下云主机的磁盘文件直接写在计算节点的本地磁盘上。如果磁盘空间分配时没有用thin provisioning精简配置创建云主机就会按规格预分配全部空间很容易导致磁盘写满而后台又不会自动清理。创建云主机时尽量在“磁盘策略”里选择精简置备避免空间被瞬间吃光。性能卡顿则多半是因为主存储和系统盘共用了同一块磁盘有条件的话把SSD单独用来做主存储机械盘留给二级存储做镜像和备份能明显改善云主机的IO体验。6. 一些我在实操中的体会这套ZStack私有云搭下来最大的感受是它的“可维护性”确实做得比传统虚拟化方案好太多。同样是完成一套云平台建设传统方案可能要在配置文件里翻半天ZStack则通过简洁的管理面把所有操作都收敛到一个界面里排障和扩容都能快速定位。如果你也是从VMware或VirtualBox这种传统虚拟化环境迁移过来的接受ZStack这套资源池化的思路应该很轻松。我习惯在搭建完成后马上做两件事一是把管理节点的根分区做一次快照或整机镜像万一后续升级故障可以快速回滚二是在二级存储里放一套最小的云主机镜像方便任何时间快速拉起来测试网络和存储状况。这两步看似简单但在项目实际推进中帮我省下了大量时间。最后建议没接触过ZStack的朋友先从一台物理机或性能好一点的虚拟机开始实验通过All-in-One模式把整体流程走通然后再逐步扩展计算节点和网络方案。用最小的成本理解整套平台的运作逻辑比一开始就奔着复杂的分布式架构要划算得多。

看完文章,想为自己的企业也做一次专业网站诊断?

尧图顾问免费为您评估现有网站,并给出建站/改版建议与报价方案。

免费获取方案