阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下快速部署 Ceph分布式存储架构

155次阅读
没有评论

共计 5592 个字符,预计需要花费 14 分钟才能阅读完成。

随着 OpenStack 日渐成为开源云计算的标准软件栈,Ceph 也已经成为 OpenStack 的首选后端存储。相关介绍网上有很多,这里就不做过多介绍了,自己尝试在自己的测试机搭建了一下。

Ceph 的架构

Ceph 是一个开源的分布式文件系统。因为它还支持块存储、对象存储,所以很自然的被用做云计算框架 openstack 或 cloudstack 整个存储后端。当然也可以单独作为存储,例如部署一套集群作为对象存储、SAN 存储、NAS 存储等。

支持接口
1、对象存储:即 radosgw, 兼容 S3 接口。通过 rest api 上传、下载文件。

2、文件系统:posix 接口。可以将 ceph 集群看做一个共享文件系统挂载到本地。

3、块存储:即 rbd。有 kernel rbd 和 librbd 两种使用方式。支持快照、克隆。相当于一块硬盘挂到本地,用法和用途和硬盘一样。

Ceph 相比其它分布式存储有哪些优点?

1、统一存储
 虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。

2、高扩展性
 扩容方便、容量大。能够管理上千台服务器、EB 级的容量。

3、可靠性强
 支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自管理、自动修复。无单点故障,容错性强。

4、高性能
  因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS 和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。在块存储和对象存储中无需元数据服务器。

集群部署

主机准备

IP 地址      主机名
172.16.10.167  admin-node  #管理端,后续的 ceph-deploy 工具都在该主机上进行操作,并且也充当监控和 osd.0 节点
172.16.10.162  node1    #监控和 osd.1 节点
172.16.10.142  node2    #监控和 osd.2 节点
每台主机三块盘,sda 系统盘、sdb 存储盘(osd)、sdc 日志盘(journal),日志盘最好选用 ssd

修改 admin-node 的 /etc/hosts 文件

172.16.10.162    node1
172.16.10.142    node2

配置 admin-node 与其它节点的 ssh 无密码 root 权限访问,为了方便使用的是 root 用户,为了安全应该创建一个普通用户

# ssh-keygen
# cat /root/.ssh/id_rsa.pub

修改每个节点的 hostname

# hostnamectl set-hostname “ 新的名字 ”

每个 osd 节点开放防火墙

-A INPUT -p tcp -m state –state NEW -m tcp –dport 6789:7100 -j ACCEPT

配置 ceph 的 yum 源, 安装 ceph-deploy 工具

此处的源太慢,在我安装的时候总是失败

国内的一些 Ceph 源:Ceph 国内源

# yum install –nogpgcheck -y epel-release
# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
# vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages 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=Ceph noarch 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=Ceph source 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

安装 ceph-deploy 工具

# yum update -y
# yum install ceph-deploy -y
# yuminstall ntp ntpdate ntp-doc openssh-server yum-plugin-priorities -y

创建管理目录

# mkdir my-cluster
# cd my-cluster

创建监控节点,这里可以同时创建多个节点,为了测试后期增加 mon 节点,这里就只添加一个

# ceph-deploy new node1

修改配置文件,执行上述命令之后,会在当前目录产生 ceph.conf 文件,打开文件增加配置

osd pool default size = 3  #创建 3 个副本
public_network = 172.16.10.0/24  #公用网络
cluster_network = 172.16.10.0/24  #集群网络

使用 ceph-deploy 为节点安装 ceph,这一步在我安装时经常出问题,出现执行 ceph –version 命令失败,还有一些其它错误,然后各种在网上查资料,最后自己无意中发现,再次执行命令,或者在失败节点把 ceph 和 ceph-release 卸载,然后单个节点再次安装,重复操作,就可以安装成功,究其原因,还是因为 ceph 源在国外。然后找了一下国内的 ceph 源,在 ceph 中国社区找到了一篇文档,在开头已有介绍。

# ceph-deploy install admin-node node1 node2

初始化监控节点并收集 keyring,如果是双网卡,需要修改配置文件 ceph.conf 将 mon 的内网地址改为公网地址,执行时需要在 ceph-deploy 后加 –overwrite-conf

# ceph-deploy mon create-initial

把 admin-node 节点的配置文件与 keyring 同步至其它节点

# ceph-deploy admin admin-node node1 node2
# chmod +r /etc/ceph/ceph.client.admin.keyring  #如果是 root 用户,这步不需要

初始化各节点的 osd 分区

# ceph-deploy disk zap admin-node:/dev/sdb node1:/dev/sdb node2:/dev/sdb

挂载日志盘

# ceph-deploy osd prepare admin-node:sdb:/dev/sdc node1:sdb:/dev/sdc node2:sdb:/dev/sdc

查看挂载情况

# ceph-deploy disk list node1

现在初步集群搭建完成

查看 ceph 集群健康状态

# ceph health

如果成功将提示:HEALTH_OK

增加监控节点

打开 ceph.conf 文件,增加 mon 配置,新增 admin-node 和 node2 节点为 mon 节点

# cd my-cluster && vim ceph.conf
mon_initial_members = node1,admin-node,node2
mon_host= 172.16.10.162,172.16.10.167,172.16.10.142

将配置文件同步至所有节点

# ceph-deploy –overwrite-conf admin admin-node node1 node2

查看配置是否生效

# ceph –show-config |grep mon_initial_members

创建新的 mon

# ceph-deploy mon create admin-node
# ceph-deploymon create node2

查看 mon 状态

# ceph mon stat

查看整个集群状态,验证是否成功

# ceph -s

不出意外,现在应该是显示集群成功的,也可能会有时间不同步或者 pg 问题,在网上都有解决方法,个人测试了几遍都可以成功安装。

启动命令

启动或停止一个节点的所有 osd 或者 mon

# systemctl start ceph-osd.target
# systemctl start ceph-mon.target

启动单个 osd 或者 mon

# systemctl start ceph-osd@0
# systemctl start ceph-mon@node1

添加开机启动

# systemctl enable ceph-mon.target
# systemctl enable ceph-osd.target

检测是否加入开机启动

# systemctl is-enabled ceph-osd.target
# systemctlis-enabled ceph-mon.target

验证

使用块存储验证集群存储是否可用

再找一台机器做为:client-node,并且需要执行上面的基础流程

在 admin-node 上面

# cd my-cluster
# ceph-deploy install  client-node
# ceph-deployadmin client-node

在 client-node 创建块设备映像

# rbd create test –size 4096 –image-format 2 –image-feature  layering

查看创建的映像

# rbd ls

将 ceph 提供的块设备映射到 client-node

# rbd map test –pool rbd –name client.admin

创建文件系统

# mkfs.xfs  /dev/rbd/rbd/test

挂载文件系统

# mkdir /test
# mount /dev/rbd/rbd/test /test

使用 dd 测试

# cd /test
# dd if=/dev/zero of=ceshi bs=1M count=10

在随便一台 osd 节点上,查看是否有数据写入

# ceph -w

监控

在监控方面,calamari 在安装起来比较复杂,没有仔细研究,在网上看到可以使用 zabbix 对 ceph 进行监控,然后看了一下。

监控流程

在 ceph 的一台 monitor 上,比如:admin-node

# yum install -y git
# git clone https://github.com/BodihTao/ceph-zabbix.git
# cd ceph-zabbix
# cp ceph-status.sh /usr/local/zabbix/etc/
# ln -s /usr/local/zabbix/bin/* /usr/bin/
# vim ceph_cron.txt  或者直接 crontab - e 编辑
* * * * * /usr/local/zabbix/etc/ceph-status.sh zabbixIP“zabbix 中定义的主机名”
例如:
* * * * * /usr/local/zabbix/etc/ceph-status.sh 172.16.10.102 “Ceph-172.16.10.167”
# crontab ceph_cron.txt
# crontab -l
# vim/usr/local/zabbix/etc/zabbix_agentd.conf
Hostname=Ceph-172.16.10.167
# pkill -9 zabbix_agentd
# /usr/local/zabbix/sbin/zabbix_agentd

然后在 zabbix 上面导入 ceph-zabbix/zabbix_templates 中的模板,修改导入的模板 – 项目中的类型为 zabbix trapper(zabbix 捉捕器),然后添加主机,使用导入的模板。

注:如果还需要使用其它模板,比如:Template OS Linux,如果项目中提示不支持,则需要修改类型为 zabbix trapper(zabbix 捉捕器),如果修改,需要做一个克隆,以免影响其它模板使用者。

在 CentOS 7.1 上安装分布式存储系统 Ceph  http://www.linuxidc.com/Linux/2015-08/120990.htm

Ceph 环境配置文档 PDF http://www.linuxidc.com/Linux/2013-05/85212.htm 

CentOS 6.3 上部署 Ceph http://www.linuxidc.com/Linux/2013-05/85213.htm 

Ceph 的安装过程 http://www.linuxidc.com/Linux/2013-05/85210.htm 

HOWTO Install Ceph On FC12, FC 上安装 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-05/85209.htm 

实验环境 Ceph 9.2.1 部署笔记 http://www.linuxidc.com/Linux/2016-11/137094.htm

Ubuntu 12.04 Ceph 分布式文件系统 http://www.linuxidc.com/Linux/2013-04/82588.htm 

Ubuntu 16.04 快速安装 Ceph 集群  http://www.linuxidc.com/Linux/2016-09/135261.htm

Ceph 的详细介绍:请点这里
Ceph 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140630.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5592字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中