正在加载今日诗词....

pve集群单硬盘搭建高可用集群及ceph

本文主要记录3台双网卡主机搭建pve集群(ceph)中操作要点,实验性质,所以不是很严谨仅供参考。

lsbk命令

用于查询pve主机的硬盘及分区情况。

lsbk命令

fdisk -l命令

查看并给硬盘分区,我这3台主机只有1块硬盘,所以我在初始安装系统时只使用了60g空间,剩余空间未分区(pve图形安装界面分区很不友好,这点不如常见的linux发行版)

fdisk -l命令

使用fdisk命令对sda硬盘分区操作

image-20250219183205602

输入n开始创建,全部默认相信

image-20250219183305518

使用命令p查看现在分区4是否创建成功

image-20250219183339891

确认无误使用w命令保存

image-20250219183403084

不放心的可以使用partprobe让内核及时识别最新的分区布局,而无需重启系统。

创建OSD

此时在pve2管理页面创建osd那里就可以看到刚才创建的sda4了,因为没有挂载目录,不需要写启动项。因为只有1块物理盘,所以db磁盘和wal磁盘也没法选择,全部默认下一步就行了。

image-20250219183452221

image-20250219183815137

image-20250219184039418

创建资源池pool

image-20250219201710043

创建RBD

用于存储虚拟机,默认即可

在 PVE(Proxmox VE)中部署 Ceph 时,通常使用 BlueStore 作为 OSD(对象存储守护进程)的存储后端,而 BlueStore 会利用额外的磁盘分区来提升性能,这就是 WAL 磁盘和 DB 磁盘的作用:

  • - **WAL 磁盘**:用于存储写前日志(Write-Ahead Log)。在写入数据时,数据首先被写入 WAL,这样可以快速记录数据修改的操作,确保在出现故障时能够进行数据恢复。将 WAL 放在一个高速(通常是 SSD 或 NVMe)设备上,可以降低写入延迟并提高数据安全性。
    - **DB 磁盘**:用于存储 BlueStore 的元数据数据库(例如 RocksDB)。这个数据库记录了 OSD 内部的元数据信息,如索引、对象布局等。把 DB 放在专用的快速存储设备上,可以加速元数据的读写操作,进一步提高整个 Ceph 存储系统的性能。
    
    1
    2
    3



    RBD 是 Ceph 中的块存储设备,全称为 **RADOS Block Device**。其核心概念和作用如下:
  • 块存储接口: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



![image-20250219202103363](../pic/image-20250219202103363.png)

![image-20250219202939790](../pic/image-20250219202939790.png)

![image-20250219202954304](../pic/image-20250219202954304.png)



### pve的高可用

#### 先创建主机组,然后并配置主机优先级(也可默认自动)

指定优先级后,虚拟机会在优先级高的节点上先后自动迁移到优先级高的节点上。

![image-20250219205910038](../pic/image-20250219205910038.png)



## cephfs

![image-20250221181300803](../pic/image-20250221181300803.png)



![image-20250221181834161](../pic/image-20250221181834161.png)

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

![image-20250221182000424](../pic/image-20250221182000424.png)

## cephfs步骤

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

![image-20250221182304479](../pic/image-20250221182304479.png)

![image-20250221182351261](../pic/image-20250221182351261.png)

#### 然后创建cephfs

![image-20250221182437618](../pic/image-20250221182437618.png)

![image-20250221182518219](../pic/image-20250221182518219.png)

![image-20250221182541433](../pic/image-20250221182541433.png)

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

![image-20250221182642817](../pic/image-20250221182642817.png)

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

![image-20250221182833963](../pic/image-20250221182833963.png)

![image-20250221183148858](../pic/image-20250221183148858.png)

可以看到,通过pve1节点上传的iso,在pve2的节点下依然能看到。

#### 再通过pve3节点创建虚拟机试试

![image-20250221183347736](../pic/image-20250221183347736.png)

没问题,依然能找到文件

![image-20250221183408684](../pic/image-20250221183408684.png)

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

![image-20250221183640933](../pic/image-20250221183640933.png)

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

![image-20250221203839260](../pic/image-20250221203839260.png)

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

![image-20250221203735502](../pic/image-20250221203735502.png)



![image-20250221203859982](../pic/image-20250221203859982.png)

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

迁移到pve2成功

![image-20250221210240382](../pic/image-20250221210240382.png)



ikuai的插件功能需要注册帐号绑定二维码,不太厚道,我选择创建一个istoreos玩玩,教程在这里https://doc.linkease.com/zh/guide/istoreos/install_pve.html

需要注意的是pve安装方法除了iso外,还可以先创建一个没有硬盘的虚拟机,再使用img2kvm工具直接在pve宿主机上添加硬盘。



注意这个工具默认安装在local-lvm存储,不然会报错。

![image-20250221213058577](../pic/image-20250221213058577.png)



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

![image-20250221213317538](../pic/image-20250221213317538.png)

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

![image-20250221213859059](../pic/image-20250221213859059.png)



![image-20250221213941326](../pic/image-20250221213941326.png)





![image-20250221214004600](../pic/image-20250221214004600.png)



注意要双击“未使用的磁盘0”来启用该硬盘,并在左侧选项中修改引导顺序。




pve集群单硬盘搭建高可用集群及ceph

https://bg4vrg.com/post/20250219182201.html

作者

fei

发布于

2025-02-19

更新于

2025-03-04

许可协议

评论