ceph在centos7下一个不容易发现的改变

在centos6以及以前的osd版本,在启动osd的时候,回去根据ceph.conf的配置文件进行挂载osd,然后进行进程的启动,这个格式是这样的

1
2
3
[osd.0]
host = hostname
devs=/dev/sdb1

启动的时候就会把sdb1盘符挂载到0的目录里面去了

然后在centos7的版本的时候,发现居然不写配置文件也能够自动挂载启动,这个地方是什么地方发生了变化,在做了一些日志的查询以后,发现centos7下居然做了一个改变

1
2
[root@lab8106 ~]# systemctl list-unit-files |grep ceph-disk
ceph-disk@.service static

可以看到有这个服务

我们来验证下这个服务

先停止服务

1
systemctl stop ceph-osd@1

umount挂载点

1
umount /var/lib/ceph/osd/ceph-1

现在已经没有挂载点了

现在执行下面的服务(我的sdc1是刚刚的osd.1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@lab8106 ~]# systemctl start ceph-disk@/dev/sdc1
[root@lab8106 ~]# systemctl status ceph-disk@/dev/sdc1
● ceph-disk@-dev-sdc1.service - Ceph disk activation: /dev/sdc1
Loaded: loaded (/usr/lib/systemd/system/ceph-disk@.service; static; vendor preset: disabled)
Active: inactive (dead)

Mar 31 16:11:37 lab8106 sh[17847]: command: Running command: /usr/bin/ceph-detect-init --default sysvinit
Mar 31 16:11:37 lab8106 sh[17847]: activate: Marking with init system systemd
Mar 31 16:11:37 lab8106 sh[17847]: activate: ceph osd.1 data dir is ready at /var/lib/ceph/tmp/mnt.3a8xNK
Mar 31 16:11:37 lab8106 sh[17847]: move_mount: Moving mount to final location...
Mar 31 16:11:37 lab8106 sh[17847]: command_check_call: Running command: /bin/mount -o noatime,inode64 -- /dev/sdc1 /var/lib/ceph/osd/ceph-1
Mar 31 16:11:37 lab8106 sh[17847]: command_check_call: Running command: /bin/umount -l -- /var/lib/ceph/tmp/mnt.3a8xNK
Mar 31 16:11:37 lab8106 sh[17847]: start_daemon: Starting ceph osd.1...
Mar 31 16:11:37 lab8106 sh[17847]: command_check_call: Running command: /usr/bin/systemctl enable ceph-osd@1
Mar 31 16:11:37 lab8106 sh[17847]: command_check_call: Running command: /usr/bin/systemctl start ceph-osd@1
Mar 31 16:11:37 lab8106 systemd[1]: Started Ceph disk activation: /dev/sdc1.

执行完检查

1
2
[root@lab8106 ~]# df -h |grep ceph-1
/dev/sdc1 275G 35M 275G 1% /var/lib/ceph/osd/ceph-1

可以看到已经挂载好,并且启动了服务
可以看到我没有使用任何配置情况下,没有告诉集群sdc1就是要挂载到 /var/lib/ceph/osd/ceph-1 这个目录的,自动挂载好了,这个是集群自己先mount到一个临时目录根据磁盘里面的信息来判断了这个osd真实的数据,根据这个数据来mount到一个挂载点,这个做法是非常好的做法