计算机存储系统可以分为内置和外部两种方式。
内置就是机器里面装硬盘,外部可以是直接接外置硬盘,也可以是通过网络来连接存储设备。
一、磁盘接口
对于内置磁盘,目前的接口主要是SATA/SAS/SCSI三种。
1、SATA
像个人PC,目前一般硬盘接口是SATA(Serial ATA),即串行ATA。ATA(Advanced Technology Attachmen),意为高级技术附件规格。20年前吧,大约2000年或更早的时候,PC里的硬盘符合PATA(parallel ATA,并行ATA)规范,接的是主板上的IDE口。目前的SATA与PATA相比,传输速率高,可靠性好,还支持热插拔,所以目前成为个人PC主流。
使用SATA的硬盘,转速通常不太高,容量大,目前PC机或者IOPS要求不是太高的存储多使用这种接口的硬盘。
2、SCSI
个人PC层面是SATA接口,服务器一般是SCSI。
SCSI(Small Computer System Interface,小型计算机系统接口),是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准,并不仅仅只支持硬盘。
SCSI有许多优点,如SCSI卡本身带有CPU,可处理一切SCSI设备的事务,在工作时主机CPU只要向SCSI卡发出工作指令,SCSI卡就会自己进行工作,工作结束后返回工作结果给CPU,在整个过程中,CPU均可以进行自身工作。由于占用主机CPU极低,在多任务系统中有明显的优势;SCSI还允许在对一个设备传输数据的同时,另一个设备对其进行数据查找。这就可以在多任务操作系统如Linux、WindowsNT中获得更高的性能。
SCSI是并行接口,而SAS(Serial SCSI)是串行接口,兼容SATA,如果主板上有个SAS接口,可以接SATA硬盘,不过反之则不行。
在应用上,SCSI优于SAS,SAS优于SATA,SATA优于ATA。SCSI硬盘多用于企业级以上服务器,SAS目前多用于工作组级服务器,SATA则多用于PC机等低负荷的终端设备。线缆上,SAS与SATA用相同的线缆,SCSI与ATA的线缆外观相近,但内含电缆数不同,完全不能互换!ATA线缆一条最多挂接两个硬盘,而一条SCSI线缆可挂接多达成15个SCSI设备。
二、磁盘阵列
一般来说,作为服务器,磁盘通常会做磁盘阵列。
磁盘阵列(Redundant Arrays of Independent Disks,RAID),独立磁盘冗余阵列(又译作独立冗余磁盘阵列、廉价冗余磁盘阵列)。简单地说,RAID是一种把多块独立的硬盘按不同的方式组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能和提供数据备份技术。
在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性。
具体来说,RAID技术主要有以下三个基本功能:
(1)通过对磁盘上的数据进行条带化,实现对数据成块存取,减少磁盘的机械寻道时间,提高了数据存取速度。
(2)通过对阵列中的几块磁盘同时读取,减少了磁盘的机械寻道时间,提高数据存取速度。
(3)通过镜像或者存储奇偶校验信息的方式,实现了对数据的冗余保护。
组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。已经发展了8个级别,分别是0、1、2、3、4、5、6、7等。但是最常用的是0、1、3、5、6五个级别。
1、RAID JBOD
RAID JBOD的意思是Just a Bunch Of Disks,是将多块硬盘串联起来组成一个大的存储设备。
容量是所有磁盘的总和;各磁盘的容量尺寸并不要求一致,这是跟其他RAID的最大不同;因为是各设备串联,RAID JBOD的访问速度跟单个设备相同,也没有任何形式的校验,因此任意一块磁盘出现故障,都会破坏整个RAID,可靠性是单一设备的1/N。
从某种意义上说JBOD不被算作RAID。
2、RAID 0
条带化,读取速度快,但一损俱损。
连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,这点有别于上面的JBOD,但它同样没有数据冗余,没有为数据的可靠性提供保证,其中一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。
3、RAID 1
镜像,容量是所有磁盘容量的一半。
RAID 1称为磁盘镜像,具备很好的磁盘冗余能力。同时当原始数据繁忙时,可直接从镜像中读取数据,因此RAID 1也可以提高读取性能。
但是成本也会明显增加,磁盘利用率为50%。RAID 1多用在保存关键性的重要数据的场合。
RAID 1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘控制器就显得很有必要。
4、RAID 0 + 1
RAID0与RAID1的结合体。既快速读写,又保证数据安全。护发去头皮,两全其美。唯一缺点,就是磁盘利用率还是只有50%。
5、RAID 2
带海明码校验。
将数据条块化分布于不同的硬盘上,然后使用一定的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,实施复杂,因此在商业环境中很少使用。
6、RAID 3
同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。
注意上图中Disk3为存储校验信息盘。
7、RAID 4
RAID4和RAID3很象,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。在图上可以这么看,RAID3是一次一横条,而RAID4一次一竖条。它的特点和RAID3也挺象,不过在失败恢复时,它的难度可要比RAID3大得多了,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。
8、RAID 5
RAID5(分布式奇偶校验的独立磁盘结构)。从它的示意图上可以看到,它的奇偶校验码存在于所有磁盘上,所以提高了可靠性。
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。 RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比 RAID 1低而磁盘空间利用率要比 RAID 1 高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是运用较多的一种解决方案。
RAID5和RAID4一样,数据以块为单位分布到各个硬盘上。RAID 5不对数据进行备份,而是把数据和与其相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
至少使用3块硬盘(也可以更多)组建RAID5磁盘阵列。只允许有一块硬盘出现故障,出现故障时需要尽快更换。当更换故障硬盘后,在故障期间写入的数据会进行重新校验。 如果在未解决故障又坏1块,那就是灾难性的了。
做RAID 5阵列所有磁盘容量必须一样大,当容量不同时,会以最小的容量为准。 最好硬盘转速一样,否则会影响性能。
图中下标带p的,都是检验码,每个盘都有,人人有份,永不落空。
9、RAID 6
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。
10、RAID 7
RAID 7等级是至今为止,理论上性能最高的RAID模式,因为它从组建方式上就已经和以往的方式有了重大的不同。在RAID 7中,以前的单个硬盘相当于分割成多个独立的硬盘,有自己的读写通道,效率也就不言自明。
RAID 7完全可以理解为一个独立存储计算机,它自身带有操作系统和管理工具,完全可以独立运行。
11、固态硬盘RAID技术
固态硬盘和机械硬盘组合搭建的混合式RAID阵列实现了两者特性的互补,有成本控制优势;但在性能与可靠性方面,多个固态硬盘构成的RAID阵列要优于混合阵列。目前大多数固态硬盘厂商都采用固态硬盘内部的芯片级RAID阵列来进一步提升性能,降低功耗。
12、RAID实现方式
1)软件RAID
使用基于主机的软件提供RAID 功能,在操作系统级实现
2)硬件RAID
(1)基于主机的硬件RAID
将专用RAID控制器安装在主机上,并且所有磁盘驱动器都与主机相连,有的制造商还将RAID控制器集成到主板上。在包含大量主机的数据中心环境下这不是高效的解决方案。
(2)基于阵列的硬件RAID
使用外部硬件RAID控制器,它充当主机与磁盘之间的接口。
三、外部存储
以上为内置式的存储系统,或曰封闭系统的存储。随着主机、磁盘、网络等技术的发展,对于承载大量数据存储的服务器来说,服务器内置存储空间,或者说内置磁盘往往不足以满足存储需要。因此,在内置存储之外,服务器需要采用外置存储的方式扩展存储空间。
开放系统的外挂存储根据连接的方式分为:直连式存储(Direct-Attached Storage,简称DAS)和 网络化存储(Fabric-Attached Storage,简称FAS);其中网络化存储根据传输协议又分为:网络接入存储(Network-Attached Storage,简称NAS)和存储区域网络(Storage Area Network,简称SAN)。
1、DAS
DAS(Direct Attached Storage,直接外挂存储)。
DAS这种直连方式,能够解决单台服务器的存储空间扩展、高性能传输需求,并且单台外置存储系统的容量,已经从不到1TB,发展到了2TB,随着大容量硬盘的推出,单台外置存储系统容量还会上升。基于阵列的硬件RAID应该也算DAS。
DAS的优点在于容易扩充,成本低廉,但仍然需要消耗比较多的服务器资源,并且扩充时需要停机,影响较大。直连式存储或服务器主机的升级扩展,只能由原设备厂商提供,往往受原设备厂商限制。
2、NAS
网络接入存储(Network-Attached Storage,简称NAS)
采用网络(TCP/IP、ATM、FDDI)技术,通过网络交换机连接存储系统和服务器主机,建立专用于数据存储的存储私网。NAS有文件系统和IP地址,可以类似的理解为网上邻居的共享磁盘。
NAS产品是真正即插即用的产品,支持多种计算机平台,无需改造即可用于混合Unix/Windows NT局域网内;由于网络接入存储采用TCP/IP网络进行数据交换,不同厂商的产品(服务器、交换机、NAS存储)只要满足协议标准就能够实现互连互通,无兼容性的要求。
NAS早期性能受带宽影响,随着快速以太网(100Mbps)、VLAN虚网、Trunk(Ethernet Channel) 以太网通道的出现,网络接入存储的读写性能得到改善;1998年千兆以太网(1000Mbps)的出现和投入商用,为网络接入存储(NAS)带来质的变化和市场广泛认可。2002年万兆以太网(10000Mbps)的出现和投入商用,存储网络带宽大大提高NAS存储的性能。
无论是从适用性还是TCO(Total Cost of Ownership,总拥有成本)的角度来说,NAS成为多数企业,尤其是大中小企业的最佳选择。
3、SAN
存储区域网络(Storage Area Network,简称SAN)
通过光纤通道交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。
目前的SAN存储有2种:一是基于光纤通道的FC SAN;二是基于以太网的IP SAN(也就常说的iSCSI)。FC SAN通过光纤交换机连接到主机(HBA卡),也就是说可以连接到光纤交换机的主机都可以访问这个存储;iSCSI作为共享于以太网络上的存储则更类似于NAS。
SAN的各存储设备之间交换数据时可以不通过服务器,能有效减少大流量数据传输时发生的阻塞和冲突,较大程度减轻服务器承受的压力,具有很强的灵活性和伸缩性。SAN使用了光纤,带宽高,速度快,传输距离远(光纤接口提供了50公里的连接长度,这使得实现物理上分离的、不在机房的存储变得非常容易)。如果说有什么缺点,就是贵,成本高。基于以太网的IP SAN则性能相去甚远。
SAN 应用于大型的数据中心(比如银行 保险业),IP-SAN 应用于中型的企业。
4、NAS与SAN的区别
NAS和SAN最本质的不同就是文件管理系统在哪里。如图:
SAN结构中,文件管理系统(FS)还是分别在每一个应用服务器上;而NAS则是每个应用服务器通过网络共享协议(如:NFS、CIFS)使用同一个文件管理系统。换句话说:NAS和SAN存储系统的区别是NAS有自己的文件系统管理。
按照我的理解,NAS意为网络接入存储,它就是一个独立的存储系统,通过网络接入;SAN为存储区域网络,是一个网络,这个网络适合用于存储。
NAS是存储系统,SAN是网络系统。
2021.05.20
NAS,通过网络将存储服务器连接起来;SAN,通过网络将磁盘连接起来。NAS,压力容易落在存储服务器上,形成瓶颈。而SAN,数据可以从多个磁盘中并行存取,提高了性能,减轻单个磁盘压力,再加上光纤高速传输,效果估计比NAS更好。
参考文章:
DAS、NAS、SAN
存储:从硬盘到磁盘阵列再到DAS、NAS、SAN
2022.07.29
目前硬盘可分为三大种类(SSD;HHD;HDD)
SSD(Solid State Drive):固态硬盘
HDD(Hard Disk Drive):机械硬盘
HHD(Hybrid Hard Drive):混合硬盘。是既包含传统硬盘又有闪存(flashmemory)模块的大容量存储设备。闪存处理存储中写入或恢复最频繁的数据。
参考文章