块存储

(略)

文件存储

  1. 基于文件系统的本地文件存储;

  2. 基于网络的共享文件存储:NFS、Samba、Windows文件共享;

  3. 基于网络的分布式文件存储:HDFS...

对象存储

一种Key(对象ID)-- Value(对象数据)型的存储系统;所有数据的存储基于对象ID,通过元数据记录对象的属性信息。

ceph 简介

统一的分布式存储系统,同时提供了对象、块、和文件存储功能。Ceph 中文文档

不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。

ceph 基本概念

  • Ceph OSDs: Ceph OSD 守护进程( Ceph OSD )的功能是存储数据,处理数据的复制、恢复、回填、再均衡,并通过检查其他OSD 守护进程的心跳来向 Ceph Monitors 提供一些监控信息。

当 Ceph 存储集群设定为有2个副本时,至少需要2个 OSD 守护进程,集群才能达到 active+clean 状态( Ceph 默认有3个副本,但你可以调整副本数)。

  • Monitors: Ceph Monitor 维护着展示集群状态的各种图表,包括监视器图、 OSD 图、归置组( PG )图、和 CRUSH 图。

Ceph 保存着发生在Monitors 、 OSD 和 PG上的每一次状态变更的历史信息(称为 epoch )。

  • MDSs: Ceph 元数据服务器( MDS )为 Ceph 文件系统存储元数据。(也就是说,Ceph 块设备和 Ceph 对象存储不使用MDS )

元数据服务器使得 POSIX 文件系统的用户们,可以在不对 Ceph 存储集群造成负担的前提下,执行诸如 ls、find 等基本命令。

Ceph 把客户端数据保存为存储池内的对象。通过使用 CRUSH 算法, Ceph 可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个 OSD 守护进程持有该归置组。 CRUSH 算法使得 Ceph 存储集群能够动态地伸缩、再均衡和修复。

存储池 Pool:定义存储池大小、用户权限、PG数量、数据复制份数以及CRUSH Ruleset(数据分布规则)。

存放组 Place Group:决定对象存放位置的OSD节点组合,组合会根据OSD节点的数量、状态和CRUSH Ruleset的规则计算得出,动态变化。

CRUSH Ruleset:定义了对象复制的份数及选取OSD节点的规则。 # CRUSH 我翻译为:可控、弹性、多副本复制

对象Object:Ceph 将所有数据都存放在对象中,每个对象对应的OSD节点文件系统里的一个文件,缺省文件大小是4M。

Ceph 对象网关

radosgw 是一个构建在 librados 之上的对象存储接口,它为应用程序访问Ceph 存储集群提供了一个 RESTful 风格的网关,可以用一个接口写如数据、然后用另一个接口取出数据。

Ceph 对象存储支持 2 种接口:

  • 兼容S3: 提供了对象存储接口,兼容 亚马逊S3 RESTful 接口的一个大子集。
  • 兼容Swift: 提供了对象存储接口,兼容 Openstack Swift 接口的一个大子集。

Ceph 对象存储不使用 Ceph 元数据服务器。

Ceph 块设备

块是一个字节序列(例如,一个 512 字节的数据块)。基于块的存储接口是最常见的存储数据方法。

Ceph 块设备是精简配置的、大小可调且将数据条带化存储到集群内的多个 OSD 。

Ceph 块设备利用 RADOS 的多种能力,如快照、复制和一致性。 Ceph 的 RADOS 块设备( RBD )使用内核模块或 librbd 库与 OSD 交互。

Ceph 块存储不使用 Ceph 元数据服务器。

Ceph 文件系统

Ceph 文件系统( Ceph FS )是个 POSIX 兼容的文件系统,它使用 Ceph 存储集群来存储数据。

Ceph 文件系统与 Ceph 块设备、同时提供 S3 和 Swift API 的 Ceph 对象存储、或者原生库( librados )一样,都使用着相同的 Ceph 存储集群系统。

Ceph 文件系统要求 Ceph 存储集群内至少有一个 Ceph 元数据服务器。

伸缩性和高可用性

在传统架构里,客户端与一个中心化的组件通信(如网关、中间件、 API 、前端等等),它作为一个复杂子系统的唯一入口,它引入单故障点的同时,也限制了性能和伸缩性(就是说如果中心化组件挂了,整个系统就挂了)。

Ceph 消除了集中网关,允许客户端直接和 Ceph OSD 守护进程通讯。 Ceph OSD 守护进程自动在其它 Ceph 节点上创建对象副本来确保数据安全和高可用性;为保证高可用性,监视器也实现了集群化。为消除中心节点, Ceph 使用了 CRUSH 算法。

高可用监视器

Ceph 客户端读或写数据前必须先连接到某个 Ceph 监视器、获得最新的集群运行图副本。一个 Ceph 存储集群只需要单个监视器就能运行,但它就成了单一故障点(即如果此监视器宕机, Ceph 客户端就不能读写数据了)。

为增强可靠性和容错能力, Ceph 支持监视器集群;在一个监视器集群内,延时以及其它错误会导致一到多个监视器滞后于集群的当前状态,因此, Ceph 的各监视器例程必须就集群的当前状态达成一致。Ceph 总是使用大多数监视器(如: 1 、 2:3 、 3:5 、 4:6 等等)和

Paxos 算法就集群的当前状态达成一致。

关于配置监视器的详情,见监视器配置参考

更多内容参见体系结构

ceph 存储集群

所有 Ceph 部署都始于 Ceph 存储集群。

基于 RADOS 的 Ceph 对象存储集群包括两类守护进程:

  • 对象存储守护进程( OSD )把存储节点上的数据存储为对象;
  • Ceph 监视器( MON )维护集群运行图的主拷贝。

一个 Ceph 集群可以包含数千个存储节点,最简系统至少需要一个监视器和两个 OSD 才能做到数据复制。

配置和部署

Ceph 存储集群的某些配置选项是必要的,但大多数都有默认值。

典型部署是通过部署工具定义集群、并启动监视器的,关于 ceph-deploy 的详情见部署

运维

部署后就可以开始操作 Ceph 集群了。运维

手册页

应用编程接口

API

Linux 概念:存储的更多相关文章

  1. 【转】Linux 概念架构的理解

    转:http://mp.weixin.qq.com/s?__biz=MzA3NDcyMTQyNQ==&mid=400583492&idx=1&sn=3b18c463dcc451 ...

  2. linux的存储结构

    在linux中存储结构如下: Linux系统中的文件存储结构 那么在linux中每个目录都是什么含义呢 在linux中相对路径和绝对路径是必须要了解的一个概念 绝对路径(absolute path): ...

  3. 截取linux文件存储路径方法

    1.截取linux文件存储路径方法 package com.tydic.eshop.action.freemarker; public class dddd { public static void ...

  4. Linux系统存储交换机日志

    Linux系统存储交换机日志     日志记录是为系统设备在运行过程中报告其运行情况而设的, 为了保证系统正常运行, 解决每一天可能遇到的各种各样的问题, 网络管理员必须认真地读取日志记录.目前公司系 ...

  5. Linux 概念架构的理解

    摘要 Linux kernel 成功的两个原因: 架构设计支持大量的志愿开发者加入到开发过程中: 每个子系统,尤其是那些需要改进的,都支持很好的扩展性. 正是这两个原因使得 Linux kernel ...

  6. linux概念之/proc与/sys

    http://blog.chinaunix.net/uid-1835494-id-3070465.html  proc/x:1/sched http://bbs.chinaunix.net/threa ...

  7. linux概念之内存分析

    linux内存总结 分析样本[root@-comecs ~]# free total used free shared buffers cached Mem: -/+ buffers/cache: S ...

  8. linux概念之分区与文件系统

    分区类型 [root@-shiyan dev]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly re ...

  9. linux概念之用户,组及权限

    Linux 是一个多用户.多任务的操作系统:我们应该了解单用户多任务和多用户多任务的概念 单用户多任务一个beinan用户,为了完成工作,执行了几个任务:当然beinan这个用户,其它的人还能以远程登 ...

  10. (转)Linux概念架构的理解

    英文原文:Conceptual Architecture of the Linux Kernel 摘要 Linux kernel成功的两个原因:(1)架构设计支持大量的志愿开发者加入到开发过程中:(2 ...

随机推荐

  1. A-O-P 一篇概览

    一.什么是AOP? AOP 即 Aspect-oriented Programming,Aspect 切面,什么是切面,就是一条大路上的收费站,检查站,首先它是一个统一的功能单元,或是收费.或是检查, ...

  2. STL大全

    排序最速传说--sort 我们都学过一些排序的写法,比如冒泡排序,快速排序之类的东西,举个例子来说吧,这是快速排序的代码: #include<iostream> using namespa ...

  3. ai问答:使用vite如何配置多入口页面

    Vite 是一个 web 开发构建工具,它可以用于开发单页应用和多页应用.要在 Vite 中配置多入口,可以: 在 vite.config.js 中定义多个 entry 入口: export defa ...

  4. 苦苦搞了半个通宵才搞定的直接使用Sliverlight将文件PUT到阿里云OSS

    为了公司的项目,小的我各种折腾啊,不过高兴的是实现了Silverlight直接提交至阿里云OSS的文件上传,文件上传再也不用通过服务器中转了. 研究SDK发现还有个Node-oss.js,但还没进行测 ...

  5. 富文本编辑器 VUE-QUILL-EDITOR 使用教程 (最全)

    VUE-QUILL-EDITOR 基于 QUILL.适用于 VUE 的富文本编辑器,支持服务端渲染和单页应用,非常高效简洁. 一.基础用法 1.NPM 导入 VUE-QUILL-EDITOR npm ...

  6. 2021-01-29:redis同步机制是怎样的?

    福哥答案2021-01-30: [答案1:](https://italk.mashibing.com/question/detail/ques_00006009)全量同步master服务器会开启一个后 ...

  7. golang技术栈常见网址

    go所有,包含goadmin golang标准库文档 golang修养之路 Golang Profiling: 关于 pprof go问题 go语言设计与实现 go.mod解析 proto3 prot ...

  8. vue全家桶进阶之路49:Vue3 环境变量

    vue3 环境变量 在Vue3中,可以通过环境变量来管理应用程序中的配置.这些配置可以包括后端API的URL.API key.跟踪ID等等.在不同的开发.测试.生产环境中使用不同的配置是非常有用的.V ...

  9. 园子的商业化努力-AI人才服务:招募AI导师

    各位园子的小伙伴: 感谢大家对园子的支持,园子差不多接近20年的历程,一直是最低配模式生存和发展,感谢大家对于前段时间的困局给予了商业化的各种建议!在大家的鼓励与支持之下,园子的商业化努力正在以更快的 ...

  10. 2013年蓝桥杯C/C++大学A组省赛真题(高斯的日记)

    题目描述: 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第 ...