本次使用三台服务器搭建PVE超融合集群,因本次实验仅是测试,所以全部通过一张网卡传输管理,业务,超融合流量,实际业务环境根据实际情况调整
服务器 |
IP地址 |
域名PV |
硬件配置 |
---|---|---|---|
PVE1 |
172.16.201.71 |
pve1.test.com |
16核+64G+256G固态+1T机械+500G固态+万兆网卡 |
PVE2 |
172.16.201.72 |
pve2.test.com |
16核+64G+256G固态+1T机械+500G固态+万兆网卡 |
PVE3 |
172.16.201.73 |
pve3.test.com |
16核+64G+256G固态+1T机械+500G固态+万兆网卡 |
群晖 |
172.16.201.17 |
iscsi |
一.创建集群(以PVE1创建)
1.先配置好三台PVE服务器的域名解析(三台都得配,不然后面集群会有点问题)
2.在PVE1的数据中心那里创建集群
3.复制集群的加入信息
4.登录其他两台服务器,加入集群
信息处填写刚刚的复制信息
密码填写对端172.16.201.71的root密码
集群网络选择自己的IP即可
5.集群加入成功的示意图
二.ceph超融合集群搭建
前置条件:ceph的搭建必须换源,换源的教程在另外一篇文章,网络上也有很多,按着复制命令即可,不换源ceph拉不下来。
1.安装ceph
ceph版本任选,存储库一定要选择无订阅,选择企业订阅换源就白操作了,一样的连不上。
顺序是pve1先安装,其他的两台的顺序无所谓
安装的时候会弹窗是否继续,回车即可
这里会让我们选择集群网络,因为我们只有一张网卡,直接选就行了,但是也提示了我们建议ceph单独跑一个网络,生产环境还是要独立一张网卡的。
这里就是完成了,告诉你后面要做的操作,我们点完成,PVE1的ceph就安装完毕了
其他两台节点的安装方式相同,需注意的点就是它会提示你集群已经装了某个版本的ceph,所以我们选择一致的版本,然后存储库依旧是无订阅,后续步骤和PVE1的安装相同,不再演示。
三台节点均安装好了ceph之后,在pve1配置监视器,把其他两台服务器也加入进来,这样其他服务器也可以配置ceph了
然后就是OSD的创建,大家可以看到前面我的服务器都是3块硬盘,1块1T机械,1块256G固态作为系统盘,1块500G固态,其中的1T机械+500G固态就是为了创建OSD所配置,说明跟大家简单说明一下
BlueFs将整个BlueStore的存储空间分为三个层次 :
慢速(Slow)空间
主要用于存储对象数据,可由普通大容量机械盘提供,由BlueStore自行管理
高速(DB)空间
存储BlueStore内部产生的元数据,可由普通SSD提供,需求小于(慢速空间)。
超高速(WAL)空间
主要存储RocksDB内部产生的.log文件,可由SSD或者NVRAM等时延相较普通SSD更小的设备充当。容量需求和(高速空间)相当,同样由bluefs直接管理。
ceph建议一个集群至少3个节点和12个OSD,其中OSD 大小的 10% (DB)/1% (WAL)
我这里磁盘选择了1T的机械,DB选择了500G的固态,肯定是不合理,实际情况大家根据ceph官方给的建议进行配置。
也可以看到创建好的OSD,DB的大小为容量的十分之一
OSD都创建好之后,我们就可以创建资源池了
资源池创建好了就可以使用了,三台服务器都可以看到ceph的资源池,我们的pve+ceph的超融合集群也算是搭建完成了
三.PVE集群iscsi多路径
1.首先先利用群晖创建一个lun给PVE集群用于iscsi挂载,需要注意的点是我们是集群挂载所以勾选"允许来自一个或者多个iscsi启动器多重联机"
2.pve集群挂载iscsi存储,点击存储-添加-iscsi
ID可以随便填,portal填写群晖服务器的IP地址,目标会自动搜索
然后我们直接将iscsi存储挂载为LVM(这里是错误演示,为了让大家看到不配置多路径会出现的问题)
ID和卷组可以任意填写,基本存储选择刚刚我们链接的ISCSI存储,基本卷选择每台服务器挂载的LUN,点击添加
会发现lvm添加了,但是容量识别不到且状态异常
3.iscsi与多路径的配置
回到前面我们刚刚添加好iscsi的那一步,也就是利用iscsi存储创建LVM之前
https://pve.proxmox.com/wiki/Multipath
这是PVE官方的iscsi多路径资料
也就是说我们还有以下几个步骤要处理
3.1iscsi的配置优化
编辑/etc/iscsi/iscsid.conf,将node.session.timeo.replacement_timeout设置为15
3.2安装多路径工具multipath-tools(3台服务器均要进行安装),获取设备的wwid
安装命令为:
apt install multipath-tools -y
查看iscsi挂载的存储(这里就可以看到我挂载的是sdc,sdb也是,因为我的群晖有两个IP一个172.16.201.17,一个172.16.201.119)
查看命令为:
ls -l /dev/disk/by-path
查看挂载磁盘的wwid
查看命令为:
/lib/udev/scsi_id -g -u -d /dev/sdX (X是我们前面查找的,我上面查到的sdb和sdc,X就填b和c)
可以看到sdb和sdc的wwid是一样的,因为本质上他们是一个存储
3.3将 WWID 添加到 WWIDs 文件
命令为:
multipath -a WWID(wwid就是上面一步获取的)
激活配置命令为:
multipath -r
查看配置结果命令为:
multipath -ll
注意到这一步,要执行的命令3台服务器都是需要执行的
3.4iscsi多路径分区挂载(该步骤在任意一台机器执行即可)
命令对iscsi存储进行分区:
fdisk /dev/mapper/wwid
g (创建GPT分区)
n (创建新分区,之后一直回车直到出现Created a new partition 1 of type 'Linux filesystem' and of size )
t (更改分区类型,注意这里一定要是是linux LVM,至于分区号是多少使用L查看)
p (打印分区表)
w (保存退出)
创建pv
命令为:
pvcreate device (device为上图p打印出来的结果,我这里也就是 /dev/mapper/360014053eb96495dc455d4c93db78cdc-part1)
创建vg
命令为:
vgcreate “vg名称” device(我这里的vg名称是qh-iscsi命令就是:vgcreate qh-iscsi /dev/mapper/360014053eb96495dc455d4c93db78cdc-part1)
创建好之后在其他节点运行partprobe命令刷新分区表,识别新的vg(上面的命令我在pve3操作的,就在pve1和pve2用命令刷新)
然后去pve集群添加LVM,卷组就是我们刚才创建的vg"qh-iscsi",ID可以随意填写,记得勾选共享
配置好之后每台服务器都可以看到LVM,且状态正常可以看到容量
四.HA配置以及测试
1.创建HA组,ID可以任意填写,优先级根据自行需求决定(越大越优先),节点可以全部勾上
简单讲一下上面的两个选项,restricted和nofailback
restricted:这个功能就是限定了开启HA的虚拟机只能对应HA组主机上运行,如果HA组主机全部挂了,那么虚拟机也不迁移到其他在线主机上去;不开启就是HA组的主机挂了,虚拟机也会向存活主机上迁移。
nofailback:一般来说开启HA的虚拟机会在优先级最高的主机上运行,这个选项的作用就是优先级最高的主机从离线状态转到在线状态了,我也不迁移过去,就保持在当前主机上。不勾选就是优先级最高的主机在线了,虚拟机会迁移到优先级最高的主机上去
2.虚拟机开启HA
VM就是选择要开启HA的虚拟机,群组就是上一部勾选加入到HA组的主机群组,请求状态也就是HA之后的状态,一般都是started也就是开机。
3.虚拟机热迁移测试
存储在ceph上的虚拟机热迁移没有丢过包
存储在普通存储上(源和目的都是本地硬盘)上的虚拟机热迁移结束时丢了一个包
主要看HA的效果,也就是HA组优先级最高的主机离线后,虚拟机拉起所需时间
关机时间为16分,大概20-21分虚拟机重新上线,耗时大概3-5分钟左右,因为我的PVE集群是esxi中嵌套的,所以效果仅供参考
也同步测试了模拟机房掉电的情况,三台PVE服务器直接关闭电源再打开,也是无任何异常,这一点对比vmware真的很不错,因为vmware掉电系统基本起不来,那怕ESXI能起来,vcenter也不一定能起来。