Skip to main content

独立磁盘冗余数组

独立磁盘冗余数组RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余数组RAID, Redundant Array of Inexpensive Disks),简称硬盘阵列。 其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单 颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于电脑来说, 看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID- 10,RAID-50,RAID-60。
简单来说,RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为了玩家的一个选择,特别是需要大容量存储空间的工作,如:视频与音频制作。
最初的RAID分成了不同的等级,每种等级都有其理论上的优缺点,不同的等级在两个目标间取得平衡,分别是增加数据可靠性以及增加存储器(群)读写性能。这些年来,出现了对于RAID观念不同的应用。

基本RAID分类

JBOD

JBOD
(JBOD, Just a Bunch Of Disks)在分类上,JBOD并不是RAID的等级Non-RAID_drive_architectures。 由于并没有规范,市场上有两类主流的做法:(1) 使用单独的链接端口如SATA, USB, 或1394同时控制多个各别独立的硬盘, 使用这种模式通常是较高级的设备, 还具备有RAID的功能, 不需要依靠JBOD 达到合并逻辑扇区的目的。 (2) 只是将多个硬盘空间合并成一个大的逻辑硬盘,没有错误备援机制。数据的存放机制是由第一颗硬盘开始依序往后存放,即操作系统看到的是一个大硬盘(由许多小 硬盘组成的)。但如果硬盘损毁,则该颗硬盘上的所有数据将无法救回。若第一颗硬盘损坏,通常无法作救援(因为大部分文件系统将磁盘分区表 (partition table)‎存在磁盘前端,即第一颗),失去磁盘分区表即失去一切数据,若遭遇磁盘阵列数据或硬盘出错的状况,危险程度较RAID 0更剧。
\begin{align}\text{Size} & = \text{sum of all discs}\end{align}

RAID 0

RAID 0
将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O, 速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有 的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,危险程度与JBOD相当。
理论上越多的磁盘性能就等于“单一磁盘性能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID性能会随边际递减,也就是说,假设一个磁盘的性能是50MB每秒,两个磁盘的RAID 0性能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒,所以两个磁盘的RAID 0最能明显感受到性能的提升。
\begin{align}Size & = 2 \times \min \left(S_1, S_2\right)\end{align}
但如果是以软件方式来实现RAID,则磁盘的空间则不见得受限于此(例如Linux Software RAID),通过软件实现可以经由不同的组合而善用所有的磁盘空间。
\begin{align}\text{Size} & = \text{sum of all disk}\end{align}

RAID 1

RAID 1
两组以上的N个磁盘相互作镜像, 在一些多线程操作系统中能有很好的读取速度,另外写入速度有微小的降低。除非拥有相同数据的主磁盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可 靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据 备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别。
\begin{align}Size & = \min \left(S_1, S_2\right)\end{align}

RAID 2

RAID 2
这是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分区为独立的比特,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些,RAID2最少要三台磁盘驱动器方能运作。

RAID 3

RAID 3
采用Bit-interleaving(数据交错存储)技术,它需要通过编码再将数据比特分区后分别存在硬盘中,而将同比特检查后单独存在一个硬盘 中,但由于数据内的比特分散在不同的硬盘上,因此就算要读取一小段数据资料都可能需要所有的硬盘进行工作,所以这种规格比较适于读取大量数据时使用。

RAID 4

RAID 4
它与RAID 3不同的是它在分区时是以区块为单位分别存在硬盘中,但每次的数据访问都必须从同比特检查的那个硬盘中取出对应的同比特数据进行核对,由于过于频繁的使用,所以对硬盘的损耗可能会提高。(Block interleaving)

RAID 5

RAID 5
RAID Level 5 是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5 至少需要三颗硬盘, RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信 息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数 据和相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低 而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个 奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
\begin{align}Size & = (N - 1) \times \min \left(S_1, S_2, \dots, S_N\right)\end{align}

RAID 6

RAID 6
与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实作方式使得RAID 6很少得到实际应用。
同一数组中最多容许两个磁盘损坏。更换新磁盘后,数据将会重新算出并写入新的磁盘中。依照设计理论,RAID 6必须具备四个以上的磁盘才能生效。
可使用的容量为硬盘总数减去2的差,乘以最小容量,公式为Size=(N-2)*min(S1,S2,S3...Sn),同理,数据保护区域容量则为最小容量乘以2。
RAID 6在硬件磁盘阵列卡的功能中,也是最常见的磁盘阵列等级。

RAID 7

RAID 7并非公开的RAID标准,而是Storage Computer Corporation的专利硬件产品名称,RAID 7是以RAID 3及RAID 4为基础所发展,但是经过强化以解决原来的一些限制。另外,在实现中使用大量的高速缓存以及用以实现异步数组管理的专用即时处理器,使得RAID 7可以同时处理大量的IO要求,所以性能甚至超越了许多其他RAID标准的实做产品。但也因为如此,在价格方面非常的高昂。[1]

RAID 10/01

RAID 1+0
RAID 0+1
RAID 10/01细分为RAID 1+0或RAID 0+1。
RAID 1+0是先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。
RAID 0+1则是跟RAID 1+0的程序相反,是先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。
性能上,RAID 0+1比RAID 1+0有着更快的读写速度。
可靠性上,当RAID 1+0有一个硬盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只硬盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。
因此,RAID 10远较RAID 01常用,零售主板绝大部份支持RAID 0/1/5/10,但不支持RAID 01。

RAID 50

RAID 50
RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0,也就是对多组RAID 5彼此构成Stripe访问。由于RAID 50是以RAID 5为基础,而RAID 5至少需要3台硬盘,因此要以多组RAID 5构成RAID 50,至少需要6台硬盘。以RAID 50最小的6台硬盘组态为例,先把6台硬盘分为2组,每组3台构成RAID 5,如此就得到两组RAID 5,然后再把两组RAID 5构成RAID 0。
RAID 50在底层的任一组或多组RAID 5中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID 5中出现2台或两台以上硬盘损毁,整组RAID 50就会失效。
RAID 50由于在上层把多组RAID 5构成Stripe,性能比起单纯的RAID 5高,而容量利用率则与RAID 5相同。

RAID 53

它拥有一个镜射条带数组,硬盘里其中一个条带就是一个是由3组以上的RAID 5组成RAID 3硬盘阵列。

RAID 60

raid 60
RAID 6与RAID 0的组合:先作RAID 6,再作RAID 0。换句话说,就是对两组以上的RAID 6作Stripe访问。RAID 6至少需具备4台硬盘,所以RAID 60的最小需求是8台硬盘。
由于底层是以RAID 6组成,所以RAID 60可以容许任一组RAID 6中损毁最多2台硬盘,而系统仍能维持运作;不过只要底层任一组RAID 6中损毁3台硬盘,整组RAID 60就会失效,当然这种情况的机率相当低。
比起单纯的RAID 6,RAID 60的上层通过结合多组RAID 6构成Stripe访问,因此性能较高。不过使用门槛高,而且容量利用率低是较大的问题。

应用

RAID2、3、4较少实际应用,因为RAID5已经涵盖了所需的功能,因此RAID2、3、4大多只在研究领域有实现,而实际应用上则以RAID5为主。
RAID4有应用在某些商用机器上,像是NetApp公司设计的NAS系统就是使用RAID4的设计概念。

磁盘阵列比较表

RAID等级 需要硬盘数 最小容错硬盘数 可用容量 性能 安全性 目的 应用产业
JBOD ≧1 0 n 不变 无(同RAID 0) 追求最大容量 个人(暂时)存储备份
0 ≧2 0 n 最高 一个硬盘异常,全部硬盘即跟着异常 追求最大容量、速度 3D产业实时渲染、视频剪接高速缓存用途
1 ≧2 总数的一半 总容量的一半 稍有提升 最高 追求最大安全性 个人、企业备份
5 ≧3 1 n-1 追求最大容量、最小预算 个人、企业备份
6 ≧4 2 n-2 比RAID 5稍慢 安全性较RAID 5高 同RAID 5,但较安全 个人、企业备份
10 ≧4 总数的一半 总容量的一半 安全性最高 综合RAID 0/1优点,理论速度较快 大型数据库、服务器

磁盘阵列种类

[2][3]
  • “软件磁盘阵列”(Software RAID)
主要由电脑主板CPU处理数组存储作业,缺点为耗损较多电脑CPU运算RAID的资源,优点则是价格偏低。
分类有二种:
  • 纯软件磁盘阵列(Pure Software RAID):只需要主板支持即可,不需要任何磁盘阵列卡。
  • 硬件辅助磁盘阵列(Hardware-Assisted RAID):需要一张磁盘阵列卡,以及磁盘阵列卡厂商所提供的驱动程序

  • “硬件磁盘阵列”(Hardware RAID)
硬件磁盘阵列卡上自带CPU处理器,协助分担电脑CPU运算RAID的资源,优点是比软件磁盘阵列性能还强,I/O读写性能也最快,也能在系统断电后,通过备份电池模块(BBU, Backup Battery Unit)以及非易失性存储器(NVRAM)将 硬盘读写日志文件(Journal)包含的剩余读写作业先纪录在存储器中,等待电力供应撤消后,再由NVRAM取回日志文件数据,接着再完成读写作业,将 剩余读写作业安全完成以确保读写完整性。备份电池模块通常会配合数组卡的Write-Back高速缓存模式,借由此存储器高速缓存读写作业以得到更高的读 写性能;但是没有备份电池模块的硬件磁盘阵列卡,切勿使用Write-Back高速缓存模式以免遭遇断电情形导致读写数据流失。此外,因为硬件磁盘阵列卡 搭载CPU处理器,所以可以与系统分离出来,对硬盘进行各种作业,还原作业的速度也比软件磁盘阵列快,唯售价较高是其缺点。

磁盘阵列相关产品

使用磁盘阵列技术的产品,可依照该产品位于电脑主机中的位置来区分,在电脑主机内部运作的数组产品,包括了主板自带的磁盘阵列、磁盘阵列卡;在电脑主机外部运作的数组产品,则包括硬盘外接盒(别名: 磁盘阵列设备)、NAS 网络存储设备、硬盘外接座、存储卡数组盒。
  • 主板
磁盘阵列技术自带于主板的厂商,常见的有:“英特尔”(Intel)、“超微”(AMD)二家厂商,还有采用Intel芯片组的相关主板厂商,例如:“华硕”(ASUS)、“技嘉”(GIGABYTE)、“微星”(MSI)、“华擎”(ASROCK)等等。
  • 磁盘阵列卡
磁盘阵列技术应用于磁盘阵列卡的厂商,常见的有:“艾萨”(LSI)、“峰际科技”(HighPoint)、“HP”、“Adaptec”、“Areca”、“Supermicro”、“登昌恒兴业”(UPMOST)等等。
  • 硬盘外接盒
磁盘阵列技术应用于硬盘外接盒的厂商,常见的有:“锐铵”(STARDOM)、“大卫肯尼”(CyberSLIM)、“华芸”(Asustor)、“艾客优品”(AKITIO)。
具备RAID功能的硬盘外接盒,通常也叫“磁盘阵列设备”。
  • 硬盘阵列系统
磁盘阵列技术应用于磁盘阵列系统的厂商有:“普安”(Infotrend)、“商丞”(Unifosa)、“普桦(现为商丞旗下存储事业群)”(Proware)、“乔鼎”(Promise)、“Sans Digital”、“G-Technology”等等。
通常指大型存储系统Rackmount等大容量的机箱,16Bay以上的多层式机箱内,还会配上主板与CPU成为一个独立的系统。
  • NAS 网络存储设备
磁盘阵列技术应用于 NAS 网络存储设备的厂商,常见的有:“威联通”(QNAP)、“群晖”(Synology)、“凡达克”(Vantec)、“华芸”(Asustor)等等。
  • 硬盘外接座
磁盘阵列技术应用于硬盘外接座的厂商,常见的有:“峰际科技”(HighPoint)、“弘拓”(ONNTO)、“中铵”(ICY DOCK)、“大卫肯尼”(CyberSLIM)等等。
  • 存储卡数组盒
磁盘阵列技术应用于存储卡的厂商,目前可见的有“信亿”(ARACRD)、“登昌恒兴业”(UPMOST)、“致宇”(Bplus)等等。

磁盘阵列相关客户类型

  • 一般消费者备份数据之用、企业创建ERP系统或NAS系统时的重要数据备份。
  • 影音多媒体数字内容创作公司、个人影音剪辑数字内容工作室。
  • 数字监控系统(DVR)、网络监控系统(NVR)等等需要大量存储视频的监控系统业者,军方、赌场因为需要大量监控系统也是常见使用磁盘阵列的客户。
  • 证券、银行等金融行业保管重要客户数据。


Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...