标题：ROMB
ROMB简介
ROMB(RAID on Motherboard)母板磁盘阵列
  ROMBROMB适用于主板的一个内存系统，其中每一个RAID子系统的组成部分，是直接安装在主板上的RAID短片。一个ROMB系统是有利的，因为该系统的RAID组件保持独立于PCI总线，使PCI总线不干预的RAID交通造成瓶颈。主板通常比一台计算机的其他部分保持低温;因此，RAID系统的工作更有效率和更可靠，因为它也保持低温。[1]
ROMB的性能
比RAID HBA/ZCR更具有成本优势ROMB是主机板(Motherboard)上做一个RAID的子系统部份，与RAID HBA相比较，它具有更大的成本优势
现成板子上的layout设计，元件配置的最佳部署，成本化的取舍考量。以一张RAID HBA搭配主机板，例如Supermicro X8SIE-F搭配LSI MegaRAID 9240-8i，实际成本会远高于一张Supermicro X8SI6-F与Supermicro AOC-SAS2-RAID5-KEY的组合，由于这样的价格优势，ROMB设计是一些做高端主机板厂商会采用的方式。[2]不容易升级这样的设计虽然立意上不错，但是免不了会有缺点上的存在，就是没办法  基于这个RAID子系统上再加以硬件式扩充升级，最多只有通过韧体(Firmware)更新的方式提供新的特性以及一般性问题修正(The primary disadvantage of ROMB is the lack of hardware upgradeability, although features and performance can generally be upgraded in firmware.)。当然！ROMB的设计也可以避免一些相容性的问题，因为一切决定于主机板厂商。
右边的示意图表示ROMB的模型架构：
可以看到整个元件配置皆部署在主机板上，这是实作RAID(RAID implementation)系统的另一种典型模式！成本优势上的设计方案。
下面这张是Broadcom的ROMB文件提供的简易模型：  以一般主机板上透过南桥晶片(South Bridge)提供IOC，利用RAID Option ROM写入至NVRAM让BIOS提供RAID功能，例如像Intel的ICHxR实务设计-Hardware-Assisted Software RAID。其实算是一种ROMB，个人认为，ROMB设计没有强制规定要Hardware RAID，因此，只要是在主机板上提供RAID功能，都可以算是ROMB。
ROMB的WebBIOS设置romb raid卡有一种内嵌于控制器中的webbios配置工具，它具有gui的界面并可以进行方便的鼠标操作，在出现raid卡提示信息时按[ctrl]+[g]。 主要功能如：显示适配卡的属性、扫描设备、显示scsi通道属性、定义逻辑盘、显示逻辑盘属性、初始化逻辑盘，检测冗余数据一致性、配置物理阵列、选择适配卡和显示物理盘属性等。 其初始界面如下：  您可以选择相应的适配卡，点击start进入其配置主界面。[3]
webbios界面介绍
各功能的快捷图标在主界面的上方，包括使用鼠标点击界面左侧各选项，就可进入相对应的下一级界面，下面分几小节介绍bios工具的使用。adapter properties 界面介绍此界面下有如下选项： firmware version：显示romb fw版本； 
bios version：显示romb bios版本； 
battery backup：显示是否安装后备电池，若安装显示为“present”； 
ram size：显示romb 缓存大小； 
cluster mode：选择是否使用集群模式； 
initiator id：选择集群模式下初始化id； 
rebuild rate：输入要使用的raid 重建速度； 
alarm control：选择romb是否鸣叫； 
coercion algorithm：选择参予强制运算的硬盘的大小； 
bios stops on error：选择post过程中romb出现错误是否停止启动； 
bios echoes messages：选择是否在post过程中显示romb相关错误信息； 
bios config autoselection：选择nvram内内容不正确时，采取的措施； 
spinup parameters：选择硬盘spinup 延时时间； 
flexraid powerfail：选择是否支持raid 系统断电充启后自动重建，请选择“enabled”；
fast initialization：选择是否使用快速初始化； 
pci delay tranfer：选择是否允许pci延时传输； 
adapter bios：选择是否显示romb的bios； 
set factory defaults：选择是否调用出厂默认设置； 
auto rebuild：选择是否使用自动重建； 
class emulation mode：选择是否将raid阵列模拟为传统大容量存储模式使用。 
选择完成后选择“submit”保存设置，或者选择“reset”回到默认值。scan devices 界面介绍点击此选项romb会重新扫描连接在其上的硬盘的raid阵列，并在主界面的右侧显示。 scsi channel properties界面介绍 点击进入此项界面可以选择scsi 通道的终结和兼容模式。 选择完成后选择“submit”保存设置，或者选择“reset”回到默认值。logical drives 界面介绍点击此项进入raid阵列的操作界面，要进入相应的子项，首先需要选中相应选项，然后点击“go”即可，里面有如下选项： initialize：初始化阵列； 初始化过程要对所有阵列内的硬盘进行写零操作，若您的阵列含有数据请注意备份。 check consistency：检查数据一致性； 此检查对raid 1,5,10,50有效。如果校验过程中出现错误，romb会自动更改次奇偶校验错误。 properties：显示阵列属性； 阵列属性包含raid类型，raid阵列大小，条带大小等等； 显示并可设定read 、write、i/o、virtual size策略； 选择初始化、校验数据、删除等三项raid阵列操作。 set boot drive：选择启动阵列。physical drives 界面介绍此选项显示连接在raid 对应的scsi通道上的所有设备的信息，并可选择设备进行阵列重建。configuration wizard 界面介绍点击此选项进入配置菜单界面，此界面下各子项说明如下：
clear configuration：清除现有的raid阵列； new configuration：清除现有的raid阵列，建立新的raid阵列； 此处会清除现有的raid阵列，请谨慎操作。 add configuration：在现有阵列中添加新的硬盘实现扩容，此操作不会破坏现有阵列中的数据。
如何配置raid
选择new configuration点击next进入下一界面，在此界面选择有如下三个选项： 
auto configuration with redundancy：选择自动配置raid阵列，此选择对应两块硬盘则默认配置为raid 1；对应三块以上（含三块）则设置为raid 5；并且此设置会将所有可用的容量全部配置为一个阵列。 如果需要设置hotspare（热备份）硬盘则需要在进行此配置前选择硬盘。 
auto configuration without redundancy：此配置会自动将所有硬盘设置为raid 0模式。 
custom configuration：此选项下用户可以根据实际使用情况进行raid阵列设置。本指南以custom configuration为例进行配置方法说明。
第一步：首先定义raid 阵列
按住ctrl键同时用鼠标点击要使用的硬盘，呈蓝色显示后点击accept array，之后点击next 进入下一步。 reclaim：取消设置； reset：取消加入的硬盘。
第二步：设置raid阵列属性
此界面下各选项说明如下： raid level：选择raid阵列类型；
stripe size：选择raid 阵列条带的大小，条带大小数据在每块物理盘存放时被分割为数据段的大小，一般当主机系统主要顺序读取数据时大的条带数据能提供更好的读性能。默认为64k；
read policy：此选项设置逻辑盘是否采用预读（read ahead）方式，可以设置的方式有：normal、read ahead，adapter三种。 normal：默认的读取方式，指控制器对逻辑盘不采用read ahead的方式进行数据读取； read ahead：指控制器对逻辑盘采用read ahead的方式进行数据读取； adapter：指如果是对最近访问过的硬盘按顺序扇区进行访问，则采用read ahead的方式，如果所有的读请求都是随机的则控制器会根据一定的算法将读取方式转为normal，当然此时的读请求仍然可能是顺序的操作。 
write policy：此选项可以将cache模式设为wrback（回写）和wrthru（直写）两种方式。wrback（即write back，回写）方式是控制器在其内存cache接受到全部数据后就向主机系统发送接受完成的信号而不管数据是否已经全部写入硬盘还是还有部分或全部仍存在内存中，这种模式虽然性能优异但是存在一定的危险性，那就是当数据尚在cache时控制器系统突然掉电的情况，此时若没有相应的预防措施就会出现数据丢失现象，所以建议用户在选择此方式时考虑购买后备电池。 wrthru（即write through,直写）方式是控制器在将其内存cache接受到的全部数据写入硬盘后，系统后才向主机系统发送接受完成的信号，这种模式比较安全，但是性能稍微欠缺一点，也是系统默认的cache方式。 
cache policy：cached i/o：所有的读请求被缓存在cache中； direct i/o：所有的读请求并不缓存在cache中；这种方式并不会和cache方式起冲突，所有的数据被同时发送到控制器和主机系统，如果下次访问的仍然是相同的数据则会从cache中读取。 span：enabled：使能对当前逻辑盘的阵列跨越功能，逻辑盘可以包含多个阵列； disabled：关闭对当前逻辑盘的阵列跨越功能，逻辑盘只能包括一个阵列；作为跨越阵列的逻辑盘，需要具有相同的物理硬盘数目，并且是连续的阵列序号。 如果用户需要创建raid10/raid50必须将此选项选中，同时在用空格键选择硬盘的时候配置好阵列的个数. select size：选择raid阵列大小。 选择完成后点击accept确认设置，点击next进入下一步。
第三步：完成设置
在此界面确认所选择硬盘和阵列的内容，确认后选择accept完成配置，如需要改动选择back回到上一步。
第四步
屏幕出现提示“save this configuration?”选择“yes”，进入下一步。
第五步
屏幕出现提示“want to initialize the new logical drives？”，选择“yes”对阵列进行初始化。 
此界面下选中“initialize”后点击“go”进行初始化。初始化完成后，回到此界面，点击“home”图标，回到主界面。完成romb raid阵列设置。
1.7 adapter selection 界面介绍： 点击此选项，屏幕会出现系统中所有可被此版本fw找到的raid卡。
1.8 physical/logical view 界面介绍： 对应physical view，点击此选项屏幕会显示所有连接在其上的硬盘； 对应logical view，点击此选项屏幕会显示所有连接在其上的raid 阵列；
1.9 exit： 点击此选项退出romb raid配置管理界面。