一、初識Ceph Ceph是提供了軟體定義的,統一存盤解決方案的開源專案,Ceph是一個分布式、可擴展、高性能、不存在單點故障的存盤系統, Ceph存盤的設計提供了一種企業級軟體定義型存盤解決方案,能夠利用基于行業標準硬體和存盤設備的服務器橫向擴展到多PB級,同時支持塊存盤、檔案系統存盤以及物件存盤, 二、Ceph架構
三、Ceph基本組件

(1)mon記錄元資料,存放資料的映射表關系,一個mon就是三個metadata
(2)osd(OSD Object Storage Device)存放資料的硬碟,物件存盤設備,一個硬碟對應一個OSD,運行一個行程
(3)mds(Metadata Server)只用于存放CephFS檔案系統
四、Ceph資料存盤程序

(1)一個file切割為多個object,每個object由一個innode(innode)和boject編號(ono)組成一個object id(即oid)
(2)將oid做hash運算獲取到pgid,再通過hash和mask獲取PGs
(3)通過CRUSH演算法,將pgid進行運算,并找到存盤pg的osd節點
(4)最后,PG的資料最終寫入到OSD節點,完成資料的寫入程序
五、環境準備
1.環境需求
(1)三個節點ceph_node1 ceph_node2 ceph_node3
(2)三個節點需要添加兩塊20G硬碟,用于創建OSD
(3)CentOS系統:CentOS Linux release 7.3.1611 (Core)
(4) 安裝CentOS圖形化作業系統
2.網卡配置
(1)一張NAT模式的網卡,一張僅主機模式的網卡
(2) NAT模式的網卡可以訪問外網地址,在這里三個節點需要使用NAT模式來訪問外網地址,便于獲取第三方的軟體包
3.網路規劃
ceph_node1 192.168.106.170
ceph_node2 192.168.106.171
ceph_node3 192.168.106.172
六、實驗程序
1.修改主機名
[root@localhost ~]# hostnamectl set-hostname ceph_node1
[root@localhost ~]# hostnamectl set-hostname ceph_node2
[root@localhost ~]# hostnamectl set-hostname ceph_node3
2.將主機名和IP分別寫入三個節點的/etc/hosts檔案下

3.使用scp命令在主機之間復制檔案如下

4.設定三個節點的防火墻和selinux,這里以ceph_node1節點為例,ceph_node2節點和ceph_node3節點操作一致

5.修改組態檔/etc/sysconfig/selinux將SELINUX=enforcing修改為disabled即可

6.SSH互信,三個節點都需要做ssh互信,這里以ceph_node1節點為例,ceph_node2節點和ceph_node3節點操作一致,在這里,連續按三次回車即可

7.將ssh密鑰傳給ceph_node1、ceph_node2、ceph_node3節點,這里只需要輸入各節點的密碼即可

8.同步時間服務器,將ceph_node1作為ntp服務器,調整chrony組態檔
(1)ceph_node1節點
使用vim /etc/chrony.conf修改組態檔的第22行和第29行即可

重啟時間服務器

(2)ceph_node2節點
使用vim /etc/chrony.conf在第2行添加一行server ceph_node1 iburst,并注釋掉第4至7行

重啟時間服務器

ceph_node3節點的時間服務器配置和ceph_node2節點的操作一致,程序略
9.三個節點配置yum,這里以ceph_node1為例,ceph_node2節點和ceph_node3節點配置一致
(1)配置Centos源
[root@ceph_node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
(2)配置epel源
[root@ceph_node1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
(3)配置ceph源
[root@ceph_node1 ~]# vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
priority =1
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0
priority =1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS
gpgcheck=0
priority=1
10.三個節點使用yum clean all清除yum快取 和yum makecache建立yum快取
11.三個節點都需要更新源 yum update -y和安裝ceph-deploy,這里以ceph_node1節點為例,ceph_node2節點和ceph_node3節點操作一致

12.在ceph-node1創建一個/myceph目錄,并在此目錄下執行操作

13.創建ceph集群,在ceph-node1節點上執行

14.在三個節點上安裝ceph軟體,這里以ceph_node1節點為例,ceph_node2節點和ceph_node3節點操作一致

15.查看ceph版本

16.在ceph_node1節點上生成檢測集群所使用的秘鑰

17.在ceph_node1節點使用ceph-deploy工具創建OSD節點
[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node1:/dev/sdb
[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node1:/dev/sdc
[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node2:/dev/sdb
[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node2:/dev/sdc
[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node3:/dev/sdb
[root@ceph_node1 myceph]# ceph-deploy osd prepare ceph_node3:/dev/sdc
18.在ceph_node1節點使用ceph-deploy工具激活OSD節點
[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node1:/dev/sdb1
[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node1:/dev/sdc1
[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node2:/dev/sdb1
[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node2:/dev/sdc1
[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node3:/dev/sdb1
[root@ceph_node1 myceph]# ceph-deploy osd activate ceph_node3:/dev/sdc1
19.檢查Ceph環境

20.檢查Ceph的CRUSH

21.查看Ceph存盤池

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/285789.html
標籤:其他
上一篇:使用Lua做為MMOARPG游戲邏輯開發腳本的一點體會
下一篇:關于API網關(一)性能
