Ceph使用塊存儲,系統內核需要3.0及以上的內核,以支持一些ceph模塊。
創建塊的時候可以指定類型(type1和type2),只有type2的可以對快照進行保護,保護以後才能做克隆。
使用塊設備完整操作流程:
1、創建塊設備(單位是M)
rbd create yjk01 --size 1024 --pool vms--p_w_picpath-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