ceph0.80安裝及使用(CentOS7/ceph-deploy)

    Ceph的主要目標是設計成基於POSIX的沒有單點故障的分佈式文件系統,使數據能容錯和無縫的複製。詳見:http://www.oschina.net/p/cephshell

    目前大部分部署ceph基本都是在Ubuntu,由於它的內核默認打開了Ceph_fs。選擇CentOS7(默認文件系統是XFS,而不是EXT4)做爲部署平臺時則須要留意更多的信息,好比是用客戶端加載ceph文件系統時。服務器

    看過很多網上的文章,大都不太適合0.80,或是可被省略的步驟。好比配置ceph.conf。因此特地作了幾遍的安裝,總結此文。另外吐嘈下Redhat,收購了Ceph 所在的公司 Inktank還發布了本身的版本($1000/cluster),竟然不在最新的內核中將 Ceph_fs 打開,致使不少人直接倒向Ubuntu。網絡

1、準備主機環境:less

主機名 IP

ssh

OS
ceph0 10.9.16.96 MON,        MDS CentOS7
ceph1 10.9.16.97 MON,OSD CentOS7
ceph2 10.9.16.98           OSD,MDS CentOS7
ceph3 10.9.16.99           OSD,MDS CentOS7
ceph4 10.9.16.100 MON CentOS7
client0 10.9.16.89 client CentOS7(內核3.16.2)
client1 10.9.16.95 client Ubuntu14.04

部署建議說明:
分佈式

MON節點建議使用3個,OSD數據節點最好與操做系統分開以提升性能,有至少兩個千兆網卡(這裏只顯示集羣內的IP,客戶端訪問IP略)性能


2、準備工做(注:用ceph-deploy可直接安裝ceph,也能夠用yum另行安裝)
spa

  1. 確認每臺機器的主機名正確(CentOS7中,只要更改/etc/hostname便可,比舊版本方便)操作系統

  2. 每臺機器上加入對應的 IP/主機名到/etc/hosts;.net

  3. 每臺機器使用 ssh-copy-id 完成這些服務器之間免ssh密碼登陸;(發現ansible好用了)

  4. 關閉防火牆(systemctl stop firewalld.service)或打開 6789/6800~6900端口;

  5. 編輯/etc/ntp.conf,開啓時間服務同步時間;(crontab/ntpdate不靠譜,不另做說明)

  6. 確認已經配置epel/remi的 repo軟件包;在client0上配置elrepo軟件包以便yum升級內核

  7. 在全部的OSD服務器上,初始化目錄,好比ceph1創建文件夾 /var/local/osd1,ceph2上對應/var/local/osd2


3、開始安裝

(如下非特別說明,都是在ceph0上操做)

  1. 生成MON信息:ceph-deploy new ceph{0,1,4}

  2. 安裝ceph:ceph-deploy install ceph0 ceph1 ceph2 ceph3 ceph4(注:若是已經用yum在每臺機器上安裝了ceph,這步可省略)

  3. 生成keys:ceph-deploy --overwrite-conf mon create-initial

  4. 準備OSD服務器:ceph-deploy --overwrite-conf osd prepare ceph1:/var/local/osd1 ceph2:/var/local/osd2 ceph3:/var/local/osd3

  5. 激活OSD:ceph-deploy osd activate ceph1:/var/local/osd1 ceph2:/var/local/osd2 ceph3:/var/local/osd3

  6. 複製key到各個節點:ceph-deploy admin ceph0 ceph1 ceph2 ceph3 ceph4

  7. 檢查是否ok:ceph health。

  8. 安裝MDS節點:ceph-deploy mds create ceph0 ceph2 ceph3

檢查狀態:

  1. [root@ceph0 ~]# ceph -s
        cluster 9ddc0226-574d-4e8e-8ff4-bbe9cd838e21
         health HEALTH_OK
         monmap e1: 2 mons at {ceph0=10.9.16.96:6789/0,ceph1=10.9.16.97:6789/0,ceph4=10.9.16.100:6789/0}, election epoch 4, quorum 0,1 ceph0,ceph1
         mdsmap e5: 1/1/1 up {0=ceph0=up:active}, 1 up:standby
         osdmap e13: 3 osds: 3 up, 3 in
          pgmap v6312: 192 pgs, 3 pools, 1075 MB data, 512 objects
                21671 MB used, 32082 MB / 53754 MB avail
                     192 active+clean

4、掛載問題:

client0的CentOS7默認沒有開啓ceph_fs的內核,須要更改內核,這裏直接用yum更新(能夠手工編譯):

yum --enablerepo=elrepo-kernel install kernel-ml
grub2-set-default 0
mkdir /mnt/cephfs
mount -t ceph 10.9.16.96:6789,10.9.16.97:6789:/ /mnt/cephfs -o name=admin,secret=AQDnDBhUWGS6GhAARV0CjHB*******Y1LQzQ==
#這裏的密鑰,是 ceph.client.admin.keyring 中的內容。

#如下是 /etc/fstab 的自動加載內容:
10.9.16.96:6789,10.9.16.97:6789:/       /mnt/ceph       ceph    name=admin,secret=AQDnDBhUWGS6GhAARV0CjHB*******Y1LQzQ==,noatime      0       0

用Ubuntu14.04的命令是同樣的,加載。

在複製文件時,用ceph -s能夠實時查看到底下有一個文件讀/寫速度,如:client io 12515 kB/s wr, 3 op/s

不過這個讀寫速度是ceph內部(包括不一樣服務器之間的複製)的速度,而不是單純客戶端到服務器商的速度。

看看是否是已經正經常使用了。


5、安裝結語:

  1. 並非與網上的大多數教程寫的那樣必定要編輯 ceph.conf 文件。而應該是在特定需求環境下才去改。

  2. 要配置集羣內網和訪問外網的網絡,以提升網絡負載效率和可能的DDOS,可把下面的選項加到ceph.conf裏的[global]段下。

    [global]
    public network {public-network-ip-address/netmask}
    cluster network {enter cluster-network-ip-address/netmask}
  3. ceph的osd journal size默認值是0,因此你得在ceph.conf裏設置,日誌尺寸應該至少2倍於 filestore min sync interval的值和預計吞吐量的乘積:osd journal size = {2 * (expected throughput * filestore min sync interval)}例如:osd journal size = 10000(是10G)

  4. 元變量將展開爲實際的集羣名和進程名,例如若是集羣名是ceph(默認值),你能夠用下面的命令檢索osd.0的配置:ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less

  5. 使用其餘端口加載方法:mount.ceph monhost1:7000,monhost2:7000,monhost3:7000:/ /mnt/foo


其餘內容(如:增長/刪除節點,塊設備等,後續再寫)

相關文章
相關標籤/搜索