存储技术基础 Ch1
1.1 信息存储与管理简介
为什么要信息存储(Information Storage)
-
信息爆炸
-
按需分配,需求增加
-
信息管理需要存储、保护、优化和充分利用信息
大数据
超过传统计算机系统处理能力的数据集合
什么是数据
对所有事物的数字表示
数字数据处理能力提高;数字存储成本降低;效率更高的通信
数据分类
结构化数据和非结构化数据,后者占比更高
结构化数据:可以使用关系型数据库表示和存储,表现为二维形式的数据,如关系数据库、电子表格、CSV文件
非结构化数据:没有固定格式或模式的数据,需要特定的处理和分析技术,如文本数据、多媒体数据、日志文件
半结构化数据:具有一定的结构,但不如关系数据库中的数据那样严格,如XML和JSON文件,HTML文档(包含标签和文本的混合数据)
信息
信息是从数据中获得的情报和知识。企业对原始数据进行分析,以确定有意义的趋势
数据的处理周期
增加特定价值
输入处理和输出
数据与信息
数据经过加工处理,提炼出信息
信息借由数据进行存储和传输
信息对企业的价值
存储:对数据进行存储以供进一步处理
存储类型取决于数据类型以及数据创建和使用的频率
存储模型:集中式大型计算机;分散式CS模型;集中式存储网络
存储技术与架构的演化
Internal DAS
JBOD
RAID
SAN/NAS
IP SAN
数据存储的分类
存储架构:从硬盘到磁盘,从分离到融合
分布式存储
-
分布式存储是将数据分布在多个独立的节点上,这些节点可以是地理上分散的服务器、数据中心或设备。
-
通过分布式文件系统或数据库来管理和访问这些数据,提供数据冗余和高可用性
存储虚拟化
-
将存储设备进行抽象,以逻辑资源的方式呈现,统一提供全面的存储服务。
-
可以在不同的存储形态或设备类型之间提供统一的功能。
云存储
- 云存储是一种通过互联网提供的在线存储服务,允许用户将数据存储在远程数据中心,并通过网络访问和管理这些数据。(高度虚拟化)
数据中心:一个物理空间内实现信息的集中处理、存储、传输、交换、管理
基础架构组件:网络、服务器、存储系统、冗余和灾难恢复(安全)、电源管理和环境控制等物理设施。
处理过程举例:客户端通过局域网(LAN)连接到服务端的DBMS再通过FC SAN访问存储阵列
关键需求:数据完整性;可用性;安全性;容量;可扩展性;性能
架构:
-
数据网络
-
服务器
-
存储交换网络
-
存储系统
信息管理
-
数据爆炸
-
信息依赖
-
信息价值的改变
信息生命周期管理ILM
一种主动策略,从信息产生和初始储存阶段到最后过时被删除时的一套综合管理方法,基于策略的存储基础设施与数据价值的协调
好处:
-
提高利用率,分层存储平台
-
简化管理
-
简化备份和恢复
-
合规性,了解哪些数据需要保护多长时间
-
低成本,通过使基础设施和管理成本与信息价值保持一致
1.2 存储系统环境
存储系统环境的三个组成部分
主机
- 应用程序在主机上运行,个人电脑到服务器集群都可看作主机
物理组件:CPU、存储设备(硬盘和内存)、IO设备(网络接口卡NIC,总线适配器HBA)
逻辑组件:应用,OS,文件系统,卷管理器,设备驱动
应用
应用程序的三层架构:UI,计算逻辑,低层数据库
应用程序数据访问可分为块级访问和文件级访问
OS:介于软件和硬件之间
LVM(逻辑卷管理器):负责创建和控制主机逻辑存储的存储管理技术
物理卷PV:LVM管理的最基本存储单元
卷组VG:由一个或多个物理卷组成的存储池,为逻辑卷提供存储空间,可动态扩展和缩小容量
逻辑卷LV:从卷组中划分出来的存储单元,Partitioning and Concatenation
驱动:使OS能够识别设备,提供API访问和控制设备,硬件相关支持
文件系统:管理和组织存储设备上的数据的方法和结构,提供了框架使得OS和用户能够方便地存储、检索和管理文件和目录
常见文件系统类型
FAT:FAT16,FAT32(不大于4G),exFAT,兼容性好,对大容量和大文件的支持有限
NTFS:Windows的主要文件系统
ext:ext2,ext3和ext4,Linux常用文件系统,ext4支持大容量存储、日志和高性能
HFS+和APFS:Mac OC
Btrfs:现代Linux
文件在存储中的移入和移出
连接性:主机与主机间或主机与其他设备间
物理组件:总线、端口和电缆
协议:PCI,IDE/ATA,SCSI或FC
PCI:一种用于连接计算机主板和外部设备的标准接口,提供高速传输、即插即用、兼容性和扩展性等功能;
PCIe:串行通信代替并行总线架构,显著提高传输速率和效率
IDE/ATA:接口标准,集成了控制器到存储设备本身,IDE通常使ATA的具体实现
SATA:串行传输方式,提供更高的数据传输速率
SCSI:小型计算机系统接口,用于连接和传输数据到外部设备(如硬盘驱动器、光驱、扫描仪和打印机)的标准接口,成本高于IDE/ATA
SAS:串行SCSI
NVMe:高性能、可扩展的主机控制接口和存储协议,专为PCIe总线的非易失性存储介质(SSD)设计
存储介质的选择
磁带:低成本长期存储,顺序数据访问
光盘:使用激光技术读取和写入数据的存储介质,寿命长,读写慢,容量有限,易损坏
HDD、SSD、闪存驱动器(USB、SD卡)
云存储
磁盘
组件:HGA(磁头磁盘组合件),控制器,接口,电源
盘片,磁道,扇区,扇面,柱面,磁头
存储容量 = 磁头 × 柱面(磁道)数 × 扇区数 ×每扇区字节数
磁盘性能:
-
机电设备,影响存储系统的整体性能
-
磁盘服务时间:寻道时间,旋转延迟,数据传输率
寻道时间:磁头移动到目标磁道时间
旋转延迟:等待目标扇区旋转到磁头下方的时间,RPM表示
数据传输时间:从磁盘读取或向磁盘写入数据所需的时间,分为外部传输和内部传输
控制器开销,命令排队和调度时间
Little‘s Law:描述队列请求与响应时间之间的关系
N = a × R(不懂)
N是平均请求总数,a是到达率,R是平均响应时间
I/O控制器利用率 U = a × T,T是服务时间
I/O响应时间:R = T/(1-U)(不知道怎么推导来的,可以看看M/M/1排队论模型)
高负载导致响应时间显著增加,一般利用率不超过70%
闪存
无旋转、无机械运动,一致的IO性能,延迟低,IOPS的功耗更低
基于NAND Flash,由多个存储单元,每个单元存储一个或多个比特,常见类型有SLC 、MLC 和 TLC(层数增加擦写次数和可靠性降低,容量增大,成本减少)。内置DRAM
Tier0一种固态存储器存储
OLTP(Online Transaction Processing,联机事物处理)
NAND Flash
采用总线接口,以块为单位读写,写入前必须先擦除一次,NAND具有极高的单元密度,容量大,成本低,需要控制器和相应的MTD
内部存储单元从大到小:颗粒(芯片)、LUN(die,晶片)、Plane(寄存器)、Block(擦除)、Page(读,编程)、Cell(晶体管)
地址映射管理
HDD:逻辑和物理一一对应不变更,覆盖写
SSD:逻辑和物理的关系不固定,不覆盖写(先擦后写)
FTL闪存转换层:负责逻辑和物理地址的转换
SSD的写入放大:实际写入数据量大于用户指令要求写入的数据量
原因:擦写前必须写入;过度擦写
改善:TRIM命令,用于告知SSD哪些数据块不再使用,从而可以将这些块标记为可擦除的空闲空间。
TRIM命令工作原理:数据删除通知,标记空闲块,垃圾回收处理
1.3 数据保护:RAID
为什么使用RAID
- 性能限制,如果驱动器的 MTBF(平均无故障时间) 为 750,000 小时,阵列中有 100 个驱动器,则阵列的 MTBF 变为 750,000 / 100
RAID可以提供的功能:增加容量;高可用性;高性能
RAID的实现:
硬件:通过专用的RAID控制器卡
软件:通过OS或专用软件,主要利用CPU和内存资源,不支持所有RAID级别
数据划分:把读写操作并行分布在多个磁盘驱动器上;如果没有额外的冗余度,任何一个磁盘的失败都会导致读写数据的失败
RAID系统的层
RAID0:磁盘划分
原理:将数据均分存储在阵列上
优点:读写快,没有容量损失
缺点:一个硬盘损坏,所有数据不可恢复
RAID1:磁盘镜像法
原理:每个硬盘都有一个镜像硬盘:存储的内容完全相同
优点:读取性能翻倍;提供完全的数据冗余;其中一块数据丢失可还原
缺点:磁盘利用率低,成本高
RAID2:数据的位交错
原理:RAID0的基础上增加汉明码纠错(发现和修正一位错误)
优点:数据纠错
缺点:成本高,需要额外的盘做纠错
RAID3:具有奇偶校验的驱动器的位交错
原理:使用字节级别的条带化技术,采用专用的奇偶校验盘
优点:能在一个磁盘出现故障时确保数据不丢失,可以重建到更换磁盘上
缺点:如果在重建前又有一个磁盘出现故障,所有数据都将丢失;奇偶校验会消耗系统性能,出现性能瓶颈
RAID4:具有奇偶校验的驱动器的数据扇区交错
原理:和RAID 3 类似,但是对数据的访问从按位访问变成了以数据块(扇区)为单位
RAID5:数据的块交错
原理:综合了RAID 0的条带化技术和阵列数据冗余技术(至少包括三个磁盘)和 RAID 3的奇偶校验,与RAID 3 不同的是将奇偶校验数据分散到每个磁盘中
优点:读写性能高;有校验机制;空间利用率高
缺点:组成的磁盘越多,安全性能越差。连续两块磁盘损坏,所有数据都会丢失
RAID6:双重奇偶校验
RAID10:镜像和条带化的结合
原理:先镜像后条带化,结合了RAID 0和RAID 1的优点。
优点:提供高性能和高冗余。
缺点:成本高,需要至少4个磁盘,存储效率低。
RAID技术演变:LUN虚拟化,块虚拟化
RAID2.0+
硬盘域、存储池、Tier存储层级、DG硬盘组
Chunk 简称CK,存储池内的硬盘空间切分成若干固定大小的物理空间,是组成RAID的基本单位。
Chunk Group简称CKG,是由来自于同一个DG内不同硬盘的CK按照RAID算法组成的逻辑存储单元,是存储池从硬盘域上分配资源的最小单位。
Extent是在CKG基础上划分的固定大小的逻辑存储空间,大小可调,是热点数据统计和迁移的最小单元(数据迁移粒度),也是存储池中申请空间、释放空间的最小单位。
1.4 智能存储系统
智能存储系统
-
针对I/O处理进行高度优化
-
拥有大量存储以提高I/O性能
-
提供以下功能
-
智能管理缓存
-
阵列资源分配
-
异构主机连接
-
基于本地和远程的复制
-
优点:效率;性能;成本;可靠性;安全性
组成
前端:处理I/O请求,排队算法FIFO,LRU,MRU
缓存:存储将要写入或读出的数据
缓存管理:水位标记,用于控制缓存使用和防止缓存溢出的方法
设置两个阈值:高水位和低水位
原理:刷新/降级管理I/O请求,空闲刷新,高水位刷新和强制刷新
缓存数据保护:缓存镜像,缓存存储
Write-through:当数据写入缓存时,同时也会被写入主存储设备
Write-back :数据写入缓存后,只有在缓存被替换出或写入请求到达时才会被写回主存储设备
后端:与前端类似,通过端口与物理磁盘相连
主机端
LUN:逻辑单元号,是存储网络中用于标识逻辑单元的唯一编号,一个逻辑单元是存储系统中可访问的最小地址单位,通常对应一个卷或硬盘驱动器。
LUN Masking:一种安全机制,用于控制哪些服务器可以访问特定的 LUN;确保只有授权的服务器可以访问存储资源,防止数据泄露和未经授权的访问。
LUN Mapping:将逻辑单元号与服务器的特定端口或 HBA进行映射的过程。
两种企业级存储解决方案
高端存储系统
Active-active arrays
Active-active arrays 是一种高级存储架构,适用于高性能、关键任务和大规模存储需求的应用场景
特点:
-
高可用性:所有控制器都是活动的,确保数据的可用性和系统的连续性
-
负载均衡:I/O 负载可以在多个控制器之间均匀分布
-
故障切换:在任意一个控制器故障的情况下,另一个控制器可以立即接管其负载,无需人工干预
-
性能优化:多个控制器协同工作,可以提高 I/O 吞吐量和响应速度
-
简化管理:提供集中管理和监控工具
中端存储系统
Active-passive arrays 是一种存储架构,其中一个控制器处于活动状态(active),负责处理所有输入/输出(I/O)操作,而另一个控制器处于被动状态(passive),通常在活动控制器故障时才会接管其工作。与 active-active 阵列相比,active-passive 阵列在设计上更加简单,但性能和资源利用率不如active-active arrays。