在centos6以及以前的osd版本,在启动osd的时候,回去根据ceph.conf的配置文件进行挂载osd,然后进行进程的启动,这个格式是这样的
| 12
 3
 
 | [osd.0]host = hostname
 devs=/dev/sdb1
 
 | 
启动的时候就会把sdb1盘符挂载到0的目录里面去了
然后在centos7的版本的时候,发现居然不写配置文件也能够自动挂载启动,这个地方是什么地方发生了变化,在做了一些日志的查询以后,发现centos7下居然做了一个改变
| 12
 
 | [root@lab8106 ~]ceph-disk@.service                          static
 
 | 
可以看到有这个服务
我们来验证下这个服务
先停止服务
| 1
 | systemctl stop ceph-osd@1
 | 
umount挂载点
| 1
 | umount /var/lib/ceph/osd/ceph-1
 | 
现在已经没有挂载点了
现在执行下面的服务(我的sdc1是刚刚的osd.1)
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | [root@lab8106 ~][root@lab8106 ~]
 ● 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.
 
 | 
执行完检查
| 12
 
 | [root@lab8106 ~]/dev/sdc1       275G   35M  275G   1% /var/lib/ceph/osd/ceph-1
 
 | 
可以看到已经挂载好,并且启动了服务
可以看到我没有使用任何配置情况下,没有告诉集群sdc1就是要挂载到 /var/lib/ceph/osd/ceph-1 这个目录的,自动挂载好了,这个是集群自己先mount到一个临时目录根据磁盘里面的信息来判断了这个osd真实的数据,根据这个数据来mount到一个挂载点,这个做法是非常好的做法