在以往的项目中用过Http文件存储,用过ftp文件存储,用过Fastdfs分布式文件存储,用过腾讯云对象存储COS,用过阿里云对象存储OSS,今天整理了一下计算机存储的常见类型,让自己的知识技能树融会贯通。
一.存储分类和类型
二.按照存储形态分类:
- 块存储:以物理块为单位进行存储,如windows里面的c盘,适用于需要高性能的场景,如数据库。缺点是太过于底层,不利扩展,不可以被共享。“使用者”是可以读写块设备的软件系统,如EXT3,EXT4(四代扩展文件系统);
- 文件存储:以文件为单位进行存储,如“C:\Users\187\Desktop\1.txt”,适用于需要共享文件和对数据进行一定的高级管理的场景,如NFS(网络文件系统)、CIFS(通用 Internet 文件系统)。缺点是读写速度比较慢。“使用者”是我们操作人员,自然人;
- 对象存储:以对象为单位进行存储,适用于需要海量数据的存储、管理和访问的场景,如海量视频、图像。缺点是读写速度比较慢。“使用者”则是其它的计算机软件。
区别:
1.块存储,是最底层的存储,关注的是磁盘的基本存储单元——Block(块),块存储可以没有软件服务器。
2.文件存储(像NAS)和对象存储(AWS-S3,阿里云OOS、腾讯云COS),是软件层面的存储,底层也是基于块存储的。文件存储和对象存储的区别在于,他们组织文件的方式,文件存储是有目录树的、有标准属性的(权限、用户、读写),而对象存储是扁平的、没有目录的。
三.按照存储架构分类:
- DAS(Direct AttachSTorage):直联式存储,存储磁盘与服务器之间的连接通常采用SCSI连接(可以理解为直接集成在计算机的总线系统中),SCSI通道存在I/O瓶颈,服务器主机的SCSI ID资源有限,能够建立的SCSI连接有限;
- NAS(Network Attached Storage):网络附加存储,改进了以前低效的DAS存储方式,采用独立的服务器,单独为网络数据存储而开发的一种文件服务器来连接所存储设备,这样的数据存储不再是服务器的附属,而是作为网络节点存在于网络之中,由所有的网络用户共享;
- SAN(Storage Area Network):存储区域网络,独立于数据网络的单独的存储网络,有IP SAN和FC SAN两种部署模式。SAN可以将存储和服务器隔离,简化了存储管理,能够统一,集中的管理各种资源。SAN可以屏蔽系统的硬件,可以同时采用不同厂商的存储设备
区别:
1.DAS的磁盘阵列与服务器主机直接相连,容量的再分配困难,没有集中管理解决方案。
2.DAS和SAN的文件系统在本地服务器上,NAS的文件系统在NAS设备上。所以NAS设备对CPU的消耗较小,所以可以处理CPU密集的一些应用 。
3.SAN是一个网络上的磁盘,NAS是一个网络上的文件系统,把FC网络上的磁盘叫做SAN,把以太网络上的文件系统称为NAS。
4.NAS架构的路径在虚拟目录层和文件系统层通信的时候,用以太网和TCP/IP协议代替了内存,增加了大量的CPU指令周期,而且使用了低速传输介质(内存速度要比以太网速度快的多),不使用自己的内存,但对CPU的消耗较大
SAN架构下,路径中比NAS方式多了一次FC访问过程,但是FC的逻辑大部分都由适配卡上的硬件完成,增加不了多少CPU的开销,而且FC的访问速度比以太网要高
5.大块顺序I/O密集的环境,SAN快
CPU密集的环境,NAS快
高并发随机小块I/O或共享文件的环境:NAS快
四.按照存储介质分类:
机械硬盘:
固态硬盘:
- SSD(Solid State Drive):固态硬盘,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。在接口的规范和定义、功能及使用方法上与普通硬盘相同。
- HDD(Hard Disk Drive):机械硬盘,由盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取。硬盘作为精密设备,尘埃是其大敌,所以进入硬盘的空气必须过滤。
- HHD(Hybrid Harddrive):混合硬盘,基于传统机械硬盘诞生出来的新硬盘,除了机械硬盘必备的碟片、马达、磁头等等,还内置了NAND闪存颗粒,这颗颗粒将用户经常访问的数据进行储存,可以达到如SSD(就是固态硬盘)效果的读取性能 。
区别:
传统硬盘因为成本低廉等因素依然占据着硬盘市场的主要份额,然而随着SSD的成本不断的降低,技术不断提升与系统更好的支持等因素,
在过去10年中,CPU的性能提升了150倍以上,而传统硬盘才提升了1.5倍不到,这种不均衡的发展,极大的影响了整体性能的提升,尤其在I/O方面,而且SSD(固态硬盘)相比起传统硬盘,它没有磁头,马达,磁盘等一系列的零件,搭载NAND Flash芯片作为存储介质,在运行速度,功耗,轻便等方面是传统硬盘所无法比拟的。
五.按照存储协议分类:
- SATA(Serial Advanced Technology Attachment):串行高级技术附件,是一种基于行业标准的串行硬件驱动器接口,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬盘接口规范。现在主流为SATA3.0,速率可达到6.0Gbps.SATA Spec中定义了物理层、链路层、传输层的标准,以及传输协议、关键数据结构FIS等的定义,SATA下面有2中mode可以选择:AHCI和IDE。
- AHCI(Advanced Host Controller Interface):高级主机控制器接口,AHCI通过包含一个PCI BAR(基址寄存器),来实现原生SATA功能,允许存储驱动程序启用高级串行 ATA 功能。AHCI模式是专门为SATA接口而设计,支持SATA接口特性,诸如本机命令队列(NCQ)和热插拔。AHCI 协议主要定义了Host端的寄存器、错误处理、电源管理等。
- ATA (Advanced Technology Attachment):ATA可以使用户方便地在PC机上连接硬盘,但有时这样还不够。有些用户需要通过同样方便的手段连接CDROM、磁带机、MO驱动器等设备,所以就有了ATAPI
ATAPI标准就是为了解决在IDE/EIDE接口上连接多种设备而制定的。ATAPI是AT Attachment Packet Interface的缩写,意思是AT计算机上附加设备的包接口。支持ATAPI的IDE/EIDE接口可以像连接硬盘一样连接ATAPI设备。目前几乎所有的IDE/EIDE接口都支持ATAPI。 - NVMe(non-volatile memory):固态硬盘(SSD)的常见的闪存形式,基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI Express(PCIe)总线附加的非易失性存储器介质(例如采用闪存的固态硬盘驱动器),虽然理论上不一定要求 PCIe 总线协议。相比此前机械硬盘驱动器(HDD)时代的AHCI,NVMe/NVMHCI降低了I/O操作等待时间、提升同一时间内的操作数、更大容量的操作队列等。基于 NVMe 的驱动器可实现高达 16Gbps 的吞吐量。
- SCSI(Small Computer System Interface):小型计算机接口,指的是一个庞大协议体系,到目前为止经历了SCSI-1/SCSI-2/SCSI-3变迁。SCSI协议就是一个存储设备与服务器之间接口通讯的一个规范。因为这种“兼容各种传输介质”的特性,存储网络都是以 SCSI协议为基础框架,前端传输网络层一直以 FC(光纤通道,Fiber Channel)网络为主,后端则以 SAS(串行 SCSI 技术,Serial Attached SCSI)网络为主,这构成了服务器间以 IP 为主要互联手段的 IP 存储网络。
- ISCSI(Internet Small Computer System Interface):Internet 小型计算机系统接口,由IBM公司研究开发的IP SAN技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,基于 TCP/IP的协议连接iSCSI服务端(Target)和客户端(Initiator),使得封装后的SCSI数据包可以在通用互联网传输,最终实现iSCSI服务端映射为一个存储空间(磁盘)提供给已连接认证后的客户端。
- CIFS(Common Internet File System):在windows主机直接来进行网络文件共享是通过使用微软公司直接的CIFS服务实现的。
- NFS(Network File System):在Linux/UNIX/AIX/HP-UX/Mac OS X等UNIX的操作系统提供网络文件存储服务。
- HTTP(Hypertext transfer protocol):超文本传输协议,定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端的协议。
- FTP(File Transfer Protocol):文件传输协议,用于在计算机网络上在客户端和服务器之间進行文件传输的应用层协议。
六.按照存储接口分类:
- SATA(Serial AT Attachment):串行ATA,是将主机总线适配器连接到大容量存储设备的计算机总线接口。
- PCIe(Peripheral Component Interconnect Express):高速串行计算机扩展总线标准,PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能
- SAS(Serial Attached SCSI):串行连接SCSI,是新一代的SCSI技术,连接小型计算机系统接口,采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等
- FC/FCOE(Fibre Channel over Erhernet):以太网上的光纤通道,FCoE指的是直接在增强型无损以太网基础设施上传输光纤信道信号功能的协议。(FCoE把FC帧封装在以太网帧中,允许LAN和SAN的业务流量在同一个以太网中传送)