文章目录
- 1 前言
- 2 存储设备分类
- 3 主存层次结构
- 4 磁盘结构
- 5 RAID
- 6 总结
- 7 系列文章
1 前言
没有存储,就没有数据!
如果说ER模型和数据库规范化是数据库概念模式的技术和方法,那么存储设备就是数据库物理模式的基础。
物理存储设备包含哪些类型?这些设备之间存在什么关系?存储设备特性对数据库系统有何影响?
接下来我们来讨论一下有关存储设备的内容。
2 存储设备分类
存储设备分为三类:
- 主存储(Primary Storage)
- CPU可直接访问的存储,包括寄存器(Register)和内存(RAM)
- 容量相对较小,但是读写速度极快
- 是易失性的,在电源故障的情况下,所有数据都会丢失
- 辅助存储(Secondary Storage )
- CPU无法直接访问的存储,例如,磁盘和闪存驱动器
- 用于存储数据以备将来使用或作为备份
- 三级存储(Tertiary Storage)
- 计算机系统外部存储,速度最慢。例如,光盘和磁带
- 用于存储大量数据,对整个系统进行备份
为什么要有这么多种存储设备?一个存储设备搞不定吗?
由于技术上的限制,无法解决容量、性能和成本上的矛盾,只能针对特定用途开发特定存储设备。通常来说,性能越高的存储,容量相对较小,成本也相对较高。
- 主存储 → 辅助存储 → 三级存储:性能↓,容量↑,成本↓
- 三级存储 → 辅助存储 → 主存储:性能↑,容量↓,成本↑
3 主存层次结构
主存储可以进一步再分为:
- CPU内置寄存器(Register):性能最快
- 高速缓存(Cache Memory):缓存CPU最频繁访问的数据,弥补主内存和CPU性能不匹配问题
- 主内存(Main Memory):性能无法满足CPU速度要求,性能较慢,但容量大
这里的Memory和上节提到的RAM是什么关系呢?
- RAM(Random Access Memory),即随机存取存储器,允许随机访问数据,用于存储正在运行的程序和数据,通常具备易失性,是构成高速缓存和主内存的设备。
- 高速缓存(Cache Memory):通常由特殊的RAM构成
- 主内存(Main Memory):通常由RAM构成
4 磁盘结构
磁盘是最常见的一种辅助存储设备,它由以下部分构成:
- 盘片(Platters):磁盘由一个或多个圆形盘片组成,这些盘片由金属或玻璃制成。盘片涂有一层磁性材料,数据以磁脉冲的形式存储在上面
- 磁头(Heads):每个盘片都有一个或多个磁头。磁头悬浮在盘片上方,并用于读写数据
- 执行器臂(Actuator Arms):执行器臂将磁头移动到盘片的不同位置
- 主轴(Spindle):主轴将盘片旋转
- 磁盘控制器:磁盘控制器管理磁盘的读写操作
磁盘的工作原理:
- 将数据写入磁盘时,磁盘控制器会将数据分解成小块(扇区,最小存储单位)
- 执行器臂将磁头移动到要写入数据的扇区上方,然后磁头将数据写入盘片上的磁性材料中
- 从磁盘读取数据时,执行器臂将磁头移动到要读取数据的扇区上方,然后磁头从盘片上的磁性材料中读取数据
了解磁盘的工作原理有什么用?
从工作原理中可以得出,磁盘读写的动作可分解为:移动、旋转和读写。要想提高磁盘I/O性能,就需要尽可能缩短这三个动作的时间。
磁头读写的时间是固定的,只能想办法缩短移动和旋转的时间,这就要求一次读写的数据要尽可能连续。实际上,数据库系统中有大量优化算法,其最终目的之一,就是降低磁盘I/O。
5 RAID
单个磁盘的容量有限,而且还存在单点故障问题(一个磁盘损坏,其上的数据都会丢失),因此有了RAID技术。
独立磁盘冗余阵列(Redundant Array of Independent Disks,简称RAID)是一种“虚拟化”技术,它将多个磁盘设备连接起来,对外表现为单个逻辑磁盘。
按照连接方式的不同,RAID可以分为以下几种。
RAID 0(条带化)
在这个级别中,实现了磁盘的条带化。数据被分解成块,这些块分布在不同的磁盘上。每个磁盘接收一个数据块实现并行读写。
它提高了存储设备的速度和性能,但是没有冗余。
RAID 1(镜像)
RAID 1 将数据镜像到两个或多个磁盘上。这提供了冗余性,因为如果一个磁盘发生故障,数据仍然可以从其他磁盘上访问。
RAID 5(分布式奇偶校验)
RAID 5 将数据条带化存储在多个磁盘上,并使用奇偶校验信息来提供冗余性。如果任何一个磁盘发生故障,数据仍然可以从其他磁盘和奇偶校验信息中重建。
例如,假设Disk 2损坏,A2可以根据A1和A奇偶校验重建。同理,C1可以根据C2和C奇偶校验重建,B奇偶校验可以根据B1和B2重建。
RAID 10(镜像和条带化)
RAID 10 将 RAID 1(镜像)和 RAID 0(条带化)结合在一起。它提供高性能和冗余性,但成本也更高。
除了以上常见的RAID方式外,还有RAID2,RAID3,RAID4和RAID6。
6 总结
存储设备属于硬件层面,是数据持久化的基础,但是底层的设计思想和软件层面是类似的,比如:
- 引入中间层:软件设计中,如果遇到棘手的问题,总能通过引入一个中间层来解决。硬件中也是如此。例如,引入高速缓存来解决主内存和CPU速度不匹配问题
- 切分和并行:分布式系统中,通过将数据切片并分布于不同的节点中,实现了扩容和性能提升。同理,RAID技术也是通过将数据切分为块,并行写入多个磁盘中,实现了扩容和性能提升。
7 系列文章
- 【如此简单!数据库入门系列】之初识数据库 – 数据库基本概念
- 【如此简单!数据库入门系列】之学霸数据库 – 数据库基本原理
- 【如此简单!数据库入门系列】之学霸数据库(2) – 数据库基本原理
- 【如此简单!数据库入门系列】之学霸数据库(3) – 数据库基本原理
- 【如此简单!数据库入门系列】之前世今生 – 数据库历史
- 【如此简单!数据库入门系列】之前世今生(2) – 数据库历史
- 【如此简单!数据库入门系列】之ER模型快速入门
- 【如此简单!数据库入门系列】之关系模型简介
- 【如此简单!数据库入门系列】之数据库设计基础–函数依赖
- 【如此简单!数据库入门系列】之数据库规范化 – 数据库设计方法
如果喜欢这篇文章,请不要忘记关注、点赞和收藏哦!
您的鼓励将是我创作的最大动力!