01-按照存储类型分类

01、独享式存储

指由单台存储设备提供服务,且相同的一块存储区域同一时间只能被单台设备访问(读写)。

如DAS,块存储,SAN网络下的存储,具体产品包括磁盘阵列,硬盘。

此种存储,存储区域通常以裸盘映射的方式映射给服务器,由服务器的操作系统中的文件系统对裸盘进行格式化,然后再挂载使用。但是挂载完成后,该区域仅能给挂载的服务器A访问,B服务器无法访问这一块空间。

**优点:**访问速率高(DAS基于内部总线,SAN架构有8/16/32Gbps的端口,传输速率比普通GE速率高,所以速度快)。

**缺点:**此种方式不利于数据的共享,同一块区域不能供多台设备访问。另外由服务器的文件系统访问后端存储,服务器需要消耗CPU资源来管理数据到底存放在存储的哪个地址段与寻址,有性能损耗。

02、共享式存储-非集群式存储

指由单台存储设备提供服务,且相同的一块存储区域同一时间能被多台设备访问(读写)。

如NFS/CIFS/NAS/文件存储/特殊条件下的SAN与块存储/分布式文件系统(单机)。具体产品如普通X86服务器安装NFS或SAMBA(CIFS)软件,NAS磁盘阵列,SAN网络下的块存储再通过服务器部署集群软件访问等。

**优点:**此种存储,通常通过IPSAN组网,并且存储先通过网络文件系统将裸盘格式化,再对外提供服务。访问设备无需管数据存在哪个地方,寻址的工作由文件服务器或NAS阵列的文件系统处理,因此服务器可以释放CPU寻址的性能占用。此外,此方式便于数据共享,而且成本较低。

**缺点:**但是读写性能没有块存储好。

03、共享式存储-集群式存储-单节点/多节点式存储-集中/分布式存储

指由多台存储设备提供服务,且相同的一块存储区域同一时间能被多台设备访问(读写)。

03-01、集群式存储分单节点/多节点式区别:单节点式通常指仅部署有一个本地节点,而多节点式指设备分别部署在多个节点的机房/机楼/城市。

每种模式下都分别有集中式与分布式两种,其中,集中式指存储采用单台集中式设备(如磁盘阵列),分布式指存储采用多台设备采用分布式软件部署(如多台X86服务器)。

多节点式比单节点容灾功能更强,而且可以结合智能DNS等进行用户调度,根据用户的位置调度访问最近/链路质量最优的节点,优化用户访问速度。

分布式由于存在多台设备,多台设备时可以同时提供访问服务的,所以相当于可以无限量地提升了IO,设备越多,并发IO支持能力越大。

03-02、分布式存储与对象存储

分布式存储分为分布式块存储、分布式文件存储、分布式对象存储。对象存储一定是分布式存储,分布式存储不一定只能是对象存储。

分布式存储(块/文件存储)原理与部署模式基本上就是上一页的对称式/非对称式的Name Node+Data Node的部署模式。其中:

Name Node负责:a、提供存储数据的逻辑视图、文件名列表及目录结果(VFS);b、提供组织物理存储介质的数据分布(inode);C、保持数据一致性。

Data Node负责:只管数据的实际存放,什么管理功能都不管。

而对象存储:分为OSD(相当于Data Node)与MDS(相当于Name Node)。但是:

MDS只负责: a、提供存储数据的逻辑试图、文件名列表及目录结果;b、数据一致性。

OSD负责:a、数据的实际存放;b、数据的分布。

由于一般分布式存储的Name Node中,CPU中10%的负载在于逻辑视图部分(VFS),90%的负载在与计算数据的分布部分(inode)。而由于一般Name Node肯定是少于Data Node的,因此对象存储将数据分布方式的计算部分下沉到了OSD(Data Node),降低了Name Node的负载,因此性能更好。

存储类型类型分类总览图

02-按照存储用途分类

01、块存储典型设备:磁盘阵列,硬盘

块存储相当于裸硬盘映射给文件系统/操作系统,需要进行分区与格式化之后才能给操作系统识别使用。

块存储可以通过RAID与LVM等方式将物理磁盘构成逻辑磁盘后再映射给操作系统使用。

优点:

1、通过RAID与LVM等手段,对数据提供了保护。

2、可以将多块硬盘组织起来,成为更大容量的硬盘。

3、逻辑盘由多块硬盘组成,读写时多个磁头并行读写,效率高,速度快。

4、多采用SAN组网,传输速率以及封装协议的原因,使得传输速度与读写速率得到提升。

缺点:

1、采用SAN架构组网时,需要额外为主机购买光纤通道卡,还要买光纤交换机,造价成本高。

2、服务器不做集群的情况下,块存储裸盘映射给主机,再格式化使用后,主机间无法共享磁盘。

3、不利于文件共享(不同文件系统间的数据是共享不了的。例如Linux下的EXT4文件系统,无法识别NTFS格式U盘,不同文件系统下的数据无法共享。)

02、文件存储典型设备:FTP、NFS、CIFS服务器

为了克服上述文件无法共享的问题,所以有了文件存储。

有软硬一体化的设备,普通服务装上网络文件系统,也可以充当文件存储。

主机A可以直接对文件存储进行文件的上传下载,与块存储不同,主机A是不需要再对文件存储进行格式化的,因为文件管理功能有文件存储的系统负责。。

优点:

1、造价交低:普通的服务器即,另外只需要普通以太网即满足网络要求,不需要专用的SAN网络,成本低。

2、方便文件共享:例如主机A(WIN7,NTFS文件系统),主机B(Linux,EXT4文件系统),原来无法对一个文件进行共享。当中间添加了主机C(NFS服务器),可以先从A拷到C,再C拷传输到B,即解决了文件共享的问题。

缺点:

读写速率低,传输速率慢:以太网,上传下载速度较慢,另外所有读写都要1台服务器里面的硬盘来承担,相比起磁盘阵列动不动就几十上百块硬盘同时读写,速率慢很多。

03、分布式存储典型设备:Ceph、Swift

03-01、分布式块存储:

典型产品: GlusterFS, Ceph等

通过分布式的X86服务器,安装上述的软件,实现分布式块存储部署,客户端通过Rest接口,可以挂在分布式块存储划出来的卷,然后进行数据访问。

部分厂商偷换概念,将磁盘阵列说成几个不同控制器分别控制几块不同的硬盘框,然后将其称作分布式块存储产品。

03-02、分布式文件存储:

典型产品:NFS、GFS、HDFS、Ceph等

通过分布式的X86服务器,安装上述的软件,实现分布式文件存储部署。访问的用户不需要对区域进行挂载,即可实现目录级别的访问。

03-03、分布式对象存储:

典型产品:Ceph、swift

通过分布式的X86服务器,安装上述的软件,实现分布式对象存储部署,客户端通过Rest接口,可以访问MDS。

一个文件包含了了属性(术语叫metadata,元数据,例如该文件的大小、修改时间、存储路径等)以及内容(以下简称数据)。

传统存储数据与元数据都同时放在文件块中,数据寻址效率低,寻道时间长,查找时间慢。

对象存储解决方案通过元数据服务器MSD存储元数据,用户访问对象时MDS负责查找对象元数据信息(信息量小),得出数据存储在OSD(存储数据的节点)上面的地址,用户再并发访问多个OSD读取数据。查找速度快,并行读写。

此外,如前说所,OSD负责了数据如何分布的计算,这是很多文献都会称OSD是智能化设备的原因。

另外对象存储提供基于对象的访问接口供应用系统访问非结构化数据,与文件系统无关,因此也解决了数据共享的问题。支持一次写多次读取。

04、表存储典型设备:Hbase、MongoDB

传统数据库强调ACID原子性,对于数据一致性要求高,但现阶段WEB应用很多场景对读、写得一致性要求并不高,因此传统数据库限制了数据库向分布式的扩展。

因此出现了表存储这种类型的设备。表存储用于处理半结构化数据,每次更新或查找少量。

表存储以键值对的形式进行存储,而数据没有固定的字段与长度,每个元组有唯一的键值,查找的时候通过键值的索引进行查找。

04-01、交易型(NoSQL存储):

典型产品:Redis、MongoDBT,CssandraDomain

每次更新或查找少量记录,并发量大,响应时间短。

KV(键值对)存储,通常不支持SQL、只有主索引、半结构化,适合微博、博客、社交网络等。

04-02、分析型(日志箱单存储):

典型产品:Hbase、BIG Table,EMC Greenplum更新少,批量导入,每次针对大量数据进行处理,并发量小。

兼容SQL、索引通常只对单表有效、多表Join需扫描,支持MapReduce并行计算。

大规模日志存储处理、信令系统处理、经分系统ETL等

03-存储的数据类型

01、结构化数据

可以通过构建二维表表示的数据(块存储合适存储这种内容)

02、非结构化数据

像图片、声音、视频等等。这类信息通常无法直接知道他的内容,数据库也只能将它保存在一个BLOB字段中,对以后检索非常麻烦。

一般的做法是,建立一个包含三个字段的表(编号 number、内容描述 varchar(1024)、内容 blob)。引用通过编号,检索通过内容描述。(文件存储/对象存储合适存储这种内容)

03、半结构化数据

这样的数据和上面两种类别都不一样,它是结构化的数据,但是结构变化很大。因需要了解数据的细节所以不能将数据简单的组织成一个文件按照非结构化数据处理,由于结构变化很大也不能够简单的建立一个表和他对应。

例如:比如存储员工的简历。不像员工基本信息那样一致每个员工的简历大不相同。有的员工的简历很简单,比如只包括教育情况;有的员工的简历却很复杂,比如包括工作情况、婚姻情况、出入境情况、户口迁移情况、党籍情况、技术技能等等(No SQL存储适合存放这种内容)

按存储用途分类总览图

为什么部分数据库适合用块存储

以下以Oracle数据库为例:

数据库的物理组成

控制文件、日志文件、控制文件

数据库的逻辑组成

表空间、段、区、块。其中数据库块并非前面的文件系统块。数据库安装在操作系统之上,有自己的一套编制的方式,类似有自己的文件系统。因此数据库会将多个操作系统块组成为一个数据库块,数据库块为数据库的最小单位。

为何不能存放在文件存储/对象存储:

文件存储/对象存储优点是数据共享,服务器共享访问数据,文件的访问控制管理很复杂,且数据一致性难以保障。

数据库块是由数据库自己的文件系统维护的,数据库实例都要通过数据库的文件系统才能读写数据文件里面的数据,因此外面这一层文件存储的文件系统是多余的,对于数据库实例来说根本用不上。

因此,数据库更合适使用块存储,裸盘映射后由数据库对区域进行格式化,并且单一区域仅能供单机访问,需要启用数据库集群软件后,才能共享访问,而数据库集群软件中有相应的锁机制以确保数据的一致性。

更多相关知识:

ceph存储原理_【理论研究】漫谈传统IT基础设施10-存储(04)相关推荐

  1. minio对象存储原理_使用MinIO在本地运行S3对象存储

    minio对象存储原理 Object storage is amazingly versatile. We normally associate it with AWS S3, but Object ...

  2. ceph存储原理_热门的分布式存储系统ceph入门介绍

    一.什么是ceph ceph是当前最热门的分布式存储系统之一,是软件定义存储(SDS,SoftwareDefinedStorage)解决方案中的典范.其具备良好的可靠性.可扩展性,应用范围包括块存储( ...

  3. ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储

    // 留言点赞赠书我有书,你有故事么?留言说出你的存储故事留言点赞前两名,免费送此书截止日期12.27号12.30号公布名单 // 内容简介 本书致力于帮助读者形成有关Linux开源存储世界的细致的拓 ...

  4. 【理论研究】漫谈传统IT基础设施10-存储(04)

    01-按照存储类型分类 01.独享式存储 指由单台存储设备提供服务,且相同的一块存储区域同一时间只能被单台设备访问(读写). 如DAS,块存储,SAN网络下的存储,具体产品包括磁盘阵列,硬盘. 此种存 ...

  5. 马逊s3云存储接口_使用 Amazon S3 云服务轻松实现存储

    Amazon Simple Storage Service (S3) 是一个公开的服务,Web 应用程序开发人员可以使用它存储数字资产,包括图片.视频.音乐和文档. S3 提供一个 RESTful A ...

  6. mysql内置多个数据存储引擎_一个mysql数据库,既有myisam存储引擎,又有innodb存储引擎,参数如...

    key_buffer_size - 这对MyISAM表往说十分紧张.假设只是利用MyISAM表,可以把它设置为可用内存的 30-40%.合理的值取决于索引大年夜小.数据量和背载 -- 记住,MyISA ...

  7. 动态ram依靠什么存储信息_处理器内存系统1(ROM,RAM,数据存储顺序)

    本篇文章主要介绍处理器中存储器:ROM和RAM以及数据在内存中的存储顺序:大/小端(Little/Big Endian). 只读存储器(ROM) ROM(Read Only Memory)用来存储和保 ...

  8. python列表的存储结构_在python列表类型结构中合理地存储10亿个以上的值

    我在写一个程序,为数字高程模型的一个固定区域创建变量函数图,这个区域已经被转换成一个数组.我计算窗口约束内点对之间的方差(高程差)和滞后(距离).每个数组位置与其他数组位置进行比较.对于每个对,滞后值 ...

  9. python中存储坐标_最好使用元组或numpy数组来存储坐标

    在内存消耗方面,numpy数组比Python元组更紧凑. numpy数组使用一个连续的内存块.numpy数组的所有元素必须是声明的类型(例如32位或64位float).Python tuple不一定使 ...

最新文章

  1. 数据结构和算法 -- 学习导图
  2. tensorflow 转 numpy 转 tensorflow
  3. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】
  4. 大数据技术下 分布式数据库何去何从?
  5. 星级评价组件--引发对React组件的思考
  6. 5_Text Generation(文本生成)
  7. 论一个蒟蒻的脑子里可以有多少坑(貌似咕了……目前更新保持在noip阶段)
  8. 模糊测试——强制发掘安全漏洞的利器(Jolt 大奖精选丛书)
  9. uni-app 小程序分享到朋友和朋友圈
  10. Uncode-DAL 1.0.18 发布,Java 通用数据访问层
  11. vs2013编译 解决 error c1083 无法打开文件 'winsock2.h' 等问题记录
  12. NOIP 模拟题 国际跳棋
  13. 我不想加班,您看我还有机会吗?
  14. 易生活(二)-APP—安卓中评论功能的实现
  15. 1-1 Java基础和编程概述
  16. 打不开eclipse 由于它来自身份不明的开发者
  17. QNX修改程序最终生成的名字
  18. 用计算机写作集体备课,如何开展好中职计算机应用基础备课组活动
  19. 努力做一个内心强大的人
  20. eNSP为什么直连交换机防火墙却ping不通交换机

热门文章

  1. 廖雪峰团队最新研磨的实战宝典终终终终终终于免费了!
  2. Java中New一个对象是个怎么样的过程?
  3. 由Linux内核bug引起SSH登录缓慢问题的排查与解决
  4. 一文了解Spring Cloud Stream体系
  5. android dialog 控件,android控件封装 自己封装的dialog控件
  6. 领克linux系统怎么下载软件,新升级的领克车机系统好用吗?我们来盘一下
  7. 3399 cpu绑核
  8. LibTorch NMS
  9. python top k问题
  10. python获取路径下所有图片: