了解ceph
DFS(distributed file system)分布式存儲系統,指文件系統管理的物理存儲資源,不一定直接連接在本地節點上,而是通過計算機網絡與節點相連,眾多類別中,ceph是當下應用比較廣泛的分布式存儲系統,是典型的客戶端-服務端模式.
1.ceph具有很多特點,譬如,高擴展(可以無限擴展節點),高可用(提供副本備份),高性能(crush算法,數據分布軍均衡,並行度高)等;
2.ceph可以提供塊存儲,文件系統存儲,對象存儲;
3.其基本組件有OSD存儲設備,monitor集群監控組件,RGW對象存儲網關,MDS存放文件系統的元數據,client客戶端.
關於ceph的更深層次內容,請查看官方幫助文檔:http://docs.ceph.org/start/intro
下面搭建一個小型ceph集群,來做深入的研究.
總體思路: 搭建環境 -> 集群搭建 ->驗證
拓撲圖:
一, 環境搭建
思路: (1)創建4台虛擬機,1台做客戶端,另外3台做存儲集群;
(2)配置主機名,IP地址,yum源,掛載ceph光盤;
(3)配置4台主機的ssh無密碼連接,實現操作同步;
(4)配置NTP時間同步;
(5)為虛擬機添加磁盤,用於后面的集群存儲.
具體步驟:
//思路:先在主機node1上操作,再同步內容到其它主機上.
1)真機上創建掛載點/var/ftp/ceph,並掛載ceph10.iso光盤;
2)為4台主機設置ssh無密碼連接,包括本機;
#ssh-keygen -f /root/.ssh/id_rsa -N ''
#for i in 10 11 12 13 //同步到其它主機
do
scp-copy-ip 192.168.4.$i
done
3)使用本機解析IP地址,並同步到4台主機(這里不再另外搭建DNS服務器)
#vim /etc/hosts
192.168.4.10 client
192.168.4.11 node1
192.168.4.12 node2
192.168.4.13 node3
for i in 10 11 12 13 //同步到其它主機
do
scp /etc/hosts 192.168.4.$i:/etc/
4)配置yum源,調用真機掛載點里的ceph工具
#vim /etc/yum.repos.d/ceph.repo
[mon]
name=mon
baseurl=ftp://192.168.4.254/ceph/MON
gpgcheck=0
[osd]
name=osk
baseurl=ftp://192.168.4.254/ceph/OSD
gpgcheck=0
[tools]
name=tools
baseurl=ftp://192.168.4.254/ceph/Tools
gpgcheck=0
for i in 10 11 12 13 //同步yum源到其它主機
do
scp /etc/yum.repos.d/ceph.repo 192.168.4.$i:/etc/yum.repos.d/
done
5)配置所有主機NTP與真機一致
#vim /etc/chrony.conf
server 192.168.4.254 iburst
for i in 10 11 12 13 //同步到其它主機
do
scp /etc/chrony.conf 192.168.4.$i:/etc/
done
6)真機上運行virt-manager,調出虛擬系統管理器,為每個虛擬主機添加3塊磁盤vdb,vdc,vdd.
二, 集群搭建
思路: (1)安裝工具ceph-deploy
(2)創建ceph集群
(3)准備日志,及磁盤分區
(4)創建OSD存儲空間
(5)查看ceph狀態及驗證
具體步驟:
(1)安裝工具,並創建目錄
yum -y install ceph-deploy
mkdir ceph-cluster
(2)創建ceph集群
a. 定義monitor主機到配置文件ceph.conf里
node1 ceph-cluster]#ceph-deploy new node1 node2 node3
b. 安裝ceph相關軟件包到所有節點
node1 ceph-cluster]#for i in node1 node2 node3
do
ssh 192.168.4.$i "yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw"
done
c.初始化所有節點的Monitor服務,即啟動mon服務
node1 ceph-cluster]# ceph-deploy mon create-initial
(3)創建OSD存儲
a.將vdb分區成vdb1和vdb2來作為緩存服務器的journal緩存盤
node1 ceph-cluster]# for i in node1 node2 node3
do
ssh 192.168.4.$i "parted /dev/vdb mklabel gpt"
ssh 192.168.4.$i "parted /dev/vdb mkpart primary 1 50%"
ssh 192.168.4.$i "parted /dev/vdb mkpart primary 50% 100%"
done
b.磁盤分區為vdb1和vdb2后的默認權限,不能讓ceph軟件對其做讀寫操作,需要修改權限.
注意,4台主機都要改權限,如下以node1為例:
node1 ceph-cluster]# chown ceph.ceph /dev/vdb1 //臨時修改權限
node1 ceph-cluster]# chown ceph.ceph /dev/vdb2 //臨時修改權限
永久性地設置權限:
node1 deph-cluster]# vim /etc/udev/rules.d/70-vdb.rules
ENV{DEVNAME}=="/dev/vdb1",OWNER="ceph",GROUP="ceph"
ENV{DEVNAME}=="/dev/vdb2"OWNER="ceph",GROUP="ceph"
#for i in node1 node2 node3 //同步到所有主機
do
scp /etc/udev/rules.d/70-vdb.rules 192.168.4.$i:/etc/udev/rules.d/
done
c.初始化磁盤數據,即清空.
#for i in node1 node2 node3
do
ceph-deploy disk zap $i:vdc $i:vdd
done
d.創建OSD存儲空間
#for i in node1 node2 node3
do
ceph-deploy osd create $i:vdc:/dev/vdb1 $i:vdd:/dev/vdb2
//創建osd存儲設備,vdc提供存儲空間,vdb1提供日志緩存;vdd提供存儲空間,vdb2提供日志緩存.
done
三, 驗證
node1~]# ceph -s //查看狀態,
//如果失敗,嘗試重啟ceph服務:# systemctl restart ceph\*.server ceph\*.target
隨筆完畢.