Proxmox VE 超融合集群创建多个Ceph Pool

学向勤中得,萤窗万卷书。这篇文章主要讲述Proxmox VE 超融合集群创建多个Ceph Pool相关的知识,希望能为你提供帮助。
    作者:田逸(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 crushrule,创建Ceph Pool,创建虚拟机及给虚拟机分配磁盘空间,功能验证等几个步骤。
 
创建不同类型Ceph OSD
 
1、创建SATA磁盘Ceph OSD,设备类型指定为HDD。登录Proxmox VE Web管理后台,选定物理节点,创建OSD,具体操作如图所示。

重复这个操作,将所有剩余的空闲SATA创建好OSD待用。
2、创建NVMe磁盘Ceph OSD,设备类型指定为NVMe,操作如下图所示。

重复这个步骤,将所有剩余的NVMe创建好OSD待用。
3、验证所创建的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 CrushRule
 
创建两个Ceph OSD Crush Rule,一个用于标识NVMe,另一个用于标识HDD。创建Crush规则暂时不能在ProxmoxVE Web管理后台进行,需要在其宿主系统Debian命令行下手动执行,所敲的命令行如下:


ceph osd crush rule create-replicatedrule-nvme default  host nvme
ceph osd crush rule create-replicatedrule-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”,单击按钮“创建”,如下图所示:
2、创建SATA磁盘Pool。命名Pool为“HDD_pool”,选择“Crush Rule”为“hhd-rule”,单击按钮“创建”,如下图所示:

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

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





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

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

进入虚拟机系统Centos,并把分配的磁盘创建文件系统,挂接上,手动创建一些文件或者目录。
 
继续在Proxmox VE Web管理后台,把虚拟机或者容器加入到高可用集群。
 
关闭Proxmox VE集群中刚创建并安装好系统的虚拟机所在的物理服务器,从Proxmox VE Web管理后台查看运行状态,等待节点成离线状态时,看虚拟机是否漂移?
 
经过几分钟的耐心等待,虚拟机及容器漂移到正常运行的物理节点上。
【Proxmox VE 超融合集群创建多个Ceph Pool】

    推荐阅读