ceph

ceph是一个开源的,用c++语言编写的分布式的存储系统。存储文件数据。

/dev/sdb

fdisk /dev/sdb

gdisk /dev/sdb

lvm 逻辑卷 可以扩容

raid 磁盘 高可用

基于物理意义上的单机的存储系统。

分布式由多台物理磁盘组成一个集群,在这个基础之上实现高可用,扩展。

ceph是一个统一的存储系统,同时提供块设备存储,文件系统存储和对象存储三种存储

对象存储RGW oss:

对象存储也就是键值对存储,通过接口指令,get put del和其他的命令向对象存储上或者下载数据。

把数据作为对象,按照一定的逻辑和算法,存储到不同的硬盘上(可以是不同机器上的硬盘,依靠网络来进行互相通信)

优点:

使用的是硬盘组,不受目录系统的影响,读写效率高

集群的扩展性很强,支持多副本存储。

可以直接通过URL访问文件。简单好管理

缺点

内容变动较大的文件不适合作为存储对象,每一次变动都要重新上传。

文件系统存储 ceph-fs

ceph集群的存储看做是一个大的分区或者共享文件挂载到客户端的本地

客户端可以在本地直接进行操作。速度快,可以存储的数据类型也没有限制。

内核态和用户态:

mount 内核态 速度快 读写也快

ceph-fuse 用户态 速度慢 读写稍慢

优点

成本低,随便的一台服务器都可以做。

公司内部都使用这种方式。内网云盘就是这种方式

缺点

读写速度和传输速度相对比较慢(本地使用不再此列)

块存储RBD

rbd可以为kvm虚拟化和云服务(openstack)可以提供高性能和无线可扩展的存储后端。

磁盘映射, RAID和lvm提供磁盘空间,多个主机上的raid或者Ivm组成一个逻辑上的RAID和lvm。

优点

多块磁盘组成这种逻辑空间 可以并行的执行读写操作,IO效率比较高

缺点

对网络传输的要求比较高,windows无法访问linux的RDB操作。

ceph的主要特点

1、统一存储:对象 块 文件系统

2、Crush算法,算法来实现数据的寻址。数据完整性的校验和一致性。

3、高扩展性,扩容方便,可靠性比较强。创建数据的时候可以对数据进行副本操作,副本数由管理定义的副本可以跨主机保存,跨架构,跨机房,跨数据中心进行保存。

4、高性能,因为是多副本,读写的时候可以做到并行化处理。

ceph的组件和作用

1、OSD: ceph当中的OSD的守护进程,是集群的基础

主要功能:存储数据,保存副本数据,数据恢复,平衡数据分布

冗余和高可用至少要有3个OSD(三个机器上的三个物理硬盘)

2、Monitors: mon monitors守护进程,监视ceph集群的状态,维护ceph集群的健康

OSD的状态也属于MON的监控范围。

ceph存储集群必须要有一个Monitors进程,和两个OSD进程。

服务器的数量必须是奇数台。2-5

管理节点 mon osd osd

3、MDS:也是一个守护进程,保存ceph文件系统的元数据。(文件的权限,所有者,所在组,修改时间等等,在ceph集群当中的inode号)

4、managers:也是作为守护进程运行,跟踪集群的运行时间的指标和ceph集群的状态:主要是存储的利用率,性能指标和系统的负载。

5、RADOS:分布式存储系统,所有的存储功能都是基于RADOS实现的。高可用可性能也是基于RADOS实现的,他是所有一切的底层,也是整个ceph集群的核心

RADOS由两个部分组成:OSD Monitors

6、LIBRADOS:这是一个动态库,用来允许应用程序和RADO5系统进行交互。

通过端口进行通信

存储概念 :

存储数据和object的关系

对象 块 文件系统挂载,都需要odject,存储的数据都会被分成多个object,分成之后每一个数据都有一个object id。

每个数据object的大小是可以调整的,默认是4M

ceph的最小存储吧单位

object和pg的关系:

object数量太多了,在一个集群当中,object的数量太多,遍历和寻址速度都很慢。

pg就是归置组,placcment group 管理objecct

object通过CRUSH算法映射到pg当中,一个pg里面可以包含多个object。

pg与osd之间的关系

pg也是通过CRUSH算法映射到osd当中去存储,如果有副本,每个pg会映射到三个osd当中,三个osd A B C

pg-------->A

pg------------>B

pg--------------->C

PG和PGD的关系

pgd是存放pg的排列组合。

3osd

ABC 副本数2

PGD 1

[A B]

PGD 2

[A B]

[A C]

存储池:pool

ceph的集群进行逻辑划分,设置ceph存储集群的权限,副本数 pg的数量和算法规则

pool是由管理员自定义,相当于一个独立的空间。每个pool之间是独立的,数据也是隔离的。

第一个存储数据的pool

第二个存储元数据的pool

ceph osd pool create cephfs date pg_num

少于5个osd的情况下,pg的数量等于I28

5-10个osd 512

10-50个osd 4096个

Pg总数:750个,不能超过750个

1283=384个 750-384= 366

存储元数据也要pg 1282=256

存储数据

osd* pg值

元数据

2pg值

osdpg值+2pg值<750

pg num=(osd100)/副本数3100/2

设定pg值的目的,通过管理较少的pgceph获取数据,分配,管理数据的效率越高。

pg值越多,数据分布的越多,管理就越复杂。

实验

所有节点做地址映射

[root@test42 ~]# vim /etc/hosts
​
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.65.42  test42
192.168.65.43  test43
192.168.65.44  test44
192.168.65.45  test45
#主节点生成密钥对
[root@test42 ~]# ssh-keygen    #一直回车
#将密钥发送到每个从节点
[root@test42 ~]# ssh-copy-id 192.168.65.43
[root@test42 ~]# ssh-copy-id 192.168.65.44
[root@test42 ~]# ssh-copy-id 192.168.65.45
​
[root@test42 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
​
[root@test42 ~]# cat> /etc/yum.repos.d/ceph.repo <<eof
> [ceph]
> name=ceph
> baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/x86_64/
> gpgcheck=0
> [ceph-noarch]
> name=ceph-noarch
> baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch/
> gpgcheck=0
> eof
​
[root@test42 ~]# yum install -y ceph-deploy ceph ceph-radosgw snappy leveldb gdisk python-argparse gperftools-libs
​
[root@test42 ~]# cd /etc/ceph
[root@test42 ceph]# ls
rbdmap
[root@test42 ceph]# ceph-deploy new test42 test43 test44
[root@test42 ceph]# vim ceph.conf 
​
[global]
fsid = 0c4d7162-092c-4cb7-abe7-61375a99f90b
mon_initial_members = test42, test45, test44
mon_host = 192.168.65.42,192.168.65.45,192.168.65.44
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
osd_pool_default_size = 2
#副本数设置为2或者3
#节点初始化
[root@test42 ceph]# ceph-deploy mon create-initial
[root@test42 ceph]# ceph -scluster:id:     0c4d7162-092c-4cb7-abe7-61375a99f90bhealth: HEALTH_OKservices:mon: 3 daemons, quorum test42,test44,test45mgr: no daemons activeosd: 0 osds: 0 up, 0 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0Busage:   0B used, 0B / 0B availpgs:     
#添加硬盘
[root@test42 ceph]# alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'
​
[root@test42 ceph]# ceph-deploy disk zap test42 /dev/sdc
[root@test42 ceph]# ceph-deploy disk zap test44 /dev/sdc
[root@test42 ceph]# ceph-deploy disk zap test45 /dev/sdb
#三个硬盘做osd
[root@test42 ceph]# ceph-deploy osd create test45 --data /dev/sdb
[root@test42 ceph]# ceph-deploy osd create test44 --data /dev/sdc
[root@test42 ceph]# ceph-deploy osd create test42 --data /dev/sdc
#查看osd节点状态
[root@test42 ceph]# ceph-deploy osd list test42 test44 test45
#部署mgr
[root@test42 ceph]# ceph-deploy mgr create test42 test44 test45
#把主里ceph.mon.keyring传给从
[root@test42 ceph]# ceph-deploy admin test42 test44 test45
#赋权
[root@test42 ceph]# chmod +r /etc/ceph/ceph.client.admin.keyring
[root@test44 ceph]# chmod +r /etc/ceph/ceph.client.admin.keyring
[root@test45 ceph]# chmod +r /etc/ceph/ceph.client.admin.keyring
#安装mds,主上有不用安
[root@test42 ceph]# ceph-deploy mds create test44 test45
[root@test42 ceph]# ceph -scluster:id:     0c4d7162-092c-4cb7-abe7-61375a99f90bhealth: HEALTH_OKservices:mon: 3 daemons, quorum test42,test44,test45mgr: test42(active), standbys: test45, test44osd: 3 osds: 3 up, 3 indata:pools:   0 pools, 0 pgsobjects: 0 objects, 0Busage:   3.01GiB used, 57.0GiB / 60.0GiB availpgs:     
​
#创建存储池   文件系统ceph-fs
[root@test42 ceph]# ceph osd pool create cephfs_date 128  #存储数据
pool 'cephfs_date' created
[root@test42 ceph]# ceph osd pool create ceph_metadata 128  #存储元数据
#创建文件系统
[root@test42 ceph]# ceph fs new cephfs ceph_metadata cephfs_date
new fs with metadata pool 2 and data pool 1
[root@test42 ceph]# ceph fs ls
name: cephfs, metadata pool: ceph_metadata, data pools: [cephfs_date ]
名称                         元数据                        地址池名称
[root@test42 ceph]# ceph fs status cephfs
cephfs - 0 clients
======
+------+--------+--------+---------------+-------+-------+
| Rank | State  |  MDS   |    Activity   |  dns  |  inos |
+------+--------+--------+---------------+-------+-------+
|  0   | active | test44 | Reqs:    0 /s |   10  |   12  |
+------+--------+--------+---------------+-------+-------+
+---------------+----------+-------+-------+
|      Pool     |   type   |  used | avail |
+---------------+----------+-------+-------+
| ceph_metadata | metadata | 2246  | 26.9G |
|  cephfs_date  |   data   |    0  | 26.9G |
+---------------+----------+-------+-------+
​
+-------------+
| Standby MDS |
+-------------+
|    test45   |
+-------------+
MDS version: ceph version 12.2.13 (584a20eb0237c657dc0567da126be145106aa47e) luminous (stable)
#客户端
[root@test43 ~]# mkdir /data
[root@test43 ~]# mount -t ceph 192.168.65.42:6789:/ /data -o name=admin,secret=AQBDF7NmqXt8JRAArNMnEXBScg6Jryvhc5gAUg==
[root@test43 ~]# df -h
192.168.65.42:6789:/      27G     0   27G    0% /data
#写入100M内容
[root@test43 data]# dd if=/dev/zero of=/data/test1.txt bs=10M count=10
记录了10+0 的读入
记录了10+0 的写出
104857600字节(105 MB)已复制,0.170108 秒,616 MB/秒
[root@test43 data]# ll -lh
总用量 100M
-rw-r--r-- 1 root root 100M 8月   7 15:27 test1.txt
#在主上查看是否成功写入100M
[root@test42 ceph]# ceph fs status cephfs
cephfs - 1 clients
======
+------+--------+--------+---------------+-------+-------+
| Rank | State  |  MDS   |    Activity   |  dns  |  inos |
+------+--------+--------+---------------+-------+-------+
|  0   | active | test44 | Reqs:    0 /s |   11  |   13  |
+------+--------+--------+---------------+-------+-------+
+---------------+----------+-------+-------+
|      Pool     |   type   |  used | avail |
+---------------+----------+-------+-------+
| ceph_metadata | metadata | 15.2k | 26.8G |
|  cephfs_date  |   data   |  100M | 26.8G |
+---------------+----------+-------+-------+
​
+-------------+
| Standby MDS |
+-------------+
|    test45   |
+-------------+
​
[root@test43 data]# yum -y install ceph-fuse
[root@test43 ceph]# scp root@192.168.65.42:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
[root@test43 ceph]# scp root@192.168.65.42:/etc/ceph/ceph.conf /etc/ceph/
[root@test43 ceph]# mkdir data1
[root@test43 ceph]# df -h
192.168.65.42:6789:/      27G  200M   27G    1% /data
ceph-fuse                 27G  200M   27G    1% /data1
#data的数据会同步到data1
[root@test43 data]# touch 123
[root@test43 data]# cd /data1/
[root@test43 data1]# ls
123  test1.txt  test2.txt
​

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

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

相关文章

激光导航AGV叉车那么多,究竟该怎么选?一篇文章讲明白~

AGV叉车 随着经济的快速发展&#xff0c;大部分企业的物料搬运开始脱离人工劳作&#xff0c;取而代之的是以叉车为主的机械化搬运。AGV叉车是工业搬运车辆&#xff0c;是指对成件托盘货物进行装卸、堆垛和短距离运输作业的各种轮式搬运车辆&#xff0c;主要应用于货场、工厂车间…

HslCommunicationDemo各品牌Plc通信测试软件工具

目录 1、HslCommunicationDemo程序包 2、ModbusTCP举例说明 (0)概述 &#xff08;1&#xff09;线圈写操作 &#xff08;2&#xff09;寄存器写操作 3、C#工程中DLL库文件使用 &#xff08;1&#xff09;创建Winform程序工程 &#xff08;2&#xff09;写寄存器 1、HslC…

基于内地城市生活垃圾收运场景的路线规划算法

基于混合遗传算法和模拟退火算法的优化垃圾收集路线规划 摘要 本文提出了一种基于混合遗传算法&#xff08;GA&#xff09;和模拟退火算法&#xff08;SA&#xff09;的创新路线规划方法&#xff0c;旨在优化内地城市的生活垃圾收集效率。算法结合了遗传算法的全局搜索能力和…

MySQL第1讲--详细安装教程和启动方法

文章目录 安装教程打开或关闭方式方式1&#xff1a;方式2&#xff1a; 客户端连接方式客户端连接方式1&#xff1a;客户端连接方式2&#xff1a;MySQL环境变量的配置 安装教程 1、mysql官网下载最新的符合本系统的版本 2、点击.msi文件进入安装页面 选择默认的选项开发者安…

15.DMDIS 工具优化

文章目录 前言一、安装部署安装数据源转换作业监控 二、性能优化问题 1 &#xff1a;DMETL 卡顿问题问题 2 &#xff1a;DM -> HIVE 的迁移速度慢问题 3 &#xff1a;ORACLE -> DM 的迁移速度慢问题 4 &#xff1a;GP -> DM 的迁移速度慢问题 5 &#xff1a;DM -> …

[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘(已解决)

今天在使用navicate Premium运行sql文件时出现如下错误&#xff1a; 错误&#xff1a;1273 - Unknown collation: utf8mb4_0900_ai_ci 报错原因&#xff1a; 生成转储文件&#xff08;也就是sql文件&#xff09;的数据库版本为8.0,而要运行sql文件的数据库版本为5.6,因为是高版…

Android进阶之路 - 字体加粗,定制化字体粗度

在客户端中不论是PC端&#xff0c;还是移动端主要价值之一就体现在用户交互方面&#xff0c;也就是用户体验了&#xff0c;接下来讲的是很常见的字体加粗问题 UI大找茬 深入浅出字体、字体库TextView文本渐变字体阴影、文字阴影字体加粗 - 定制化字体粗度 在开发中经常会遇到…

DFS之搜索顺序与剪枝

搜索顺序&#xff1a; 1.https://www.acwing.com/problem/content/1119/ 首先&#xff0c;我们考虑一个贪心&#xff1a; 假如说A的倒数K个字符恰好与B的前K个字符重合&#xff0c;那么我们就连接。 也就是说我们一旦匹配就直接相连而不是继续找更长的重合的一段子串。 因…

【学习方法】高效学习因素 ② ( 学习动机 | 内在学习动机 | 外在学习动机 | 外在学习动机的调整方向 | 保护学习兴趣 | 高考竞争分析 )

文章目录 一、高效学习的其它因素 - 学习动机1、学习动机2、内在学习动机3、外在学习动机4、外在学习动机的问题所在5、外在学习动机的调整方向6、保护学习兴趣7、高考竞争分析 上一篇博客 【学习方法】高效学习因素 ① ( 开始学习 | 高效学习因素五大因素 | 高效学习公式 - 学…

unplugin-vue-components 插件配置 忽略 部分目录下的组件自动导入

背景 vue3 项目 为了省略 第三方库ui 组件 全局组件的注册代码&#xff0c;使用了 unplugin-vue-components 插件 原理 组件识别 在编译阶段&#xff0c;unplugin-vue-components 会扫描 Vue 单文件组件&#xff08;.vue 文件&#xff09;的模板部分&#xff0c;识别出所有使…

day31

3.9 信号量集 1> 原理图 信号量集主要完成多个进程之间同步问题 2> 信号量集的API函数接口 1、创建用于生成消息队列的钥匙#include <sys/types.h>#include <sys/ipc.h>key_t ftok(const char *pathname, int proj_id);功能&#xff1a;通过给定的文件路径…

你也觉得FOTA升级难吗?这份详细教程让你自信升级!

前言&#xff1a; 我经常在各个讨论群里看到有合宙Air780EP的用户说&#xff1a; FOTA远程升级有点难呀~一步错后面就得重新来了&#xff0c;有没有大佬给个教程啊&#xff1f; 用户提需求了&#xff0c;那我们肯定要满足啊&#xff0c;就连夜赶了一篇 在整理这篇文章之前&…

掌握 LINQ:通过示例解释 C# 中强大的 LINQ的集运算

文章目录 集运算符原理实战示例1. Union2. Intersect3. Except4. ExceptWith5. Concat6. Distinct 注意事项总结 在C#中&#xff0c;LINQ&#xff08;Language Integrated Query&#xff09;提供了丰富的集合操作功能&#xff0c;使得对集合数据进行查询、过滤、排序等操作变得…

删除有序数组中的重复项(LeetCode)

题目 给你一个 升序排列 的数组 &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 中唯一元素的个数。 考虑 的唯一元素的数量为 &#xff0c;你需要做以下事情确…

CVE-2023-1313

开启靶场 url访问/install来运行安装 http://eci-2ze0wqx38em0qticuhug.cloudeci1.ichunqiu.com/install/ 得知其用户和密码为admin 登录 查找文件上传位置 上传一句话木马文件 <?php echo phpinfo();eval($_POST[flw]);?> 下载查看上传木马路径 复制路径 /storag…

代理IP如何助力品牌保护?

品牌是企业非常重要的无形资产&#xff0c;代表着一个公司、一个产品或服务的价值、信誉和形象。在竞争激烈的市场中&#xff0c;一个强有力的品牌可以帮助公司吸引更多的客户、提高销售、提高客户满意度和忠诚度&#xff0c;还可以帮助公司建立和维护其声誉、增强其企业形象&a…

单词拆分——LeetCode

139.单词拆分 题目 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意&#xff1a;不要求字典中出现的单词全部都使用&#xff0c;并且字典中的单词可以重复使用 示例 1&#xff1a; 输入: s &qu…

数据结构实验:树和二叉树(附c++源码:实现树有关算法)

目录 一、实验目的 二、问题分析及数据结构设计 三、算法设计&#xff08;伪代码表示&#xff09; 1. 输入字符序列 创建二叉链表 2. 递归前序遍历 3. 递归中序遍历 4. 递归后序遍历 5. 非递归前序遍历 6. 非递归中序遍历 7. 非递归后序遍历 8. 层次遍历 9. 求二叉…

【AI】关于AI和手机

2011 年至2015 年期间&#xff0c;全球智能手机出货量年增长率均超过两位数&#xff0c;显示出强劲的市场需 求和快速扩张趋势。然而&#xff0c;自2016 年起&#xff0c;全球智能手机用户数量趋于饱和&#xff0c;换机周期也逐 渐变长&#xff0c;市场进入存量替换阶段&#x…

Qt/C++最新地图组件发布/历时半年重构/同时支持各种地图内核/包括百度高德腾讯天地图

一、前言说明 最近花了半年时间&#xff0c;专门重构了整个地图组件&#xff0c;之前写的比较粗糙&#xff0c;有点为了完成功能而做的&#xff0c;没有考虑太多拓展性和易用性。这套地图自检这几年大量的实际项目和用户使用下来&#xff0c;反馈了不少很好的建议和意见&#…