|
Ceph使用块存储,系统内核需要3.0及以上的内核,以支持一些ceph模块。
创建块的时候可以指定类型(type1和type2),只有type2的可以对快照进行保护,保护以后才能做克隆。
使用块设备完整操作流程:
1、创建块设备(单位是M)
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
rbd map yjk01 --pool vms
mount -a 3、块扩容
rbd resize vms/yjk01 --size 2048
resize2fs /dev/rbd0 4、 块删除
umount /dev/rbd0 删除/etc/ceph/rbdmap和/etc/fstab或/etc/rc.local中的相关内容
rbd unmap /dev/rbd0
rbd rm yjk01 --pool vms 只有先map后才能挂载,重启后不会自动map(/etc/init.d/rbdmap有bug),fstab启动的优先级高于自动map的优先级
以下脚本可以确保系统重启的时候不会卡死,以及开机正常自动挂载块设备。
脚本要做以下操作:
# 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
内容
#!/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
|
|
|