前言

市面上免费且开源的超融合架构产品可不多,本指南将带你从零开始搭建一个基于Proxmox VE和Ceph的高可用分布式存储系统。即使你是初学者,只要按照步骤操作,也能成功完成部署。

安装前准备

硬件信息

这里采用3台退役的戴尔R730xd服务器来构建一个简单的PVE超融合架构,硬件信息如下:

硬件规划

存储方面需要将阵列卡改为hba直通模式,2块后置2.5寸SSD安装PVE(RAID1),3块3.5寸8TB硬盘和1TB扩展nvme卡用于Ceph资源存储。千兆/万兆双网卡分别做端口聚合。

网络规划

本方案部署的网络环境都是可以访问外网的,便于安装和更新以及时间同步。如果你是外网隔离自行解决时间同步和软件安装的问题

vlan ID网段网关用途
vlan10192.168.10.0/24192.168.10.1用于业务,运行LXC/虚拟机
vlan20192.168.20.0/24192.168.20.1用于管理,PVE内部管理,集群,Ceph

三台设备网络划分:

设备业务网卡(聚合)管理网卡(聚合)管理地址主机名
server01enp6s18 enp6s19enp6s20 enp6s21192.168.20.201/24R730xd-01
server02enp6s18 enp6s19enp6s20 enp6s21192.168.20.202/24R730xd-02
server03enp6s18 enp6s19enp6s20 enp6s21192.168.20.203/24R730xd-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管理网关
server01192.168.10.201/24留空192.168.20.201/24192.168.20.1
server02192.168.10.202/24留空192.168.20.202/24192.168.20.1
server03192.168.10.203/24留空192.168.20.203/24192.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 Nvme3块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磁盘NVMeHDD这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的高可用分布式存储系统。这个架构能够提供虚拟机的高可用性、存储的冗余和出色的扩展性。

广告位招租3
最后修改:2025 年 07 月 26 日
如果觉得我的文章对你有用,请随意赞赏