一、存储&数据简介
1.什么是存储系统? 一个提供了读写、控制类接口,呢挂钩安全有效化地把数据持久化的软件,就可以称为存储系统。
2.什么是数据库? 数据库是按照数据结构来组织、存储和管理数据的仓库。 是一个长期存储在 计算机 内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是存放数据的仓库。
3.数据库与存储系统的区别?
存储系统是用于存储数据的硬件和软件系统。 它的主要目的是提供大容量的存储空间,以便用户能够保存大量的数据。 存储系统可以是本地的,也可以是远程的。 数据库系统是一种用于组织,存储和管理数据的软件系统。 它使用特定的 数据模型 和语言来存储数据,并提供各种工具和接口,使用户能够查询和管理数据。 数据库系统通常在存储系统之上运行,使用存储系统提供的空间来存储数据。 因此,存储系统和数据库系统之间的区别在于,前者是用于存储数据的硬件和软件系统,而后者是用于组织,存储和管理数据的软件系统。
二、数据库概述
1.关系是什么?
关系=集合=任意元素组成的若干有序偶对,反映了事物的联系。
关系代数=对关系作运算的抽象调查语言
SQL=一种DSL=方便人们阅读的关系代数表达式。
2.关系型数据库的特点
关系型数据库是存储系统,但是在存储之外,又发展出其他能力
3.非关系型数据库的特点
非关系型数据库也是存储系统,但是一般不要求严格的结构化。
三、数据库的使用
DML
DDL
DML
DQL
DCL
四、单机存储
1.本地=文件系统
linux哲学一切皆文件
2.key-value存储
世间一切皆key-value,---key是你的身份证,value是你的内涵
常见的使用方法:
put(k,v) get(k)
常见的数据结构:LSM-Tree,某种程度上牺牲读性能,追求写入性能
五、分布式存储
1.分布式存储 基于标准硬件和分布式架构,实现千节点/EB级扩展,同时可以对块、对象、文件等多种类型存储统一管理。
HDFS的优势
1.容错性:数据自动保存多个副本。通过增加副本的形式,提高容错性。其中一个副本丢失以后,可以自动恢复。
2.可以处理大数据:能够处理数据规模达到GB、TB甚至PB级别的数据;能够处理百万规模以上的文件数量。
3.可以构建在廉价的机器上,通过多副本机制,提高可靠性。
HDFS的缺点
1 . 不适合低延时数据访问:比如毫秒级的存储数据,是做不到的。
2.无法高效对大量小文件进行存储:存储大量小文件的话,它会占用 NameNode 大量的内存来存储文件目录和块信息。这样是不可取的,因为 NameNode的内存总是有限的。同时,小文件存储的寻址时间会超过读取时间,它违反了HDFS的设计目标。
3.不支持并发写入、文件随机修改:一个文件只能有一个写,不允许多个线程同时写。仅支持数据 append(追加),不支持文件的随机修改。
** Ceph的优点**
1.CRUSH算法
CRUSH算法是ceph的两大创新之一,简单来说,ceph摒弃了传统的集中式存储元数据寻址的方案,转而使用CRUSH算法完成数据的寻址操作。采用CRUSH算法,数据分布均衡,并行度高,不需要维护固定的元数据结构。
2.高可用
Ceph中的数据副本数量可以由管理员自行定义,并可以通过CRUSH算法指定副本的物理存储位置以分隔故障域,支持数据强一致性,适合读多写少场景;ceph可以忍受多种故障场景并自动尝试并行修复。
3.高扩展性
Ceph本身并没有主控节点,扩展起来比较容易,并且理论上,它的性能会随着磁盘数量的增加而线性增长。
4.特性丰富
Ceph支持对象存储、块存储和文件存储服务,故称为统一存储
** Ceph的缺点**
1.去中心化的分布式解决方案,需要提前做好规划设计,对技术团队的要求能力比较高。
2.Ceph扩容时,由于其数据分布均衡的特性,会导致整个存储系统性能的下降。
QA:当下分布式存储的技术壁垒依然很高,由于存储最基本的核心诉求是数据不丢失、业务不中断。一个典型的存储系统包含上百万个电子元器件、上亿行软件代码,里面任何一个元器件老化失效、电子信号干扰、软件Bug、系统意外掉电,都有可能导致数据丢失。由此可见,要打造一个高可靠、高性能的分布式存储系统绝非易事。