从小白到大神之路之学习运维第46天---第三阶段----Ceph分布式存储系统(CentOS7.9版本下安装部署ceph)

news2024/10/5 23:27:11

第三阶段基础

时  间:2023年6月25日

参加人:全班人员

内  容:

Ceph分布式存储系统

目录

一、Ceph概述

二、Ceph 的工作原理和工作流程

三、Ceph 组件包括

1. RADOS

2. OSD

3. MON

4. MDS

5. RGW

6. RBD

7. CephFS

四、安装部署

五、部署示例

1. 准备环境

2. 创建 Ceph 集群

3. 部署 MON 节点

4. 部署 OSD 节点

5. 部署 MDS 节点

6. 检查集群状态

7. 继续添加 MON、OSD、MDS 节点(可选)


一、Ceph概述

是一个可扩展的分布式文件系统和对象存储系统,具有高可用性,可靠性和可扩展性,可用于存储海量数据。

Ceph的设计目标是为分布式存储提供一个简单的,易于管理的接口。它提供了强大的块存储,文件系统和对象存储功能。Ceph存储集群由许多服务器节点组成,每个节点都运行多个进程,这些进程参与文件和对象操作。

Ceph架构基于可扩展的 RADOS 分布式对象存储系统主要组件包括:

- Monitor(监视器):负责集群状态的维护,包括 OSD 状态、PG 状态、MON 状态等。

- OSD(对象存储守护进程):负责实际的数据存储以及管理数据重复、恢复、数据平衡。

- Metadata server(元数据服务器):在 CephFS 中使用,负责元数据的存储和检索。

- RADOS Gateway(对象存储网关):提供了对 Ceph 存储集群中的对象的 HTTP REST 接口和 S3 和 Swift 对象访问协议的支持。

Ceph 的优点之一是高可用性和故障转移能力它可以很容易地适应硬件故障或网络问题。而且 Ceph 支持在线扩容和更换硬件,这使得 Ceph 存储集群更具可扩展性。

此外,Ceph 的块存储、文件系统和对象存储功能都支持快照和克隆,支持多租户和多用户,这使得 Ceph 可以在各种应用场景下广泛使用。

总之,Ceph 是一个强大、可扩展、高可用的存储解决方案,是当前流行的物联网、云存储和大数据应用的首选技术之一。

二、Ceph 的工作原理和工作流程

1. 数据写入与副本:

在 Ceph 中,数据写入会被分为多个对象,并为每一份数据创建多个副本以确保数据可靠性和可用性。每个对象都是一个小的存储单元,其大小通常在 4KB 到 1MB 之间,每个对象都会被划分到一个或多个 PG(Placement Group)中。

2. Placement Groups(PG):

PG 是一组 OSD 的逻辑集合,每个 PG 由多个 OSD 组成,每个 PG 中都会包含对象的多个备份。PG 的数量是一个可配置的参数,它对 Ceph 的存储容量、性能和可用性等方面都有影响。在数据写入时,Ceph 会根据 PG 的状态来确定最佳的对象的放置位置,从而实现负载均衡和数据冗余

3. OSD 操作:

OSD 是 Ceph 存储集群中的最基本的存储单元,每个 OSD 都负责存储一部分对象,并且不断地监控副本的状态,保证数据的可靠性和可用性。在数据读取时,客户端会与 OSD 交互,OSD 会在可用的副本中选择一个并返回给客户端。

4. 节点间的通讯:

在 Ceph 存储集群中,MON(Monitor)和 MDS(Metadata Server)等节点也会在节点间传递数据和元数据,来实现负载均衡和数据冗余。节点间的数据交换和通讯通常基于 CRUSH 算法实现。

5. 客户端操作:

客户端通过 Ceph API 或者其他支持 Ceph 协议的网络存储设备进行数据读写,请求由客户端向 Ceph 集群的 OSD 发送请求,然后确定数据的位置,数据封装为对象的形式并在多个 OSD 上存储。

在读取时,Ceph 会从备份中选择一个进行读取。如果主副本出现故障,Ceph 会从备份中选择一个作为新的主副本。在数据写入、副本、以及读写等各个操作中,Ceph 会进行数据压缩和加密。

总之,Ceph 通过对象存储方式为分散在网络各个角落的数据提供了通用的快速、可靠的访问方式,强调数据的可靠性和可用性,提高了数据持久化和维护的数据一致性。

三、Ceph 组件包括

1. RADOS

RADOS(Reliable Autonomic Distributed Object Store)是 Ceph 存储系统的核心组件。它是一个可扩展、高性能、分布式的对象存储系统,为应用程序提供了完整的 API,支持块存储、文件系统和对象存储功能。RADOS 主要由 OSD 和 MON 两个子系统组成。

2. OSD

OSD(Object Storage Daemon)是 Ceph 存储系统中存储对象的核心组件,它负责管理物理磁盘、数据的复制和恢复、数据迁移和数据重分配等任务。在 Ceph 存储系统中,OSD 是最基本的存储单元,每个 OSD 都负责存储数据的一部分,并且不断地监测数据的状态,保证数据的可靠性和可用性。

3. MON

MON(Monitor)节点是 Ceph 存储系统中的监控节点,它负责维护集群状态、配置信息、数据位置、PG 和 OSD 的映射关系等信息,监测集群各个节点的运行状态,以便实现自动故障转移和负载均衡,确保系统的高可用性、高可靠性和高性能。

4. MDS

MDS(Metadata Server)节点是 Ceph 存储系统的元数据服务器,主要用于文件系统(CephFS)的元数据管理和查询。它负责维护文件系统的目录结构和文件属性等元数据信息,并且支持文件锁定、访问控制等功能,在分布式文件系统中实现了高性能和高可靠性。

5. RGW

RGW(RADOS Gateway)是 Ceph 存储系统的一个组件,为 Amazon S3 和 OpenStack Swift 提供了对象服务接口,支持与这些服务的互操作,同时也支持内部的 RESTful 语义的 API。

6. RBD

RBD(RADOS Block Device)是 Ceph 存储系统的块存储功能,它支持将 RADOS 对象映射为 Linux 块设备,并提供了可插拔的 QEMU、Libvirt 和 OpenStack 集成,允许将 Ceph 存储提供给云计算和虚拟机管理平台。

7. CephFS

CephFS 是 Ceph 存储系统的分布式文件系统,它支持标准的 POSIX 接口,并提供了高可用性、高扩展性、高性能和高可靠性的分布式共享文件系统。

    以上是 Ceph 的一些主要组件介绍,它们各自担任着不同的角色和职责,相互协作实现了 Ceph 存储系统的各种功能。

四、安装部署

(一)架构图

用三台 CentOS 7 服务器(IP 地址为 192.168.1.10、192.168.1.11 和 192.168.1.12)构建 Ceph 存储集群,以下是可能的架构示意图:

    这个架构图包括一个 Gateway 节点(192.168.1.10),两个 OSD 节点 OSD01 和 OSD02(192.168.1.11 和 192.168.1.12),以及一个 MON 节点(192.168.1.10)。每个 OSD 节点都包含一个 Ceph OSD。Gateway 与 MON 节点在同一服务器上,但在实际环境中,它们可以位于不同的服务器上。注意,除了 Gateway 以外,其他节点都是 OSD 节点和 MON 节点共存。

五、部署示例

以下是一个比较简单的使用 ceph-deploy 工具进行 Ceph 集群部署的示例步骤,假设我们使用 CentOS 7 系统部署 Ceph,且三台服务器的 IP 地址分别是 192.168.1.116192.168.1.122 和 192.168.1.124

1. 准备环境

在三台服务器上都执行以下操作:

1). 设置主机名

hostnamectl set-hostname huyang1 (或者huyang2或者huyang3)

2). 关闭防火墙

为了简化操作,先在所有节点关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

3). 安装 Ceph 包

在所有节点上安装 EPEL yum 仓库,然后安装 Ceph 包:

yum install

https://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm -y

yum  -y install epel-release

yum  -y update

yum  -y install ceph ceph-radosgw radosgw-agent

yum -y install ceph-deploy

4).配置免密登录

huyang1:ssh-keygen

huyang1:ssh-copy-id 192.168.1.116

huyang1:ssh-copy-id 192.168.1.122

huyang1:ssh-copy-id 192.168.1.124

5).添加sdb磁盘并格式化

huyang1:mkfs.xfs /dev/sdb

huyang2:mkfs.xfs /dev/sdb

huyang3:mkfs.xfs /dev/sdb

6).配置hosts解析文件

7).同步时区

yum -y install ntp

ntpdate ntp1.aliyun.com

2. 创建 Ceph 集群

在 Ceph 管理节点(如 192.168.1.116)上,创建一个 Ceph 集群,该集群的名称为 mycluster,使用 huyang1 作为 MON 节点。在 Ceph 管理节点(如 192.168.1.116)上执行以下命令:

ceph-deploy new huyang1

编辑配置文件(ceph.conf),配置集群选项和 OSD 存储路径: vim ceph.conf

修改 ceph.conf 配置文件如下:

[global]

fsid = YOUR_FSID_HERE

mon_initial_members = huyang1

public_network = 192.168.1.0/24

# 集群名

cluster = mycluster

# Ceph Monitor 节点

mon host = 192.168.1.116 192.168.1.122 192.168.1.124

# 文件存储部署路径

osd journal size = 1000

osd pool default size = 2

osd objectstore = filestore

filestore_xattr_use_omap = true

osd pool default pg num = 100

osd pool default pgp num = 100

3. 部署 MON 节点

在 Ceph 管理节点(如 192.168.1.116)上,使用 ceph-deploy 工具在 huyang1 上部署 MON 节点:

ceph-deploy install huyang1

ceph-deploy mon create huyang1

 

然后将 ceph1 的 monitor key 分发到所有节点:

ceph-deploy admin huyang1 huyang2 huyang3

4. 部署 OSD 节点

在 OSD 节点(如 192.168.1.122 和 192.168.1.124)上执行以下命令:

ceph-deploy install  huyang2    huyang3

使用以下命令将所有节点创建 OSD:

ceph-deploy disk zap huyang2:/dev/sdb

ceph-deploy disk prepare huyang2:/dev/sdb

ceph-deploy osd create huyang2:/dev/sdb

ceph-deploy disk zap huyang3.com:/dev/sdb

ceph-deploy disk prepare huyang3:/dev/sdb

ceph-deploy osd create huyang3:/dev/sdb

5. 部署 MDS 节点

在 MDS 节点(如 192.168.1.116)上执行以下命令:

ceph-deploy mds create huyang1

6. 检查集群状态

在 Ceph 管理节点(如 192.168.1.116)上执行以下命令,检查 Ceph 集群的状态:

ceph -s

 

7. 继续添加 MON、OSD、MDS 节点(可选)

如果需要增加 MON、OSD 或 MDS 节点,可以将新节点添加进 hosts 文件,然后使用 ceph-deploy 工具进行操作。

以上是一个简单的 Ceph

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文心一言 VS 讯飞星火 VS chatgpt (47)-- 算法导论6.1 5题

五、一个已排好序的数组是一个最小堆吗? 文心一言: 一个已排好序的数组不一定是一个最小堆。最小堆是一种特殊的二叉树,它满足以下性质:对于任意节点 x,其父节点 y 的值都小于等于 x 的值。而一个已排好序的数组只是一个有序数…

【FFmpeg实战】压缩数据AVPacket解析

因为FFmpeg更新的比较快,API也会跟着有所变动,所以声明一下,本文使用的FFmpeg版本为V3.3.5。 1.AVPacket简介 AVPacket是FFmpeg中很重要的一个数据结构,它保存了解复用(demuxer)之后,解码(dec…

TS格式视频的使用

什么是TS文件格式 TS(Transport Stream,传输流)是一种封装的格式,它的全称为MPEG2-TS。MPEG2-TS是一种标准数据容器格式,传输与存储音视频、节目与系统信息协议数据,主要应用于数字广播系统,例…

在加密数据时,如何选择合适的算法?

我们将分解两种主要类型的加密 - 对称和非对称 - 然后深入研究 5 种最常用的加密算法列表,以前所未有的方式简化它们 加密经常被指责为政治实体隐藏恐怖活动,是始终成为头条新闻的网络安全话题之一。任何对不同类型的加密有充分了解的人都可能会觉得对这…

内网穿透工具cpolar——将内网站点发布至公网、远程连接公司内网电脑

在现代互联的时代,我们经常需要将局域网中的服务器或提供给外部网络进行访问。然而,由于内网通常使用私有IP地址,在没有合适的配置和设置的情况下,对外部网络是不可见的。这就引出了内网穿透技术,它允许我们在不暴露真…

从三个角度分析B端产品帮助中心的发展趋势和创新思路

随着企业级(B端)产品在市场上的快速增长,优秀的帮助中心对于提升用户体验和满意度变得尤为重要。本文将从三个维度讨论B端产品帮助中心的发展趋势和创新思路,以帮助企业构建更优秀的帮助体系。 个性化化的帮助体验 在B端产品帮助…

基于瑞芯微camera学习原创文章汇总pdf分享给大家

前面一段时间基于瑞芯微3568平台编写了camera系列文章, 一共12篇,目前更新完毕。 《瑞芯微文章合集》 camera系列文章编写前后一共花费2个月时间, 期间查阅了很多资料,做了很多实验, 根据自己的理解, …

实训笔记6.25

实训笔记6.25 6.25一、座右铭二、知识回顾2.1 JavaSE2.1.1 基本语法2.1.2 数组2.1.3 JVM内存2.1.4 面向对象2.1.5 Java常用类2.1.6 Java异常机制2.1.7 Java泛型2.1.8 Java集合2.1.9 JavaIO流2.1.10 Java注解2.1.11 Java反射机制2.1.12 Java多线程2.1.13 Java网络编程 三、Java多…

利用SpringBoot和javafx进行桌面开发

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 众所周知,SpringBoot是一款强大的Javaweb开发程序,这得益于其构造了一个Spring容器,然后通过依赖注入和控制反转,维护起一套Java对象和实例的管理机制&…

Chatgpt三大新功能曝光:记住你是谁/文件上传/切换工作区

今日,一张神秘的截图,曝光了chatgpt还没发布的三个新功能: 除截图外,其对应的源代码也被扒了出来,甚至还有人为此建立了GitHub仓库,以此来追踪代码的变化情况。 根据观察,相关部分代码正在更新…

制作看大片一样的推拉镜头效果,刚一个月AI绘图神器 Midjourney 又又更新了

5.1 版本刚更新一个月,官方又宣布 5.2 版本更新了:改进的美观性、连贯性、更好的文本理解、更清晰的图像、更高的变化模式、缩小绘画,以及用于分析提示符号的新命令 /short 命令‍‍‍‍‍‍‍‍‍ 视觉效果最神奇的功能要数 “Zoom Out” 缩…

使用Rabbitmq死信队列解锁库存

一、库存解锁的场景 RabbitMQ库存解锁的场景有很多,以下是一些常见的场景: 订单取消和订单回滚。下订单成功,订单过期没有支付被系统自动取消、被用户手动取消。都要解锁库存。 下订单成功,库存锁定成功,接下来的业务…

《面试1v1》Redis持久化

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

css基础知识七:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

一、背景 在开发中经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素 居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成…

3.用python写网络爬虫,下载缓存

目录 3.1 为链接爬虫添加缓存支持 3.2 磁盘缓存 3.2.1 实现 3.2.2缓存测试 3.2.3节省磁盘空间 3.2.4 清理过期数据 3.2.5缺点 3.3 数据库缓存 3.3.1 NoSQL 是什么 3.3.2 安装 MangoDB 3.3.3 MongoDB 概述 3.3.4 MongoDB 缓存实现 3.3.5 压缩 3.3.6 缓存测试 3.4 本章…

变分自编码(VAE,Variational Auto-Encoder)知识点速览

目录 1. 主要思想 2. 训练和推理过程 3. 编码器和解码器的结构 4. 主要用途 5. 相较于 auto-encoder 的优劣 1. 主要思想 变分自编码器(Variational AutoEncoder,简称VAE)是一种生成模型,它通过对数据的隐含表示(l…

红日靶场(一)外网到内网速通

红日靶场(一) 下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ win7:双网卡机器 win2003:域内机器 win2008域控 web阶段 访问目标机器 先进行一波信息收集,扫一下端口和目录 扫到phpmyadmin,还有一堆…

韶音和cleer、南卡对比哪个好?韶音、南卡、Cleer开放式耳机横评

现如今,不管是通勤路上还是在家休闲娱乐,又或者是运动时,经常能看见很多人佩戴着耳机听音乐,但是,经常佩戴耳机听音乐的小伙伴都知道,入耳式耳机佩戴久了,容易造成耳部酸痛感、胀痛感&#xff0…

Android 安卓开发语言kotlin与Java该如何选择

一、介绍 如今在Android开发中,应用层开发语言主要是Java和Kotlin,Kotlin是后来加入的,主导的语言还是Java。kotlin的加入仿佛让会kotlin语言的开发者更屌一些,其实不然。 有人说kotlin的引入是解决开发者复杂的逻辑,并…

【VSCode】设置关键字高亮的插件 | Highlight Word

目录 一、概述二、安装 highlight-words 插件三、配置 highlight-words 插件3.1 默认配置3.2 修改 settings.json 配置文件 四、设置高亮快捷键F8五、效果演示 一、概述 本文主要介绍在 VSCode 看代码时,怎样使某个单词高亮显示,主要通过以下三步实现&am…