阵列卡高速缓存保护
能够提供高速缓存回写是raid控制器卡的诸多优点之一。高速缓存回写通过在服务器使用高峰时间将数据保存到高性能缓存当中,来提高应用程序的运行性能。当服务器出现用户访问间隙的时,数据会从高速缓存写入到磁盘阵列当中。
在正常的回写操作中,数据被写入高数缓存(dram)之后,系统IO将向应用程序发出数据写入完成的应答,并在随后的时间里将数据写入磁盘。但是,如果回写高速缓存被启动,一旦出现断电,写入dram的数据就可能丢失。由于控制器已经向IO发出了数据写入完成的应答,应用程序并不知道数据发生丢失。
为了降低这种风险,配备了高速缓存的企业raid控制器通常采用备用电池(BBU)选项。目的是当服务器供电中断是向控制器提供电源。保护高速缓存中的数据不丢失。目前有两种高速缓存保护选项:BBU备份电池和CacheVault保护选项。
通常存储系统都会提供电池在意外断电时保护缓存数据.通过使用内部或外部电池来保持缓存芯片的电椅供应.因为一般来说缓存芯片只消耗很少的电力,一个小而且不不要很大容量的电池就能用来保护缓存,有时候这种方式是带来名义上的存本节约,实际上备份电池有几个缺陷和带来潜在的成本.
一、扩展电源断电 大部分使用备份电池来对缓存做电力供应的电池保护时间是72小时(也就是保证缓存数据),或者说是3天.如果外部电源断电超过这个小时,缓存的内容将会丢失.白皮书举了若干断电超过3天的例子,飓风,洪水等等.
二、电池保护时间的难以确定
所有的电池即便是同一个制造商的同一批次产品都会在电池容量上有所不同.每个电池都会经过测试,但是测试通常只是涉及到电池放电几个小时.此外,电池容量的改变还和时间,温度有关系,同时还和电池使用的时间,充电次数等等都有关系.因此在任何时间来说精确的电池容量总是很难确定.在断电发生时候系统管理员很难知道电池能维持多长时间.时间可能各不相同,即便是同样的系统.
三、电池管理
缓存电池是不能缺少,而且需要周期性的检查来保证相应的容量.通常会每两年做一次电池的替换,在此期间电池还需要持续观察来确保其能维持预定的时间.备份电池通常是镍镉电池,镍金属氰化物电池盒锂电池,它们都需要周期性的调整和维护,这一要求就导致了大量的追踪和维护的困难,尤其是在一个管理员维护多个存储系统,或者是设备由其他的系统管理员来做维护时候更明显,总之其维护是混困难的,即便制造商提供提前的通知.
CacheVault技术采用NAND和超级电容闪存来为raid控制器提供高速缓存保护。当服务器发生断电或者故障时,CacheVault可以自动将缓存在dram中的数据转移至闪存当中。当电源恢复后,NAND闪存中的数据将会被拷贝回高速缓存,直至数据写入磁盘驱动器。
优点:消除 了锂电池所需要的硬件维护,降低了控制器使用寿命期间的总体成本,提供了更加环保的高速缓存保护技术,同时使raid控制器的性能保持最佳状态。
因iBBU的电量有限,最多只得几千mAh,约相当于iPhone4s所用的电池容量,一般只可提供三日的电力給RAID Card Cache Memory以保障资料的完整性,而且iBBU亦存在电池池老化的问题,每个一个周期需要充放电学习,时间需要1-3日。
CacheVault就是用来解决iBBU的保存时间短和电力老化的问题,主要由超級电容(SuperCapacitor)和NAND Flash两部份組成,当系統出现故障或意外断电時,CacheVault就會由超级电容提供电力来把Cache Memory上仍未写入HDD的资料Copy到NAND Flash內,待系统恢复正常時才由NAND Flash再Copy回Cache Memory.电池充电仅需要几分钟就可以了。
由于NAND Flash可保留资料长达年,比iBBU只能保留三日的时间长很多,這就可給你更长的时间来解决系统故障问题,而超级电容(SuperCapacitor)的寿命亦比iBBU电池长,老化速度亦不及电池来得严重,算是一个不错的替代iBBU方案。
由于BBU电池对使用环境的温度要求比较严格一般10-45度,但是由于RAID卡一般都安装在机箱后面,所以相对温度比较高,所以电池的寿命非常短。
LSI供应商目前提供的带有 CacheVault高速缓存的有阵列卡有 :
9270CV-8i 带 CacheVault高速缓存
9271-8i 带 CacheVault高速缓存
9361-8i 带 CacheVault高速缓存
BBU常见问题和注意事项 :
1、为什么有些BBU第一次充电需要超过7小时?
由于安全原因,BBU在出厂时并没有完全充电。当客户拿到产品时有些BBU电力相当低了(由于运输时的环境情况及BBU自身放电因素导致),这就是为什么有些BBU第一次充电需要超过7小时。
2、什么是“BBU”?
BBU是备用电源组(Battery Backup Unit)的缩写,它是一个可换的部件(FRU),是某些型号产品的标配,其他型号产品也可以选配BBU。BBU为RAID控制器缓存提供电源,当发生断电时控制器内缓存中的数据可以保存最长72小时(某些型号可以达到100小时)。用户只需要在BBU电力耗尽之前恢复正常供电,缓存中的数据即可被完整的写回RAID中,避免断电导致数据丢失。
3、为什么一些客户报告在新电池组第一天运行时看到了这样的事件提示:“controller BBU Termal Shutdown/Enter Sleep-Mode”(BBU过热关闭)?
BBU设计有一个硬件保护电路来保护电池运行的安全。当出现以下两种情况时,保护电路会使电池停止充电:1)电池组的温度高于设计的极限温度;2)充电时间超过7小时。许多客户的控制器缓存大小为1GB或者2GB。为了保证在断电时缓存中的数据能够保存足够长的时间,新型电池模块(例如9273CBT-C)使用更高性能的电池组(7600mAh)。当BBU第一次使用时,充电时间可能超过7小时的硬件保护时间,控制器事件就会发出“Controller BBU Termal Shutdown/Enter Sleep-Mode”警告。
4、当发出“Controller BBU Termal Shutdown/Enter Sleep-Mode”警告电池充电暂停之后,该如何使得BBU重新正常运行?
当发出警告后,电池充电暂停。看到RAID控制器事件报告时没有任何安全风险,也不需要立即更换电池模块,要想BBU如所期望的那样正常运行,有两种方法恢复电池充电:
a)从背板上拔下BBU,再插回去。BBU是可以热插拔的,这个操作可以在盘阵与主机进行数据交换的时候进行。
b)关机-重起盘阵。两种方法都能重新启动硬件保护电路并恢复充电。