在LINUX上配置oracle ASMLib的多路径磁盘
适用于:
Oracle Server - Enterprise Edition - Version: 10.2.0.1
Linux Kernel - Version: 1.0.0-1 to 1.0.5-1
Linux Kernel - Version: 2.0.0-1 to 2.0.5-1
Linux x86-64
RedHat Enterprise Linux (RHEL) 3
RHEL 4
Oracle Enterprise Linux (OEL) 4
RHEL 5
OEL 5
目标:
本文档介绍了配置Linux的特定ASM库,甲骨文(她在“的ASMLib”)提供访问多路径磁盘所需的步骤。它假定多径磁盘已经配置存储提供任何工具。本文档提供多路径磁盘的名称“multipatha”,从而为存储供应商不可知。
解决方案:
1.涉及多路径磁盘的问题
使用ASM中的多径磁盘有两个问题。 ASM不能两次看到了同样的磁盘的处理。如果是这样,它会导致错误。一个磁盘可以出现在一个多路径配置三次:
1。第一条路径到磁盘
2。第二条路径到磁盘
3。多路访问点
下面是一个例子:说系统有一个本地磁盘/dev/sda,和一个磁盘通过连接外部存储。该机具有两个连接或路径到外部存储。 Linux的SCSI驱动程序,会看到两个路径。他们将显示为/dev/sdb和/dev/sdc的。系统可能会访问SDB或SDC,访问结束在同一个地方。
如果启用了多路径,将有一个多路径磁盘,例如/ dev/ multipatha的,可以访问两个路径。也就是说,所有的I / O,以multipatha可以使用路径。如果系统使用康体发展局的路径,电缆被拔掉时,系统会得到一个错误。但多路径磁盘会知道切换到SDC路径。
大多数系统软件将不知道的多路径配置。它可以使用任何路径,康体发展局,SDC,或multipatha,它不会知道其中的差别。 ASMLib程序是相同的方式。它使用的路径,默认的配置并不关心。
ASMLib程序将只选择的路径之一,因为ASM无法处理两次看到了同样的磁盘。这就解决了第一个问题。 ASM只能看到一个路径,它是幸福的。这里是第二个问题:ASM看到哪条路径? ASMLib程序将在其默认配置中,选择它找到的第一个路径。这是由Linux所报告的第一条路径。根据您的存储驱动程序,它可以多路径,或者它可能是单一的路径之一。
系统管理员要始终使用多路径磁盘的ASMLib。如果Oracle不使用它,然而,有没有办法,ASMLib程序知道一个多路径的样子。它必须被告知通过其配置。
2.Disk扫描排序
磁盘标记的ASMLib使用ASMLib程序安装描述一个过程。的ASMLib学习什么磁盘在这个过程被称为磁盘扫描标记。 ASMLib程序每次启动时运行该扫描。系统管理员也可以通过/etc/init.d/oracleasm scandisks 命令强制扫描。
ASMLib程序将检查系统中的每个磁盘。它检查该磁盘已被标记的ASMLib。任何已标记的磁盘将可用的ASMLib。通常情况下,ASMLib程序检查每个磁盘操作系统列出他们的确切顺序。对于大多数系统来说,这是很好的。
在最后一节中,我们描述了一个情况下,操作系统的顺序是不够好。系统管理员希望看到多路径磁盘之前看到单一路径磁盘的ASMLib。这允许选择多路径磁盘,并提供给Oracle的ASMLib。
ASMLib程序允许两个磁盘扫描顺序的修改。首先,它允许排除某些磁盘。换句话说,ASMLib程序将完全忽略这些磁盘。其次,系统管理员可以指定首先要扫描的磁盘。在此列表中的磁盘扫描前的磁盘系统的其余部分。
一个多路径配置,可以使用设施。系统管理员可以选择排除所有的单一路径磁盘。 ASMLib程序将忽略他们,只有多路径磁盘扫描。相反,管理员可以指定多路径磁盘扫描第一。的ASMLib将看到他们的第一次,他们更喜欢单一路径。
3.Con配置扫描的顺序
ORACLE的ASMLib配置文件位于/etc/sysconfig/oracleasm。它包含了所有的启动配置,通过/etc/init.d/oracleasm configure命令中指定的系统管理员。该命令可以不配置扫描排序。
配置文件包含了许多的配置变量。 ORACLEASM_SCANORDER变量指定要扫描的磁盘。 ORACLEASM_SCANEXCLUDE变量指定的磁盘将被忽略。
变量的前缀字符串相匹配的空白seperated列表。换句话说,如果一个磁盘开始的前缀字符串之一,它匹配。例如,前缀字符串SD将匹配所有的SCSI设备。磁盘sda开始与SD。请注意,这些都是没有水珠。他们不使用通配符。他们是简单的前缀。还要注意的是在/dev/路径前缀的一部分。
在RHEL/OEL4扫描时,扫描内核已知的唯一的设备名称。内核的device-mapper,看到的设备为/dev/DM-XX。人类可读性的udev创建在/dev/mapper/XXX名。任何ORACLEASM_SCANORDER或ORACLEASM_SCANEXCLUDE配置,必须使用DM的前缀。
另一方面,在/dev/DM-XX设备无法使用OEL/RHEL5和参数,你应该使用/dev/mapper/XXX项。
一对例子:
多路径磁盘第一
系统管理员配置的ASMLib第一次扫描多路径磁盘。在她的ASMLib配置文件编辑ORACLEASM_SCANORDER变量看起来像这样:
ORACLEASM_SCANORDER="multipath sd"
在扫描过程中,ASMLib程序首先尝试与“多径”开头的所有磁盘。多路径设备的/dev/multipatha一定的匹配。它首先扫描。下一步,ASMLib程序试图与“SD”开始的所有磁盘。这是所有的SCSI磁盘。本地磁盘/dev/sda的将被扫描,但它不是一个ASM磁盘。单一路径的磁盘为/dev/sdb和/dev/sdc的也会被扫描。他们ASM磁盘,但ASMLib程序会看到,它已经到该磁盘的路径。它会忽略它们。最后,ASMLib程序将扫描任何其他磁盘不匹配或者前缀。
ORACLEASM_SCANORDER关键字多径实际上是从/etc/multipath.conf中“多路径”一节下的“别名”。例如:
multipaths {
multipath {
wwid 3600508b4000156d700012000000b0000
alias multipath
...
}
multipath {
...
alias mympath
...
}
...
}
默认的实际设备名称是/dev/mapper/mpath*(或类似)。
不包括单一的路径磁盘
系统管理员配置的ASMLib忽略单一路径磁盘。在他的ASMLib配置,编辑ORACLEASM_SCANEXCLUDE变量看起来像这样:
ORACLEASM_SCANEXCLUDE="sdb sdc"
在这里,系统管理员已经更加具体。 ASMLib程序应忽略确切的磁盘为/dev/sdb和/dev/sdc的。它不应该忽视其他的SCSI磁盘。 ASMLib程序扫描时,将忽略这些路径,只看到在/dev/多路径磁盘。再次,Oracle将使用多路径磁盘。
4。EMC的PowerPath和ASMLib程序
很多的管理员要使用的EMC的PowerPath多路径和磁盘访问的ASMLib。
然而,由EMC PowerPath和2.4内核不支持。 Linux 2.6内核,如RHEL4或SLES9,和2.0的ASMLib内核驱动程序的系统的支持。请参考EMC支持矩阵(您将需要有一个Powerlink帐户),以验证任何/所有的互操作性要求得到满足。
如果您有相关的ASMLib和PowerPath支持使用Linux 2.4内核的系统,如RHEL3或SLES8,任何问题,请联系EMC。