Re: ASM question

  • From: Greg Rahn <greg@xxxxxxxxxxxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Fri, 23 Feb 2007 16:29:10 -0800

To benefit the list...

--
Greg Rahn
http://structureddata.org


-------- Original Message --------
Subject: Re:ASM question
From: "Hameed, Amir" <Amir.Hameed@xxxxxxxxx>
To: "Greg Rahn" <greg@xxxxxxxxxxxxxxxxxx>
Date: 2/23/2007 1:15 PM
Thank you for your explanation.
Amir

    ------------------------------------------------------------------------
    *From:* Greg Rahn [mailto:greg@xxxxxxxxxxxxxxxxxx]
    *Sent:* Friday, February 23, 2007 3:17 PM
    *To:* Hameed, Amir
    *Subject:* Re: ASM question

    First, lets understand a couple things:

    ASM Failgroups & normal redundancy:  Any ASM disk in a given
    failgroup may not have its extent mirrors on any other asm disk in
that same failgroup. A normal redundancy disk group can tolerate the failure of one
    failure group. If only one failure group fails, the disk group
    remains mounted and serviceable, and ASM performs a rebalance of
    the surviving disks (including the surviving disks in the failed
    failure group) to restore redundancy for the data in the failed
    disks. If more than one failure group fails, ASM dismounts the
    disk group.

    |REQUIRED_MIRROR_FREE_MB| indicates the amount of space that must
    be available in the disk group to restore full redundancy after
    the worst failure that can be tolerated by the disk group.

    
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14231/storeman.htm

In your second example the 7627GB USABLE_FILE_MB comes from here: The worst failure that this disk group could tolerate is 1 ASM
    disk failure (this is where |REQUIRED_MIRROR_FREE_MB = 5GB comes
    from)| and still restore full redundancy.  Given that, 100% of the
data and its redundant copy would have to reside on 3 asm disks. So if ASM needs to support 4 ASM disks data on 3 ASM disks no more
    than 75% of the capacity could be used.  Using normal redundancy
    the math would be:
    4 ASM disks @5GB = 20GB = TOTAL_MB
    20GB TOTAL_MB / 2 = 10GB (for primary extent mirrors)
    3/4 (support 4 disks data on 3) * 10GB = 7.5GB

    In the first example |REQUIRED_MIRROR_FREE_MB is 0 because that
    diskgroup could not sustain a failure and still restore full
    redundancy.|

    Regards,
    -Greg


    -------- Original Message --------
    Subject: ASM question
    From: "Hameed, Amir" <Amir.Hameed@xxxxxxxxx>
    To: oracle-l@xxxxxxxxxxxxx
    Date: 2/23/2007 10:13 AM
    Hi Folks,
    I have a 10.2.0.2 ASM instance running on Solaris 9 with the following
    scenario:

    1. All raw disk slices are 5GB in size

    2. I have created a normal redundancy ASM diskgroup with two failure
    groups as shown below:
    SQL> create diskgroup data normal redundancy
    failgroup failgroup_1
    disk '/dev/vx/rdsk/ux016_RAW/volraw_01'
    failgroup failgroup_2
    disk '/dev/vx/rdsk/ux016_RAW/volraw_02'
    /

    When I run the sql statement, as shown below, I see the following
    output:
    SQL> select GROUP_NUMBER GROUP#, NAME, STATE, TOTAL_MB, FREE_MB,
    REQUIRED_MIRROR_FREE_MB REQ_MIRR_FREE_MB, USABLE_FILE_MB
    from V$ASM_DISKGROUP;

        GROUP# NAME           STATE             TOTAL_MB    FREE_MB
    REQ_MIRR_FREE_MB USABLE_FILE_MB
    ---------- -------------- --------------- ---------- ----------
    ---------------- --------------
             1 DATA           MOUNTED              10240      10138
    0           5069

    So, the total size of the DG is 10GB with Usable space of 5GB. Because
    the group is mirrored 1:1, the REQ_MIRR_FREE_MB is zero.

    3. When I create the same group with two disks in each failover group, I
    see an output that I am not able to comprehend:
    SQL> create diskgroup data
    failgroup failgroup_1
    disk
    '/dev/vx/rdsk/ux016_RAW/volraw_01',
    '/dev/vx/rdsk/ux016_RAW/volraw_02'
    failgroup failgroup_2
    disk
    '/dev/vx/rdsk/ux016_RAW/volraw_03',
    '/dev/vx/rdsk/ux016_RAW/volraw_04'
    /

    SQL> select GROUP_NUMBER GROUP#, NAME, STATE, TOTAL_MB, FREE_MB,
    REQUIRED_MIRROR_FREE_MB REQ_MIRR_FREE_MB, USABLE_FILE_MB
    from V$ASM_DISKGROUP;

        GROUP# NAME           STATE             TOTAL_MB    FREE_MB
    REQ_MIRR_FREE_MB USABLE_FILE_MB
    ---------- -------------- --------------- ---------- ----------
    ---------------- --------------
             1 DATA           MOUNTED              20480      20374
    5120           7627

    I was hoping to see REQ_MIRR_FREE_MB of zero because I have a DG that
    contains two failure groups with each group contains two disks. I was
    also expecting to see 10GB for the USABLE_FILE_MB.

    Can someone please clarify how two interpret these stats.

    Thanks
    Amir

    --
    //www.freelists.org/webpage/oracle-l




Other related posts: