存储硬件与协议
- 存储设备的历史轨迹
- 存储介质的进化
- 3D NAND
- 3D XPoint
- Intel Optane
- 存储接口协议的演变
- NVMe
- NVMe-oF
- 网络存储技术
- 1)DAS
- 2)NAS
- 3)SAN
- 4)iSCSI
- iSCSI层次结构
存储设备的历史轨迹
- 1.穿孔卡
- 2.磁带
- 3.硬盘
- 4.磁盘(软盘)
- 5.CD/DVD
- 6.U盘/移动硬盘
- 7.固态硬盘
硬盘的两个重要性能参数是IOps和吞吐量。
存储介质的进化
3D NAND
NAND制程的升级都能将NAND存储密度提升到一个新的高度,容量提升、成本降低的同时可靠性及性能都在下降,因为工艺越先进,NAND的氧化层越薄,可靠性也越差
3D XPoint
3D XPoint的市场定位很清晰,就是一种比机械硬盘更高级的数据存储方案。3D XPoint的定位介于DRAM与3D NAND之间,它的速度与耐久性能够达到内存的水平,密度与非易失性则偏向3D NAND,成本也介于两者之间
3D XPoint摒弃了之前存储结构中的电容、晶体管设计,只保留内存单元(存数据的地方)、选择器和读/写总线。原有的“闲杂人等”(电容、晶体管)被统统“踢”走,腾出来的空间塞进了更多的内存单元,因此存储容量得到了大幅度的扩展
Intel Optane
英特尔基于3D XPoint技术分别开发出Optane Memory(傲腾内存)和Optane SSD(傲腾固态盘)
存储接口协议的演变
通信协议,则可以分为上层协议与传输协议两个方面的演变
SATA接口最为原始,只支持SATA传输协议与AHCI上层协议。
M.2则能够兼容AHCI和NVMe两种上层协议,理论上一个M.2插槽既可以使用M.2 SATA传输协议的固态硬盘,也可以使用PCIe传输协议、NVMe上层协议的固态硬盘。M.2 SATA传输协议兼容性更好,而M.2 NVMe上层协议性能更佳
AHCI能够改善传统硬盘的性能,它设计之初面向的就是机械硬盘,针对的是高延迟的机械磁盘的优化。因此AHCI不能完全发挥固态硬盘的优势
因为非易失性存储是存储硬件的发展趋势,所以需要一种新的协议来突破AHCI的局限,于是NVMe顺势而生。
NVMe
NVMe或称NVMHCIS(Non-Volatile Memory Host Controller Interface Specification,非易失性存储主机控制器接口标准)最早是由英特尔公司于2007年提出的
固态硬盘产品已经通过NVMe来取代AHCI发挥出极高的性能优势。
更好的方式将固态硬盘连接到主机,而这正是NVMe的用武之地。
NVMe的主要特点:
- PCIe:NVMe使用PCIe总线来提供更大的带宽和更低的延迟连接
- 并行性:NVMe SSD在很大程度上实现了并行性,极大地提高了吞吐量
- 限速:SATA和SAS连接有比较低的速度限制,对于SATA理论上最大传输速度为6.0Gbps
NVMe-oF
随着NVMe SSD的普及,本地的计算能力可能已经不能完全发挥固态硬盘的全部性能,计算或软件成为了性能瓶颈
有两条途径:
一是减少软件的开销,因此出现了SPDK;
二是将计算与存储分离,把固态硬盘放到单独设备里面,把存储独立出来供很多主机共享。但是计算和存储分离了以后,却带来了带宽和延迟上的挑战,而这就是NVMe-oF要解决的问题
实NVMe-oF只 是 在 NVMe 协 议 中 的 NVMe Transport 部 分 进 行 了 扩 展 , 来 支 持
InfiniBand、以太网及光纤通道等
关于NVMe-oF,目前有两种类型的传输正在开发,使用RDMA的NVMe-oF 和 使 用 FC-NVMe 的 NVMe-oF 。 这 里 的 RDMA 包 括 了InfiniBand、RoCE(RDMA over Converged Ethernet)和iWARP(internet Wide Area RDMA Protocol),RDMA支持在不涉及处理器的情况下将数据传输到两台计算机的内存,并提供低延迟和快速的数据传输。从逻辑架构上看,与NVMe over PCIe相比,NVMe over RDMA在软件开销上的增加很小,可以近似地认为跨网络访问和本地访问的延迟几乎是一样的
网络存储技术
目前网络存储技术主要有DAS(Direct Attached Storage)、NAS、SAN、iSCSI**(Internet SCSI)**。
1)DAS
DAS是指通过SCSI接口或光纤通道将存储设备直接连接到一台服务器上。当服务器在地理上比较分散很难通过远程进行互联时,DAS是比较好的解决方案。对DAS来说,存储只能通过与之连接的主机进行访问,数据不能与其他主机共享。同时,DAS会占用CPU、I/O等服务器的操作系统资源,并且数据量越大,占用系统资源越严重。
2)NAS
NAS是指通过某一网络协议把多个存储设备和一群计算机相连接。NAS通过网络交换机连接存储系统和服务器,用户通过TCP/IP访问专门用于数据存储的私有网络,采用网络文件系统、HTTP、CIFS等标准的文件共享来实现文件级的数据共享。NAS为那些需要共享大量文件数据的企业提供了一个高效的、高可靠的、高性价比的解决方案。NAS的局限性在于,它会受到网络带宽和网络拥堵的影响。
3)SAN
SAN是一种独立于TCP/IP网络之外的专用存储网络,目前一般提供2~4Gb/s的传输速率。由于其基础是一个专用网络,SAN的扩展性很强,不管是在一个SAN系统中增加一定的存储空间,还是增加几台服务器都非常方便。SAN的维护成本高昂,需要投入很多硬件成本,如FC交换机。
4)iSCSI
SCSI最初是一种专门为小型计算机系统设计的I/O技术,SCSI通信模式
为了降低使用SAN的成本,可以利用普通的数据网络来传输SCSI数据,实现和SAN相似的功能,同时系统的灵活性也得到了提高。iSCSI就是这样一种技术,它利用普通的TCP/IP网络来传输SCSI数据块。
iSCSI是IETF制定的一项标准,用于将SCSI数据块映射为以太网数据包。iSCSI将存储行业广泛应用的SCSI接口技术与IP技术相结合,简单来说,**iSCSI就是在IP网络上运行SCSI协议的一种网络存储技术。**一般来讲,就是在TCP/IP上传输SCSI命令,实现SCSI和TCP/IP的连接。
在iSCSI技术出现之后,SAN也出现了两种不同的实现方式,即光纤存储网络(FC SAN)和IP存储网络(IP SAN),我们通常所说的SAN指的就是FC SAN。相对FC SAN来说,IP SAN的成本要低很多,而且随着千兆网甚至万兆网的发展,iSCSI的速度相对SAN来说并没有太大的劣势。
iSCSI层次结构
SCSI层会建立**SCSI CDB(命令描述块)**并传给iSCSI层,iSCSI层对SCSI CDB进行封装,以便其能够在TCP/IP网络上进行传输,完成SCSI到TCP/IP的协议映射。
推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习