基于redhat7.3 ceph对象存储集群搭建+owncloud S3接口整合生产实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于redhat7.3 ceph对象存储集群搭建+owncloud S3接口整合生产实践相关的知识,希望对你有一定的参考价值。

一、环境准备

  1. 安装redhat7.3虚拟机四台

  2. 在四台装好的虚拟机上分别加一块100G的硬盘。如图所示:

技术分享

3.在每个节点上配置主机名

技术分享

4.集群配置信息如下

admin-node
node1node2node3
192.168.42.110
192.168.42.111192.168.42.112192.168.42.113
deploy、osd*1

mon*1、osd*1、

rgw*1、mds*1

mon*1、osd*1mon*1、osd*1


5.各节点配置yum源

#需要在每个主机上执行以下指令

yum clean all
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i ‘/aliyuncs/d‘ /etc/yum.repos.d/CentOS-Base.repo
sed -i ‘/aliyuncs/d‘ /etc/yum.repos.d/epel.repo
sed -i ‘s/$releasever/7/g‘ /etc/yum.repos.d/CentOS-Base.repo


6.各节点增加ceph的源

vim /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.163.com/ceph/rpm-jewel/el7/noarch/
gpgcheck=0


7.双机互信

#在admin-node上操作

ssh-keygen -t dsa -f ~/.ssh/id_dsa -N ""
mv /root/.ssh/{id_dsa.pub,authorized_keys}
scp -r /root/.ssh/   {node1,node2,node3}:/root


8.关闭各节点selinux&firewalld

sed -i ‘s/SELINUX=.*/SELINUX=disabled/‘ /etc/selinux/config
setenforce 0
systemctl stop firewalld 
systemctl disable firewalld


9.同步各个节点时间:

yum -y install rdate
rdate -s time-a.nist.gov
echo rdate -s time-a.nist.gov >> /etc/rc.d/rc.local 
chmod +x /etc/rc.d/rc.local



二、开始部署


1.环境清理!

如果之前部署失败了,不必删除ceph客户端,或者重新搭建虚拟机,只需要在每个节点上执行如下指令即可将环境清理至刚安装完ceph客户端时的状态!强烈建议在旧集群上搭建之前清理干净环境,否则会发生各种异常情况。

ps aux|grep ceph |awk ‘{print $2}‘|xargs kill -9
ps -ef|grep ceph
umount /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/osd/*
rm -rf /var/lib/ceph/mon/*
rm -rf /var/lib/ceph/mds/*
rm -rf /var/lib/ceph/bootstrap-mds/*
rm -rf /var/lib/ceph/bootstrap-osd/*
rm -rf /var/lib/ceph/bootstrap-rgw/*
rm -rf /var/lib/ceph/tmp/*
rm -rf /etc/ceph/*
rm -rf /var/run/ceph/*



2.在各节点安装ceph客户端:

yum install ceph ceph-radosgw rdate -y


3.在部署节点(admin-node)安装ceph-deploy,下文的部署节点统一指admin-node:

yum -y install ceph-deploy
ceph-deploy --version
1.5.38
ceph -v
ceph version 10.2.9 (2ee413f77150c0f375ff6f10edd6c8f9c7d060d0)


4.用 ceph-deploy 从管理节点建立一个 Ceph 存储集群,该集群包含三个节点

技术分享


5.在部署节点创建部署目录并开始部署:

cd
mkdir cluster
cd cluster/
ceph-deploy new node1

#ceph-deploy 会把文件输出到当前目录,所以请确保在此目录下执行 ceph-deploy 。

#在当前目录下用 ls 和 cat 检查 ceph-deploy 的输出,应该有一个 Ceph 配置文件、一个 monitor 密钥环和一个日志文件。



6.把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段:

vim ceph.conf
osd pool default size = 2

7.如果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段下。

vim ceph.conf
public network = 192.168.42.0/24

8.安装 Ceph


ceph-deploy install admin-node node1 node2 node3

#ceph-deploy 将在各节点安装 Ceph 。 注:如果你执行过 ceph-deploy purge ,你必须重新执行这一步来安装 Ceph 。


9.配置初始 monitor(s)、并收集所有密钥:


ceph-deploy mon create-initial


完成上述操作后,当前目录里应该会出现这些密钥环:

  • {cluster-name}.client.admin.keyring

  • {cluster-name}.bootstrap-osd.keyring

  • {cluster-name}.bootstrap-mds.keyring

  • {cluster-name}.bootstrap-rgw.keyring


10.查看各节点的硬盘详情

ceph-deploy  disk list admin-node
ceph-deploy  disk list node1
ceph-deploy  disk list node2
ceph-deploy  disk list node3

11.管理节点执行 ceph-deploy 来准备 OSD,在node2,node3上主备OSD

ceph-deploy osd prepare node2:sdb:/dev/sdb
ceph-deploy osd prepare node3:sdb:/dev/sdb

12.最后,激活 node2,node3上的OSD 。

ceph-deploy osd activate node2:/dev/sdb1:/dev/sdb2
ceph-deploy osd activate node3:/dev/sdb1:/dev/sdb2

13.用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。

ceph-deploy admin admin-node node1 node2 node3

14.确保你对 ceph.client.admin.keyring 有正确的操作权限。


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


15.检查集群的健康状况


#显示health HEALTH_OK 则为ok

#等 peering 完成后,集群应该达到 active + clean 状态。


三、扩展集群(扩容)


#一个基本的集群启动并开始运行后,下一步就是扩展集群。在 node1 上添加一个 OSD 守护进程和一个元数据服务器。然后分别在 node2 和 node3 上添加 Ceph Monitor ,以形成 Monitors 的法定人数。

技术分享


  1. 在node1,admin-node上添加OSD

  2. ceph-deploy osd prepare node1:sdb:/dev/sdb
  3. ceph-deploy osd activate admin-node:/dev/sdb1:/dev/sdb2

2.最后,激活 OSD

ceph-deploy osd activate node1:/dev/sdb1:/dev/sdb2
ceph-deploy osd activate admin-node:/dev/sdb1:/dev/sdb2

#一旦你新加了 OSD , Ceph 集群就开始重均衡,把归置组迁移到新 OSD 。可以用下面的 ceph 命令观察此过程

ceph -w

#你应该能看到归置组状态从 active + clean 变为 active ,还有一些降级的对象;迁移完成后又会回到 active + clean 状态( Control-C 退出)。


3.添加元数据服务器

#至少需要一个元数据服务器才能使用 CephFS ,执行下列命令创建元数据服务器

ceph-deploy mds create node1

注意:当前生产环境下的 Ceph 只能运行一个元数据服务器。你可以配置多个,但现在官网还不会为多个元数据服务器的集群提供商业支持。

4.添加 RGW 例程

#要使用 Ceph 的 Ceph 对象网关组件,必须部署 RGW 例程。用下列方法创建新 RGW 例程

ceph-deploy rgw create node1

#一个集群可以在不同节点添加rgw

#要删除创建的rgw只需要停止radosgw服务,删除rgw数据,即删除rgw相关pool即可删除


5.RGW 例程默认会监听 7480 端口,可以更改该节点 ceph.conf 内与 RGW 相关的配置,如下:


vim /root/my-cluster/ceph.conf
[client]
rgw frontends = civetweb port=80

#如果你使用的是ipv6地址的那么执行如下操作即可

vim /root/my-cluster/ceph.conf
[client]
rgw frontends = civetweb port=[::]:80

6.添加 MONITORS

#Ceph 存储集群需要至少一个 Monitor 才能运行。为达到高可用,典型的 Ceph 存储集群会运行多个 Monitors,这样在单个 Monitor 失败时不会影响 Ceph 存储集群的可用性。Ceph 使用 PASOX 算法,此算法要求有多半 monitors(即 1 、 2:3 、 3:4 、 3:5 、 4:6 等 )形成法定人数。

新增两个监视器到 Ceph 集群。

ceph-deploy mon add node2 node3

#新增 Monitor 后,Ceph 会自动开始同步并形成法定人数。你可以用下面的命令检查法定人数状态:

ceph quorum_status --format json-pretty

#注意:当你的 Ceph 集群运行着多个 monitor 时,各 monitor 主机上都应该配置 NTP ,而且要确保这些 monitor 位于 NTP 服务的同一级。


7.存入/检出对象数据

#要把对象存入 Ceph 存储集群,客户端必须做到:


  1. 指定对象名

  2. 指定存储池


#Ceph 客户端检出最新集群运行图,用 CRUSH 算法计算出如何把对象映射到归置组,然后动态地计算如何把归置组分配到 OSD 。要定位对象,只需要对象名和存储池名字即可,例如:


ceph osd map {poolname} {object-name}

四、查看ceph集群部署详情


1.查看部署详情

ceph -s

技术分享

2.通过ceph osd tree 查看OSD详情

技术分享

3.mon&osd启动方式

#monitor start/stop/restart

#ceph-1为各个monitor所在节点的主机名。
systemctl start [email protected] 
systemctl restart [email protected]
systemctl stop [email protected]
#OSD start/stop/restart 
#0为该节点的OSD的id,可以通过`ceph osd tree`查看
systemctl start/stop/restart [email protected]


#至此 一个ceph集群已经部署成功


创作不易,如有引用,请注明出处 谢谢


本文出自 “宋城西栅” 博客,请务必保留此出处http://limaomao.blog.51cto.com/12623570/1963991

以上是关于基于redhat7.3 ceph对象存储集群搭建+owncloud S3接口整合生产实践的主要内容,如果未能解决你的问题,请参考以下文章

在rhel7中的ceph存储集群搭建的具体步骤

ceph分布式存储-常见 PG 故障处理

ceph搭建练习1

三节点ceph分布式存储集群部署

Ceph 集群搭建

Ceph 存储集群 - 搭建存储集群