pve集群单硬盘搭建高可用集群及ceph
本文主要记录3台双网卡主机搭建pve集群(ceph)中操作要点,实验性质,所以不是很严谨仅供参考。
lsbk命令
用于查询pve主机的硬盘及分区情况。
fdisk -l命令
查看并给硬盘分区,我这3台主机只有1块硬盘,所以我在初始安装系统时只使用了60g空间,剩余空间未分区(pve图形安装界面分区很不友好,这点不如常见的linux发行版)
使用fdisk命令对sda硬盘分区操作
输入n开始创建,全部默认相信
使用命令p查看现在分区4是否创建成功
确认无误使用w命令保存
不放心的可以使用partprobe让内核及时识别最新的分区布局,而无需重启系统。
创建OSD
此时在pve2管理页面创建osd那里就可以看到刚才创建的sda4了,因为没有挂载目录,不需要写启动项。因为只有1块物理盘,所以db磁盘和wal磁盘也没法选择,全部默认下一步就行了。
创建资源池pool
创建RBD
用于存储虚拟机,默认即可
在 PVE(Proxmox VE)中部署 Ceph 时,通常使用 BlueStore 作为 OSD(对象存储守护进程)的存储后端,而 BlueStore 会利用额外的磁盘分区来提升性能,这就是 WAL 磁盘和 DB 磁盘的作用:
- **WAL 磁盘**:用于存储写前日志(Write-Ahead Log)。在写入数据时,数据首先被写入 WAL,这样可以快速记录数据修改的操作,确保在出现故障时能够进行数据恢复。将 WAL 放在一个高速(通常是 SSD 或 NVMe)设备上,可以降低写入延迟并提高数据安全性。 - **DB 磁盘**:用于存储 BlueStore 的元数据数据库(例如 RocksDB)。这个数据库记录了 OSD 内部的元数据信息,如索引、对象布局等。把 DB 放在专用的快速存储设备上,可以加速元数据的读写操作,进一步提高整个 Ceph 存储系统的性能。
RBD 是 Ceph 中的块存储设备,全称为 **RADOS Block Device**。其核心概念和作用如下:1
2
3
块存储接口:RBD 把 Ceph 底层的对象存储(RADOS)抽象成块设备,类似于传统的硬盘或 SSD。这样,用户可以像使用常规磁盘那样对其进行格式化、挂载和读写操作。
数据分布和高可用性:由于 RBD 数据实际上存储在 Ceph 集群中的多个 OSD 上,所以具备良好的数据冗余和容错能力。一旦某个节点故障,数据依然可以从其他节点获取,确保高可用性。
快照和克隆功能:RBD 支持快速快照和克隆,这对于备份、恢复以及测试环境的快速部署都非常有用。
应用场景:RBD 常用于虚拟化平台(例如 KVM、QEMU)作为虚拟机磁盘存储,也适用于数据库、容器存储等需要块级存储访问的场景。
简单来说,RBD 将 Ceph 的分布式、可扩展、高可靠性的存储能力以块设备的形式呈现出来,使得用户能够方便地利用这些优势构建灵活高效的存储解决方案。
做个说明就是关于DB磁盘和WAL磁盘的容量大小设定问题:
Ceph的wal和db的容量到底应该多大,网上说法不一。
默认情况下, wal 和 db 的大小分别是 512 MB 和 1GB, 但是也有人提到2T的数据db应该20G的。
DB磁盘:ceph官方建议是hdd的4%,但ceph社区里的普遍意见是30GB以及300GB,而大多数选择30GB。如果资金充裕当然是尽量300GB或者按照官方推荐的4%,个人建议条件允许的话最好设定40G以上,越大肯定效果越好。
WAL磁盘:ceph社区大多数人设定的2GB



### pve的高可用
#### 先创建主机组,然后并配置主机优先级(也可默认自动)
指定优先级后,虚拟机会在优先级高的节点上先后自动迁移到优先级高的节点上。

## cephfs


如果没有cephfs,那么在任一pve主机上创建虚拟机时,只能看到本地local磁盘下上传的iso文件。假设pve2 local硬盘里有iso,只能pve2节点才能使用,pve1节点是无法使用的,即使是同一集群内。

## cephfs步骤
#### 首先在任意节点创建元数据服务器如下图,这是必须的前提


#### 然后创建cephfs



#### 然后“数据中心-存储”中可以看到cephfs了

#### 这时候可以从左侧任意节点的cephfs上传文件了


可以看到,通过pve1节点上传的iso,在pve2的节点下依然能看到。
#### 再通过pve3节点创建虚拟机试试

没问题,依然能找到文件

注意存储选项里选rbd文件系统保存虚拟机

创建后发现无法启动虚拟机

看来是宿主机的p8600 cpu太老了,直接选择内核为kvm64或者host即可


注意ikuai这里只有1块网卡的话,如果不用单臂路由就只能用旁路由模式只配lan地址为你的局域网地址了。到ikuai后台要添加一条静态路由,目标地址和子网掩码都为0.0.0.0 下一跳地址写你局域网能上网的网关地址。
迁移到pve2成功

ikuai的插件功能需要注册帐号绑定二维码,不太厚道,我选择创建一个istoreos玩玩,教程在这里https://doc.linkease.com/zh/guide/istoreos/install_pve.html
需要注意的是pve安装方法除了iso外,还可以先创建一个没有硬盘的虚拟机,再使用img2kvm工具直接在pve宿主机上添加硬盘。
注意这个工具默认安装在local-lvm存储,不然会报错。

可以在命令img2kvm istoreos××××img.gz后指定存储为local或cephfs

导入到cephfs不行,不支持img,改到rbd存储成功



注意要双击“未使用的磁盘0”来启用该硬盘,并在左侧选项中修改引导顺序。
pve集群单硬盘搭建高可用集群及ceph