ceph分佈式存儲實戰(5)——ceph存儲配置(RBD鏡像平常管理)

1、在線調整Ceph RBD的容量大小
一、支持調整ceph RBD的容量大小的底層文件系統
    自由的增長或者減小RBD的容量,須要底層文件系統的支持,支持的文件系統有
    一、XFS
    二、EXT
    三、Btrfs
    四、ZFS

二、將RBD鏡像ceph-client1-rbd1原始容量是10G擴容爲20G,(在ceph集羣中任意一臺節點上)執行的命令以下:
    rbd resize rbd/ceph-client1-rbd1 --size 20480
    
    [root@ceph-node1 ~]# rbd info ceph-client1-rbd1
    rbd image 'ceph-client1-rbd1':
    size 20480 MB in 5120 objects #已經擴容爲20G
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.857a238e1f29
    format: 2
    features: layering
    flags: 
    
三、在客戶端上檢查新的容量是否已經被內核所接受
    [root@ceph-client1 ceph-vol1]# xfs_growfs -d /mnt/ceph-vol1/
    meta-data=/dev/rbd0              isize=512    agcount=17, agsize=162816 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=2621440, imaxpct=25
             =                       sunit=1024   swidth=1024 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=8 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 2621440 to 5242880

    [root@ceph-client1 ceph-vol1]# df -h
    Filesystem           Size  Used Avail Use% Mounted on
    devtmpfs             471M     0  471M   0% /dev
    tmpfs                483M     0  483M   0% /dev/shm
    tmpfs                483M  6.6M  477M   2% /run
    tmpfs                483M     0  483M   0% /sys/fs/cgroup
    /dev/mapper/cl-root  8.0G  1.5G  6.5G  19% /
    /dev/sda1           1014M  186M  829M  19% /boot
    tmpfs                 97M     0   97M   0% /run/user/0
    /dev/rbd0             20G  134M   20G   1% /mnt/ceph-vol1 #已是20G

2、建立Ceph RBD快照
    一、在/mnt/ceph-vol1目錄下建立一個文件,用於演示
    [root@ceph-client1 ceph-vol1]# cd /mnt/ceph-vol1
    [root@ceph-client1 ceph-vol1]# vi file_1 
    #文件內容以下:
        hello world 1
        
    二、建立快照
    [root@ceph-client1 ceph-vol1]# rbd snap create rbd/ceph-client1-rbd1@snap1   #快照名字:snap1
    
    三、查看鏡像的快照
    [root@ceph-client1 ceph-vol1]# rbd snap ls rbd/ceph-client1-rbd1
        SNAPID NAME      SIZE 
             4 snap1 20480 MB 
    
    四、演示恢復快照的效果,刪除原來的文件,並再次建立一個文件
    [root@ceph-client1 ceph-vol1]# rm -rf file_1 
    [root@ceph-client1 ceph-vol1]# ls -l
        total 8
        -rw-r--r-- 1 root root 13 Jan  7 22:32 file_2
    這時候有一個文件file_2,記住剛纔作快照的時候,是file_1文件,可是目前被刪除了,而且誤建立了一個file_2文件
    也就是說恢復快照以後會恢復回原來的file_1文件
    
    五、恢復快照(在生產環境中,請謹慎操做,)
    [root@ceph-client1 ceph-vol1]# rbd snap rollback rbd/ceph-client1-rbd1@snap1
    Rolling back to snapshot: 100% complete...done.
    
    快照回滾操做完成後,從新掛載文件系統以刷新文件系統狀態
    umount /mnt/ceph-vol1
    mount /dev/rbd0 /mnt/ceph-vol1
    
    六、快照的刪除,刪除指定的快照
    rbd snap rm rbd/ceph-client1-rbd1@snap1
    
    七、一次性刪除全部快照
    [root@ceph-client1 ~]# rbd snap purge rbd/ceph-client1-rbd1
    
    八、若是須要刪除RBD鏡像,命令以下
     rbd rm ceph-client1-rbd1 -p rbd

3、複製Ceph RBD
    cow副本:
        ceph存儲集羣能夠從rbd的快照中建立寫時複製副本(cow副本),這就是ceph的快照分層。
        RBD父快照是隻讀的,再從這個RBD父快照建立cow副本,那麼cow副本是可讀可寫的
    
    注意:
        rbd鏡像分爲兩種類型,分別是format-1,還有format-2,這兩種類型都支持快照的特性
        可是,只有format-2類型支持分層的特性(cow賦值特性),若是在建立rbd鏡像時,沒有明確指定屬於哪一種類型
        那麼默認是format-1類型。所以,
    
    一、建立屬於format-2類型的rbd鏡像
    [root@ceph-node1 my-cluster]# rbd create ceph-client1-rbd2 --size 5024 --image-feature layering --image-format 2

    二、建立快照
    [root@ceph-node1 my-cluster]# rbd snap create rbd/ceph-client1-rbd2@snapshot_for_clone
    
    三、要建立cow副本以前,將快照設置爲保護狀態(預防被誤刪,致使cow分層快照沒法使用)
    [root@ceph-node1 my-cluster]# rbd snap protect rbd/ceph-client1-rbd2@snapshot_for_clone
    
    四、開始建立cow副本
    注意:
        賦值快照須要父存儲池,RBD鏡像以及快照的名稱,對於子實例來講,它須要池以及RBD鏡像的名稱
    
    [root@ceph-node1 my-cluster]# rbd clone rbd/ceph-client1-rbd2@snapshot_for_clone rbd/ceph-client1-cow-rbd3

    
    五、查看cown副本信息
    [root@ceph-node1 my-cluster]# rbd --pool rbd --image ceph-client1-cow-rbd3 info
    rbd image 'ceph-client1-cow-rbd3':
    size 5024 MB in 1256 objects
    order 22 (4096 kB objects)
    block_name_prefix: rbd_data.197553d1b58ba
    format: 2
    features: layering
    flags: 
    parent: rbd/ceph-client1-rbd2@snapshot_for_clone   #父鏡像是rbd/ceph-client1-rbd2@snapshot_for_clone
    overlap: 5024 MB
    
    到此,就已經克隆了一個RBD鏡像
    
    六、扁平化該鏡像(可選操做)
    說明:
        若是想讓克隆出來的快照不依賴它的父鏡像,那麼就須要扁平化。
        這樣的話,克隆出來的RBD鏡像就和它的父鏡像快照沒有任何依賴了
        
        6.1 啓動扁平化
        [root@ceph-node1 my-cluster]# rbd flatten ceph-client1-cow-rbd3
        Image flatten: 100% complete...done.
        
        6.2 查看cow快照
        [root@ceph-node1 my-cluster]# rbd --pool rbd --image ceph-client1-cow-rbd3 info
        rbd image 'ceph-client1-cow-rbd3':
        size 5024 MB in 1256 objects
        order 22 (4096 kB objects)
        block_name_prefix: rbd_data.197553d1b58ba
        format: 2
        features: layering
        flags: 
        發現沒有了parent:選項,已經變成了一個獨立的鏡像
        
    七、刪除父鏡像快照
        7.1 刪除以前首先解除保護狀態
        [root@ceph-node1 my-cluster]# rbd snap unprotect rbd/ceph-client1-rbd2@snapshot_for_clone
        
        7.2 開始刪除
        [root@ceph-node1 my-cluster]# rbd snap rm rbd/ceph-client1-rbd2@snapshot_for_clone
相關文章
相關標籤/搜索