经过保护的存储的集合(JBOD)。
************************************************************************************************************************************************************************************************
ASMLib和udev
ASMLib和udev都解决了设备名固定的问题。在linux中,设备的检测和枚举的顺序并不是固定的。这和在Solaris中不一样,举个例子,除非一个磁盘在阵列中从物理上移动了,否则设备名(例如c0t0d1p1)不会改变。没做多路径的存储阵列的重新配置在linux中会有很大的问题:一个设备原先在操作系统中显示为/dev/sda可能会在重启后被重新映射为/dev/sdg,仅仅是因为操作系统检测到它比上一次启动时晚了一点。基于设备名的裸设备映射注定是要失败的。
首先看看udev的解决方法。一个SCSI设备的world-wide-ID(WWID)不会发生改变,在udev中利用了这一点制定一个规则,这个规则创建一个映射,它定义设备/dev/raw/raw1总是指向SCSI ID是xxxx的LUN中。udev的主要问题是,它的配置不够直观和易用。由于udev不能复制配置,在集群中的每个节点上管理员都需要去维护udev配置。(我们可以使用udevinfo -q path -n /dev/sda1 来查看/dev/sda1对应的udev设备名,该路径在/sys下)
配置了多路径的存储则不会有这个问题,因为另一个软件层(比如,devicemapper-multipath包)或供货商指定的软件会创建一个逻辑设备。
ASMLib提供了另一种方式。ASMLib工具可以在中免费下载,它使ASM磁盘的管理变得非常简单。ASMLib由3个RPM包组成:一个内核模块、实际ASMLib和支持工具。在使用一个LUN作为ASM disk前,你可以使用ASMLib工具通过将元数据信息添加到磁盘头部来标记它,然后ASMLib就可以识别出这个新的LUN,将其作为添加到ASM disk group的一个可能的候选。重启的时候,ASMLib将扫描磁盘头部的信息来识别ASM disk,不管物理设备名在启动过程中变成了什么。它保证了设备名的稳定性,而且成本非常低。ASMLib是一个内核模块,在内部分配自己的内存结构,它可以在单路径和多路径下配置。
************************************************************************************************************************************************************************************************
ASM Disk Group