当前位置:首页 » 服务存储 » 红帽ceph存储架构与管理
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

红帽ceph存储架构与管理

发布时间: 2022-07-29 00:13:42

㈠ ceph这款云存储技术怎么样

Ceph是一套高性能,易扩展的,无单点的分布式文件存储系统,基于Sage A. Weil的论文开发,主要提供以下三个存储服务:
对象存储(Object Storage),既可以通过使用Ceph的库,利用C, C++, Java, Python, PHP代码,也可以通过Restful网关以对象的形式访问或存储数据,兼容亚马逊的S3和OpenStack的Swift。
块存储(Block Storage),作为块设备像硬盘一样直接挂载。
文件系统(File System) ,如同网络文件系统一样挂载,兼容POSIX接口。

Ceph的结构,对象存储由LIBRADOS和RADOSGW提供,块存储由RBD提供,文件系统由CEPH FS提供,而RADOSGW, RBD, CEPH FS均需要调用LIBRADOS的接口,而最终都是以对象的形式存储于RADOS里。

Ceph集群的节点有三种角色:
Monitor,监控集群的健康状况,向客户端发送最新的CRUSH map(含有当前网络的拓扑结构)
OSD,维护节点上的对象,响应客户端请求,与其他OSD节点同步
MDS,提供文件的Metadata,如果不使用CephFS可以不安装

㈡ 如何基于 Ceph 构建高性能块存储服务

Ceph是一个分布式存储系统,支持对象文件快接口,设计目标是:
• 所有组件横向扩展
• 没有单点故障
• 可以在普通厂商硬件使用
• 所有机制都能自我管理
• 开源
分布式存储的应用场景相对于其存储接口,现在流行分为三种:
1.对象存储: 也就是通常意义的键值存储,其接口就是简单的GET,PUT,DEL和其他扩展,如七牛、又拍,Swift,S3等。
2.块存储: 这种接口通常以QEMUDriver或者KernelMole的方式存在,这种接口需要实现Linux的Block Device的接口或者QEMU提供的Block Driver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RDB(RDB是Ceph面向块存储的接口)。
3、文件存储: 通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。
提到存储的种类就不得不提到另外一个话题:存储不能做统一化吗?因为必须要有多个不同的软件栈去管理不同的存储设备:SSD,SATA等。
Ceph就此提出了不同观点,RADOS提供了基础的存储设备的管理、数据控制流访问的管理,提供的是一个可靠持久的数据存储平台,基于其上,我们可以实现多个不同的接口户来实现面向不同需求的对接,比如对象存储我们有一个单独的库实现去满足不同的存储需要,比如我们块存储是通过RDP来实现。
统一存储并不意味着所有存储都的同一个接口,同一个实现,同一个软件栈,它其实只是使用了同一个设备管理的生命周期和数据访问的有效控制,它提供了一个相对合理,非常适合运维的,利于成本,利于软件可靠性控制的的机制去保证我们的存储的可靠。
举一个例子,大部分存储厂商甚至网络厂商都有一个自己的核心软件栈,如文件系内核。基于其上演化出各种不同的产品线。如果厂商要追求各个产品线的极致是不是就应该每个产品完全独立来追求极致,但事实上一个核心的底层技术栈需要高质量的代码、完备的测试和长期的使用。在Ceph这里,一个分布式系统的并发IO、分布式恢复、数据端到端校验等等关键实现是唯一实现,成熟的系统系统在这些实现上需要经过一定量级和时间的考验,这才是Ceph所谓的统一存储,而不是其他的接口堆叠式开发。
【Ceph和其他开源分布式存储、其他商用存储的区别之处在哪?】
众所周知,很多传统厂商如日立、富士通等存储大厂也采用了Ceph作为它们存储硬件的载体,Ceph能提供企业级的存储服务一定有它的优势,才能让传统的存储厂商弃而采用开源的存储方案。
1、中心化系统我们认为它在数据控制系统方面做的较好,在迁移运维方面提供较好的实现,但却有元数据的瓶颈。在访问数据时需要经过元数据服务器的查询再去寻找相应的数据服务器会在大规模扩展时遇到性能瓶颈问题。
2、全分布式系统虽然提供较好的数据访问能力,能高效处理客户端的LO请求,但是却没有提供一个非常好的数据控制的实现,比如故障处理能力不足,数据恢复的困难,如果跳出中心化的元数据存储系统它没办法做到强一致性的数据恢复。
弹性的数据分布策略和物理拓扑输入实现了高可用性和高持久性,Ceph的高性能重构还体现在利用CRush算法对数进行约束,避免数据分布到所有的集群的一个节点上,利用Ceph设计并提供的一个由CRush算法来支持一个高自由化的存储集群的设计,实现高可靠性,高持久性,高性能。

㈢ Ceph的系统架构

Ceph 生态系统架构可以划分为四部分:
1. Clients:客户端(数据用户)
2. cmds:Metadata server cluster,元数据服务器(缓存和同步分布式元数据)
3. cosd:Object storage cluster,对象存储集群(将数据和元数据作为对象存储,执行其他关键职能)
4. cmon:Cluster monitors,集群监视器(执行监视功能)
图1。 Ceph的生态系统的概念架构

㈣ Linux里面ceph是什么

Linux里面ceph
Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ceph的块设备存储,比如在OpenStack项目里,Ceph的块设备存储可以对接OpenStack的cinder后端存储、Glance的镜像存储和虚拟机的数据存储,比较直观的是Ceph集群可以提供一个raw格式的块存储来作为虚拟机实例的硬盘。
Ceph相比其它存储的优势点在于它不单单是存储,同时还充分利用了存储节点上的计算能力,在存储每一个数据时,都会通过计算得出该数据存储的位置,尽量将数据分布均衡,同时由于Ceph的良好设计,采用了CRUSH算法、HASH环等方法,使得它不存在传统的单点故障的问题,且随着规模的扩大性能并不会受到影响。

㈤ 如何在CentOS 7.0上配置Ceph存储

Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台。当你计划构建一个云时,你首先需要决定如何实现你的存储。开源的 Ceph 是红帽原生技术之一,它基于称为 RADOS 的对象存储系统,用一组网关 API 表示块、文件、和对象模式中的数据。由于它自身开源的特性,这种便携存储平台能在公有云和私有云上安装和使用。Ceph 集群的拓扑结构是按照备份和信息分布设计的,这种内在设计能提供数据完整性。它的设计目标就是容错、通过正确配置能运行于商业硬件和一些更高级的系统。

Ceph 能在任何 Linux 发行版上安装,但为了能正确运行,它需要最近的内核以及其它最新的库。在这篇指南中,我们会使用最小化安装的 CentOS-7.0。

系统资源
**CEPH-STORAGE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.136.163
FQDN: ceph-storage.linoxide.com
**CEPH-NODE**
OS:CentOSLinux7(Core)
RAM:1 GB
CPU:1 CPU
DISK:20
Network:45.79.171.138
FQDN: ceph-node.linoxide.com

安装前的配置
在安装 Ceph 存储之前,我们要在每个节点上完成一些步骤。第一件事情就是确保每个节点的网络已经配置好并且能相互访问。
配置 Hosts
要在每个节点上配置 hosts 条目,要像下面这样打开默认的 hosts 配置文件(LCTT 译注:或者做相应的 DNS 解析)。
#vi/etc/hosts
45.79.136.163 ceph-storage ceph-storage.linoxide.com
45.79.171.138 ceph-node ceph-node.linoxide.com
安装 VMware 工具
工作环境是 VMWare 虚拟环境时,推荐你安装它的 open VM 工具。你可以使用下面的命令安装。
#yum install -y open-vm-tools
配置防火墙
如果你正在使用启用了防火墙的限制性环境,确保在你的 Ceph 存储管理节点和客户端节点中开放了以下的端口。
你必须在你的 Admin Calamari 节点开放 80、2003、以及4505-4506 端口,并且允许通过 80 号端口访问到 Ceph 或 Calamari 管理节点,以便你网络中的客户端能访问 Calamari web 用户界面。
你可以使用下面的命令在 CentOS 7 中启动并启用防火墙。
#systemctl start firewalld
#systemctl enable firewalld
运行以下命令使 Admin Calamari 节点开放上面提到的端口。
# firewall-cmd --zone=public--add-port=80/tcp --permanent
# firewall-cmd --zone=public--add-port=2003/tcp --permanent
# firewall-cmd --zone=public--add-port=4505-4506/tcp --permanent
# firewall-cmd --reload
在 Ceph Monitor 节点,你要在防火墙中允许通过以下端口。
# firewall-cmd --zone=public--add-port=6789/tcp --permanent
然后允许以下默认端口列表,以便能和客户端以及监控节点交互,并发送数据到其它 OSD。
# firewall-cmd --zone=public--add-port=6800-7300/tcp --permanent
如果你工作在非生产环境,建议你停用防火墙以及 SELinux 设置,在我们的测试环境中我们会停用防火墙以及 SELinux。
#systemctl stop firewalld
#systemctl disable firewalld
系统升级
现在升级你的系统并重启使所需更改生效。
#yum update
#shutdown-r 0

设置 Ceph 用户
现在我们会新建一个单独的 sudo 用户用于在每个节点安装 ceph-deploy工具,并允许该用户无密码访问每个节点,因为它需要在 Ceph 节点上安装软件和配置文件而不会有输入密码提示。
运行下面的命令在 ceph-storage 主机上新建有独立 home 目录的新用户。
[root@ceph-storage ~]#useradd-d /home/ceph -m ceph
[root@ceph-storage ~]#passwd ceph
节点中新建的每个用户都要有 sudo 权限,你可以使用下面展示的命令赋予 sudo 权限。
[root@ceph-storage ~]#echo"ceph ALL = (root) NOPASSWD:ALL"|sudotee/etc/sudoers.d/ceph
ceph ALL =(root) NOPASSWD:ALL
[root@ceph-storage ~]#sudochmod0440/etc/sudoers.d/ceph

设置 SSH 密钥
现在我们会在 Ceph 管理节点生成 ssh 密钥并把密钥复制到每个 Ceph 集群节点。
在 ceph-node 运行下面的命令复制它的 ssh 密钥到 ceph-storage。
[root@ceph-node ~]#ssh-keygen
Generatingpublic/private rsa key pair.
Enterfilein which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (emptyforno passphrase):
Enter same passphrase again:
Your identification has been saved in/root/.ssh/id_rsa.
Yourpublic key has been saved in/root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:*:*:*:*:*:*:*:*:*:c9 root@ceph-node
The key's randomart image is:
+--[ RSA 2048]----+
[root@ceph-node ~]#ssh--id ceph@ceph-storage

SSH key

配置 PID 数目
要配置 PID 数目的值,我们会使用下面的命令检查默认的内核值。默认情况下,是一个小的最大线程数 32768。
如下图所示通过编辑系统配置文件配置该值为一个更大的数。

更改 PID 值

配置管理节点服务器
配置并验证了所有网络后,我们现在使用 ceph 用户安装 ceph-deploy。通过打开文件检查 hosts 条目(LCTT 译注:你也可以用 DNS 解析来完成)。
#vim/etc/hosts
ceph-storage 45.79.136.163
ceph-node 45.79.171.138
运行下面的命令添加它的库。
# rpm -Uhv http://ceph.com/rpm-giant/el7/noarch/ceph-release-1-0.el7.noarch.rpm

添加 Ceph 仓仓库
或者创建一个新文件并更新 Ceph 库参数,别忘了替换你当前的 Release 和版本号。
[root@ceph-storage ~]#vi/etc/yum.repos.d/ceph.repo
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
之后更新你的系统并安装 ceph-deploy 软件包。

安装 ceph-deploy 软件包
我们运行下面的命令以及 ceph-deploy 安装命令来更新系统以及最新的 ceph 库和其它软件包。
#yum update -y &&yum install ceph-deploy -y

配置集群
使用下面的命令在 ceph 管理节点上新建一个目录并进入新目录,用于收集所有输出文件和日志。
#mkdir~/ceph-cluster
#cd~/ceph-cluster
# ceph-deploy new storage

设置 ceph 集群
如果成功执行了上面的命令,你会看到它新建了配置文件。
现在配置 Ceph 默认的配置文件,用任意编辑器打开它并在会影响你公共网络的 global 参数下面添加以下两行。
#vim ceph.conf
osd pool defaultsize=1
public network =45.79.0.0/16

安装 Ceph
现在我们准备在和 Ceph 集群关联的每个节点上安装 Ceph。我们使用下面的命令在 ceph-storage 和 ceph-node 上安装 Ceph。
# ceph-deploy install ceph-node ceph-storage

安装 ceph
处理所有所需仓库和安装所需软件包会需要一些时间。
当两个节点上的 ceph 安装过程都完成后,我们下一步会通过在相同节点上运行以下命令创建监视器并收集密钥。
# ceph-deploy mon create-initial

Ceph 初始化监视器

设置 OSD 和 OSD 守护进程
现在我们会设置磁盘存储,首先运行下面的命令列出你所有可用的磁盘。
# ceph-deploy disk list ceph-storage
结果中会列出你存储节点中使用的磁盘,你会用它们来创建 OSD。让我们运行以下命令,请使用你的磁盘名称。
# ceph-deploy disk zap storage:sda
# ceph-deploy disk zap storage:sdb
为了最后完成 OSD 配置,运行下面的命令配置日志磁盘以及数据磁盘。
# ceph-deploy osd prepare storage:sdb:/dev/sda
# ceph-deploy osd activate storage:/dev/sdb1:/dev/sda1
你需要在所有节点上运行相同的命令,它会清除你磁盘上的所有东西。之后为了集群能运转起来,我们需要使用以下命令从 ceph 管理节点复制不同的密钥和配置文件到所有相关节点。
# ceph-deploy admin ceph-node ceph-storage

测试 Ceph
我们快完成了 Ceph 集群设置,让我们在 ceph 管理节点上运行下面的命令检查正在运行的 ceph 状态。
# ceph status
# ceph health
HEALTH_OK
如果你在 ceph status 中没有看到任何错误信息,就意味着你成功地在 CentOS 7 上安装了 ceph 存储集群。

㈥ 如何基于Ceph打造一款高可靠的块存储系统

Ceph布式存储系统支持象文件快接口设计目标:
? 所组件横向扩展
? 没单点故障
? 普通厂商硬件使用
? 所机制都能自我管理
? 源
布式存储应用场景相于其存储接口现流行三种:
1.象存储: 通意义键值存储其接口简单GET,PUTDEL其扩展七牛、拍SwiftS3等
2.块存储: 种接口通QEMUDriver或者KernelMole式存种接口需要实现LinuxBlock Device接口或者QEMU提供Block Driver接口SheepdogAWSEBS青云云硬盘阿云盘古系统CephRDB(RDBCeph面向块存储接口)
3、文件存储: 通意义支持POSIX接口跟传统文件系统Ext4类型区别于布式存储提供并行化能力CephCephFS(CephFSCeph面向文件存储接口)候GFSHDFS种非POSIX接口类文件存储接口归入类
提存储种类提另外题:存储能做统化必须要同软件栈管理同存储设备:SSDSATA等
Ceph提同观点RADOS提供基础存储设备管理、数据控制流访问管理提供靠持久数据存储平台基于其我实现同接口户实现面向同需求接比象存储我单独库实现满足同存储需要比我块存储通RDP实现
统存储并意味着所存储都同接口同实现同软件栈其实使用同设备管理命周期数据访问效控制提供相合理非适合运维利于本利于软件靠性控制机制保证我存储靠
举例部存储厂商甚至网络厂商都自核软件栈文件系内核基于其演化各种同产品线厂商要追求各产品线极致应该每产品完全独立追求极致事实核底层技术栈需要高质量代码、完备测试期使用Ceph布式系统并发IO、布式恢复、数据端端校验等等关键实现唯实现熟系统系统些实现需要经定量级间考验才Ceph所谓统存储其接口堆叠式发
【Ceph其源布式存储、其商用存储区别处哪】
众所周知传统厂商立、富士通等存储厂采用Ceph作存储硬件载体Ceph能提供企业级存储服务定优势才能让传统存储厂商弃采用源存储案
1、化系统我认数据控制系统面做较迁移运维面提供较实现却元数据瓶颈访问数据需要经元数据服务器查询再寻找相应数据服务器规模扩展遇性能瓶颈问题
2、全布式系统虽提供较数据访问能力能高效处理客户端LO请求却没提供非数据控制实现比故障处理能力足数据恢复困难跳化元数据存储系统没办做强致性数据恢复
弹性数据布策略物理拓扑输入实现高用性高持久性Ceph高性能重构体现利用CRush算数进行约束避免数据布所集群节点利用Ceph设计并提供由CRush算支持高自由化存储集群设计实现高靠性高持久性高性能

㈦ 为什么要安装centos 7 ceph

Ceph 是一个将数据存储在单一分布式计算机集群上的开源软件平台。当你计划构建一个云时,你首先需要决定如何实现你的存储。开源的 Ceph 是红帽原生技术之一,它基于称为 RADOS 的对象存储系统,用一组网关 API 表示块、文件、和对象模式中的数据...

如何配置Ceph对象存储作为KVM虚拟机外部存储

Ceph对象存储只有在特定环境中才能够发挥最佳性能表现。这款产品在研发过程中考虑到云环境相关需求,且价格适中,能够轻松扩展成PB级存储。
但是部署Ceph并不简单,IT员工必须对产品进行充分了解。
相比于现在大部分数据中心使用的传统SAN产品,Ceph能够大幅度降低存储成本。这使得Ceph成为一种适用于大规模环境的理想存储产品,但是并不适用于只需要几台虚拟机的小型企业。

㈨ ceph为什么走容器

因为Ceph的大规模分布式架构原因,其IO路径过长,使得其性能一直被诟病。


容器的堆栈,Ceph很大的应用场景是在OpenStack,Ceph伴随着OpenStack一起火起来,在传统的存储领域我们逐渐开始使用Ceph。


随着容器软件栈的重要性提升,Ceph逐渐也在容器中做一些涉猎。


以红帽的角度来讲,之前基于面向容器存储的解决方案,今后会推出基于Ceph的解决方案,面向未来无论是容器还是虚机,基础架构平台会通过Ceph成为整体统一的软件。



在实际的应用场景里,除了容器,虚拟机在很多面向传统应用还是比较多的,在统一的调度层进行Kubernetes实现。


OpenStack的存储一直都是通过Ceph作为底层存储,接下来Ceph也会作为Kubernetes的底层存储给整个平台使用。


去年在北京有一个国外的同事介绍Rook相关的内容,今天我把进展跟大家分享系一下。如果大家不了解Rook,我也会简单介绍一下Rook是什么。


Rook是一个控制面,Ceph有很多的问题,我特别注意最后一页的问题,比如说有些跟硬件相关或是跟运维相关,在面向Kubernetes的平台上,在容器出现的时候,最早Docker出现可以简化运维,可以把应用和应用的配置打包放在容器里简化运维。


Docker简化运维后来逐渐出现了Kubernetes,容器部署、上线方便。如何管理大规模的平台,Kubernetes逐渐需要持久化的存储,容器是完全的分布式无状态的,实际上我们会发现做到这点太难了,特别是对于复杂的逻辑、传统的应用,没法做到真正的分布式的状态,所以需要持久化的存储。



㈩ ceph分布式存储为啥

Ceph是根据加州大学Santa Cruz分校的Sage Weil的博士论文所设计开发的新一代自由软件分布式文件系统,其设计目标是良好的可扩展性(PB级别以上)、高性能及高可靠性

Ceph其命名和UCSC(Ceph 的诞生地)的吉祥物有关,这个吉祥物是“Sammy”,一个香蕉色的蛞蝓,就是头足类中无壳的软体动物。这些有多触角的头足类动物,是对一个分布式文件系统高度并行的形象比喻。

其设计遵循了三个原则:数据与元数据的分离,动态的分布式的元数据管理,可靠统一的分布式对象存储机制。本文将从Ceph的架构出发,综合性的介绍Ceph分布式文件系统特点及其实现方式。

更多技术细节参考网页链接