作者:田逸(vx:formyz)

创建多Ceph Pool的目的

Proxmox VE集群上的虚拟机运行在高速磁盘NVME,而虚拟机附属的数据,则指定到低速、廉价、容量大的磁盘空间。为了高可用性,充分利用资源,需要让除Proxmox VE宿主二外的数据都运行在Ceph分布式存储上。

解决思路

把高速的NVMe(或者其它固态磁盘SSD)多磁盘做成一个Ceph Pool,大容量多磁盘组成另外一个Ceph Pool。

测试环境

  • 三台物理服务器,插入一块或NVMe磁盘(容量不等不影响使用和性能),数块SATA 低速硬盘,大致配置图所示。

 

  • 平台版本为Proxmox VE 7.0,安装好Ceph,版本为16.2.6。
  • 服务器集群已经做好,需要使用的磁盘已经全部初始化。

 

实验步骤

大致可分为:创建不同类型的Ceph OSD,创建Ceph crush rule,创建Ceph Pool,创建虚拟机及给虚拟机分配磁盘空间,功能验证等几个步骤。

创建不同类型Ceph OSD

  • 创建SATA磁盘Ceph OSD,设备类型指定为HDD。登录Proxmox VE Web管理后台,选定物理节点,创建OSD,具体操作如图所示。

 

重复这个操作,将所有剩余的空闲SATA创建好OSD待用。

  • 创建NVMe磁盘Ceph OSD,设备类型指定为NVMe,操作如下图所示。

 

重复这个步骤,将所有剩余的NVMe创建好OSD待用。

  • 验证所创建的Ceph OSD。Proxmox VE 宿主系统Debian执行命令 ceph osd tree查看,生成的Ceph OSD如下:
root@pve3:~# ceph osd tree
ID  CLASS  WEIGHT   TYPE NAME      STATUS  REWEIGHT  PRI-AFF
-1         9.18233  root default                           
-7         3.68178      host pve1                          
 0   hdd  1.81879          osd.0      up   1.00000  1.00000
 5   nvme  1.86299          osd.5      up   1.00000  1.00000
-3         2.75027      host pve2                          
 1   hdd  1.81879          osd.1      up   1.00000  1.00000
 4   nvme  0.93149          osd.4      up   1.00000  1.00000
-5         2.75027      host pve3                          
 2   hdd  1.81879          osd.2      up   1.00000  1.00000
 3   nvme  0.93149          osd.3      up   1.00000  1.00000

创建Ceph OSD Crush Rule

创建两个Ceph OSD Crush Rule,一个用于标识NVMe,另一个用于标识HDD。创建Crush规则暂时不能在Proxmox VE Web管理后台进行,需要在其宿主系统Debian命令行下手动执行,所敲的命令行如下:

ceph osd crush rule create-replicated rule-nvme default  host nvme
ceph osd crush rule create-replicated rule-hdd default  host hdd

执行完毕后,再继续执行如下指令进行验证:

root@pve3:~# ceph osd crush rule ls
replicated_rule
rule-nvme
rule-hdd

创建Ceph Pool

切换到Proxmox VE Web管理后台,选定节点,创建Ceph。这里我要创建两个Ceph Pool,把不同的OSD归类到不同的Pool中。

  1. 创建NVMe磁盘Pool。命名Pool为“NVMe_pool”,选择“Crush Rule”为“nvme-rule”,单击按钮“创建”,如下图所示:

 

  1. 创建SATA磁盘Pool。命名Pool为“HDD_pool”,选择“Crush Rule”为“hhd-rule”,单击按钮“创建”,如下图所示:

 

  1. 验证Ceph Pool的有效性。在Proxmox VE Web管理后台执行一个“卷迁移”操作,如下图所示。

 

切换到Proxmox VE宿主系统Debian命令行,执行“ceph osd pool stats”,查看其输入,如下图所示:

南京 超融合一体机 虚拟化 备份 如何搭建超融合虚拟机_Proxmox VE

 

 

功能测试

在Proxmox VE集群创建虚拟机,磁盘存储指定“NVMe-pool”,如下图所示:

南京 超融合一体机 虚拟化 备份 如何搭建超融合虚拟机_Proxmox Backup_02

 

创建好虚拟机,并在其上安装操作系统,我测试用了Centos ,安装完系统以后,再给此虚拟机新增磁盘,“存储”指定“HDD-pool”,如下图所示:

南京 超融合一体机 虚拟化 备份 如何搭建超融合虚拟机_Proxmox Backup_03

 

进入虚拟机系统Centos,并把分配的磁盘创建文件系统,挂接上,手动创建一些文件或者目录。

继续在Proxmox VE Web管理后台,把虚拟机或者容器加入到高可用集群。

关闭Proxmox VE集群中刚创建并安装好系统的虚拟机所在的物理服务器,从Proxmox VE Web管理后台查看运行状态,等待节点成离线状态时,看虚拟机是否漂移?

南京 超融合一体机 虚拟化 备份 如何搭建超融合虚拟机_Proxmox VE_04

 

经过几分钟的耐心等待,

南京 超融合一体机 虚拟化 备份 如何搭建超融合虚拟机_南京 超融合一体机 虚拟化 备份_05

虚拟机及容器漂移到正常运行的物理节点上。