Ceph使用块存储,系统内核需要3.0及以上的内核,以支持一些ceph模块。
创建块的时候可以指定类型(type1和type2),只有type2的可以对快照进行保护,保护以后才能做克隆。
使用块设备完整操作流程:
1、创建块设备(单位是M)
1
2
3
4
5
6
|
rbd create yjk01 --size 1024 --pool vms--image-
format
2
rbd info yjk01 --pool vms
rbd map yjk01 --pool vms
rbd showmapped
mkfs.ext4
/dev/rbd0
mount
/dev/rbd0
/mnt
|
2、自动挂载
先写入fstab(blkid查看相应磁盘的UUID)
UUID= /mnt ext4 defaults,noatime,_netdev 0 0
再添加以下内容到/etc/rc.local
1
2
|
rbd map yjk01 --pool vms
mount
-a
|
3、块扩容
1
2
|
rbd resize vms
/yjk01
--size 2048
resize2fs
/dev/rbd0
|
4、 块删除
1
|
umount
/dev/rbd0
|
删除/etc/ceph/rbdmap和/etc/fstab或/etc/rc.local中的相关内容
1
2
|
rbd unmap
/dev/rbd0
rbd
rm
yjk01 --pool vms
|
只有先map后才能挂载,重启后不会自动map(/etc/init.d/rbdmap有bug),fstab启动的优先级高于自动map的优先级
以下脚本可以确保系统重启的时候不会卡死,以及开机正常自动挂载块设备。
脚本要做以下操作:
1
2
3
4
|
# cp auto_unmap /etc/rc.d/init.d/
# chmod +x /etc/rc.d/init.d/auto_unmap
# chkconfig --add auto_unmap
# chkconfig auto_unmap on
|
内容
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
31
32
33
34
35
36
|
#!/bin/bash
#
#
# chkconfig: 02345 99 1
# Description: delete all service pid and lockfile
#
#######################readme#########################################
# cp auto_unmap /etc/rc.d/init.d/
# chmod +x /etc/rc.d/init.d/auto_unmap
# chkconfig --add auto_unmap
# chkconfig auto_unmap on
#######################readme#########################################
function
action_start () {
echo
'automap_info_in_rc.local'
}
function
action_stop () {
mount_devices=`rbd showmapped|
sed
'2,$p'
-n|
awk
'{print $5}'
`
for
i
in
$mount_devices
do
umount
$i
rbd unmap $i
done
}
case
"$1"
in
start)
;;
stop)
action_stop
echo
'Auto-unmap is OK'
;;
status)
;;
*)
echo
"Usage: $0 {start}"
exit
1
esac
|
本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1788682,如需转载请自行联系原作者