Ceph (J)集群部署

基于CentOS 7 x86_64

可参考:https://blog.csdn.net/dylloveyou/article/details/79054120

一、简单介绍

Ceph的部署模式下主要包含以下几个类型的节点

Ø Ceph OSDs: A Ceph

OSD 进程主要用来存储数据,处理数据的replication,恢复,填充,调整资源组合以及通过检查其他OSD进程的心跳信息提供一些监控信息给Ceph Monitors . 当Ceph Storage Cluster 要准备2份数据备份时,要求至少有2个Ceph OSD进程的状态是active+clean状态 (Ceph 默认会提供两份数据备份).

Ø Monitors: Ceph

Monitor 维护了集群map的状态,主要包括monitor map, OSD map, Placement Group (PG) map, 以及CRUSH map. Ceph 维护了 Ceph Monitors, Ceph OSD Daemons, 以及PGs状态变化的历史记录 (called an

“epoch”).

Ø MDSs: Ceph

Metadata Server (MDS)存储的元数据代表Ceph的文件系统 (i.e., Ceph Block

Devices 以及Ceph Object Storage 不适用 MDS). Ceph Metadata Servers 让系统用户可以执行一些POSIX文件系统的基本命令,例如ls,find 等.

二、节点规划

节点规划

主机名IP角色ceph版本

Server-200192.168.100.200Admin/monitorjewel

Server-201192.168.100.201Osd,/dev/sdb,/dev/sdc,/dev/sddjewel

Server-202192.168.100.202Osd,/dev/sdb,/dev/sdc,/dev/sddjewel

Server-203192.168.100.203Osd,/dev/sdb,/dev/sdc,/dev/sddjewel

三、预部署

配置各所有节点hosts

192.168.100.200server-200

192.168.100.201server-201

192.168.100.202server-202

192.168.100.203server-203

关闭防火墙和selinux, 确保时间一致

所有节点安装ntpd,确保时间一致

更新yum 为国内阿里源

#rm -rf/etc/yum.repos.d/*.repo

#wget -O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

#wget -O/etc/yum.repos.d/epel.repohttp://mirrors.aliyun.com/repo/epel-7.repo

#sed -i'/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo

#sed -i's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo

#sed -i'/aliyuncs/d' /etc/yum.repos.d/epel.repo

#yum clean all

#yum makecache fast

admin节点 安装部署工具 ceph-deploy

#yum installhttp://mirrors.163.com/ceph/rpm-jewel/el7/noarch/ceph-deploy-1.5.38-0.noarch.rpm

所有节点创建cephd用户,并确保 管理节点 ssh秘钥无密码登录,添加sudo权限

#echo "cephdALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephd

测试没有问题,接下来,修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样无需每次执行 ceph-deploy 都要指定 –username cephd 。这样做同时也简化了 ssh 和 scp 的用法。

$vim .ssh/config

Host server-200

Hostnameserver-200

Usercephd

Host server-201

Hostnameserver-201

Usercephd

Host server-202

Hostnameserver-202

Usercephd

Host server-203

Hostnameserver-203

Usercephd

$chmod 600.ssh/config

确保网络畅通~

经过上边一系列的预检设置后,我们就可以开始Ceph 存储集群搭建了,集群结构为 admin-node (ceph-deploy、Monitor)、node1(osd.1)、node2(osd.2)。首先要提一下的是,如果我们在安装过程中出现了问题,需要重新操作的时候,例如想清理我搭建的这个集群的话,可以使用以下命令。

#

ceph-deploy (admin-node) 上执行

清理配置

#ceph-deploypurgedata server-200 server-201 server-202 server-203

#ceph-deployforgetkeys

清理 Ceph 安装包

#ceph-deploypurge server-200 server-201 server-202 server-203

四、部署集群

[if !supportLists]1.[endif]安装ceph

我们需要通过admin ceph-deploy在各个节点安装ceph

$ceph-deploy installserver-200 server-201 server-202 server-203

如果安装失败,可以手动安装

#vim /etc/yum.repos.d/ceph.repo

[Ceph]

name=Cephpackages for $basearch

baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

priority=1

[Ceph-noarch]

name=Cephnoarch packages

baseurl=http://download.ceph.com/rpm-jewel/el7/noarch

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

priority=1

[ceph-source]

name=Cephsource packages

baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

priority=1

[ceph]

name=Cephpackages for $basearch

baseurl=http://download.ceph.com/rpm-jewel/el7/$basearch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-noarch]

name=Cephnoarch packages

baseurl=http://download.ceph.com/rpm-jewel/el7/noarch

enabled=1

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

[ceph-source]

name=Cephsource packages

baseurl=http://download.ceph.com/rpm-jewel/el7/SRPMS

enabled=0

priority=2

gpgcheck=1

type=rpm-md

gpgkey=https://download.ceph.com/keys/release.asc

#yum install snappyleveldb gdisk python-argparse gperftools-libs

#yum install ceph

[if !supportLists]2.    [endif]创建集群,因暂只使用一个monitor,所以这里只初始admin监控节点

#su - cephd

$mkdir ceph-cluster

$cd ceph-cluster

$ceph-deploy new server-200


[if !supportLists]3.[endif]添加监控器

$ceph-deploy  mon create server-200

$ceph-deploy moncreate-initial

执行完毕后,会在当前目录下生成一系列的密钥环,应该是各组件之间访问所需要的认证信息吧


到此,ceph monitor 已经成功启动了。接下来需要创建 OSD 了,OSD 是最终数据存储的地方,这里我们准备了两个 OSD 节点,分别为 osd.0 和 osd.1。官方建议为 OSD 及其日志使用独立硬盘或分区作为存储空间

$ceph-deploy osdprepare server-201:sdb:/dev/sdd server-201:sdc:/dev/sdd server-202:sdb:/dev/sddserver-202:sdc:/dev/sdd server-203:sdb:/dev/sdd server-203:sdc:/dev/sdd

$ceph-deploy osdactivate server-201:sdb1:/dev/sdd1 server-201:sdc1:/dev/sdd2server-202:sdb1:/dev/sdd1 server-202:sdc1:/dev/sdd2 server-203:sdb1:/dev/sdd1server-203:sdc1:/dev/sdd2

也可以考虑同步配置到其他节点,这样其他节点也可以查看

$ceph-deploy admin server-200server-201 server-202 server-203

$sudo chmod +r/etc/ceph/ceph.client.admin.keyring

$ceph -s


你可能感兴趣的:(Ceph (J)集群部署)