ceph infernalis版本搭建過程

ceph infernalis版本安裝過程。git

1、使用ceph-deploy方式安裝infernalis版本的ceph。web

一、宿主機環境。apache

ubuntu14.04.03-server-amd64ubuntu

二、添加trusted key。後端

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

該命令用於添加ceph正式發佈版的trusted key。性能

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

該命令用於添加ceph開發測試版的trusted key。ui

三、向ubuntu源添加指定版本的ceph源。spa

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

四、添加通過ceph修改過的Apache/FastCGI源。

#echo deb http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-$(lsb_release -sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph-apache.list

五、更新ubuntu源。

#apt-get update

六、安裝ceph集羣配置腳本ceph-deploy。

#apt-get install ceph-deploy

七、使用ceph-deploy工具在指定節點上安裝ceph軟件集合。

#ceph-deploy install —release infernalis ceph1

這裏使用選項—release表示安裝指定版本infernalis。此時會在ceph1這臺機器上安裝infernalis版本的ceph及其依賴。

八、建立一個ceph集羣。

#ceph-deploy new ceph1

在機器名稱爲ceph1的硬件機器上建立ceph集羣(這裏因爲環境的限制,我在一臺物理機上搭建集羣,該集羣包括:一個monitor和三個OSDs);

此時能夠看到ceph.conf文件以及ceph.client.mon.keyring文件,這兩個文件分別是ceph集羣的配置文件和mon用戶訪問ceph集羣的權限文件。在ceph.conf文件中咱們能看到以下信息:

fsid = xxxxxx#集羣的惟一ID號

mon_initial_members = ceph1#monitor節點名稱

mon_host = 192.168.250.93#monitor節點IP地址

auth_cluster_required = cephx#

auth_service_required = cephx#這三個表示訪問集羣須要cephx認證

auth_client_required = cephx#

filestore_xattr_use_omap = true#存儲文件須要使用object map(用於ext4文件系統)

九、爲集羣建立monitor節點。

#ceph-deploy mon create ceph1

使用ceph-deploy new相同的參數來爲集羣建立monitor節點。該命令成功執行後在ceph1上就能看到ceph-mon這個進程了(表示monitor節點已經啓動)。此時可使用ceph -s命令查看當前ceph集羣的狀態。此時因爲沒有OSD,因此當前集羣的狀態是HEALTH_ERR。

十、收集集羣中的keyring。

在添加OSD以前須要收集集羣中關於monitor、自舉OSD以及自舉MDS的keyring。

#ceph-deploy gatherkeys ceph1

十一、向集羣添加OSD。

1)準備OSD磁盤。

#ceph-deploy disk zap ceph1:sdb

#ceph-deploy disk zap ceph1:sdc

#ceph-deploy disk zap ceph1:sdd

爲ceph集羣準備三塊磁盤sdb/sdc/sdd。

2)建立OSD。

#ceph-deploy osd create ceph1:sdb ceph1:sdc ceph1:sdd

在ceph1節點上建立三個OSDs且磁盤分別是sdb/sdc/sdd。這裏沒有使用物理磁盤或物理磁盤分區做爲journal,而是將journal和data放在同一個磁盤下(最好分別存放且最好使用ssd分區來保存journal)。

此時能夠在ceph1上看到已經啓動了三個ceph-osd進程。

十二、更新集羣的crushmap。

建立完集羣后,經過ceph -s查看當前集羣的狀態,此時看到的狀態的HEALTH_WARN且pgmap的狀態不是active+clean的狀態。其緣由是因爲三個OSDs部署到同一臺物理設備上,其對應的crushmap將這三個OSDs都添加到同一個host裏,所以會出現HEALTH_WARN狀態。

這裏經過簡單的增長兩個host且一個host裏只包含一個OSD來調整ceph的狀態到active+clean狀態。

#ceph osd crush add-bucket ceph1_1 host

#ceph osd crush add-bucket ceph1_2 host

增長兩個host節點

#ceph osd crush move ceph1_1 root=default

#ceph osd crush move ceph1_2 root=default

將新增的兩個host節點放到root=default下

#ceph osd crush create-or-move osd.1 35363 root=default host=ceph1_1

#ceph osd crush create-or-move osd.2 35363 root=default host=ceph1_2

將osd.1和osd.2分別放到host=ceph1_1和host=ceph1_2這兩個host下

此時經過集羣狀態查看命令ceph -s能夠看到當前的狀態已經變成active+clean狀態了。

1三、向集羣添加MDS。

1)部署mds節點。

#ceph-deploy mds create ceph1

在ceph1節點上建立mds服務。該命令結束後能夠在ceph1機器上看到ceph-mds進程已經啓動。可是此時cephfs並不可用,由於此時ceph集羣中並無pools與cephfs相對應。

2)建立cephfs使用的pools。

因爲cephfs須要使用ceph集羣中2個pools,這兩個pools分別對應於data和metadata。對於metadata使用的pool最好使用ssd做爲後端存儲,最好多個replicas以保證cephfs的穩定性和性能。

#ceph osd pool create cephfs_data 128

#ceph osd pool create cephfs_metadata 128

分別建立名稱爲cephfs_data和cephfs_metadata的pools且這兩個pool中的PG數量爲128;

3)使能cephfs。

#ceph fs new cephfs cephfs_metadata cephfs_data 

使用上述命令使能cephfs。此時能夠在cluster map中看到mdsmap了。

4)查看mds狀態。

#ceph mds stat

e5: 1/1/1 up {0=ceph1=up:active}

5)查看整個ceph集羣的狀態。

#ceph -s 

cluster b8c847df-6d60-4e57-a6c2-a62cde618a13

     health HEALTH_WARN

            too many PGs per OSD (320 > max 300)

     monmap e1: 1 mons at {ceph1=192.168.250.93:6789/0}

            election epoch 2, quorum 0 ceph1

     mdsmap e5: 1/1/1 up {0=ceph1=up:active}

     osdmap e28: 3 osds: 3 up, 3 in

            flags sortbitwise

      pgmap v60: 320 pgs, 3 pools, 1960 bytes data, 20 objects

            112 MB used, 1657 GB / 1657 GB avail

                 320 active+clean

相關文章
相關標籤/搜索