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”
}
]
}
}

到此就完成了文章开始所示的集群环境扩展。

猜你喜欢

转载自blog.csdn.net/cloudxli/article/details/79544830