【转自Oracle官方博客】一个ASMCA无法识别磁盘设备的问题

在Linux环境下,尽管udev配置正确且磁盘权限无误,Oracle ASM仍可能无法识别扩展分区作为存储单元。本文深入探讨了这一问题,指出ASM不支持直接使用扩展分区,需将其转换为主分区或创建逻辑分区。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://blogs.oracle.com/database4cn/%E4%B8%80%E4%B8%AAasmca%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E7%A3%81%E7%9B%98%E8%AE%BE%E5%A4%87%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82

 

在linux 环境下,我们一般通过udev或者asmlib来绑定磁盘分区作为ASM的候选存储单元。在使用udev的情况下,一般只要我们可以看到被绑定的磁盘的设备,并且这些设备的属主和权限没有问题,ASM就可以识别并使用这些设备了。 但是也有例外情况:

1. 首先观察到的现象:在ASMCA的“"show eligible" 页面,看不到udev绑定的设备/dev/data2

2. udev的rule,和设备的权限以及属主都没有问题

cat 99-oracle-asmdevices.rules

......
KERNEL=="sda1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="360a980004430753872244b6e4a376f70",NAME="data2",OWNER="grid", GROUP="asmadmin", MODE="0660"

ls -l /dev |grep data
......
brw-rw---- 1 grid asmadmin 8, 1 Nov 1 09:36 data2

3. 通过kfed来读取这个设备,好像也没有问题:

$ kfed read /dev/data2
kfbh.endian: 0 ; 0x000: 0x00
kfbh.hard: 0 ; 0x001: 0x00
kfbh.type: 0 ; 0x002: KFBTYP_INVALID
kfbh.datfmt: 0 ; 0x003: 0x00
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 0 ; 0x008: file=0
kfbh.check: 0 ; 0x00c: 0x00000000
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
7FFCA34D0400 00000000 00000000 00000000 00000000 [................]
Repeat 255 times
KFED-00322: Invalid content encountered during block traversal: [kfbtTraverseBlock][Invalid OSM block type][][0]

那么这是什么鬼???看似权限,属主,盘的读取都没有问题啊。。。

后来经过确认,原来这个分区/dev/sda1是个扩展分区。。。

fdisk -l

......

Disk /dev/sda: 322.2 GB, 322163441664 bytes
255 heads, 63 sectors/track, 39167 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc4ca7a41

Device Boot Start End Blocks Id System
/dev/sda1 1 39167 314608896 5 Extended

总结,Oracle不能直接使用扩展分区作为ASM的首选存储设备,对于一块磁盘,或者把它分区成主分区,或者在扩展分区上创建逻辑分区如果发现磁盘的权限,属主,读写都没有问题的话,ASM还是不识别设备,那就再确认一下这个分区是不是个扩展分区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值