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
时间: 2024-12-27 13:39:14