單機Ceph從Firefly升級到Hammer

單機上部署了Firefly版的Ceph集羣,其中包括:mon(一個)、osd(三個)和mds(一個)。單機上使用的操做系統是ubuntu-14.04-server-amd64版。這次升級的要求是數據不能丟失且不能停機升級。git

因爲當前Firefly版本使用的是mkcephfs部署的,而新版本的ceph已經用ceph-deploy代替了mkcephfs,所以在Hammer版本中已經沒有了mkcephfs。升級部署可使用ceph-deploy工具進行升級,也能夠經過包管理的方法進行升級。這裏我才用ceph-deploy工具進行升級。ubuntu

具體升級操做流程以下:工具

一、安裝ceph-deploy工具。spa

    1)更新新版本的軟件源。操作系統

        #wget -q -O- 'https://git.ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -3d

        #apt-add-repository 'deb http://download.ceph.com/debian-hammer/ trusty main'rest

        #echo deb https://download.ceph.com/debian-hammer/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.listorm

    2)更新ceph-deploy。
server

        #pip install -U ceph-deployip

二、更新monitor節點。

    1)更新ceph集羣中的全部monitor節點的ceph版本。

        因爲個人集羣都部署在一臺設備上了,因此此處的更新就是整個Ceph集羣的更新

        #ceph-deploy install --release hammer ceph0

    2)從新啓動每個monitor節點。

        #/etc/init.d/ceph restart mon

    3)查看monitor節點的啓動狀況。

        #ceph mon stat

e1: 1 mons at {a=192.168.250.58:6789/0}, election epoch 1, quorum 0 a

三、更新OSD節點。

    1)更新ceph集羣中的全部osd節點的ceph版本。

        #ceph-deploy install --release hammer ceph0

    2)從新啓動每個osd節點。

        #/etc/init.d/ceph restart osd

    3)查看osd節點的啓動狀況。

        #ceph osd stat

    osdmap e191: 3 osds: 3 up, 3 in

四、更新MDS節點。

    1)更新ceph集羣中的全部mds節點的ceph版本。

        #ceph-deploy install --release hammer ceph0

    2)從新啓動每個mds節點。

        #/etc/init.d/ceph restart mds

    3)查看mds節點的啓動狀況。

        #ceph mds stat

e27: 1/1/1 up {0=0=up:active}

五、查看當前ceph集羣的版本號。

    #ceph --verison

ceph version 0.94.5 (9764da52395923e0b32908d83a9f7304401fee43)

    此處能夠看到ceph已經成功升級到了Hammer版本。

六、查看當前ceph集羣的運行狀況。

    #ceph -s 

cluster e4251f73-2fe9-4dfc-947f-962843dc6ad9

     health HEALTH_WARN

            too many PGs per OSD (2760 > max 300)

     monmap e1: 1 mons at {a=192.168.250.58:6789/0}

            election epoch 1, quorum 0 a

     mdsmap e27: 1/1/1 up {0=0=up:active}

     osdmap e190: 3 osds: 3 up, 3 in

      pgmap v450486: 2760 pgs, 21 pools, 27263 MB data, 18280 objects

            85251 MB used, 1589 GB / 1672 GB avail

                2760 active+clean

    此時能夠看到Ceph當前的狀態是HEALTH_WARN狀態。問題出在ceph集羣默認每一個OSD上最多隻能有300個PGs,而當前的系統上有多達2760個PGs(在Firefly版本上並無給出上述的HEALTH_WARN狀態,而是升級到Hammer版後纔給出的提示)。

    針對這個問題,個人解決方案是修改ceph配置文件中關於關於沒有OSD最多能夠配置的PGs數量來解決這個問題。在ceph.conf的[mon]節點下添加mon pg warn max per osd = 4096。保存ceph.conf後從新啓動ceph monitor節點,以後再使用ceph -s查看當前ceph集羣的狀態時,一切就都正常了。

    #ceph -s 

cluster e4251f73-2fe9-4dfc-947f-962843dc6ad9

     health HEALTH_OK

     monmap e1: 1 mons at {a=192.168.250.58:6789/0}

            election epoch 1, quorum 0 a

     mdsmap e27: 1/1/1 up {0=0=up:active}

     osdmap e191: 3 osds: 3 up, 3 in

      pgmap v450550: 2760 pgs, 21 pools, 27263 MB data, 18280 objects

            85245 MB used, 1589 GB / 1672 GB avail

                2760 active+clean


ceph集羣從Firefly版升級到Hammer版須要注意的問題有:

一、monitor訪問權限中必定要添加caps mon 'allow *'到/var/lib/ceph/mon/ceph-a/keyring中;

二、集羣必定要使用默認的路徑,即:/var/lib/ceph

相關文章
相關標籤/搜索