世界500强是如何解决千亿流量留存问题的,《Ceph分布式存储架构》-使用CentOS 7部署 Ceph分布式存储架构-为他们解决什么问题。

配置ceph iscsi网关 ceph iscsi 配置,ceph iscsi initiators 扫盘、登录 阅读详情


一、Ceph概述

在这里插入图片描述

1.1 Ceph介绍

Ceph是一个开源的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。它还是一个可靠、自动重均衡、自动恢复的分布式存储系统。主要优点是分布式存储,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,不存在传统的单点故障的问题,可以水平扩展。

ceph官方文档 http://docs.ceph.org.cn/
ceph中文开源社区 http://ceph.org.cn/

数据大小和对应的存储介绍关系:

大小 存储介质
2T 一块硬盘
10T 一块硬盘
50T raid0,1,5 / 存储服务器

假如B站有20000T数据
20000T 一台服务器不行。 一台存储服务器200T*100台服务器。 使用的技术:ceph 分布

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

在这里插入图片描述
RADOS自身是一个完整的分布式对象存储系统,它具有可靠、智能、分布式等特性,Ceph的高可靠、高可拓展、高性能、高自动化都是由这一层来提供的,用户数据的存储最终也都是通过这一层来进行存储的,RADOS可以说就是Ceph的核心组件。

RADOS系统主要由两部分组成,分别是OSD和Monitor。

基于RADOS层的上一层是LIBRADOS,LIBRADOS是一个库,它允许应用程序通过访问该库来与RADOS系统进行交互,支持多种编程语言,比如C、C++、Python等。

基于LIBRADOS层开发的又可以看到有三层,分别是RADOSGW、RBD和CEPH FS。3个功能如下:

1、RADOSGW:RADOSGW是一套基于当前流行的RESTFUL协议的网关,并且兼容S3和Swift。
2、RBD:RBD通过Linux内核客户端和QEMU/KVM驱动来提供一个分布式的块设备。
3、CEPH FS:CEPH FS通过Linux内核客户端和FUSE来提供一个兼容POSIX的文件系统,就像NFS一样,共享文件。

ceph支持

1、对象存储:即radosgw,兼容Swift和S3接口。通过rest api上传、下载文件。
2、块存储:即rbd。有kernel rbd和librbd两种使用方式。支持快照、克隆。相当于一块硬盘挂到本地,用法和用途和硬盘一样。
3、文件系统:posix接口。可以将ceph集群看做一个共享文件系统挂载到本地。

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

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

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

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

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

1.2 Ceph各组件介绍

在这里插入图片描述
在这里插入图片描述
Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下:

1、Client客户端:负责存储协议的接入,节点负载均衡。

2、MON(Monitor)监控服务:监控整个集群Cluster map的状态,维护集群的cluster MAP二进制表,保证集群数据的一致性,维护集群状态的映射,包括监视器映射,管理器映射,OSD映射,MDS映射和CRUSH映射。这些映射是Ceph守护程序相互协调所需的关键群集状态。监视器还负责管理守护程序和客户端之间的身份验证。通常至少需要三个监视器才能实现冗余和高可用性。

注:元数据:保存了子目录和子文件的名称 及inode编号的数据,通过元数据,可以找到对应的真实的数据,及真实数据所在的服务器。有点像字典前面的索引或yum源的缓存

3、MDS元数据服务(可选):是元数据的内存缓存,为了加快元数据的访问。保存了文件系统的元数据(对象里保存了子目录和子文件的名称和inode编号) ,还保存cephfs日志journal,日志是用来恢复mds里的元数据缓存 ,重启mds的时候会通过replay的方式从osd上加载之前缓存的元数据。

在ceph中,元数据是存储在osd节点中的,mds类似于元数据的内存缓存服务器,加快访问速度。

4、OSD(对象存储守护程序):主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与通过检查其他Ceph OSD守护程序的心跳来向Ceph监视器和管理器提供一些监视信息。通常至少需要3个Ceph OSD才能实现冗余和高可用性。

Ceph要求必须是奇数个Monitor监控节点,一般建议至少是3个(如果是自己私下测试玩玩的话,可以是1个,但是生产环境绝不建议1个)用于维护和监控整个集群的状态,每个Monitor都有一个Cluster Map,只要有这个Map,就能够清楚知道每个对象存储在什么位置了。客户端会先tcp连接到Monitor,从中获取Cluster Map,并在客户端进行计算,当知道对象的位置后,再直接与OSD通信(去中心化的思想)。OSD节点平常会向Monitor节点发送简单心跳,只有当添加、删除或者出现异常状况时,才会自动上报信息给Monitor。

MDS是可选的,只有需要使用Ceph FS的时候才需要配置MDS节点。在Ceph中,元数据也是存放在OSD中的,MDS只相当于元数据的缓存服务器。

在Ceph中,如果要写数据,只能向主OSD写,然后再由主OSD向从OSD同步地写,只有当从OSD返回结果给主OSD后,主OSD才会向客户端报告写入完成的消息。如果要读数据,不会使用读写分离,而是也需要先向主OSD发请求,以保证数据的强一致性。

在这里插入图片描述
专业术语缩写总结:

1、OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。

2、MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

3、PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

4、RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

5、RBD全称RADOS block device,是Ceph对外提供的块设备服务。

6、RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

7、CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

二、ceph集群部署实验

主机准备 (禁用selinux, 关闭防火墙)

xuegod63 	192.168.1.63      osd,mds,mon,admin部署节点 
xuegod62 	192.168.1.62      osd,mds,mon
xuegod64 	192.168.1.64      osd,mds,mon
xuegod64 	192.168.1.64		client挂载节点,可以单独一台服务器

注:1、admin角色代表ceph部署管理节点,其他节点通过ceph部署结点进行安装。
2、xuegod62、xuegod63、xuegod64 各添加一块硬盘,每个磁盘20G。搭建ceph时会使用新加的磁盘。

在这里插入图片描述
编辑hosts文件(所有节点需要操作):

(规范系统主机名添加hosts文件实现集群主机名与主机名之间相互能够解析(host 文件添加主机名不要使用fqdn方式)可用hostnamectl set-hostname name设置

分别打开各节点的/etc/hosts文件,加入这四个节点ip与名称的对应关系

[root@xuegod63 ~]# vim /etc/hosts
192.168.1.63    xuegod63		xuegod63.cn
192.168.1.62    xuegod62		xuegod62.cn
192.168.1.64    xuegod64		xuegod64.cn

注:/etc/hosts中必须有xueogd63这种短域名,因为后期部署ceph时,ceph安装程序默认只使用xueogd63域名,不使用xueogd63.cn

[root@xuegod63 ~]# scp /etc/hosts root@xuegod62:/etc/
[root@xuegod63 ~]# scp /etc/hosts root@xuegod64:/etc/

SSH免密码登录(所有节点需要操作)
在管理节点使用ssh-keygen 生成ssh keys 发布到各节点
[root@xuegod63 ~]# ssh-keygen  	#所有的输入选项都直接回车生成。

[root@xuegod63 ~]# ssh-copy-id xuegod63
[root@xuegod63 ~]# ssh-copy-id xuegod62
[root@xuegod63 ~]# ssh-copy-id xuegod64

配置好网络源

3台主机上,都更新Centos内核,Ceph的iscsi网关组件最低需要4.16版本的linux内核。 最好离线安装

导入Public Key

[root@xuegod63 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@xuegod62 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@xuegod64 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo源,通过elrepo源安装新内核

[root@xuegod63 ~]# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm -y
[root@xuegod62 ~]# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm -y
[root@xuegod64 ~]# yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm -y

安装新版本内核(ml主线版本,lt长期支持版本)

[root@xuegod63 ~]# yum --enablerepo=elrepo-kernel install  kernel-lt-devel kernel-lt  -y
时间可能会比较长(3分钟左右)
[root@xuegod62 ~]# yum --enablerepo=elrepo-kernel install  kernel-lt-devel kernel-lt  -y
[root@xuegod64 ~]# yum --enablerepo=elrepo-kernel install  kernel-lt-devel kernel-lt  -y
查看安装的内核版本:
[root@xuegod63 yum.repos.d]# rpm -qa | grep kernel-lt
kernel-lt-5.4.127-1.el7.elrepo.x86_64
kernel-lt-devel-5.4.127-1.el7.elrepo.x86_64

配置使用新版本内核启动系统:

[root@xuegod63 ~]# grub2
阿里云 ceph yum 源 aliyun yum 源安装ceph集群[root@ceph16 yum.repos.d]# less ceph.repo[Ceph-SRPMS] name=Ceph SRPMS packages baseurl=https://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS/ enabled=1 gpgcheck=0 type=rpm-md [Ceph-... 阅读详情

相关推荐

ceph分布式存储(详解)小白必看

如果有 ceph.client.admin.keyring 正确。显示不安全,点高级,继续访问,进入登录页面,输入jx123 123.com(设置的账户密码)进入。这里我为了方便,把主机名改成了(kk1,kk2kk3kk4,分别对应centos1~4)扫描 echo '- - -' > host0/scan。扫面完成后格式化:mkfs.xfs /dev/sdb。配置: vim /etc/ntp.conf。

2302_77349861的博客 2162

安装、配置和启用Ceph iSCSI gateway

本文介绍如何安装、配置和启用Ceph iSCSI gateway 要求: 已经有一套Luminous的Ceph集群(Ceph 12.2.x) 建议使用 2-4 台机器作为 iSCSI gateway nodes,目的是为了 Ceph iSCSI gateway HA. 关于 iSCSI gateway node: 1> iSCSI gateway node 既是一个 iSCSI ...

FinixLei的专栏 (https://github.com/FinixLei) 6031

【信息科学与工程学】【产品体系】第二十七篇 存储系统系列一 01

存储系统是一个横跨单机引擎 → 分布式系统 → 硬件指令集 → 云上多地域的四层技术栈。下面按你给的格式,用一组相互关联的表把"各类特性组合"一次性铺开。版本号以各厂商当前 GA 版本为准,功能清单为生产级能力摘要。编号存储系统(厂商 / 内核 / 引擎 / 版本 / 功能清单)S01Ceph(Red Hat / 自研内核模块 / RADOS + BlueStore + RocksDB / Squid 19.x)/ 功能:RBD 块、RGW 对象(S3/Swift)、CephFS POSIX、副本+EC 混

weixin_49199313的博客 327

Ceph iSCSI Gateway:架构原理详解

文章目录为什么Ceph需要iSCSI?Ceph架构Ceph在应用场景的局限性局限有哪些?为什么存在局限?如何解决局限?什么是iSCSI?SCSI客户端-服务器架构SCSI约束iSCSI客户端-服务器架构iSCSI的优势Ceph iSCSI Gateway架构介绍客户端-服务器架构客户端(Initiator)服务端(Target)Target架构选择STGT(SCSI target)IET(iSCSI Enterprise Target )SCST(SCSI target subsystem)LIO + TC

easonwx的博客 6876

ceph-iscsi原理及部署

作者:吴业亮 博客:wuyeliang.blog.csdn.net 一.架构及方案 Ceph Block框架 2. Ceph iSCSI基本框架 iSCSI gateway的实现主要有TGT && LIO两种方式。 TGT TGT:Linux target framework,为创建、维护SCSI target 驱动(包括iSCSI、FC、SRP等)提供支持。 工作在...

本人任职于安超云技术架构部,拥有十余年云计算与AI经验。专注AI基础设施、分布式集群、高可用架构、虚拟化、存储、网络及数据库等领域。博客内容以学习笔记为主,力求准确,但个人能力所限,难免疏误。非常欢迎交流指正,期待与您共同探讨技术 9659

Ceph存储实战 - 块存储

此操作需另外准备一台服务器作为client 在client上的操作 配置阿里云ceph yum源 vim /etc/yum.repos.d/ceph.repo [ceph] name=ceph baseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/x86_64/ gpgcheck=0 priority=1 [ceph-noarch] name=cephnoarch baseurl=http://mirrors.aliyun.com/ceph/rp

mcc 342

Ceph最全详解—分布式存储

ceph中的块设备叫做rbd,是rados block device的简写,表示ceph的块设备。④MDS:ceph-mds代表Ceph文件系统存储元数据(即,Ceph块设备和Ceph对象存储不使用MDS)。③Ceph OSD:ceph-osd存储数据,处理数据复制、恢复、重新平衡,并通过检查其他Ceph OSD守护进程的心跳来为Ceph监视器和管理器提供一些监视信息。ceph提供存储时,需要使用存储池。这些值中的大部分是默认设置的。我们需要跟踪的每个对象的元数据的数量以及我们需要运行的进程的数量。

weixin_50988812的博客 5536

cephfs mysql_CephFS 内部实现(四):MDS是如何启动的?

MDS启动时要经历一系列状态装换,但mds的各个状态是如何产生、确定的?这些状态究竟在处理什么?本篇尝试以正常启动mds为背景解释这两个问题。MDS和Monitor的交互为提供FS服务,首先要ceph fs new命令创建filesystem,然后再启动mds进程。其中ceph fs new命令由MDSMonitor组件处理,将一个文件系统信息(底层pool是哪些,一些feature等)写入mon...

weixin_35723886的博客 423

NFS、Ceph、iSCSI 是常见的网络存储方式

使用场景推荐存储类型简单共享目录NFS高性能块存储(数据库)云平台对象/块/文件统一Ceph 全套多Pod共享可写目录云原生弹性动态供给如你有特定的使用场景(例如:Kubernetes 持久化存储、虚拟化平台、备份归档等),我可以进一步按场景给出选择建议或架构设计。需要深入对比某一项也可以告诉我。

喝醉酒的小白 1097

5大主流方案对比:MySQL千亿级数据线上平滑扩容实战

在项目初期,我们部署了三个数据库A、B、C,此时数据库的规模可以满足我们的业务需求。为了将数据做到平均分配,我们在Service服务层使用uid%3进行取模分片,从而将数据平均分配到三个数据库中。如图所示:后期随着用户量的增加,用户产生的数据信息被源源不断的添加到数据库中,最终达到数据库的最佳存储容量。如果此时继续向数据库中新增数据,会导致数据库的CRUD等基本操作变慢,进而影响整个服务的响应速度。

m0_71777195的博客 456

1000亿数据、30W级qps如何架构?来一个天花板案例

千万级数据,如何做系统架构?亿级数据,如何做做系统架构?千万级流量,如何做系统架构?亿级流量,如何做做系统架构?高并发系统,如何架构

架构师尼恩 3749

[转]iSCSI完全指南

引:在上世纪末、本世纪初,一提到SAN(Storage Area Network),我们立刻就会想到光纤通道(FC,Fiber Channel)技术,也即那时候的SAN多半单指FC而言。一直到iSCSI问世,为了方便区隔,业界才分别以FC-SAN及iSCSI-SAN的称呼加以分辨。   当时与SAN相对应的是在多用户网络环境中,采用文件协议(File Protocol)数据存取方式...

weixin_33911824的博客 423

分布式存储--ceph快速部署

分布式存储--ceph部署搭建

运维Carl的博客 1263

千亿级大数据如何存储的?

我们关注到他的问题描述,虽然整体数据量并不是很大,但从应用场景上来看,非常符合时序数据库(Time-Series Database)的使用场景。

涛思数据 1594

ESX 的 Ceph iSCSI GW 调整设置- ESX 的 Ceph iSCSI 网关设置

max_data_area_mb 选项控制每个映像可用于在 iSCSI 目标和 Ceph 集群之间传递 SCSI 命令数据的内存量(以兆字节为单位)。注意:使用 RHEL 7.5 及更早版本的内核时,会为每个 LUN 分配 max_data_area_mb MB。但是需要确保 max_data_area_mb(如果可用的话global_max_data_area_mb)足够高以cmdsn_depth执行命令数量。最佳情况下,这将与 ESX 将发送到 LUN 的命令数量乘以这些命令的 I/O 大小一样大。

小Eason哥 629

详解 | 大型分布式电商系统架构

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 8:55 更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2020 超神之路,很肝~中...

芋艿V 1022

Ceph 提供iSCSI存储

Tgtd+Ceph部署 一、yum安装tgt [root@c720181 ~]# yum --enablerepo=epel -y install scsi-target-utils libxslt (1)安装 scsi-target-utils 安装 scsi-target-utils # yum --enablerepo=epel -y install scsi-targe...

diyuan8262的专栏 950

CephFS 介绍及使用经验分享

Ceph架构介绍 NFS介绍 分布式文件系统比较 CephFS介绍 MDS介绍 5.1 单活MDS介绍 5.2 单活MDS高可用 CephFS遇到的部分问题 6.1 客户端缓存问题 6.2 务端缓存不释放 6.3 客户端夯住或者慢查询 6.4 客户端失去连接 6.5 主从切换问题 CephFS问题解决方案 7.1 服务端缓存警告问题 7.2 客户端夯住问题 7.2.1 MDS锁的问题 7.3 MDS主从切换问题 7.3.1 为什么mds切换耗时比较高? 7.3.2 MDS切换循环? 7.4 客户端失

underzerotem的博客 2145
上一篇: Linux云计算 --中国三大电商大厂都在使用的《 GitLab与Jenkins结合构建持续集成(CI)环境》是如何排列
下一篇: Linux云计算大神-带你安装MySQL数据库并去除安全隐患
极客事纪
博客等级 码龄5年 2086粉丝 126原创
评论 54
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值