前言
市面上免费且开源的超融合架构产品可不多,本指南将带你从零开始搭建一个基于Proxmox VE和Ceph的高可用分布式存储系统。即使你是初学者,只要按照步骤操作,也能成功完成部署。
安装前准备
硬件信息
这里采用3台退役的戴尔R730xd服务器来构建一个简单的PVE超融合架构,硬件信息如下:
硬件规划
存储方面需要将阵列卡改为hba直通模式,2块后置2.5寸SSD安装PVE(RAID1),3块3.5寸8TB硬盘和1TB扩展nvme卡用于Ceph资源存储。千兆/万兆双网卡分别做端口聚合。
网络规划
本方案部署的网络环境都是可以访问外网的,便于安装和更新以及时间同步。如果你是外网隔离自行解决时间同步和软件安装的问题
vlan ID | 网段 | 网关 | 用途 |
---|---|---|---|
vlan10 | 192.168.10.0/24 | 192.168.10.1 | 用于业务,运行LXC/虚拟机 |
vlan20 | 192.168.20.0/24 | 192.168.20.1 | 用于管理,PVE内部管理,集群,Ceph |
三台设备网络划分:
设备 | 业务网卡(聚合) | 管理网卡(聚合) | 管理地址 | 主机名 |
---|---|---|---|---|
server01 | enp6s18 enp6s19 | enp6s20 enp6s21 | 192.168.20.201/24 | R730xd-01 |
server02 | enp6s18 enp6s19 | enp6s20 enp6s21 | 192.168.20.202/24 | R730xd-02 |
server03 | enp6s18 enp6s19 | enp6s20 enp6s21 | 192.168.20.203/24 | R730xd-03 |
PVE初始化
安装PVE
将镜像引导启动到PVE安装界面,采用第一种图形化界面进行安装。
PVE系统安装到2块120G硬盘上,RAID1镜像模式安装。PVE图形界面安装示意图:
PVE换源
更换系统源
使用nano命令编辑sources.list文件nano /etc/apt/sources.list
# 将原有的源链接在句首加 # 注释掉,更换以下清华源信息
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
更换企业源
使用nano命令编辑pve-enterprise.list文件nano /etc/apt/sources.list.d/pve-enterprise.list
# 将原有的源链接在句首加 # 注释掉,更换以下清华源信息
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription
更换Ceph源
使用nano命令编辑ceph.list文件nano /etc/apt/sources.list.d/ceph.list
# 将原有的源链接在句首加 # 注释掉,添加中科大ceph源
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription
更换CT容器源
# 备份APLInfo.pm
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
# 替换为清华源:
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
# 重启服务后生效
systemctl restart pvedaemon.service
执行更新源
apt update
NTP同步
# 安装ntpdate
apt install ntpdate
# 使用阿里云 NTP 服务同步时间
ntpdate ntp.aliyun.com
# 创建定时任务
crontab -e
# 输入1 使用nano命令编辑
# 在每周日00:00使用阿里云的NTP服务器同步系统时间
0 0 * * 0 ntpdate ntp.aliyun.com
以上设置,分别在三台机器上执行。
配置网络
安装PVE时,网络这块不支持高级设置。所以需要安装好系统后在按前面规划好的架构去设置网络。
现在需要将2个千兆电口网卡enp6s18
enp6s19
做端口聚合建立bond0
模式使用LACP (802.3ad)
并建立个桥接vmbr1
作为业务网络,桥接端口绑定在bond0
接着将2个万兆光口网卡enp6s20
enp6s21
做端口聚合建立bond1
模式使用LACP (802.3ad)
,建立前需要删除原先网卡 enp6s21
绑定的桥接vmbr0
否则无法建立bond1
建立bond1
然后重新建立个桥接vmbr0
作为管理网络,桥接端口绑定在bond1
最终效果如下,全部配置没问题就点击应用配置
,(交换机那边的设置省略,必须2边都设置好再点应用配置,不然PVE会失联无法访问
)以上网络设置,分别在三台机器上配置。
设备 | 业务IP | 业务网关 | 管理IP | 管理网关 |
---|---|---|---|---|
server01 | 192.168.10.201/24 | 留空 | 192.168.20.201/24 | 192.168.20.1 |
server02 | 192.168.10.202/24 | 留空 | 192.168.20.202/24 | 192.168.20.1 |
server03 | 192.168.10.203/24 | 留空 | 192.168.20.203/24 | 192.168.20.1 |
集群配置
PVE初始化设置都设置好后,接着我们要将这3个PVE节点集中管理,在任意一个节点组建个集群,这里用server01
创建集群,将server02,server03
加入进来。
创建集群
在节点R730xd-01
建立集群
创建集群后,就可以将集群加入信息
粘贴到节点R730xd-02
节点R730xd-03
加入集群
分别吧节点R730xd-02
节点R730xd-03
加入到集群
加入集群后,就可以从任意节点管理集群下的所有节点。
Ceph配置
集群加入进来后,继续配置Ceph分布式存储环节,同样的需要在3个节点上安装好Ceph软件,然后将硬盘加入OSD。
安装Ceph
分别在节点R730xd-01
节点R730xd-02
节点R730xd-03
上安装Ceph软件
输入y
继续安装,Ceph公共网络选业务vlan
,Ceph集群网络选管理vlan
。
Ceph 网络简介
Public Network
:公共网络主要用于客户端与 Ceph 集群之间的通信,负责处理客户端流量以及 Ceph MON 通信。Cluster Network
:集群网络主要用于 Ceph 集群内部通信,负责处理 OSD 心跳、复制、回填和恢复流量。创建MON节点
为了避免主监控节点宕机,Ceph的状态无法查看,需要将其他节点加入到监视器里面
创建MRG节点
再以同样的方法创建MGR节点
,MGR节点因为同时只能存在一个,所以这里的三个MGR节点互为主备,当主MGR出现故障时自动切换到备MGR,以实现高可用性。
创建OSD磁盘
依次给3个节点添加OSD磁盘。将剩下的1TB Nvme
和3块8tb sata
创建为OSD磁盘
(硬盘需要擦除清空才能添加)。其中的DB磁盘
和WAL磁盘
可以理解为缓存加速,硬盘本身是机械硬盘可以设置一下。需要而外使用nvme/ssd
这类硬盘来做缓存。
关于DB/WAL磁盘的作用和特点
DB磁盘
作用
a. 元数据存储:存储对象元数据、对象映射和磁盘分配状态
b. 快速查询:加速对象查找和定位
c. 减少主存储访问:通过缓存元数据减少对主存储设备的访问
特点
a. 通常需要OSD容量的1-4%作为DB空间
b. 对IOPS要求高,建议使用SSD
c. 可以多个OSD共享同一个物理DB设备
WAL磁盘
作用
a. 写操作缓冲:WAL磁盘记录了所有即将写入主存储的数据变更
b. 崩溃恢复:在系统意外崩溃时,可以通过WAL恢复未完成的操作
c. 顺序写入优化:将随机写操作转换为顺序写,提高SSD寿命和性能
特点
a. 通常只需要1-10GB容量(即使对于TB级OSD)
b. 对延迟极其敏感,建议使用高性能NVMe SSD
c. 每个OSD有自己独立的WAL
配置完毕后就可以在列表中看到全部的12个OSD磁盘

创建Ceph FS
在需要创建虚拟机备份、ISO镜像或者容器模板时需要使用CephFS
存储,所以这里来创建个CephFS。
先在元数据服务器栏
选择创建
为每台机器建立MDS节点
然后点击上方创建CephFS
即可。
创建Ceph Pool
在需要创建虚拟机磁盘或者容器磁盘时需要使用Ceph Pool
资源池,所以这里来创建个Ceph Pool。
区分Ceph硬盘类型
由于OSD磁盘
有NVMe
和HDD
这2种类型磁盘,Nvme磁盘
打算是用于虚拟机系统盘
,HDD磁盘
则为数据盘
。所以这里需要先创建2条规则用于区分Ceph Pool硬盘类型
。在PVE Shell
中执行:
# 列出OSD磁盘类型
ceph osd tree
# 创建规则HDD_rule,并指向标记为HDD的OSD磁盘
ceph osd crush rule create-replicated HDD_rule default host hdd
# 创建规则NVMe_rule,并指向标记为NVMe的OSD磁盘
ceph osd crush rule create-replicated NVMe_rule default host nvme
创建Ceph-NVMe
创建名为Ceph-NVMe
的资源池,规则选NVMe_rule
副本大小为3个
,最小副本为2个
,这样分配的资源池3台节点的存储只能使用1个节点的存储数据以确保不会发生数据丢失。(不要将最小副本数设置为1。为1时的复制池允许在对象只有1个副本时对其进行 I/O,这可能会导致数据丢失PG不完整或找不到对象。
)
创建Ceph-HDD
创建名为Ceph-HDD
的资源池,规则选HDD_rule
副本大小为3个
,最小副本为2个
,这样分配的资源池3台节点的存储只能使用1个节点的存储数据以确保不会发生数据丢失。(不要将最小副本数设置为1。为1时的复制池允许在对象只有1个副本时对其进行 I/O,这可能会导致数据丢失PG不完整或找不到对象。
)
通过规则创建出来的资源池硬盘就区分开了,容量也是对的上的。
创建虚拟机
来创建个虚拟机,将磁盘存储在Ceph-NVMe
或者Ceph-HDD
的存储池,虚拟机就能在各个节点热迁移
了。
选中需要迁移到的节点,虚拟机就能在该节点上运行。
HA配置
Ceph的分布式存储配置好后,最后在来配置HA高可用。哪天节点断电或者故障,故障节点里面运行的VM是没法自己迁移到其他正常节点上的,这时就需要用到HA组件了。即使在发生故障时也可以继续提供服务,减少停机时间,唯一不足地方是没法保留虚拟机之前状态,HA会将故障节点的VM迁移到正常节点上并重新开机。步骤:数据中心 → HA → 群组 → 创建 → 配置个群组并勾选需要的节点
最后把需要加入HA的虚拟机加入到这个群组,选择该虚拟机下的节点服务器,关机或断开网络,去验证虚拟机是否在其他节点自动重启。成功说明HA已经生效了。
结语
看到这,恭喜你现在已经成功部署了一个基于Proxmox VE和Ceph的高可用分布式存储系统。这个架构能够提供虚拟机的高可用性、存储的冗余和出色的扩展性。