Ceph 分布式文件系统 搭建及使用

一、Ceph 介绍

在当今数据爆炸式增长的时代,企业对于可靠、可扩展的存储解决方案的需求日益迫切。Ceph 作为一种开源的、可伸缩的分布式存储解决方案,正逐渐成为企业级存储领域的热门选择。Ceph是一种由Radicalbit公司开发的开源分布式存储系统,它通过将数据分布在一个或多个存储节点上,实现了高可靠性、高性能和高扩展性。

Ceph环境的核心组件包括:Ceph OSDCeph MonitorCeph MDSCEPH MGR

  • Ceph OSDs (Object Storage Daemons):OSDCeph集群中负责存储实际数据的守护进程。每个OSD守护进程负责管理一个存储设备(如硬盘或分区)。OSD负责处理数据复制、恢复、再平衡和数据的分发。在Ceph集群中,通常会有大量的OSD,它们分布在不同的服务器上,以确保高可用性和数据冗余。

  • Ceph Monitors (MONs):Monitor维护集群的状态信息,包括映射信息(如数据在哪些OSD上)、OSD状态、归置组(Placement Group, PG)状态等。Monitor负责在发生故障时,确保集群能够自动恢复。为了高可用性,通常会有多个Monitor实例,它们之间通过Paxos算法保持状态一致。

  • Ceph Metadata Server (MDS):MDS仅用于Ceph文件系统(CephFS)。它负责存储文件系统的元数据,如目录树、文件权限等信息。MDS能够提高文件系统的性能和可扩展性。在CephFS集群中,可以有一个或多个MDS实例,以支持大规模的并行文件系统访问。

  • Ceph Manager (MGR):Manager是一个相对较新的组件,它在Ceph Luminous版本(即12.0版本)中首次被引入。Manager提供了一个集中的服务,用于管理和监控Ceph集群的各个方面。它收集和存储集群的监控数据,提供报警和通知,管理服务,执行集群管理任务,生成集群报告,并提供一个REST API

Ceph支持多种存储类型,以满足不同应用场景的需求。主要包括:对象存储、块存储、文件系统存储

  • 对象存储Ceph提供了一个名为RADOSGWRADOS Gateway)的组件,它实现了符合Amazon S3Swift API的接口,允许用户通过HTTP/HTTPS协议存储和检索对象数据。对象存储适合于需要高可用性和可扩展性的应用,如备份、归档和多媒体内容分发。
  • 块存储Ceph的块存储服务称为RBDRADOS Block Device),它提供了一个高性能、可扩展的块存储解决方案。RBD可以在物理服务器或虚拟机中作为磁盘使用,支持快照、克隆和 thin-provisioning 等功能。块存储适用于需要持久化存储的应用,如虚拟机镜像和数据库。
  • 文件系统存储Ceph提供了一个名为CephFSPOSIX-compliant文件系统。CephFS允许用户将Ceph集群作为传统的网络文件系统挂载到服务器上,支持文件层次结构和权限管理。文件系统存储适用于需要共享文件存储的应用,如企业文件共享和协同工作环境。

在这里插入图片描述

下面开始在 3 台机器上,实验搭建 ceph 环境。

二、Ceph 集群环境搭建

部署规划:

ip别名角色
11.0.1.133node1osd、mds、mon、mgr、ceph-deploy
11.0.1.134node2osd、mds
11.0.1.135node3osd、mds

1. 修改 /etc/hosts 增加映射(3台机器)

vi /etc/hosts
11.0.1.133   node1
11.0.1.134   node2
11.0.1.135   node3

2. 关闭防火墙(3台机器)

 #关闭防火墙
systemctl stop firewalld.service  
#禁止防火墙开启自启
systemctl disable firewalld.service 

3. 配置ssh免密登录(node1)

#4个回车 生成公钥、私钥
ssh-keygen 
# 将公钥给三台主机
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

4. 集群时间同步(3台机器)

yum -y install ntpdate
ntpdate ntp4.aliyun.com

5. 添加 Ceph 阿里源(3台机器)

vi /etc/yum.repos.d/ceph.repo
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=0
priority=1[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=0
priority=1[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS
enabled=1
gpgcheck=0
priority=1

清除 yum 缓存

yum clean all

6. 安装 ceph-deploy 组件(node1)

yum -y install ceph-deploy

7. 初始化 ceph 集群信息(node1)

安装所需依赖:

yum install -y python-setuptools

创建配置目录

mkdir /etc/ceph	&& cd /etc/ceph

初始化

ceph-deploy new node1

在这里插入图片描述
修改 ceph.conf ,默认 osd 最少3个节点,这里可以改成2个,在 [global] 下新增如下配置:

osd_pool_default_size = 2

8. 在所有节点安装 ceph(node1)

该操作会自动使用 ssh 连接,需要确保配置好了免密登录。

ceph-deploy install node1 node2 node3

在这里插入图片描述

验证安装,查看 ceph 版本

ceph -v

在这里插入图片描述

9. 创建 mon 监控节点(node1)

ceph-deploy mon create-initial

在这里插入图片描述

将配置文件信息同步到所有节点

ceph-deploy admin node1 node2 node3

在这里插入图片描述

查看集群状态:

ceph -s

在这里插入图片描述
已经有一个 mon 了。

11. 部署 mgr(node1)

ceph-deploy mgr create node1

在这里插入图片描述
查看集群状态:

ceph -s

在这里插入图片描述

10. 部署osd服务(node1)

查看磁盘:

lsblk  

在这里插入图片描述
我这里使用未挂载的 /dev/sdb 磁盘

创建 osd

ceph-deploy osd create node1 --data /dev/sdb

在这里插入图片描述

再次查看磁盘:

在这里插入图片描述
已经被 ceph 使用。

同样,将 node2、node3 的磁盘创建 osd :

ceph-deploy osd create node2 --data /dev/sdb
ceph-deploy osd create node3 --data /dev/sdb

查看集群状态:

ceph -s

在这里插入图片描述

11. 部署 mds (node1)

ceph-deploy mds create node1 node2 node3

在这里插入图片描述

到此 Ceph 的集群就基本搭建完毕。

三、CephFS 创建 及 客户端挂载

1. 创建存储池

创建数据池 cephfs_data ,用户存储数据

ceph osd pool create cephfs_data 128

在这里插入图片描述

创建 cephfs_metadata ,用于存储元数据:

ceph osd pool create ceph_metadata 60

在这里插入图片描述

2. 创建 FS

ceph fs new cephfs cephfs_data ceph_metadata 

在这里插入图片描述

查看集群状态:

ceph -s

在这里插入图片描述

3 客户端挂载

首先在 node1 查看客户端的秘钥:

cat ceph.client.admin.keyring

在这里插入图片描述

下面在客户端安装依赖

yum -y install epel-release
yum -y install ceph-fuse
yum -y  install ceph-common

创建配置目录:

mkdir /etc/ceph && cd /etc/ceph

将上面查出来的 key 写入 admin.key 文件中:

echo 'AQDRNR5mkX0LCBAArZ4TgYuB19g1EfXK+aiktg==' >>admin.key

创建挂载目录:

mkdir /cephfs_data

挂载:

mount -t ceph node1:6789:/ /cephfs_data -o name=admin,secretfile=/etc/ceph/admin.key

在这里插入图片描述
查看挂载:

df -hT

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公网IP地址如何申请SSL证书?有免费的IP ssl吗?

如果用户没有域名或只有公网IP地址或者不方便使用域名,IP地址ssl证书这一特殊的证书可以为IP地址实现HTTPS的安全保护,提高网站数据传输的安全性。 IP地址申请SSL证书的基本步骤 IP ssl证书下载---注册填写230916https://www.joyssl.com/certificate/sel…

MySQL——运维

日志 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 查看日志位置: sho…

信息系统项目管理师0070:数据开发利用(5信息系统工程—5.2数据工程—5.2.4数据开发利用)

点击查看专栏目录 文章目录 5.2.4数据开发利用1.数据集成2.数据挖掘3.数据服务4.数据可视化5.信息检索5.2.4数据开发利用 数据只有得到充分的开发利用才能发挥出它的作用。通过数据集成、数据挖掘和数据服务(目录服务、查询服务、浏览和下载服务、数据分发服务)、数据可视化、信…

# 从浅入深 学习 SpringCloud 微服务架构(六)Feign(3)

从浅入深 学习 SpringCloud 微服务架构(六)Feign(3) 一、组件的使用方式总结 1、注册中心 1) Eureka 搭建注册中心 引入依赖 spring-cloud-starter-netflix-eureka-server。 配置 EurekaServer。 通过 EnableEure…

安全AI未来 | C3安全大会 · 2024,数据驱动 AI原生

数字为时代变革注入动力,AI为重塑社会文明带来原力。数智浪潮中,我们见证着时代跃迁的巨变,面临着适变、应变、驭变的挑战。 数字驱动、AI原生。数字的流动不仅承载着信息,更将激活未来的无限价值;AI,不…

基于OpenCV的人脸签到系统

效果图 目录文件 camerathread.h 功能实现全写在.h里了 class CameraThread : public QThread {Q_OBJECT public:CameraThread(){//打开序号为0的摄像头m_cap.open(0);if (!m_cap.isOpened()) {qDebug() << "Error: Cannot open camera";}//判断是否有文件,人脸…

restful请求风格的增删改查-----查询and添加

一、restful风格的介绍 restful也称之为REST ( Representational State Transfer )&#xff0c;可以将它理解为一种软件架构风格或设计风格&#xff0c;而不是一个标准。简单来说&#xff0c;restful风格就是把请求参数变成请求路径的一种风格。例如&#xff0c;传统的URL请求…

PHP项目搭建与启动

1、拉取项目 2、安装phpstudy 下载地址&#xff1a; Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn) 软件安装&#xff1a; Apache2.4.39、Nginx1.15.11、MySQL8.0.12、 composer2.5.8 添加伪静态 将下面代码写入到伪静态配置文本域框内&#xff1a; location ~* (ru…

多线程(安全 同步 线程池)

线程安全问题 多线程给我们的程序带来了很大性能上的提升&#xff0c;但是也可能引发线程安全问题线程安全问题指的是当多个线程同时操作同一个共享资源的时候&#xff0c;可能会出现的操作结果不符预期问题 取钱的线程安全问题 线程安全问题出现的原因&#xff1f; 存在多线…

创新科技赋能旅游服务:智慧文旅引领旅游发展新篇章,智能体验助力产业转型升级

随着科技的飞速发展和人们生活水平的提高&#xff0c;旅游业正迎来前所未有的发展机遇。创新科技在旅游服务领域的广泛应用&#xff0c;不仅提升了旅游体验的品质&#xff0c;也为旅游产业的转型升级注入了新的动力。智慧文旅作为旅游业与信息技术深度融合的产物&#xff0c;正…

matlab新手快速上手5(蚁群算法)

本文根据一个较为简单的蚁群算法框架详细分析蚁群算法的实现过程&#xff0c;对matlab新手友好&#xff0c;源码在文末给出。 蚁群算法简介&#xff1a; 蚁群算法是一种启发式优化算法&#xff0c;灵感来源于观察蚂蚁寻找食物的行为。在这个算法中&#xff0c;解决方案被看作是…

如何利用交易形态的失败进行现货黄金?

进行现货黄金理财&#xff0c;除了需要投资者对黄金投资有热情之外&#xff0c;有方法也是很重要的&#xff0c;光有热情而没有技术&#xff0c;我们的资金很可能会成为其他人的囊中之物。但如果有了现货黄金理财的技术&#xff0c;情况就可能扭转过来。下面我们就从买入的角度…

vue2实现字节流byte[]数组的图片预览

项目使用vantui框架&#xff0c;后端返回图片的字节流byte[]数组&#xff0c;在移动端实现预览&#xff0c;实现代码如下&#xff1a; <template><!-- 附件预览 --><div class"file-preview-wrap"><van-overlay :show"show"><…

【draw.io的使用心得介绍】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

14.MMD导入Blender及贴图步骤

MMD导出.abc文件 在MMD十周年桥版本导入一个人物模型&#xff0c;这里导入仆人 注意MMD的路径不能有中文 点击上面的MMDBridge 设定 第一个选择blender by 第二个选择实行 这里是选择帧数范围和帧率 帧率一定要是30&#xff0c;不然后面可能会出问题 点击文件导出视频…

机器学习 -- 分类问题

场景 探讨了一个回归任务——预测住房价格&#xff0c;用到了线性回归、决策树以及随机森林等各种算法。本次中我们将把注意力转向分类系统。我们曾经对MNIST进行了分类任务&#xff0c;这次我们重新回到这里&#xff0c;细致的再来一次。 开始 获取数据 Scikit-Learn提供了…

说说2024年暑期三下乡社会实践工作新闻投稿经验

作为一名在校大学生,我有幸自去年起参与学院组织的暑期大学生三下乡社会实践团活动。这项活动不仅是我们深入基层、服务社会的重要平台,也是展现当代大学生风采、传递青春正能量的有效途径。然而,如何将这些生动鲜活的实践故事、感人至深的瞬间传播出去,让更多人了解并受到启发…

抽象的代理模式1.0版本

前言&#xff1a; 在阅读Spring Security官方文档时&#xff0c;里面设计到了一种设计模式——代理模式Proxy 众里寻她千百度&#xff0c;蓦然回首&#xff0c;那人却在灯火阑珊处 开始 在之前的文章里陈述了一个观点——编程语言和语言没有区别 现看看我们日常生活中的代理…

数据结构篇其一---顺序表

前言 数据结构篇&#xff0d;&#xff0d;&#xff0d;C语言实现数据结构 &#xff23;语言的基础知识&#xff1a;数组 函数 结构体 指针 动态内存分配。 顺序表 从数据结构的角度看待数组 int arr[10]; 数组是一个基本的数据结构吗&#xff1f; 这里以一维数组为例。 …

OpenCV 实现霍夫圆变换

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV实现霍夫变换 下一篇:OpenCV 实现重新映射 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 HoughCircles()检测图像中的圆圈。 理论 Hough 圆变换 H…