设为首页 收藏本站
查看: 1490|回复: 0

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

[复制链接]

尚未签到

发表于 2019-2-2 10:23:44 | 显示全部楼层 |阅读模式
一、环境准备

  • 安装redhat7.3虚拟机四台
  • 在四台装好的虚拟机上分别加一块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
  #在当前目录下用 lscat 检查 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 守护进程和一个元数据服务器。然后分别在 node2node3 上添加 Ceph Monitor ,以形成 Monitors 的法定人数。

  


  •   在node1,admin-node上添加OSD
  • ceph-deploy osd prepare node1:sdb:/dev/sdb
  • 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 存储集群,客户端必须做到:
  


  •   指定对象名
  •   指定存储池
  

  #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 ceph-mon@node1.service
systemctl restart ceph-mon@node1.service
systemctl stop ceph-mon@node1.service
#OSD start/stop/restart
#0为该节点的OSD的id,可以通过`ceph osd tree`查看
systemctl start/stop/restart ceph-osd@0.service  

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

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





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670769-1-1.html 上篇帖子: ceph存储 磁盘IOPS常识 下篇帖子: K8S使用Ceph做持久化存储
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表