存储与数据库
1.数据库潜在的问题
- 数据库怎么保证
数据不丢? - 数据库怎么处理
多人同时修改的问题? - 为什么用数据库,除了数据库还能存储到
别的存储系统吗? - 数据库只能处理
结构化数据吗? - 有那些操作数据库的
方式,要用什么编程语言?
2.存储系统
1.系统概览
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以称为存储系统
(注意:此非标准解释)
2.系统特点:
作为后端软件的底座,性能敏感;
存储系统软件架构,容易受硬件影响;
存储系统代码,既“简单”又复杂“。(简单:代码结构相对简单,对比传统存储系统,进行数据读写操作只需要几行代码就可以实现。复杂:部分存储分支问题较为复杂。 )
3.存储器层级结构
存储器的缓存——主存层次和主存——辅存层次
- 缓存与主存之间主要解决速度问题(cpu和主存速度的不匹配),因此通过硬件方法实现;
- 主存与辅存之间主要解决容量问题,因此使用软硬件相结合的方法;
- 缓存与主存使用的是主存储器的地址,也就是实地址(也叫物理地址);主存与辅存构成虚拟存储器,使用的是虚地址(也叫逻辑地址)。
4.数据从应用到存储介质
过程图:
缓存很重要,贯穿整个存储体系,可以解决速度差的问题拷贝很昂贵,需要消耗大量cup的资源,应该尽量减少- 硬件设备多种多样,需要设计抽象统一的接入层,增加适用性,如果只适用单一设备,一当更换设备,就要修改大量的地方,非常消耗时间与资源。
5.RAID技术
RAID为廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),
RAID技术将一个个单独的磁盘以不同的组合方式形成一个逻辑硬盘,
从而提高了磁盘读取的性能和数据的安全性。不同的组合方式用RAID级别来标识。
RAID技术是由美国加州大学伯克利分校D.A. Patterson教授在1988年提出的,
作为高性能、高可靠的存储技术,在今天已经得到了广泛的应用。
RAID 级别 不同RAID 级别代表着不同的存储性能、数据安全性和存储成本,RAID级别:0、1、2、3、4、5、6、01、10。
常见的:
RAID 0
- 多块磁盘简单组合
- 数据条带化存储,提高磁盘带宽
- 没有额外的容错设计
DAID 1
- 一块磁盘对应一块额外镜像盘
- 真实空间利用率仅50%
- 容错能力强
RAID 0 + 1
-
结合了RAID 0 和 RAID 1
-
真实空间利用率仅50%
-
容错能力强,写入带宽好