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命令工作原理:数据删除通知,标记空闲块,垃圾回收处理