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