ceph集羣的擴展(centos7環境)

首先可以看看我原來搭建的三節點ceph環境:

http://blog.csdn.net/cloudxli/article/details/78651866
後來在原來的mon節點上安裝了mds(還是三個節點)變成下面:
http://blog.csdn.net/cloudxli/article/details/79265120

現在我要做的是在原來的基礎上添加一個節點變成下面的這個集羣:

ip hostname 節點描述
192.168.1.220 node1 mon,mds,osd
192.168.1.221 node2 mon,osd
192.168.1.222 node3 mon,osd
192.168.1.84 node4 osd

1、準備工作(將node4作爲osd的準備工作,也就是第三步):

1.1、在要加入的節點node4上操作:

修改/etc/selinux/config, 將值設爲disabled, reboot
sudo useradd -d /home/cent -m cent
sudo passwd cent
echo “cent ALL = (root) NOPASSWD:ALL” | sudo tee /etc/sudoers.d/cent
sudo chmod 0440 /etc/sudoers.d/cent
su cent (切換到cent用戶,不能用root或sudo執行ceph-deploy命令,重要:如果你是用不同的用戶登錄的,就不要用sudo或者root權限運行ceph-deploy,因爲在遠程的主機上不能發出sudo命令
)
sudo visudo (修改其中Defaults requiretty爲Defaults:cent !requiretty)

sudo yum install ntp ntpdate ntp-doc
sudo yum install openssh-server
sudo mkdir /var/local/osd3
sudo chmod -R 777 /var/local/osd3

1.2修改node1的hosts文件,將新加入的node4節點信息加入到node1中

vim /etc/hosts 追加下面內容
192.168.1.84 node4
然後在執行下面命令,完成node1和node4的ssh配置
ssh-copy-id cent@node4

1.3 爲node4添加ceph源:

在/etc/yum.repos.d/ 下創建一個ceph.repo文件,寫入以下內容 

[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.163.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.163.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.163.com/ceph/keys/release.asc
priority=1

2、在原來唯一的那個MON節點(node1)的OSD功能:

在node1節點上切換到lcent用戶,並進入my-cluster目錄下
添加non節點(node1)的OSD服務:

sudo mkdir /var/local/osd2
 sudo chmod -R 777 /var/local/os2
 sudo ceph-deploy --overwrite-conf osd prepare node1:/var/local/osd2
 sudo ceph-deploy osd activate node1:/var/local/osd2

當執行完上面的命令後,Ceph會重新調整整個集羣,並且會將PG遷移到新的OSD上,可以通過ceph -w發現集羣的狀態發生了變化

3、在已有的MON節點上添加完OSD功能後,接下來將在一個全新的node4上增加OSD的功能

由於前面把準備工作做了,所以直接在node1上爲node4完成配置osd
在node1上執行(我們一直是把mon節點作爲管理節點來使用,因爲沒有安裝管理節點):

sudo ceph-deploy install node4
sudo ceph-deploy osd prepare node4:/var/local/osd3
sudo ceph-deploy osd activate node4:/var/local/osd3

在這裏就可以使用ceph -s查看了,就會可以看到有4個osd

添加Ceph Mon

我們這裏是將node2和node3作爲mon節點,完成後一共就變成3個mon節點了:
Mon的擴展比較複雜,搞不好會導致整個集羣出錯,所以建議開始的時候對MON做好規劃,儘量不要對其進行修改。

ceph monitor的個數是2n+1(n>=0)個(爲奇數),在線上至少3個,只要正常的節點數>=n+1,ceph的paxos算法能保證系統的正常運行。所以,對於3個節點,同時只能掛掉一個。

3.1 將node1節點的/etc/ceph/ceph.conf的內容變成下面:

[global]
fsid = f2891898-aa3b-4bce-8bf1-668b8cf5b45a
public_network = 192.168.1.0/24
mon_initial_members = node1,node2,node3
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd pool default size = 2
[mon]
mon_addr = 192.168.1.220:6789,192.168.1.221:6789,192.168.1.222:6789
mon_host = node1,node2,node3
debug_mon = 20
[mon.a]
host = node1
addr = 192.168.1.220:6789
[mon.b]
host = node2
addr = 192.168.1.221:6789
[mon.c]
host = node3
addr = 192.168.1.222:6789

在node1上再執行ceph-deploy mon add node2 node3

當添加完新的節點後:

分別在node2和node3上啓動mon.node2和mon.node3服務

node2上:ceph-mon -i node2 –public-addr 192.168.1.221:6789
node3上:ceph-mon -i node3 –public-addr 192.168.1.222:6789
然後在node1上通過命令ceph quorum_status –format json-pret查看

[cent@node1 ~]$ ceph quorum_status –format json-pretty

{
“election_epoch”: 14,
“quorum”: [
0,
1,
2
],
“quorum_names”: [
“node1”,
“node2”,
“node3”
],
“quorum_leader_name”: “node1”,
“monmap”: {
“epoch”: 3,
“fsid”: “f2891898-aa3b-4bce-8bf1-668b8cf5b45a”,
“modified”: “2018-03-13 16:27:45.184093”,
“created”: “2017-11-27 10:57:00.018670”,
“mons”: [
{
“rank”: 0,
“name”: “node1”,
“addr”: “192.168.1.220:6789\/0”
},
{
“rank”: 1,
“name”: “node2”,
“addr”: “192.168.1.221:6789\/0”
},
{
“rank”: 2,
“name”: “node3”,
“addr”: “192.168.1.222:6789\/0”
}
]
}
}

到此就完成了文章開始所示的集羣環境擴展。

發佈了47 篇原創文章 · 獲贊 74 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章