zoukankan      html  css  js  c++  java
  • Oracle ASM无法识别扩展分区的磁盘设备

    在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是个扩展分区(Extended)。。。

    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还是不识别设备,那就再确认一下这个分区是不是个扩展分区。

  • 相关阅读:
    深度讲解Go语言-学习笔记
    vagrant常用命令
    CentOS7 安装Python虚拟环境 virtualenvwrapper
    《Android开发艺术探索》读书笔记——Cha3.2.3改变布局参数实现View的滑动
    Map接口的实现类 Map的区别
    Java多线程之内存可见性和原子性操作 一 synchronized
    LeetCode 153. Find Minimum in Rotated Sorted Array
    LeetCode 64. Minimum Path Sum
    实现线程同步的几种方式
    IOC的底层原理
  • 原文地址:https://www.cnblogs.com/zylong-sys/p/12015921.html
Copyright © 2011-2022 走看看