主机应该经常使用哪种类型的RAID阵列?
独立磁盘冗余阵列(RAID)是将多个机械硬盘(HDD)或固态硬盘(SSD)组合为一个逻辑卷的环节,从而使其阵列防止或缩小硬盘缺点带来的损失。RAID阵列有很多种类型,以下将探讨企业应该选择哪一种RAID阵列。
什么是RAID阵列?
假定在一台主机中接入两块1TB的硬盘,这样具备2TB的可用空间。但是,在主机环境中,最好将第二块硬盘作为备份,构建成一个RAID阵列。这可以经常使用RAID控制器实时成功,该RAID控制器衔接到硬盘并治理RAID阵列。还有软件RAID阵列,但是大少数主机都将装备公用的RAID控制器。
假设没有RAID阵列,就不会有冗余。但是这并不是关键疑问。而一个良好的备份战略永远不会真正失落数据,但是假设硬盘出现缺点,则这台主机在恢复时或许会教训重大的停机疑问。这在主机环境中是无法接受的,并且比暂时的数据失落要重大得多。
RAID阵列可以在依然可用的状况下重建,当一块硬盘出现缺点时,不用从备份中恢复。这是RAID阵列的关键优势。主机被设计为即使在许多异常状况下也不会停机。上班人员可以从网络主机上插入硬盘,虽然性能较低,但它仍会继续运转。
在许多方面,性能RAID阵列比性能一块容量更大的硬盘要好得多。一块8TB大容量硬盘的弹性不如RAID5阵列中性能的五块2TB驱动器。而如今很难找到只装置一块硬盘的主机。
RAID阵列驳回容量和品牌相反的硬盘成果最佳。它可以与各种硬盘一同经常使用,但通常会遭到速度最慢和容量最小的限度,使其性能欠佳。
这实践上只实用于用户自己治理主机的状况,如家用网络隶属存储(NAS)驳回了许多硬盘;在这种状况下,选择的RAID阵列类型十分关键。假设是从AWS公司或许其余云计算供应商那里租用虚构主机,RAID阵列通常由托管服务商为用户性能,由于这个级别的控制是从企业那里形象进去的。
在开局驳回RAID阵列之前须要留意:用于指定不同RAID级别的数字实践上没有任何意义。RAID 5的性能不是RAID1的5倍。此外还有其余几个RAID级别,例如RAID 2、3和4,但它们在通常中并未经常使用,因此不用解释。
从技术上讲,这不是RAID阵列性能,但是在这里须要启动解释。从技术上讲,JBOD意思是“硬盘的联结批处置”,但是可以将其了解为“只是一堆硬盘”,由于基本上就是这样。JBOD只是将硬盘衔接在一同成为一个大容量硬盘。这不会带来任何性能上的改良,也没有提供任何冗余,而用户并不关心其中接入了哪些硬盘。
许多RAID控制器将提供JBOD形式。除非领有许多容量不同的硬盘并将它们衔接在一同,否则不应该经常使用它。
RAID 0阵列
RAID 0阵列中的数据扩散在多个硬盘上;例如,假构想从RAID阵列读取文件,则将并行读取多个硬盘,这使RAID0阵列的读取速度比任何一块硬盘快得多。
但是,由于没有镜像、奇偶校验或其余冗余机制,因此,假设某块硬盘出现缺点,则会失落整个阵列上的一切数据。因此,可以在速度至关关键时经常使用RAID0阵列,并且不须要冗余。
在某种水平上,RAID0阵列与基本没有驳回RAID阵列十分相似。它可以将一切硬盘放在一个大容量硬盘中,并取得更高的访问速度。但是,单块硬盘缺点或许会对阵列上的数据形成劫难性的影响,因此,除非是暂时数据,否则在没有备份处置打算的状况下切勿运转RAID0阵列。
RAID 0阵列还可以最大化存储容量,由于没有用于冗余的存储空间。假设有两个1 TB硬盘,则其阵列的容量为2TB。但是,RAID0阵列被限度为阵列中容量最小的硬盘,假设尝试将2TB硬盘与1TB硬盘一同构建成RAID0阵列,则只要2TB的空间,而另一个1TB硬盘的空间则会齐全糜费。
驳回SSD硬盘的RAID 0阵列很经常出现,思考到SSD硬盘的缺点率较低,因此更正当。这是上流主机系统中的经常出现设置,由于速度比冗余更关键。
RAID 1阵列
RAID 1阵列是RAID阵列的另一种基本类型。与RAID0阵列相似,它经常使用两块或多块硬盘,但不是将数据成功条带化,而是将数据从第一块硬盘镜像到第二块硬盘(以及阵列中的其余硬盘)。假设有两块硬盘,则其中一块硬盘将齐全用作一种实时备份硬盘,从而在此环节中将总存储容量减半。假设一块硬盘出现缺点,可以继续从另一块硬盘读取数据,并经过改换缺点的硬盘来重建阵列。
由于可以经常使用两块硬盘,因此确实具备一些读取性能上的好处,但是由于它从每块硬盘中读取相反的数据,因此通常不如RAID0阵列好。其写入性能将受限于读写速度最慢的硬盘的速度。
假设领有两个硬盘并且无法接受硬盘缺点而无法取出数据带来的损失,则RAID1阵列则是惟一可行的选择。不过,这并不是最有效的,由于将存储容量缩小了一半,因此其老本是单块硬盘的两倍。
但是,主机设置中的冗余阵列比单块硬盘的多少钱要有价值得多。假设只要要基本的硬盘设置,可以经常使用便捷的RAID1阵列。当接入两块硬盘时,大少数RAID控制器将默以为RAID 1阵列。
RAID 5阵列
RAID 5阵列让事情开局变得幽默起来。RAID 5阵列不会像RAID 1阵列那样复制数据,而是经常使用奇偶校验这种效率更高的方法。
奇偶校验是失误审核的一种方式,就像哈希校验一样,但是要便捷得多。通罕用于确保网络流量不会混杂。基本上,假定有7位数据要发送给某人,并且想确保它完整无损地传输。假设传输环节有些凌乱,他们将无从得悉。处置打算是对一切正数位启动计数。假设有偶数,则奇偶校验将为0。假设有奇数,则奇偶校验将为1。将其参与到要发送的数据中,另一端的人在收到该数据时将会智能计算奇偶校验。假设出现失误,并且出现了位翻转(甚至是奇偶校验位自身),对方也会知道并恳求从新发送数据。当然,假设单次传输中有两个失误,则该系统会终止,但这并不经常出现。
RAID 5阵列不须要存储数据的正本(就像发送两次信息一样),而只是存储奇偶校验位。可以构想它像具备冗余性能的RAID0阵列一样,它至少须要三块硬盘。除一块硬盘之外,一切硬盘均像惯例RAID0阵列一样经常使用,但最后一块硬盘用于奇偶校验。假设其中一块硬盘出现缺点,则可以反向口头奇偶校验计算以恢复任何硬盘上的一切数据(虽然这是一个漫长而费劲的操作)。
实践上,RAID 5阵列不经常使用公用硬盘启动奇偶校验,由于在一切硬盘上剥新奇偶校验位的速度更快,但是在计算RAID5阵列将提供多少存储空间时,可以这样思考。实质上,除了一块硬盘之外,将一切硬盘加起来,这就是将领有的存储空间。RAID5阵列可以经过参与硬盘来提空中间效率,驳回三块硬盘的效率为66%,但是10块硬盘的效率为90%。与RAID 1阵列相比,这清楚降落了老本。
但是,RAID5阵列并非没有缺陷。由于每次写入硬盘时都必定计算奇偶校验,因此会降落写入性能。思考到以下理想,其疑问就愈加重大:在一块硬盘中翻转一个位须要读取一切的硬盘,以便从新计算该块的奇偶校验。实践上,假设RAID0阵列可以裁减n块硬盘的性能,则RAID 5阵列可以为n-1块硬盘提供写入操作的性能。但是,假设阵列足够大,疑问并没有那么重大。
另外,无论领有多少块硬盘,都只能接受一块硬盘缺点的损失。这仿佛不是一个关键疑问,由于缺点很少见,而且不太或许同时遇到两个缺点,但是阵列重建在硬盘上或许会十分密集,基本上是在每个缺点最易受攻打的时刻从每个缺点中读取每一位数据。因此,假设其中一块硬盘出现缺点,则另一块硬盘也很有或许也会出现缺点。
假设有3块硬盘,则应该选择RAID 5阵列,由于RAID1阵列会糜费空间。假设有4块硬盘,那么它或许依然是最佳选择,但是此列表上的其余两个选项也可以经常使用。
RAID 6阵列
RAID 6阵列与RAID5阵列相似,只是对“奇偶校验磁盘”启动了镜像。这使其阵列能够防止出现两次的硬盘缺点。但是,n-2块硬盘的写入性能更差,并且领有更少的空间。
假设有少量的硬盘(6块、8块或更多),则或许要思考RAID 6阵列的额外冗余。仅RAID6阵列即可成功3-2-1备份战略:至少存储三个数据正本,两个备份位于不同的介质上,其中至少一个位于他乡。RAID6阵列可以接受两个硬盘缺点,使其性能与具备三块磁盘的RAID 1阵列相反(减去重建期间)。
在通常中,RAID 6阵列简直永远不会教训整个阵列缺点,尤其是假设在公式中参与了更多的奇偶校验磁盘的话。结合其余数据中心中的备份和正本,这就是AWSGlacier和Backblaze等存档服务如何成功99.999999999%耐久性的要素。
RAID 10(1+0)阵列
RAID 10阵列从技术上讲是嵌套RAID阵列的一种方式,这自身就是另一种复杂的事情。假设领有四块硬盘,并且不想经常使用RAID 5阵列或RAID6阵列,则惟一的其余选择是RAID 0阵列和RAID 1阵列,这两个都有疑问。相反,假设将这些硬盘分红两局部,形成两个RAID1阵列,而后将这些阵列用于构建一个大的RAID 0阵列。RAID 10阵列至少须要四块硬盘并且还须要偶数总数的硬盘。
这提供了RAID 1阵列和RAID0阵列的一切优势,并且没有很多缺陷,其具备极速的读取和写入速度,高冗余性和易于重建的性能,同时依然可以经常使用一切硬盘总空间的一半。RAID10阵列实践上比RAID1阵列更具弹性。在上图中,硬盘1和硬盘3或许会出现缺点,并且阵列仍可以齐全重建(虽然假设硬盘0和硬盘1都出现缺点,则该阵列将无法恢复)。
RAID10阵列是主机十分经常出现的RAID级别。它的速度十分快,并且可以接受一块硬盘缺点。惟一真正的疑问是多少钱,由于依然要为保管一切数据的正本付出双倍的代价,但是关于普通的上班负载来说,RAID10阵列在速度上逾越了一切其余RAID性能,而在吞吐量方面仅输给RAID 0阵列。
RAID 50/60阵列
RAID 50/60阵列基本上是RAID 0阵列中的两个RAID 5阵列或RAID 56阵列。这与RAID10阵列一样提高了性能,最关键的是提高了写入性能,由于在计算奇偶校验时从其余硬盘读取数据更快。
它至少须要6块硬盘(在RAID 60的状况下为8块硬盘),并且由于有独自的RAID5阵列,因此须要附加的奇偶校验硬盘,从而降落了空间效率,但弹性更大。总体而言,RAID 50阵列实质上是RAID 5阵列性能更高的版本。