热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

01-按照存储类型分类01、独享式存储指由单台存储设备提供服务,且相同的一块存储区域同一时间只能被单台设备访问(读写)。如DASÿ

01-按照存储类型分类

01、独享式存储

63869b7b2c5d8987c05857e442144383.png

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

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

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

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

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

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

bf0e6ba634cb595497ba9dba1fe93a98.png

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

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

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

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

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

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

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

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

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

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

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

0bf029389f3819bab398d955ae6d31c9.png

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

分布式存储(块/文件存储)原理与部署模式基本上就是上一页的对称式/非对称式的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的负载,因此性能更好。

存储类型类型分类总览图

f6c119373a883c8dbf5aa7353bc23007.png

02-按照存储用途分类

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

ee817acb83897eb1d8b36db4d5084155.png

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

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

优点:

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

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

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

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

缺点:

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

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

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

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

f53e47f4f7b44d480b53cefac4e6e1e9.png

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

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

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

优点:

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

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

缺点:

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

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

03-01、分布式块存储:

2d0588c6bd2e5df223f8987f2aa95878.png

典型产品: GlusterFS, Ceph等

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

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

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

d686c4216e252b79f0f1d6e6a1b35b57.png

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

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

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

8f3322c18d9bfa0a5431618a9277e0fd.png

典型产品:Ceph、swift

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

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

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

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

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

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

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

5266829fe2faf5f2cd5291c58099b049.png

传统数据库强调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存储适合存放这种内容)

按存储用途分类总览图

d270e543f933db2dfd417bfe2a59b727.png

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

以下以Oracle数据库为例:

数据库的物理组成

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

数据库的逻辑组成

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

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

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

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

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

更多相关知识:



推荐阅读
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • TCP三次握手过程详解与图示解析
    本文详细解析了TCP三次握手的过程,并通过图示清晰展示了各个状态的变化。同时,文章还介绍了四次挥手的图解,解释了在TIME_WAIT状态中,客户端最后一次发送的ACK包的作用和重要性。 ... [详细]
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 深入解析C语言中结构体的内存对齐机制及其优化方法
    为了提高CPU访问效率,C语言中的结构体成员在内存中遵循特定的对齐规则。本文详细解析了这些对齐机制,并探讨了如何通过合理的布局和编译器选项来优化结构体的内存使用,从而提升程序性能。 ... [详细]
  • 性能测试中的关键监控指标与深入分析
    在软件性能测试中,关键监控指标的选取至关重要。主要目的包括:1. 评估系统的当前性能,确保其符合预期的性能标准;2. 发现软件性能瓶颈,定位潜在问题;3. 优化系统性能,提高用户体验。通过综合分析这些指标,可以全面了解系统的运行状态,为后续的性能改进提供科学依据。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文详细介绍了在Windows XP系统中安装和配置Unix打印服务的方法,以支持远程行式打印机(LPR)功能。对于同时使用Windows 2000 Server打印服务器和Unix打印服务器的网络环境,该指南提供了实用的步骤和配置建议,确保不同平台之间的兼容性和高效打印。 ... [详细]
  • Linux入门教程第七课:基础命令与操作详解
    在本课程中,我们将深入探讨 Linux 系统中的基础命令与操作,重点讲解网络配置的相关知识。首先,我们会介绍 IP 地址的概念及其在网络协议中的作用,特别是 IPv4(Internet Protocol Version 4)的具体应用和配置方法。通过实际操作和示例,帮助初学者更好地理解和掌握这些基本技能。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
author-avatar
风之云织2004
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有