存储系统与数据库| 青训营

118 阅读5分钟

一、存储系统

1、什么是存储系统

一个提供了读写、控制类接口,能够安全有效的把数据持久化的软件,就可以称为存储系统

2、存储系统的特点

存储系统是计算机系统中负责数据持久化和访问的关键组成部分。不同类型的存储系统可能具有不同的特点,但下面是一些存储系统普遍具备的特点,包括数据持久性、访问速度、容量、安全性、一致性、备份恢复、可扩展性、性能、成本效益、数据压缩与加密、高可用性以及跨平台兼容性等。

3、RAID技术

单机存储系统怎么做到高性能/高性价比/高可靠性?

RAID出现的背景 单块大容量磁盘的价格>多块小容量磁盘 单块磁盘的写入性能<多块磁盘的并发写入性能 单块磁盘的容错能力有限,不够安全 RAID 0 多块磁盘简单组合,数据条代话存储,提高磁盘带宽,没有额外的容错设计。(比如把一块私盘分为两个,存储1000mb的文件分为两个500的分别存到第一快的1位置和第二块的1位置,这样分开存入,速度肯定是增加了)

RAID 1 一块磁盘对应一块而外的磁盘镜像,真实的空间利用率只有百分之50,容错能力强(分两块,一块存数据,另一个存镜像,复制一样的)

RAID 0+1 这种就是结合了上面两种情况,把0的高性能和1的容错率结合,真实存储还是百分之50为了存镜像,但是用了0的分开写,性能快了。

二、数据库

1、数据库和存储系统的比较

存储系统是用于存储数据的硬件和软件系统。它的主要目的是提供大容量的存储空间,以便用户能够保存大量的数据。存储系统可以是本地的,也可以是远程的。

数据库系统是一种用于组织,存储和管理数据的软件系统。它使用特定的数据模型和语言来存储数据,并提供各种工具和接口,使用户能够查询和管理数据。数据库系统通常在存储系统之上运行,使用存储系统提供的空间来存储数据。

三、主流产品剖析

1、单机存储

单机存储系统就是单个计算机节点上的存储软件系统,一般不实际网络交互

本地文件系统 linux的哲学就是一切皆文件,所以文件系统的管理单元就是文件。

key-value存储 世间一切皆key-value,key可以是你的身份证,value是你的内涵

常见的使用方式:put & get

2、分布式存储系统

分布式存储=单机存储的基础上实现了分布式协议,涉及大量网络交互

分布式文件系统 HDFS:堪称大数据时代的基石

当时时代背景,专用的高级硬件很贵,同时数据存量很大,要求超高吞吐,于是就想说要很多海量的便宜的硬件堆起来实现,支持海量存储,吞吐量大,而且因为硬件都是很多便宜的组成,容易坏,所以要求高容错性,极高的性价比

分布式对象存储 Geph:开源的分布式存储系统的万金油

特点:一套系统支持对象接口、快接口、文件接口、但是一切皆对象。数据写入采用主备复制模型,数据布模型采用CRUSH算法(一份数据为了保证可靠性分为很多副本,分布到哪里通过分布算法实现)

3、单机数据库

单机数据库是单个计算机节点上的数据存储系统,事务在单机内执行,也可能通过网络交互实现分布式事务

关系型数据库 Oracle和MySQL

非关系型数据库 MongoDB、redis、elasticsearch三足鼎立

交互方式各不相同,schema相对灵活,都在想办法支持sql子集和事务

elasticsearch是基于文档来存储,可以序列化为json,支持嵌套,实现了大量搜索数据结构和算法,支持restful api也支持弱sql交互

mongoDB面向文档存储,可以序列化json和bason支持嵌套,4.0后也开始支持事务,也可以通过插件支持弱sql

redis数据结构非常丰富,纯c实现,超高性能,主要基于内存,但支持aof和rdb两种方式来持久化,redis-cli多语言sdk交互

4、分布式数据库

单机数据库遇到了什么问题?这么好了为什么还要卷到分布式架构?

单机数据库在面对某些情况和需求时可能会遇到一些问题,这些问题通常是推动将系统迁移到分布式架构的原因之一。以下是一些单机数据库可能面临的问题:

  1. 性能瓶颈: 单机数据库的性能可能受到硬件限制,包括处理器、内存和存储速度等。随着数据量和并发访问的增加,性能瓶颈可能变得更加明显。
  2. 可用性和容错性: 单机数据库在硬件故障或软件问题导致系统崩溃时可能会导致数据不可用。缺乏容错机制可能使数据恢复变得困难。
  3. 扩展性: 单机数据库在面对大规模数据增长时,可能难以轻松地扩展以满足需求,因为硬件升级可能成本高昂,并且可能无法持续满足性能要求。
  4. 地理分布: 单机数据库通常难以处理分布在不同地理位置的数据访问需求,尤其是在全球范围内提供低延迟的访问。
  5. 数据一致性: 在高并发的情况下,单机数据库可能面临数据一致性的问题,需要复杂的事务处理和并发控制机制。
  6. 维护和升级: 单机数据库的维护和升级可能需要系统停机,从而影响业务连续性。