当前位置: 首页 > news >正文

ceph分布式存储

目录

一、概述

1、特点

2、组件

3、架构图

二、分布式部署

1、环境拓扑

2、实验准备

         3、ceph安装

安装 

初始化monitor

同步管理信息

安装mgr(管理守护进程)

安装rgw

创建mds服务

OSD安装

4、dashboard安装

开启dashboard模块

生成签名

创建目录

启动服务

设置访问地址与端口

关闭https

访问

5、ceph文件系统创建

创建存储池

查看存储池

创建文件系统

查看文件系统

查看mds状态

三、在客户端挂载


一、概述

ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储

1、特点


    1. 统一存储
        虽然 ceph 底层是一个分布式文件系统,但由于在上层开发了支持对象和块的接口。所以在开源存储软件中,能够一统江湖。至于能不能千秋万代,就不知了。
    2. 高扩展性
        扩容方便、容量大。能够管理上千台服务器、EB 级的容量。
    3. 可靠性强
        支持多份强一致性副本,EC。副本能够垮主机、机架、机房、数据中心存放。所以安全可靠。存储节点可以自动管理、自动修复。无单点故障,容错性强。
    4. 高性能
        因为是多个副本,因此在读写操作时候能够做到高度并行化。理论上,节点越多,整个集群的 IOPS和吞吐量越高。另外一点 ceph 客户端读写数据直接与存储设备(osd) 交互。

2、组件

1. Monitor
    一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
2. OSD
    OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。
3. MDS
    MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
4. Object
    Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。
5. PG
    PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。
6. RADOS
    RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。
7. Libradio
    Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。
8. CRUSH
    CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
9. RBD
    RBD全称RADOS block device,是Ceph对外提供的块设备服务。
10. RGW
    RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
11. CephFS
    CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

3、架构图


    1:文件上传,先将文件切片成N个object(如果开启了cephFS,可以使用MDS缓存)
    2:切片后的文件object会存入到Ceph中
    3:文件存储前,会经过CRUSH算法,计算当前文件存储归结于哪个PG
    4:PG是逻辑概念上对文件存储范围划分的索引
    5:根据PG索引将文件存储到指定服务器的OSD中

二、分布式部署

1、环境拓扑
实验拓扑
 centos1 :192.168.115.100  monitor  osd
centos2 :192.168.115.101   osd 
centos3 :192.168.115.102    osd
centos4:192.168.115.103  osd   Client

 

2、实验准备
##在所有的主机上进行如下操作systemctl stop firewalld.service 
systemctl disable firewalld.service systemctl stop NetworkManager
systemctl disable NetworkManagersystemctl restart network
systemctl stop NetworkManagersetenforce 0 sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_configsystemctl restart sshd##分别修改主机名
hostnamectl set-hostname centos1 && bash
hostnamectl set-hostname centos2 && bash
hostnamectl set-hostname centos3 && bash
hostnamectl set-hostname centos4 && bash###每台主机修改hosts文件
vim /etc/hosts
192.168.115.100	centos1###添加磁盘
echo "- - -" > /sys/class/scsi_host/host0/scanfor i in 101 102;do ssh 192.168.115.$i echo "- - -" > /sys/class/scsi_host/host0/scan && lsblk;done###格式化
mkfs.xfs /dev/sdb192.168.115.101	centos2
192.168.115.102	centos3
192.168.115.103	centos4###每台主机配置ssh免密#centos1ssh-keygenfor i in 100 101 102 103; do ssh-copy-id root@192.168.115.$i;done
#centos2ssh-keygenfor i in 100 101 102 103; do ssh-copy-id root@192.168.115.$i;done
#centos3ssh-keygenfor i in 100 101 102 103; do ssh-copy-id root@192.168.115.$i;done
#centos4ssh-keygenfor i in 100 101 102 103; do ssh-copy-id root@192.168.115.$i;done##########在centos1上设置同步时间
yum install -y ntp
vim /etc/ntp.conf
注释
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
插入
server 127.127.1.0           #定义时间服务器
fudge 127.127.1.0 stratum 8  #定义时间层次
############
启动
systemctl start ntpd
systemctl enable ntpd
###################
客户端对时
for i in 100 101 102;do ssh 192.168.115.$i  ntpdate 192.168.115.100;done

3、ceph安装

在centos1上安装

yum install epel-release -y
yum install lttng-ust -y###添加源
vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[Ceph-noarch]
name=Ceph noarch packages
# 清华源
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/ceph/rpm-mimic/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc##########拷贝源
scp /etc/yum.repos.d/ceph.repo 192.168.115.101:/etc/yum.repos.d
scp /etc/yum.repos.d/ceph.repo 192.168.115.102:/etc/yum.repos.d
scp /etc/yum.repos.d/ceph.repo 192.168.115.103:/etc/yum.repos.d####安装
yum -y install ceph ceph-deploy ##创建集群目录
mkdir -p /usr/local/soft/cephcluster
cd /usr/local/soft/cephcluster##创建集群
ceph-deploy new centos1 centos2 centos3
##修改配置文件
/usr/local/soft/cephcluster/ceph.conf
插入
#对外开放网段
public network = 192.168.115.0/24
# 设置pool池默认分配数量
osd pool default size = 2
# 容忍更多的时钟误差
mon clock drift allowed = 2
mon clock drift warn backoff = 30
# 允许删除pool
mon_allow_pool_delete = true
[mgr] 
# 开启WEB仪表盘 
mgr modules = dashboard 

安装 
如果安装失败需要:
ceph-deploy purge centos1 centos2 centos3
ceph-deploy purgedata centos1 centos2 centos3
ceph-deploy forgetkeys
将三台节点的mon信息也删除:
rm -rf /var/run/ceph/

ceph-deploy install centos1 centos2 centos3

初始化monitor

ceph-deploy mon create-initial

同步管理信息

ceph-deploy admin  centos1 centos2 centos3

安装mgr(管理守护进程)

ceph-deploy mgr create  centos1 centos2 centos3

安装rgw

ceph-deploy rgw create centos1 centos2 centos3

创建mds服务

ceph-deploy mds create centos1 centos2 centos3

OSD安装

OSD服务是对象存储守护进程, 负责把对象存储到本地文件系统, 必须要有一块独立的磁盘作为存储。如果没有独立磁盘,怎么办? 可以在Linux下面创建一个虚拟磁盘进行挂载。

##创建OSD
ceph-deploy osd create --data /dev/sdb centos1

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

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

查看集群状态

 ceph -s

4、dashboard安装

只在centos1上操作

开启dashboard模块
ceph mgr module enable dashboard
生成签名
ceph dashboard create-self-signed-cert

创建目录
mkdir -p /usr/local/jx/cephcluster/mgr-dashboard
cd /usr/local/jx/cephcluster/mgr-dashboardopenssl req -new -nodes -x509   -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650   -keyout dashboard.key -out dashboard.crt -extensions v3_ca

启动服务
ceph mgr module disable dashboard
ceph mgr module enable dashboard
设置访问地址与端口
ceph config set mgr mgr/dashboard/server_addr 192.168.115.100
ceph config set mgr mgr/dashboard/server_port 9001

关闭https
ceph config set mgr mgr/dashboard/ssl falseceph mgr servicesceph dashboard set-login-credentials hy123 123.com

访问

https://192.168.115.100:8443

5、ceph文件系统创建

centos1上操作

创建存储池
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64####################
少于5个OSD可把pg_num设置为128
OSD数量在5到10,可以设置pg_num为512
OSD数量在10到50,可以设置pg_num为4096
OSD数量大于50,需要计算pg_num的值

查看存储池
 ceph osd lspools

创建文件系统
ceph fs new  fs_test  cephfs_metadata cephfs_data

查看文件系统
ceph fs ls

查看mds状态
ceph mds stat

三、在客户端挂载

在centos1上操作:

在centos1中:安装ceph-deploy install centos4同步管理信息ceph-deploy admin  centos4非集群节点,/var/run/ceph 无内容

在centos4上操作

yum install -y ceph-fuse
查看信息
ls /etc/ceph
ceph.client.admin.keyring创建挂载目录mkdir /ceph
挂载ceph文件系统ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 192.168.115.100:6789 /ceph

相关文章:

ceph分布式存储

目录 一、概述 1、特点 2、组件 3、架构图 二、分布式部署 1、环境拓扑 2、实验准备 3、ceph安装 安装 初始化monitor 同步管理信息 安装mgr(管理守护进程) 安装rgw 创建mds服务 OSD安装 4、dashboard安装 开启dashboard模块 生成签名 …...

DA1--用pandas查看网站用户数据

目录 1.题目描述 2.输入描述 3.输出描述 4.题目分析 5.通过代码 1.题目描述 现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID …...

JWT令牌

一、JWT(Json Web Token)能干什么 1、安全认证(权限认证) 比如登录系统的时候,服务器会检查前端请求数据中携带的token信息,符合标准则允许访问,不符合则拒绝你的访问请求。 2、信息传递 比…...

uni-app使用CSS实现无限旋转动画

本来想用uni.createAnimation创建一个旋转动画,发现转完一圈后就不动了,没法循环旋转, 后来又用setInterval每隔一个周期就把旋转角度加180度,发现运行一段时间后动画逐渐崩坏,应该是动画的周期和定时器的周期时间没有…...

java面向对象(八)

文章目录 一、abstract关键字的使用1.概念2. abstract修饰类:抽象类3.abstract修饰方法,抽象方法4.abstract使用上的注意点:5.抽象类的匿名子类 二、计算一段代码执行所花费的时间三、接口的使用1.接口的使用2.定义接口中的成员3.代码demo4.Java类可以实…...

【proverif】proverif的下载安装和初使用

文章目录 一、proverif下载1. 下载proverif安装包2. 解压proverif安装包3. 点开其中的README,安装graphciz和gtk4. 查看安装是否成功5. 测试 一、proverif下载 1. 下载proverif安装包 官网:proverif 首先下载全过程无需开外网,而且安装包下…...

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许

浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许...

Centos7.9 一键脚本部署 LibreNMS 网络监控系统

前言: LibreNMS 是个以 PHP/MySQL 为基底的自动探索网络监控系统 LibreNMS 官网 版本23.8.2-52-g7bbe0a2 - Thu Sep 14 2023 22:33:23 GMT0700数据库纲要2023_09_01_084057_application_new_defaults (259)Web 服务器nginx/1.20.1PHP8.1.23Python3.6.8DatabaseMa…...

【大数据之Kafka】十六、Kafka集成外部系统之集成Flume

Flume 是一个在大数据开发中非常常用的组件。可以用于 Kafka 的生产者,也可以用于 Kafka 的消费者。 Flume安装和部署:https://blog.csdn.net/qq_18625571/article/details/131678589?spm1001.2014.3001.5501 1 Flume生产者 (1&#xff09…...

java学习--day3 (运算符、if循环、switch-case结构)

文章目录 今天的内容1.运算符1.1关系运算符1.2逻辑运算符1.3逻辑运算符的短路原则 2.分支结构【重点】2.1if分支2.2if-else分支2.3if-else的嵌套写法2.4if-else if 分支结构2.5swicth-case结构 扩展知识点 1.八大基本数据类型整型: byte short int long浮点: float double字…...

ActiveMQ、RabbitMQ、RocketMQ、Kafka区别

一、消息中间件的使用场景 消息中间件的使用场景总结就是六个字:解耦、异步、削峰 1.解耦 如果我方系统A要与三方B系统进行数据对接,推送系统人员信息,通常我们会使用接口开发来进行。但是如果运维期间B系统进行了调整,或者推送…...

csp初赛总结 那些年编程走过的坑 初高中信竞常考语法算法点

😘个人主页:曲终酣兴晚的小书屋💖 😕作者介绍:一个莽莽撞撞的🐻 💖专栏介绍:日常生活&往事回忆 😶‍🌫️每日金句:祝大家心有山水不造作&…...

DollarTree(美元树)验厂需要注意哪些方面?

【DollarTree(美元树)验厂需要注意哪些方面?】 美元树(Dollar tree),是美国的一元店。每件商品都只卖一美元,吃的、用的和玩的应有尽有。美元树在美国共拥有4900家门店,其中一半的连…...

vector使用和模拟实现

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 C👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大…...

token登录的实现

token登录的实现 我这种token只是简单的实现token,就是后端利用UUID 生成简单随机码,利用随机码作为在Redis中的键,然后存储的用户信息作为值,在每次合理请求的时候对token的有效时间进行刷新(利用拦截器)&…...

GO语言从入门到实战-Go语言课程介绍

为什么选择 Go 语言来完成这么大一个项目呢?我们不妨回到 Go 语言的源头看一看。 Go 语言的初步设想始于 2007 年,当时 Go 语言的三位创始人是想通过开发一种新型的语言来解决 Google 在软件开发中面临的问题: 多核硬件架构;超大…...

七天学会C语言-第六天(指针)

1.指针变量与普通变量 指针变量与普通变量是C语言中的两种不同类型的变量,它们有一些重要的区别和联系。 普通变量是一种存储数据的容器,可以直接存储和访问数据的值。: int num 10; // 定义一个整数型普通变量num,赋值为10在例…...

2023年腾讯云轻量服务器测评:16核 32G 28M 配置CPU测试

腾讯云轻量应用服务器16核32G28M配置优惠价3468元15个月(支持免费续3个月/送同配置3个月),轻量应用服务器具有100%CPU性能,系统盘为380GB SSD盘,28M带宽下载速度3584KB/秒,月流量6000GB,折合每天…...

macos (M2芯片)搭建flutter环境

安装的版本3.13.4、电脑上没有安装过android studio、安装过brew 1.在终端运行sudo softwareupdate --install-rosetta --agree-to-license,下图展示安装成功的效果 2.下载以下安装包来获取最新的 stable Flutter SDK 3.解压,⚠️注意下载安装sdk的包名…...

Xilinx FPGA未使用管脚上下拉状态配置(ISE和Vivado环境)

文章目录 ISE开发环境Vivado开发环境方式1:XDC文件约束方式2:生成选项配置 ISE开发环境 ISE开发环境,可在如下Bit流文件生成选项中配置。 右键点击Generate Programming File,选择Process Properties, 在弹出的窗口选…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...