深入理解ceph-disk的工作机制

深入理解ceph-disk运行机制

谷忠言

一,背景

目前项目所用的ceph集群内部的一个节点, 一般需要管理大约十块硬盘左右的数据存储空间,外加一到两块ssd组成的journal空间。Ceph要求每个osd对应的数据盘挂载到特定的目录,对应的ssd的journal分区也不能加载错,否则osd 无法启动。

目前对于数据盘的挂载采用的是基于/etc/fstab的方式。

上图是某个节点的/etc/fstab的实例。/dev/slot* 是一个由diskctl_init.sh 脚本产生的从/dev/slot* 到/dev/sdx的映射。如下图所示。


Diskctl_init.sh的原理是生成的slot 与主板物理槽位磁盘接口形成固定映射,这样当盘符漂移的时候,/dev/slot* 始终对应物理槽位的磁盘。只要磁盘不插拔更换物理槽位,osd 就能加载正确的数据盘。

而对于ssd journal分区,则是直接采用的journalà盘符的裸映射。

 

存在的问题:

1.      Ssd journal分区的盘符裸映射, 有时候会导致机器重启,ceph服务起不来。测试发现,正是由于盘符漂移,裸映射成为死链。

2.      Diskctl_init.sh 生成的slot 映射, 据同事反映,也可能有潜在的问题。具体细节不详。

 

二,调研ceph-disk

Ceph-disk 是官方发布的一个用于部署osd 数据及journal分区或目录的工具。基于python.安装ceph rpm包将默认安装此工具,安装目录是/usr/sbin/ceph-disk。由于此工具涉及数据盘及journal盘的分区。需要root权限。

 

ceph-disk 是如何工作的?

通过ceph-disk 部署osd, 数据分区和journal 分区将自动挂载到正确的目录,机器重启也能保证工作。通过ceph-disk部署osd, 将大大提高ceph部署运维的自动化程度,并降低操作出错几率。

以新创建OSD为例,描述ceph-disk的工作机制。

分为两大步骤:prepare disk 和activate disk

假设/dev/sdg是OSD要使用的数据盘, /dev/sdk 是SSD, OSD要使用的journal分区在这里创建。则创建OSD 并上线的命令如下:

Ceph-disk prepare /dev/sdg /dev/sdk

Ceph-disk activate /dev/sdg1

下面详细深入其过程。

1.      准备journal分区。

Prepare_journal_dev()调用分区工具sgdisk从/dev/sdk上划分一块journal分区。

有以下注意要点:

a.      在调用sgdisk之前,pre

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值