DB2 Container behaviour on EMC DMX 3 San. - Aix

This is a discussion on DB2 Container behaviour on EMC DMX 3 San. - Aix ; We are reviewing database container design where the storage layer is an EMC DMX 3 Raid 5 San. The SAN comprises multiple raid 5 arrays, four disks in each array. We have been allocated 8 gig virtual hypervolumes(LUNS) each mapped ...

+ Reply to Thread
Results 1 to 3 of 3

Thread: DB2 Container behaviour on EMC DMX 3 San.

  1. DB2 Container behaviour on EMC DMX 3 San.

    We are reviewing database container design where the storage layer is
    an EMC DMX 3 Raid 5 San.

    The SAN comprises multiple raid 5 arrays, four disks in each array.
    We have been allocated 8 gig virtual hypervolumes(LUNS) each mapped
    horizontally across the four disks. The 8 gig hyper volumes are split
    into 2 gig hypers one hyper per disk. The SAN stripe size is 768KB.

    Hypervolumes are exposed to AIX as hdisks hence each hdisk is 8 gig.
    The data on each hdisk is mapped across four physical drives in
    contiguous stripes (tracks) of 2 gig(hypers).

    For this example let's say we create four DMS containers(files) of 8
    gig each for a tablespace.

    Assign one hyper volume(hdisk) to each container.

    Assign the four hdisks to logical volume 01.

    The containers are c1, c2, c3, c4.
    The hypers are c1/d1, c1/d2.......c4/d3, c4/d4.


    D1 D2 D3 D4
    .---. .---. .---. .---.
    C1 | 1 | | 1 | | 1 | | 1 | <=== hypervolume hdisk1 8 gig
    C2 | 2 | | 2 | | 2 | | 2 | <=== hypervolume hdisk2 8 gig
    C3 | 3 | | 3 | | 3 | | 3 | <=== hypervolume hdisk3 8 gig
    C4 | 4 | | 4 | | 4 | | 4 | <=== hypervolume hdisk4 8 gig
    ` ---' `---' `---' `---'

    DB2 writes data in extents over the containers in a round robin
    fashion. If the
    tablespace extent size is set to 768KB then the data is written out in
    768KB chunks in the
    order c1/d1, c2/d1, c3/d1, c4/d1, c1/d1, c2/d1, c3/d1, c4/d1.

    The SAN writes data in stripe order, left to right . c1/d1, c1/d2, c1/
    d3, c1/d4, c2/d1.....


    We assume that all the disks in the array are dedicated to our host


    My questions are:

    1. Will the SAN write to disk in the same sequence as DB2? E.G if
    DB2 is writing to C3/D1 could the SAN actually allocate the data on C2/
    D4 because C2/D4 has no data or will it respect the hypervolume and
    write on D3.

    If the SAN follows the same allocation logic as DB2 then.......

    2. Will all the activity be on disk one until the first two gigabytes
    in one of the containers is filled and DB2 moves to the next disk e.g
    disk2 becomes active when the c1/d1 hyper is full and db2 moves to c1/
    d2?

    3. If the data in each of the containers never exceeds 2 gig will
    disk 1 be the only active disk in the array?


  2. Re: DB2 Container behaviour on EMC DMX 3 San.

    > The containers are c1, c2, c3, c4.
    > The hypers are c1/d1, c1/d2.......c4/d3, c4/d4.
    >
    > * * * * D1 *D2 *D3 *D4
    > * * * *.---. .---. .---. .---.
    > C1 * | 1 | | 1 | | 1 | | 1 | * *<=== hypervolume hdisk1 8 gig
    > C2 * | 2 | | 2 | | 2 | | 2 | * *<=== hypervolume hdisk2 8 gig
    > C3 * | 3 | | 3 | | 3 | | 3 | * *<=== hypervolume hdisk3 8 gig
    > C4 * | 4 | | 4 | | 4 | | 4 | * *<=== hypervolume hdisk4 8 gig
    > * * * *` ---' `---' `---' `---'
    >
    > DB2 writes data in extents over the containers in a round robin
    > fashion. If the
    > tablespace extent size is set to 768KB then the data is written out in
    > 768KB chunks in the
    > order c1/d1, c2/d1, c3/d1, c4/d1, c1/d1, c2/d1, c3/d1, c4/d1.
    >
    > The SAN writes data in stripe order, *left to right . c1/d1, c1/d2, c1/
    > d3, c1/d4, c2/d1.....
    >
    > We assume that all the disks in the array are dedicated to our host
    >
    > My questions are:
    >
    > 1. *Will the SAN write to disk in the same sequence as DB2? *E.G if
    > DB2 is writing to C3/D1 could the SAN actually allocate the data on C2/
    > D4 because C2/D4 has no data or will it respect the hypervolume and
    > write on D3.
    >


    I think, that DB2 doesn't know how the SAN stripes and vice versa.
    If your SAN stripes are 768KB and the DB2 extent size also, both will
    use the next stripe each 768KB.

    > If the SAN follows the same allocation logic as DB2 then.......
    >
    > 2. *Will all the activity be on disk one until the first two gigabytes
    > in one of the containers is filled and DB2 moves to the next disk e.g
    > disk2 becomes active when the c1/d1 hyper is full and db2 moves to c1/
    > d2?


    No.

    >
    > 3. *If the data in each of the containers never exceeds 2 gig will
    > disk 1 be the only active disk in the array?


    No.

    I think, you'll be on D1 for the first 4 768KB, because DB2 will
    stripe by extent size.
    the next 4 extents would be striped by SAN to D2 (each). Thats quite
    good, you can tune it a little bit, by placing the start of DB2-
    container_X on SAN-Disk_X. This will cause that the very first extent
    in CONT1 in on DISK1, in CONT2 is on DISK2 ... Your first 4 extends
    are also striped to Disk1..4. The following extents are striped by
    SAN. So this would be a bit more distributed. But your extent size is
    quite small, when you have "enough" data this seems to be a good
    physical storage design. I won't worry... But anyhow: Monitoring is
    quite a good thing to see how your design works under real conditions.

  3. Re: DB2 Container behaviour on EMC DMX 3 San.

    Patrick Finnegan writes:

    > We are reviewing database container design where the storage layer
    > is an EMC DMX 3 Raid 5 San.


    For best practices on DB2 layout on EMC, pl see
    http://www.emc.com/solutions/applica...-db2/index.htm

    There is a whitepaper there describing how to layout DB2 containers on EMC boxes.

    --
    Haider

+ Reply to Thread