由于现代数据中心业务量的与日俱增,单台服务器上需要运行的数据也日益增多。当单个物理硬盘在容量和安全性上不足以支持系统业务时,就需要将多个硬盘以某种特定方式组合起来,对外作为一个可见的硬盘来使用,才可满足实际需要。硬盘组,就是将一组物理硬盘组合起来,作为一个整体对外体现,是虚拟磁盘的基础。
虚拟磁盘,即使用硬盘组划分出来的连续的数据存储单元,相当于一个个独立的硬盘,通过一定的配置,使其具有比单个物理硬盘更大的容量,及更高的安全性和数据冗余性。
一个虚拟磁盘可以是:
一个完整的硬盘组。
多个完整的硬盘组。
一个硬盘组的一部分。
多个硬盘组的一部分(每个硬盘组划分一部分,共同组成虚拟磁盘)。
在下文的描述中:
硬盘组一般会表述为“Drive Group”(简称“DG”)、“Array”、“RAID组”。
虚拟磁盘一般会表述为“Virtual Drive”、“Virtual Disk”(简称“VD”)、“Volume”、“Logical Device”(简称“LD”)等。
RAID(Redundant Array of Independent Disks)是将多块物理硬盘通过RAID控制卡组合成虚拟的单块大容量硬盘使用,从而提供比单个硬盘更高的存储性能、更高的I/O性能及可靠性。
RAID 0又称为条带化(Stripe)或分条(Striping),代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个硬盘上存取。这样,当系统有数据请求时就可以在多个硬盘上并行执行,每个硬盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高硬盘整体读写性能。但由于其没有数据冗余,无法保护数据的安全性,只能适用于I/O速率要求高,但数据安全性要求低的场合。 如图所示,系统向三块硬盘组成的逻辑硬盘(RAID 0硬盘组)发出的I/O数据请求被转化为三项操作,其中的每一项操作都对应于一块物理硬盘。 通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。 三块硬盘的并行操作在理论上使同一时间内硬盘读写速度提升了3倍。虽然由于总线带宽等多种因素的影响,实际的提升速率会低于理论值,但是大量数据并行传输与串行传输比较,提速效果显著。处理流程
RAID 1
RAID 1又称镜像(Mirror或Mirroring),即每个工作盘都有一个镜像盘,每次写数据时必须同时写入镜像盘,读数据时同时从工作盘和镜像盘读出。当更换故障盘后,数据可以重构,恢复工作盘正确数据。RAID 1可靠性高,但其有效容量减小到总容量一半,因此常用于对容错要求较高的应用场合,如财政、金融等领域。
如图所示,系统向两块硬盘组成的逻辑硬盘(RAID 1硬盘组)发出I/O数据请求。
向硬盘Drive 0写入数据时,系统会同时把用户写入Drive 0的数据自动复制到Drive 1上。
读取数据时,系统同时从Drive 0和Drive 1读取。
注:
MSCC SmartRAID 3152-8i在FW版本4.72后将RAID 1ADM更名为RAID 1Triple。
RAID 1ADM的每个工作盘都有两个镜像盘,每次写数据时必须同时写入镜像盘,读数据时同时从工作盘和镜像盘读出。当更换故障盘后,数据可以重构,恢复工作盘正确数据。RAID 1ADM可靠性比RAID 1高,但其有效容量减小到总容量的三分之一,因此常用于对容错要求较高的应用场合,如财政、金融等领域。
如图所示,系统向三块硬盘组成的逻辑硬盘(RAID 1ADM硬盘组)发出I/O数据请求。
向硬盘Drive 0写入数据时,系统会同时把用户写入Drive 0的数据自动复制到Drive 1和Drive 2上。
读取数据时,系统同时从Drive 0、Drive 1和Drive 2读取。
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。为保障存储数据的可靠性,采用循环冗余校验方式,并将校验数据分散存储在RAID的各成员盘上。当RAID的某个成员盘出现故障时,通过其他成员盘上的数据可以重新构建故障硬盘上的数据。RAID 5既适用于大数据量的操作,也适用于各种小数据的事务处理,是一种快速、大容量和容错分布合理的磁盘阵列。
如图所示,PA为A0、A1和A2的奇偶校验信息,PB为B0、B1和B2的奇偶校验信息,以此类推。
RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到成员盘上,并且奇偶校验信息和相对应的数据分别存储于不同的硬盘上。当RAID 5的一个硬盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息可以恢复被损坏的数据。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案:
RAID 5可以为系统提供数据安全保障,但保障程度要比RAID 1低而硬盘空间利用率要比RAID 1高,存储成本相对较低。
RAID 5具有较RAID 0略低的数据读写速度,但写性能比写入单个硬盘时要高。
在RAID 5的基础上,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块硬盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的硬盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”较差。
如图所示,PA为数据块A0、A1、A2的第一个校验信息块,QA为第二个校验信息块;PB为数据块B0、B1、B2的第一个校验信息框,QB为第二个校验信息块,以此类推。
数据块和校验块一起分散存储到RAID 6的各个成员盘上。当任意一个或两个成员硬盘出现故障时,控制卡可以从其他处于正常状态的硬盘上重新恢复或生成丢失的数据而不影响数据的可用性。
RAID 10是将镜像和条带进行两级组合的RAID级别,即RAID 1+RAID 0的组合形式,第一级是RAID 1,第二级是RAID 0。RAID 10是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。
如图所示,Drive 0和Drive 1组成一个子组0,Drive 2和Drive 3组成一个子组1,子组内的两个硬盘互为镜像。
系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1的方式,系统在向硬盘Drive 0写入数据的同时把数据自动复制到硬盘Drive 1上,向硬盘Drive 2写入数据的同时把数据自动复制到硬盘Drive 3上。
MSCC SmartRAID 3152-8i在FW版本4.72后将RAID 10ADM更名为RAID 10Triple。
RAID 10ADM是将镜像和条带进行两级组合的RAID级别,即RAID 1ADM+RAID 0的组合形式,第一级是RAID 1ADM,第二级是RAID 0。RAID 10ADM是存储性能和数据安全兼顾的方案。它在提供与RAID 1ADM一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。
如图所示,Drive 0、Drive 1和Drive 2组成一个子组0,Drive 3、Drive 4和Drive 5组成一个子组1,子组内的硬盘互为镜像。
系统向硬盘发出I/O数据请求时,原先顺序的数据请求按照RAID 0的方式,被分散到两个子组中并行执行,同时通过RAID 1ADM的方式,系统在向硬盘Drive 0写入数据的同时把数据自动复制到硬盘Drive 1和Drive 2上,向硬盘Drive 3写入数据的同时把数据自动复制到硬盘Drive 4和Drive 5上。
RAID 1E为RAID 1的增强版,工作原理与RAID 1类似。RAID 1E的数据条带及数据备份贯穿在逻辑盘中所有的硬盘当中。跟RAID 1类似,数据是镜像的,逻辑盘的容量是硬盘总容量的一半,可提供数据冗余功能及较高的性能。然而,RAID 1E允许使用更多的物理硬盘,至少由三个硬盘组成。
如图所示,系统向三块硬盘组成的逻辑硬盘(RAID 1E硬盘组)发出I/O数据请求。条带数据均匀分布在3个硬盘中,任意一个条带数据都在其他硬盘中有自己的备份。此时,如果有单个硬盘故障,不会造成数据丢失。
RAID 50被称为镜像阵列条带,即RAID 5+RAID 0的组合形式。像RAID 0一样,数据被分区成条带,在同一时间内向多块硬盘写入;像RAID 5一样,也是以数据的校验位来保证数据的安全,且校验条带均匀分布在各个硬盘上。
如图所示,PA为A0、A1和A2的奇偶校验信息,PB为B0、B1和B2的奇偶校验信息,以此类推。
RAID 50是RAID 5与RAID 0两种技术的结合,一个RAID 50由多个RAID 5子组组成,数据的存储访问以RAID 0的形式分布在各个RAID 5子组上。依靠RAID 5提供的冗余功能,在子组内部任意一个硬盘故障时,阵列均可正常工作并恢复出故障硬盘的信息。同样,故障硬盘的更换不会影响业务的正常进行。因此,RAID 50可以容忍多个子组同时单盘故障,这是单纯RAID 5技术无法做到的。同时,由于数据分布在多个子组上,阵列可以提供更加优秀的读写性能。
RAID 60同RAID 50类似,数据采用镜像阵列条带分布方式,即RAID 6 + RAID 0的组合形式。像RAID 0一样,数据被分区成条带,在同一时间内向多块硬盘写入;像RAID 6一样,以两个数据校验模块来保证数据的安全,且校验条带均匀分布在各个硬盘上。
如图所示,PA为A0、A1和A2的校验信息1,QA为A0、A1和A2的校验信息2,PB为B0、B1和B2的校验信息1,QB为B0、B1和B2的校验信息2,以此类推。
RAID 60是RAID 6与RAID 0两种技术的结合,一个RAID 60由多个RAID 6子组组成,数据的存储访问以 RAID 0的形式分布在各个RAID 6子组上。依靠RAID 6提供的冗余功能,在子组内部任意两个硬盘故障,阵列均可正常工作并恢复出故障硬盘的信息。同样,故障硬盘的更换不会影响业务的正常进行。
各级别RAID的性能及硬盘利用率如表。
RAID级别 | 可靠性 | 读性能 | 写性能 | 硬盘利用率 |
---|---|---|---|---|
RAID 0 | 低 | 高 | 高 | 100% |
RAID 1 | 高 | 高 | 中 | 50% |
RAID 1ADM/Triple | 高 | 高 | 中 | 33% |
RAID 5 | 中 | 高 | 中 | (N-1)/N |
RAID 6 | 中 | 高 | 中 | (N-2)/N |
RAID 10 | 高 | 高 | 中 | 50% |
RAID 1E | 高 | 中 | 中 | 50% |
RAID 10ADM/Triple | 高 | 高 | 中 | 33% |
RAID 50 | 高 | 高 | 较高 | (N-M)/N |
RAID 60 | 高 | 高 | 较高 | (N-M*2)/N |
注:N为RAID成员盘的个数,M为RAID的子组数。 |
RAID 0:不提供容错功能。任意一个成员盘出现故障,都会导致数据丢失。通过条带化方式同时在多个成员盘中写入数据。RAID 0对于需要高性能但不需要容错的应用场景非常理想。
RAID 1:提供100%的数据冗余能力。当一个成员盘故障时,可以使用RAID组中对应的其他硬盘的数据来运行系统,并重构故障盘。因为一个成员盘的内容会完全备份写入另一个硬盘, 所以如果其中一个成员盘出现故障,则不会丢失任何数据。成对的成员盘在任何时候都包含相同的数据。RAID 1组是需要最大容错能力和最小容量要求的应用场景的理想选择。
RAID 5:结合了分布式奇偶校验和硬盘条带化。奇偶校验在不需要备份全部硬盘内容的情况下,为1个硬盘提供了冗余特性。当一个成员盘故障时,RAID控制卡使用奇偶校验数据来重构所有丢失的信息。RAID 5使用较小的系统开销为系统提供了足够的容错能力。
RAID 6:结合了分布式奇偶校验和硬盘条带化。奇偶校验在不需要备份全部硬盘内容的情况下,为2个硬盘提供了冗余特性。当一个成员盘故障时,RAID控制卡使用奇偶校验数据来重构所有丢失的信息。RAID 6使用较小的系统开销为系统提供了足够的容错能力。
RAID 10:使用多个RAID 1提供完整的数据冗余能力。RAID 10对所有需要通过镜像硬盘组提供100%冗余能力的场景都适用。
RAID 50:使用多个RAID 5的分布式奇偶校验提供数据冗余能力。在保证数据完整性的情况下,每个RAID 5分组允许1个成员盘故障。
RAID 60:使用多个RAID 6的分布式奇偶校验提供数据冗余能力。在保证数据完整性的情况下,每个RAID 6分组允许2个成员盘故障。
RAID组可作为一个单独的存储单元或多个虚拟单元被系统使用。由于可以同时访问多个硬盘,使得针对RAID组的I/O读写速率较普通硬盘更高。
RAID 0:提供优异的性能。RAID 0将数据分割为较小的数据块并写入到不同的硬盘中,由于可以同时对多个硬盘进行读写,RAID 0提升了I/O性能。
RAID 1:由于RAID组中的硬盘都是成对出现,写数据时也必须同时写入2份,从而占用更多的时间和资源,导致性能降低。
RAID 5:提供了较高的数据吞吐能力。由于成员盘上同时保留常规数据和校验数据,每个成员盘都可以独立读写,再加上完善的Cache算法,使得RAID 5在很多应用场景中都有出色的性能表现。
RAID 6:在需要高可靠性、高响应率、高传输率的场景下,RAID 6是较为适合的RAID级别,其提供了高数据吞吐量、数据冗余性和较高的I/O性能。由于RAID 6需要为每个成员盘写入2套校验数据,导致其在写操作期间性能降低。
RAID 10:由RAID 0子组提供高数据传输速率的同时,RAID 10在数据存储方面表现优异。I/O性能随着子组数量的增加而提升。
RAID 50:在需要高可靠性、高响应率、高传输率的场景下,RAID 50表现最好。I/O性能随着子组数量的增加而提升。
RAID 60:使用场景与RAID 50类似,但是由于每个成员盘必须写入2组奇偶校验数据,使得在写操作中性能降低,因此RAID 60不适用于大量写入任务。
注:
当同一RAID控制卡下同时存在无需校验的RAID组(如RAID 0或RAID 1)和需要校验的RAID组(如RAID 5或RAID 6),且写策略均设置为Write Back时,需要校验的RAID组性能会下降,I/O wait增加。
建议将无需校验的RAID组写策略设置为Write Through,以免对需要校验的RAID组性能产生影响。
在选择RAID级别时,其存储容量也是一个重要参数。
RAID 0:在指定一组硬盘后,同等情况下,RAID 0可以提供最大的存储容量,可用容量=成员盘最小容量×成员盘数量。
RAID 1:由于对一个硬盘进行写入时,必须同时写入另一个硬盘,导致存储空间损耗。可用容量=成员盘最小容量。
RAID 5:校验数据块与常规数据块隔离,因此整体上来说,校验数据会占用1个成员盘的容量。可用容量=成员盘最小容量×(成员盘数量-1)。
RAID 6:由于2个独立的校验数据块与常规数据块隔离,整体上来说,校验数据会占用2个成员盘的容量。可用容量=成员盘最小容量×(成员盘数量-2)。
RAID 10:可用容量=子组容量之和。
RAID 50:可用容量=子组容量之和。
RAID 60:可用容量=子组容量之和。
针对有冗余功能的RAID 1、5、6、10、50、60,RAID控制卡可以对RAID组的硬盘数据进行一致性校验,对硬盘数据进行检验和计算,并与对应的冗余数据进行比较。如果发现有数据不一致的情况,会尝试做自动修复并保存错误信息。
由于RAID 0不具备冗余性,因此不支持一致性校验。
注:
建议每月至少进行一次一致性校验。
RAID控制卡的热备份特性由热备盘和紧急备份功能实现。
热备盘
热备盘是硬盘系统中的一个独立的硬盘,当RAID组中的硬盘故障时,热备盘自动取代故障盘作为成员盘,并在热备盘上重构故障盘数据。
在RAID控制卡的管理界面或命令行工具中,可以指定容量大于或等于RAID组成员盘,且介质类型及接口与成员盘相同的空闲盘作为RAID组的热备盘。
RAID控制卡支持的热备盘包括下面两种:
全局热备盘,为RAID控制卡上所有已配置的RAID组所共有,1块RAID控制卡中可配置1个或多个全局热备盘。当任意RAID组内的成员盘故障时,全局热备盘均可自动替代。
局部热备盘,为RAID控制卡上某个指定的RAID组所专有,每个RAID组都可以配置1个或多个局部热备盘。当指定RAID组内的成员盘故障时,局部热备盘可自动替换。
热备盘有如下特性:
热备盘仅用于具有冗余功能的RAID组,包括RAID 1、5、6、10、50、60。
热备盘仅用于替代同一RAID控制卡上的故障盘。
紧急备份
紧急备份功能,是指任意一个具备冗余功能的RAID组中出现成员盘故障且没有指定热备盘时,RAID控制卡下属的空闲盘会自动替代故障成员盘并进行重构,避免数据丢失。
紧急备份要求用于备份的空闲盘容量大于等于成员盘容量,且介质类型与成员盘相同。
当RAID组中出现故障盘时,可以通过RAID控制卡的数据重构功能,将故障盘中的数据在新盘上重构。数据重构功能仅适用于具有冗余功能的RAID 1、5、6、10、50、60。
RAID控制卡支持热备盘自动重构故障成员盘数据。当RAID组配置了可用的热备盘时,在成员盘故障的情况下,热备盘自动替换故障盘,进行数据重构;当RAID组没有可用的热备盘时,只有更换新盘后才可进行数据重构。当热备盘开始数据重构后,故障的成员盘就被标注为可移除状态。
重构率,即数据重构任务在系统运行的所占用CPU资源的比率,可设置为0%~100%。0%表示数据重构任务只有系统当前没有任何其他任务运行时,才会启动数据重构任务。100%表示数据重构任务占用所有CPU资源。重构率可由用户自行设置,建议根据系统的实际情况设置一个合适的取值。
RAID控制卡下属的物理硬盘有如表所示的状态。
表:物理硬盘状态
状态 | 说明 |
---|---|
Available(AVL) | 硬盘可能未就绪,并且不适合在逻辑盘或热备池中使用。 |
Cfgincompat | 硬盘配置不兼容。 |
Copyback/Copybacking | 新盘正在替换热备盘。 |
Diagnosing | 硬盘状态正在诊断。 |
Degraded(DGD) | 硬盘是逻辑盘的一部分,处于降级状态。 |
Erase In Progress | 硬盘正在进行擦除。 |
Failed(FLD) | 当“Online”状态或“Hot Spare”状态的硬盘出现不可恢复的错误时,会体现为此状态。 |
Fault | 硬盘故障。 |
Foreign | 硬盘中包含外部配置。 |
Hot Spare(HSP) | 被设置为热备盘。 |
Inactive | 硬盘属于未激活逻辑盘的成员盘,在激活逻辑盘后方可使用硬盘。 |
JBOD | 硬盘以直通方式使用。 |
Missing(MIS) | “Online”状态的硬盘被拔出后,体现为此状态。 |
Offline | 为某个虚拟磁盘的成员盘,不可正常使用,处于离线状态。 |
Online(ONL) | 为某个虚拟磁盘的成员盘,可正常使用,处于在线状态。 |
Optimal | 硬盘状态是正常的,且是逻辑盘的一部分。 |
Out of Sync(OSY) | 硬盘作为IR逻辑盘的一部分,与该逻辑盘中的其他硬盘不同步。 |
Predictive Failure | 硬盘即将变为Failed状态,应备份硬盘上的数据,并更换硬盘。 |
Raw(Pass Through) | HBA模式下裸盘。 |
Raw Drive | 硬盘以裸盘方式使用。 |
Ready(RDY) | 适用于RAID控制卡的RAID/Mixed模式,硬盘可用于配置RAID组,RAID模式下Ready状态的硬盘不上报操作系统(以下简称“OS”),Mixed模式下Ready状态的硬盘会上报OS。 |
Rebuild/Rebuilding(RBLD) | 硬盘正在进行数据重构,以保证虚拟磁盘的数据冗余性和完整性,此时虚拟磁盘的性能会受一定程度的影响。 |
Reconstructing | 硬盘正在进行数据重构,以保证虚拟磁盘的数据冗余性和完整性,此时虚拟磁盘的性能会受一定程度的影响。 |
Spare | 硬盘为热备盘,且状态正常。 |
Shield State | 物理硬盘在做诊断操作时的临时状态。 |
Standby(SBY) | 设备不是硬盘设备。 |
Unconfigured Good(ugood/ucfggood) | 硬盘状态正常,但不是虚拟磁盘的成员盘或热备盘。 |
Unconfigured Bad(ubad) | “Unconfigured Good”状态硬盘或未初始化的硬盘,出现无法恢复的错误时,会体现为此状态。 |
Unknown | 硬盘状态未知。 |
Unsupport | 硬盘规格超过RAID控制卡当前规格。 |
RAID控制卡下创建的虚拟磁盘有如表所示的状态。
表 虚拟磁盘状态
状态 | 说明 |
---|---|
Degrade/Degraded(DGD) | 虚拟磁盘可用但状态异常,存在成员盘故障或离线的情况。用户数据未收到保护。 |
Delete fail | 执行删除失败。 |
Deleting | 正在删除此虚拟磁盘。 |
Failed(FLD) | 虚拟磁盘故障。 |
Fault | 虚拟磁盘故障。 |
Formatting | 正在格式化中。 |
Inactive | 虚拟磁盘处于未激活状态,在激活后方可使用。 |
Inc RAID | 不支持SMART或SATA扩展命令。 |
Initializing(INIT) | 正在初始化。 |
Initialize fail | 初始化失败。 |
Interim Recovery | RAID组降级,因为RAID组中存在故障盘,使得RAID组运行性能降低,数据可能丢失。要解决此问题,请检查硬盘是否正确连接设备,或更换故障的硬盘。 |
Max Dsks | RAID组支持的硬盘数量已达到最大数,该硬盘不能被加入RAID中。 |
Missing(MIS) | 虚拟磁盘丢失。 |
Not formatted | 未格式化。 |
Not Syncd | 该硬盘上面的数据与逻辑盘中其他硬盘的数据不同步。 |
Normal | 虚拟磁盘状态正常,所有成员盘均在线。 |
Offline | 当RAID组中的物理硬盘故障或离线的数量超过该RAID组级别支持的最大故障硬盘的数量时,RAID组会体现为该状态。 |
Online(ONL) | 虚拟磁盘处于在线状态。 |
Optimal | 虚拟磁盘状态良好,所有成员盘均在线。 |
Okay(OKY) | 虚拟磁盘处于活动状态,驱动器运行正常。如果当前RAID级别提供数据保护,则用户数据将受到保护。 |
Partial Degraded | 当RAID组中的物理硬盘故障或离线的数量未超过该RAID组级别支持的最大故障硬盘的数量时,RAID组会体现为部分降级状态。 |
Primary | 该硬盘为RAID1中的主盘且状态正常。 |
Ready for Rebuild | 准备执行重构。 |
Sanitizing | 虚拟磁盘正在执行数据擦除。 |
Secondary | 该硬盘为RAID1中的从盘且状态正常。 |
Tool Small | 硬盘容量过小,不能用于当前RAID组的热备盘。 |
Wrg Intfc | 硬盘接口与当前RAID组中的硬盘接口不同。 |
Wrg Type | 该硬盘不能作为该RAID组的成员盘,可能不兼容或者硬盘故障。 |
Write_protect | 虚拟磁盘处于写保护中。 |
在创建虚拟磁盘时,会需要对其数据读写策略进行定义,以规范后续虚拟磁盘运行过程中数据的读写方式。
数据读策略
在配置界面中一般体现为“Read Policy”。RAID控制卡支持如下两种数据读策略:
预读取方式:使用此策略后,从虚拟磁盘中读取所需数据时,会把后续数据同时读出放在Cache中,用户随后访问这些数据时可以直接在Cache中命中,将减少硬盘寻道操作,节省响应时间,提高了数据读取速度。要使用该策略,要求RAID控制卡支持数据掉电保护功能,但如果此时超级电容异常,可能导致数据丢失。
非预读取方式:使用此策略后,RAID控制卡接收到数据读取命令时,才从虚拟磁盘读取数据,不会做预读取的操作。
数据写策略
在配置界面中一般体现为“Write Policy”。RAID控制卡支持如下数据写策略:
回写:使用此策略后,需要向虚拟磁盘写数据时,会直接写入Cache中,当写入的数据积累到一定程度,RAID控制卡才将数据刷新到虚拟磁盘,这样不但实现了批量写入,而且提升了数据写入的速度。要使用该策略,要求RAID控制卡支持数据掉电保护功能,但如果此时超级电容异常,可能导致数据丢失。
直写:使用此策略后,RAID控制卡向虚拟磁盘直接写入数据,不经过Cache。此种方式不要求RAID控制卡支持数据掉电保护功能,即使超级电容故障,也无影响。该写策略的缺点是写入速度较低。
与BBU相关的回写:使用此策略后,当RAID控制卡BBU在位且状态正常时,RAID控制卡到虚拟磁盘的写操作会经过Cache中转(即回写方式);当RAID控制卡BBU不在位或BBU故障时,RAID控制卡到虚拟磁盘的写操作会自动切换为不经过Cache的直接写入(即写通方式)。
强制回写:在RAID控制卡无电容或电容损坏的情况下,强制使用“Write Back”模式。当服务器出现异常下电时,如果电容不在位或在充电状态下,RAID控制卡中DDR(即Cache)的写数据将会丢失。不推荐使用该模式。
数据写入RAID控制卡高速缓存的速度大于数据写入硬盘的速度,一次在服务器进行大量写操作时,都使用RAID控制卡高速缓存来提升系统性能。
开启RAID控制卡高速缓存可提升整机写性能,当服务器写压力减小或RAID控制卡高速缓存将写满时,数据再由RAID控制卡高速缓存写入硬盘。
开启RAID控制卡高速缓存提升写性能的同时,也增大了数据丢失的风险,在整机意外掉电时,RAID控制卡高速缓存中的数据将会丢失。
为了提升整机的高读写性能和RAID控制卡高速缓存中数据的安全,可为RAID控制卡配置超级电容。超级电容保护模块的原理是在发生系统意外掉电时,利用超级电容供电,将RAID控制卡高速缓存中的数据写入超级电容模块中的NAND Flash中永久保存。
由于数据保护需要超级电容的配合,为了记录超级电容的放电曲线,以便RAID控制卡了解超级电容的状态,例如最大和最小电压等,同时为了延长超级电容的寿命,RAID控制卡默认启动超级电容自动校准模式。
RAID控制卡通过如下所述的三段式充放电操作对超级电容的电量进行校准,使其保持在一个相对稳定的值。
RAID控制卡将超级电容的电量充到最大值。
自动启动校准进程,将超级电容完全放电。
重新开始充电,直至达到最大电量。
超级电容电量校准过程中,RAID控制卡写策略自动调整为“Write Through”模式以保证数据完整性,此时RAID控制卡性能会降低。电量校准的时间取决于超级电容充放电速度。
当多个进程同时访问一个硬盘时,可能会出现硬盘冲突。大多数硬盘系统都对访问次数(每秒的I/O操作)和数据传输率(每秒传输的数据量)有限制。当达到这些限制时,后面需要访问硬盘的进程就需要等待。
条带化是一种自动的将I/O的负载均衡到多个物理硬盘上的技术。条带化技术将一块连续的数据分成多个小部分并将其分别存储到不同硬盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成硬盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的I/O并行能力。
硬盘的条带化,是将硬盘空间按照设定的大小分为多个条带,数据写入时也按照条带的大小来划分数据模块。
例如,在一个由四个成员盘组成的硬盘系统中(例如RAID 0),第一个数据块写入第一块成员盘,第二个数据块写入第二个成员盘,以此类推,如图所示。由于是同时对多个硬盘进行写入,因此极大地提升了系统性能,但是,此特性并不能保证数据的冗余性。
硬盘分条包含下面的概念:
条带宽度:一个硬盘组在进行分条时所使用的硬盘的个数,例如一个由四个成员盘组成的硬盘组,其条带宽度为“4”。
硬盘组的条带大小:RAID控制卡同时在一个硬盘组中所有硬盘上的写入的数据块的大小。
硬盘的条带大小:RAID控制卡在每块硬盘上写入的数据块的大小。
例如,针对一个硬盘组,在写入数据时,一个1MB的数据条带,在每个成员盘上分配的数据块为64KB,那么此硬盘组的条带大小为1MB,硬盘的条带大小为64KB。
磁盘镜像,适用于RAID 1和RAID 10,是指执行写数据的任务时,会将同样的数据同时写入两块硬盘,以实现100%的数据冗余度。由于两块硬盘上的数据完全相同,当一块硬盘故障时,数据不会丢失。另外,同一时间,两块盘上的数据是完全相同的,当一块硬盘故障时,由于数据是同时读写,因此数据流不会中断。
磁盘镜像带来的是100%的完全冗余,但是其代价是比较昂贵的,因为在镜像过程中,每个硬盘都需要一个备份盘,如图所示。
外部配置,是区别于当前RAID控制卡的配置来说的,在配置界面中一般体现为“Foreign Configuration”之类的字样。
一般在下述情况下,会有外部配置出现:
一个新安装到服务器上的物理硬盘中存在RAID配置信息,RAID控制卡会将此类信息识别为外部配置。
服务器更换了RAID控制卡后,新RAID控制卡会将当前存在的RAID信息识别为外部配置。
热插拔RAID组的成员盘后,该成员盘会被标记为携带外部配置。
对检测出来的外部配置,可以根据服务器实际情况进行处理。例如,当新插入的硬盘携带的RAID信息不符合当前使用场景时,可以删除此配置。更换RAID控制卡后,如果仍然想使用之前的配置,就可以导入该配置,使其在新RAID控制卡上生效。
RAID控制卡具备硬盘节能功能。此功能根据硬盘配置和I/O活动允许硬盘停转。所有SAS和SATA机械硬盘均支持此功能。
当硬盘节能功能开启时,RAID控制卡下挂载的空闲状态的硬盘和空闲热备盘均处于节能状态。当有相关操作(例如创建RAID组,创建热备盘,动态扩盘,进行热备重构)时可唤醒正处于节能状态的硬盘。
硬盘直通,即“JBOD”功能,又称指令透传,是不经过传输设备处理,仅保证传输质量的一种数据传输方式。
打开硬盘直通功能后,RAID控制卡可对所连接的硬盘进行指令透传,在不配置RAID组的情况下,用户指令可以直接透传到硬盘,方便上层业务软件或管理软件访问控制硬盘。
例如,服务器操作系统安装过程中,可以直接找到挂载在RAID控制卡下的硬盘作为安装盘;而不支持硬盘直通的RAID控制卡,在操作系统安装过程中,只能找到该RAID控制卡下已经配置好的虚拟磁盘作为安装盘。
如果您在本文中未能找到解决当前疑问的办法,不用担心——正睿专业技术支持团队随时待命