磁盘分区
Ceph14.2.10采用了BlueStore作为后端存储引擎,没有了Jewel版本的Journal盘分区的划分,而是变成DB分区(元数据分区)和WAL分区。这两个分区分别存储BlueStore后端产生的元数据和日志文件,这样整个存储系统通过元数据对数据的操作效率极高,同时通过日志事务来维持系统的稳定性。
在集群部署时,每个Ceph节点配置12块4TB数据盘和2块3.2TB的NVMe盘。每个4TB数据盘作为bcache设备的数据盘,每块NVMe盘作为6个OSD的DB、WAL分区和Bcache的cache磁盘。一般WAL分区大于10GB就足够使用,Ceph官方文档建议每个DB分区不小于每个数据盘容量的4%,其cache盘容量推荐占数据盘容量的5%-10%,具体可根据NVMe盘容量灵活设置。
在本方案中,以WAL分区设置为15GB、DB分区设置为30GB、cache盘大小为400GB(占数据盘容量10%)为例进行说明。

以下操作在3个Ceph节点均执行一遍,此处以有两块NVMe(分别为/dev/nvme0n1、/dev/nvme1n1)为例进行分区,若有多块NVMe SSD,只需要在参数j中加入对应的盘符即可。若所需大小变化,更改命令end=`expr $start + 30`的数字大小为自己所需大小即可。
- 创建一个partition.sh脚本。
vi partition.sh
- 添加如下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#/bin/bash for j in {0..1} do parted -s /dev/nvme${j}n1 mklabel gpt start=0 # 划分为6个30GB分区 end=`expr $start + 30` parted /dev/nvme${j}n1 mkpart primary 2048s ${end}GiB start=$end for i in {1..5} do end=`expr $start + 30` parted /dev/nvme${j}n1 mkpart primary ${start}GiB ${end}GiB start=$end done # 划分为6个15GB分区 for i in {1..6} do end=`expr $start + 15` parted /dev/nvme${j}n1 mkpart primary ${start}GiB ${end}GiB start=$end done # 划分为6个400GB分区 for i in {1..6} do end=`expr $start + 400` parted /dev/nvme${j}n1 mkpart primary ${start}GiB ${end}GiB start=$end done done
此脚本内容只适用于当前硬件配置,其他硬件配置可参考此脚本。
- 执行脚本。
1
bash partition.sh
- 查看分区是否创建成功。
1
lsblk
创建成功的回显如下图所示:
父主题: Ceph使能IO智能预取