存储

在这篇文章中,概述了存储的一些基本内容并简要回答「数据库如何进行存储」,为大家了解存储系统提供一个基本的视角。

存储介质与存储系统

存储介质

综合存储介质的性能和成本,大致可以得到一个如下图所示的层次结构:

Storage Level

常见存储介质

  • 缓存:最快且最贵,通常情况下由计算机系统硬件进行管理。
  • 主内存:存放可处理的数据,断电后丢失数据。
  • 闪存:断电数据不丢失,速度比磁盘快很多,相同容量下成本远低于主内存。
  • 磁盘:长期联机数据存储的主要介质。
  • 光盘:数据通过光学方法存储到器件上,并利用激光器读取。
  • 磁带:通常用于备份和归档数据,只能从头顺序访问。

根据数据访问频率的划分

缓存和主内存是基本存储,只有存放在基本存储中的数据才能被直接访问和处理;其他正在使用/将要使用的数据往往会存放在闪存和磁盘上,这两类存储介质可以视作是二级存储,也就是联机存储;对于备份或不常访问的数据,则会依赖光盘和磁带进行存储,它们也被称作是三级存储或者是脱机存储。

根据存储易失性的划分

缓存和主内存通常被认为是易失性存储,这表示它们在断电后会丢失所有数据;而其他几个视作非易失性存储。为了保存数据,必须将数据写入到非易失性存储中。

存储系统

DAS 直接连接存储,是一种以服务器为中心的存储方案,对外和多个主机连接,对内连接多个磁盘,并实现 RAID 技术,形成一个磁盘阵列。

SAN 存储区域网,通过专用高速网将一个或多个网络存储设备和服务器连接起来的专用存储系统。通常情况下,SAN 方案会采用 RAID 技术提供一个的大逻辑存储视图。

NAS 附网存储系统是另一类集成系统、存储和网络技术的方案,可以看作是一个装有优化的文件系统和瘦操作系统的专用数据存储服务器,提供跨平台的文件共享功能。通过 NFS、CIFS 等协议为用户提供一个文件系统视图。

云存储

这一部分仅仅是作为一个引子,帮助我们将视角从传统的物理机进一步扩展到云。

云存储能够支持远程保存数据和文件,并通过网络连接进行访问。云供应商负责托管、和维护相关的基础设施并提供访问性保证。不仅可以节约拓展物理器件所带来的人力物力消耗,并能够提供更好的弹性以便于即时增减容量,还支持按需按量付费从而做到更好的成本管理与控制。

常见的云存储形式

  • 文件存储:文件存储方法将数据保存在分层目录结构中。数据可以保留自己的格式,并且得益于层级结构,可以方便进行检索。
  • 对象存储:将数据作为对象管理,每个对象包含数据、关联的元数据和标识。无需按层级结构归档,支持元数据定制,能够提供经济高效的存储。
  • 块存储:数据被组织成称为“块”的大型卷。 每个块代表一个单独的硬盘驱动器。云存储供应商使用块来分割多个存储节点中的大量数据。块存储的 IO 延迟低,性能更为理想。

优点

  • 弹性:弹性意味着存储容量可以根据业务/数据规模即时进行放缩,这规避了本地存储常见的容量限制问题。同时结合灵活的计费模型,可以提供更经济的存储方案。
  • 非现场:一方面,不再需要投入人力物力到存储系统的建设和维护;另一方面,由于供应商为访问性提供保障,则无需担心业务因自己场所的状态陷入不可用的境地。

缺点

  • 延迟:由于流量拥堵和其他可能存在的访问限制,往往会导致与云存储之间出现访问延迟。
  • 合规:考虑到数据的安全性,和所处行业的数据隐私和归档法规,云存储并不总能满足合规性要求,需要根据实际情况选择合适的供应商。

改善存储的典型方案

性能

  • 缓存:缓存的目的是减少磁盘访问次数,通过尽可能最大化数据已经存储在主内存中的几率来减少需要传输的数据量。
  • 并行:并行不光能够为小数据访问提供负载均衡并保证吞吐量,也可以并行执行大的访问操作从而改善响应时间。常见的提高并行的方案是对数据进行拆分。

可靠性

  • 冗余:冗余意味着需要存储有利于在发生存储故障时重建丢失数据的那些信息。这样一来,即便出现小规模的存储故障,数据也不会丢失,从而延长发生故障的平均时间。一种简单的冗余方案是直接备份全部数据。