准备
搭建集群和ceph的条件:
- 所有节点必须处于同一网络中,最好有用作集群和存储的独立的网卡和交换机
- 日期和时间必须同步,最好使用NTP服务同步时间,参考:ProxmoxVE5.4.1配置镜像源和NTP校时
- 高可用(HA)技术至少需要3个节点
- ceph分布式存储尽量避免组建RAID,裸盘使用即可
一、创建PVE集群
在任意节点创建即可
创建完毕后点击加入信息查看并复制加入信息
二、加入PVE集群
在其他节点执行以下操作加入集群
三、安装ceph
在所有节点执行安装代码
# 安装 (所有节点)
pveceph install
四、初始化ceph
选择一个节点执行以下代码进行初始化
# 初始化 (一个节点) 网络号为存储独立网卡的网络号
pveceph init --network 172.16.1.0/24
五、创建MON(控制器)
ceph的MON用来维护存储集群的主副本,为了高可用性(HA)至少需要在3个节点上创建MON,创建MON将会自动安装ceph Manager,ceph Manager可以提供集群监控界面
# 创建MON(至少3个)
pveceph createmon
六、创建OSD(虚拟硬盘)
ceph中把每个硬盘创建为OSD来提供集群存储,集群中最好不要低于12块硬盘
- 查看硬盘路径
# 查看硬盘路径
fdisk -l
- 把硬盘创建为osd
# 创建OSD X为硬盘序号
pveceph createosd /dev/sd[X]
- 如果原硬盘中有分区请使用dd删除分区表
# 删除分区表 X为硬盘序号 (注意将会清除所有数据)
dd if=/dev/zero of=/dev/sd[X] bs=1M count=200
ceph-disk zap /dev/sd[X]
七、创建Pool(块存储)
Pool是ceph的块存储,它拥有若干个PG,ceph把所有硬盘分割为PG然后把数据按照规则写入PG内
- 名称:块存储的名称
- 大小:每个数据块的复制数量,默认为3,可以理解为每份数据复制为3份根据CrushRule规则来存储在不同节点的不同硬盘上
- 最小尺寸:最小可用的数据库复制数量
- CrushRule:PG存储规则,默认为按照节点跟OSD分散开存储
- pg_num:PG的数量,计算公式:所有pool的PG数量 = ( OSD数量 * 100 )/ 副本大小,所得的结果向上靠近2的指数(例:12个OSD副本大小为3 => (12*100)/3=400≈512 所以PG的总数尽量控制在512)
八、挂载ceph块存储
块存储可以用来存储磁盘镜像和容器
九、创建cephFS文件系统
ceph除了可以通过pool提供块设备还可以通过cephFS提供文件系统,可以用来存放备份文件、ISO镜像、容器
- 在至少3个节点上创建MDS
MDS负责控制文件系统的元数据
- 创建CephFS
- 挂载CephFS
十、ceph集群和OSD状态查看
- ceph集群状态
- OSD状态