美文网首页
物理存储系统

物理存储系统

作者: lesliefang | 来源:发表于2020-03-01 16:16 被阅读0次

Database System Concepts 7th 12章 Physical Storage Systems 学习

存储层次结构

Physical Storage.png
Cache:高速缓存

L1,L2级高速缓存,寄存器, 通常用在 CPU 中

Main memory: 主存,也叫内存

普通 PC 8G,16G,32G 已经很常见
服务器 128G,256G 可以有很大的内存
现在 OnLine OLTP 也是一个趋势, 就是把整个数据库都放到内存中, 当然也会异步持久化到磁盘。内存数据库访问速度肯定非常非常快,很多存储、索引结构都可以优化。 能替代部分场景,但磁盘还是主流。

Flash memory: 闪存

相机,手机 SD 卡(64G, 128G,256G), TF卡, U盘(128G,256G的都已经很常见)

SSD (solid-state drive) 固态硬盘, 在PC,服务器上运用越来越多。
SSD 提供了类似磁盘的访问接口, 都是以 block (块) 为单位进行数据的存取。一个块的大小可以从 512字节 到 8k 个字节
SSD 容量越来越大,价格越来越便宜, 很多场景下可替代磁盘。

Magnetic-disk: 磁盘

也叫硬盘(HDD - hard disk drive)
500G, 1T, 2T, 8T, 14T , 1T的硬盘已经很便宜

Optical storage: 光存储

DVD 光盘等,现在比较少见了

Tape storage: 磁带

主要做备份和归档

从上往下,容量越来越大, 每位价格越来越便宜,速度越来越慢。cache和内存是易失性存储,断电后信息会丢失。磁盘、SSD、光盘等是非易失性存储。

primary storage: 主存储
cache, 内存通常叫做主存储

secondary storage: 辅助存储 (或 online storage)
磁盘, SSD 等 Flash 通常叫做辅助存储(或二级存储)

tertiary storage: 三级存储 (或 offline storage)
光盘,磁带等

我学习数据库呢,你为什么一上来就讨论磁盘??? 因为数据库底层存储的数据都是存储在磁盘上,所以了解磁盘的工作原理是必须的!!!

磁盘

hdd.png hdd1.png

一个磁盘有多个盘片, 所有盘片固定在中间的一根柱子上。
工作时柱子带动所有盘片一块旋转,旋转速度可以从 5400转/分钟,到 10000转/分钟。

每个盘片表面由一个一个的磁道(track, 一圈一圈的圆), 每个磁道都被划分为多个扇区(sector)。越靠近圆心的磁道长度越短,所以靠里面的磁道相比外面的磁道的扇区数要少。
磁盘以扇区为最小单位进行读写,每个扇区大小通常是 512字节。

一个盘片的上下两面都可以存储信息, 上下两面各有一个磁头贴着盘面进行数据读写。所有磁头由一个手臂牵引着一块运动。所有盘面的同一长度的磁道构成了一个柱面(cylinder, 一个圆柱体)

操作系统通过磁盘控制器(disk controller 或叫磁盘驱动器)跟磁盘通信,
磁盘收到指令后首先可能要移动磁头到指定的磁道,然后盘片旋转到指定的扇区进行数据的读写。磁盘驱动在写一个扇区时会而外写一个数据的 checksums(校验和)进去。这样当数据从扇区读回来的时候,可以重新计算校验和并和之前的对比, 来检查数据是否损坏。

磁盘访问时间包括寻道时间(seek time),旋转时间和传输时间
一个IO请求到来,手臂首先要移动到指定的磁道,平均寻道时间是 4-10毫秒。之后盘片旋转到指定扇区,所用时间跟转速有关。 寻道时间+旋转时间一般叫做 access time(访问时间)。
传输时间就是数据读写的时间,跟传输速度有关,读写速度通常几十到几百M每秒

IO操作都是以块(block)为单位进行操作的。一个块的大小通常从 4k到16k。
块是一个逻辑地址,一个IO请求指定一个读写的块号,磁盘驱动会把块号转换为具体的磁道和扇区。

显然如果请求的块号都是连续的,可能访问的都是同一个磁道或相邻磁道,这样寻道时间会减少。这种模式叫做顺序访问(sequential access)。相反随机访问(random access)会导致寻道和旋转时间加长。磁盘调度算法(如电梯算法)就是优化磁盘访问的。

Flash

Flash: 目前主流的是 NAND flash 技术, SSD 就是用的NAND flash
SSD 也是按照块(也叫page)来访问的。一个Page通常4096字节。(4k)
SSD的随机访问速度远高于磁盘,通常5-10微妙(milliseconds)。

flash 的写要复杂一些,写一个Page需要大约 100微妙。但是当一个Page被写入后就不能被直接复写了,只能被擦除后重写。通常一次擦除多个Page,耗时 2-5微妙。
flash 还有一个缺点就是每个Page的可擦写次数是有限的,通常只能擦写 100000到1000000次。超过这个次数数据可能会损坏。
一个Page更新时原来的Page会map到一个已经擦除的新的Page上。原来的Page就会被标记为可删除。后台会周期性的擦除这些Page。
所以SSD也不是十全十美的。 SSD驱动器提供了和磁盘一样的访问接口,都以块为访问单位,这两个对于上层应用来说都是一样的。数据以块(block)为单位在内存和磁盘(包括SSD)之间传递。

RAID ( redundant arrays of independent disks)

独立磁盘冗余阵列
顾名思义,多个磁盘组成一个阵列当做一个大的磁盘使用。多个磁盘除了大容量还有主要是做备份和数据库恢复。主要用在数据中心服务器上。

前沿研究: storage class memory

如果有一种存储既像内存一样可以快速的随机访问(内存可以随机访问每一个字节),又像磁盘,SSD那样大容量,非易失那该多好。我们再也不用担心电脑断电没保存了。 数据库架构,软件架构都得迎来革命性变革。目前 Intel 等正研究这类存储,搞了一个 3D-XPoint。价格介于内存和 flash 之间,如果能够普及绝对世界首富。

相关文章

  • 物理存储系统

    Database System Concepts 7th 12章 Physical Storage Systems...

  • 分布式存储系统的哈希算法研究

    针对分布式存储系统中如何实现数据在物理存储上的均匀分布和高效定位的问题,对多种哈希算法展开研究,提出了衡量分...

  • Vold

    Android 7.0 存储系统—Vold与MountService分析(一) Android 7.0 存储系统—...

  • Hadoop相关介绍

    分布式存储系统HDFS(Hadoop Distributed File System)POSIX 分布式存储系统 ...

  • 存储系统

    三层存储结构是:高速缓存,主存储器和辅助存储器。 高速缓存一般位于CPU与主存之间,容量在几千字节到几兆字节之间,...

  • 存储系统

    RAM和ROM RAM和ROM的存储器的存储介质是半导体存储器 RAM是易失性存储器,断电后存储的信息就会消失,但...

  • 存储系统

    计算机存储系统的层次结构 计算机采用分级存储体系的主要目的是为了解决存储容量,成本和速度之间的主要矛盾问题。 两...

  • 这样的spark你喜欢吗?

    BlockManager定义 BlockManager是Spark的分布式存储系统,与我们平常说的分布式存储系统是...

  • 【理论学习】Ceph功能模块与RADOS

    Ceph架构图 Ceph存储系统的逻辑层次结构大致划分为4部分: ◎ 基础存储系统RADOS ...

  • 前端nginx反代后端mogilefs存储实战实例

    一、MogileFS存储 1、MogileFS分布式文件存储系统 MogileFS是一个开源的分布式文件存储系统,...

网友评论

      本文标题:物理存储系统

      本文链接:https://www.haomeiwen.com/subject/dnxckhtx.html