51
1 © 2008 Julian Dyke juliandyke.com Automatic Storage Management Julian Dyke Independent Consultant Web Version - December 2008

ASM.ppt - Julian Dyke

  • Upload
    trandat

  • View
    240

  • Download
    2

Embed Size (px)

Citation preview

Page 1: ASM.ppt - Julian Dyke

1 © 2008 Julian Dyke juliandyke.com

Automatic StorageManagement

Julian DykeIndependent Consultant

Web Version - December 2008

Page 2: ASM.ppt - Julian Dyke

2 © 2008 Julian Dyke juliandyke.com

Objectives

1. Understand how Oracle database files are stored in ASM

2. Calculate how long ASM rebalance operations will take

Page 3: ASM.ppt - Julian Dyke

3 © 2008 Julian Dyke juliandyke.com

Agenda

ASM Instances ASM Disk Groups

Metadata Extent Distribution Rebalancing Redundancy

Page 4: ASM.ppt - Julian Dyke

4 © 2008 Julian Dyke juliandyke.com

ASMInstances

Page 5: ASM.ppt - Julian Dyke

5 © 2008 Julian Dyke juliandyke.com

ASM Single Instance Architecture

OracleClusterware

ASMInstance

RDBMSInstance

Server

OCSSDDaemon

Only

DedicatedStorage

Page 6: ASM.ppt - Julian Dyke

6 © 2008 Julian Dyke juliandyke.com

ASM Single Instance Background Processes

PMON

SMON

CKPT

LGWR

DBW0 VKTM PSP0 MMAN RBAL

GMON

X000

DIAG

DIA0

Fixed Area

Variable Area

ASM Cache

Oracle 11.1

Page 7: ASM.ppt - Julian Dyke

7 © 2008 Julian Dyke juliandyke.com

ASM RAC Architecture

Oracle Clusterware

ASMInstance

RDBMSInstance

Node 1

Oracle Clusterware

ASMInstance

RDBMSInstance

Node 2

Oracle Clusterware

ASMInstance

RDBMSInstance

Node 3

Oracle Clusterware

ASMInstance

RDBMSInstance

Node 4Storage Network

Private Network

PublicNetwork

SharedStorage

Page 8: ASM.ppt - Julian Dyke

8 © 2008 Julian Dyke juliandyke.com

ASM RAC Architecture

PROD1 TEST1

CLUSTERWARE

+ASM1

PROD2 TEST2

CLUSTERWARE

+ASM2

PROD

TEST

Clusterware

ASM Instances

RDBMS Instances

Database Files

Page 9: ASM.ppt - Julian Dyke

9 © 2008 Julian Dyke juliandyke.com

ASM RAC Instance Background Processes

PMON

SMON

CKPT

LGWR

DBW0 VKTM PSP0 MMAN RBAL

GMON

X000

DIAG

DIA0

Fixed Area

Variable Area

ASM Cache

Oracle 11.1LMON LMS0 LMD0 LCK0 DIAG

MARK KATE

Page 10: ASM.ppt - Julian Dyke

10

© 2008 Julian Dyke juliandyke.com

ASMDisk

Groups

Page 11: ASM.ppt - Julian Dyke

11 © 2008 Julian Dyke juliandyke.com

ASM Disk Groups and Disks

Disk Group 1

Disk Group 2

Disk Group 3

Disk 1

Disk 4

Disk 2

Disk 6

Disk 5

Disk 7

Disk 3

Page 12: ASM.ppt - Julian Dyke

12

© 2008 Julian Dyke juliandyke.com

ASM Disk Groups and Disks

Disk Group 1

Disk 1 Disk 4

Disk Group 2

Disk 2 Disk 5 Disk 6 Disk 7 Disk 3

Disk Group 3

Page 13: ASM.ppt - Julian Dyke

13

© 2008 Julian Dyke juliandyke.com

ASM Disk Groups, Disks and Database Files

Disk Group 1

Disk 1 Disk 4

Disk Group 2

Disk 2 Disk 5 Disk 6 Disk 7

Disk 3

Disk Group 3

File 1

File 2File 3

File 4

File 5

File 5

File 6

Page 14: ASM.ppt - Julian Dyke

14

© 2008 Julian Dyke juliandyke.com

File Extents versus Allocation Units File Extent

Logical unit of ASM file Map to allocation units

One to many mapping

Allocation Unit Physical unit of ASM disk Oracle 10.2 and below

Always 1MB Can be increased using _asm_ausize

Oracle 11.1 and above Variable size 1MB, 2MB ,4MB, 8MB, 16MB, 32MB, 64MB

Page 15: ASM.ppt - Julian Dyke

15

© 2008 Julian Dyke juliandyke.com

X$KFFXP Maps file extents to allocation units Only populated in ASM instance Columns include

Column Name DescriptionGROUP_KFFXP Disk Group Number

NUMBER_KFFXP File Number

COMPOUND_KFFXP Disk Group Number || File Number

INCARN_KFFXP Incarnation Number

PXN_KFFXP Physical Extent Number (within file)

XNUM_KFFXP Logical Extent Number (within file)

LXN_KFFXP 0=primary, 1=first mirror, 2=second mirror

DISK_KFFXP Disk Number

AU_KFFXP Allocation Unit Number (within disk)

SIZE_KFFXP Size (# allocation units)

Page 16: ASM.ppt - Julian Dyke

16

© 2008 Julian Dyke juliandyke.com

ASM Metadata Metadata is stored in first 256 files in ASM disk group

Space is initially allocated when disk group is created Can be subsequently extended

Metadata allocation units are divided into blocks Each block is 4096 bytes Block size specifed using _asm_blksize

Metadata files includeFile# Description0 Metadata Header1 File Directory2 Disk Directory3 Active Change Directory4 Continuing Operations Directory5 Template Directory6 Alias Directory9 Attribute directory (optional)12 Staleness registry (optional)

Page 17: ASM.ppt - Julian Dyke

17

© 2008 Julian Dyke juliandyke.com

ASM Metadata

Active ChangeDirectory

Continuing OperationsDirectory

Template Directory

Alias Directory

Disk Directory

File Directory

Partner Status Table

Metadata Header

Free Space Table

Allocation Table

Disk Header

Metadata Header

Page 18: ASM.ppt - Julian Dyke

18

© 2008 Julian Dyke juliandyke.com

ASM Metadata Initial Allocation (Single Instance)

File# AU Description # AUs0 0 Disk Header, Free Space Table, Allocation Table 1

1 Partner Status Table 11 File Directory 12 Disk Directory 13 Active Change Directory 424 Continuing Operations Directory 25 Template Directory 16 Alias Directory 1

Active Change Directory Records changes to metadata Used during recovery of instance or operation failures

Continuing Operations Directory Maintains state of active operations

Page 19: ASM.ppt - Julian Dyke

19

© 2008 Julian Dyke juliandyke.com

ASM Metadata Block Types

Type Description1 KFBTYP_DISKHEAD2 KFBTYP_FREESPC

3 KFBTYP_ALLOCTBL4 KFBTYP_FILEDIR5 KFBTYP_LISTHEAD6 KFBTYP_DISKDIR7 KFBTYP_ACDC

8 KFBTYP_CHNGDIR9 KFBTYP_CODBGO10 KFBTYP_TMPLTDIR11 KFBTYP_ALIASDIR

12 KFBTYP_INDIRECT

Type Description

13 KFBTYP_PST_NONE14 KFBTYP_HASHNODE15 KFBTYP_COD_RBO16 KFBTYP_COD_DATA

17 KFBTYP_PST_META18 KFBTYP_PST_DTA19 KFBTYP_HBEAT20 KFBTYP_SR21 KFBTYP_STALEDIR

22 KFBTYP_VOLUMEDIR23 KFBTYP_ATTRDIR

Page 20: ASM.ppt - Julian Dyke

20

© 2008 Julian Dyke juliandyke.com

KFED Utility In Oracle 10.2 and above the kfed utility can be used to inspect and edit the

contents of ASM blocks

[oracle@server3 ~]$ $ORACLE_HOME/bin/kfed -has/mlib ASM Library [asmlib='lib']aun/um AU number to examine or update [AUNUM=number]aus/z Allocation Unit size in bytes [AUSZ=number]blkn/um Block number to examine or update [BLKNUM=number]blks/z Metadata block size in bytes [BLKSZ=number]ch/ksum Update checksum before each write [CHKSUM=YES/NO]cn/t Count of AUs to process [CNT=number]d/ev ASM device to examine or update [DEV=string]o/p KFED operation type [OP=READ/WRITE/MERGE/NEW/FORM/FIND/STRUCT]p/rovnm Name for provisioning purposes [PROVNM=string]s/eek AU number to seek to [SEEK=number]te/xt File name for translated block text [TEXT=string]ty/pe ASM metadata block type number [TYPE=number]

This utility should only be used under the guidance of Oracle Support

Page 21: ASM.ppt - Julian Dyke

21

© 2008 Julian Dyke juliandyke.com

KFED Utility For example to dump blocks in aliases directory in DISKGROUP1 Find group number

SELECT disk_kffxp, au_kffxp FROM x$kffxp WHERE group_kffxp = 1AND number_kffxp = 6AND lxn_kffxp = 0;

Disk Allocation Unit

0 49 Find disk name

SELECT group_number FROM v$asm_diskgroupWHERE name = 'DISKGROUP1';

Alias directory is stored in file number 6

SELECT path FROM v$asm_diskWHERE group_number = 1AND disk_number = 0;

Path/dev/oracleasm/disks/VOL1

Page 22: ASM.ppt - Julian Dyke

22

© 2008 Julian Dyke juliandyke.com

KFED Utility Example (continued)

Allocation unit is 1MB Block size is 4096 Therefore there are 256 blocks per allocation unit Starting block offset = 256 * 49 = 12544

for (( f = 12544 ; f < 12544 + 256 ; f++ ))do

kfed op=read blkn=$f dev='/dev/oracleasm/disks/VOL1' > blk${f}done

Page 23: ASM.ppt - Julian Dyke

23

© 2008 Julian Dyke juliandyke.com

Extent Distribution

Page 24: ASM.ppt - Julian Dyke

24

© 2008 Julian Dyke juliandyke.com

Extent Distribution Creating a disk group:

CREATE DISKGROUP diskgroup1 EXTERNAL REDUNDANCYDISK '/dev/oracleasm/disks/VOL1';

Dropping a disk group:

DROP DISKGROUP diskgroup1 INCLUDING CONTENTS

Page 25: ASM.ppt - Julian Dyke

25

© 2008 Julian Dyke juliandyke.com

Extent Distribution1 disk

Disk 0

Metadata

01234567

Metadata Data

Page 26: ASM.ppt - Julian Dyke

26

© 2008 Julian Dyke juliandyke.com

Extent Distribution2 disks

Disk 0 Disk 1

Metadata

02468

101214

13579

111315

Metadata Data

Page 27: ASM.ppt - Julian Dyke

27

© 2008 Julian Dyke juliandyke.com

Extent Distribution4 disks

Disk 0 Disk 1 Disk 2 Disk 3

Metadata

048

1216202428

26101418222630

159

1317212529

37

111519232731

Metadata Data

Page 28: ASM.ppt - Julian Dyke

28

© 2008 Julian Dyke juliandyke.com

Extent Distribution1 large disk - 1 small disk

Disk 0 Disk 1

Metadata

0134679

10

258

11

Metadata Data

Page 29: ASM.ppt - Julian Dyke

29

© 2008 Julian Dyke juliandyke.com

Extent Distribution1 large disk - 3 small disks

Disk 1 Disk 2

16

1116Metadata

0358

10131518

Disk 0 Disk 4

27

1217

49

1419

Metadata Data

Page 30: ASM.ppt - Julian Dyke

30

© 2008 Julian Dyke juliandyke.com

Extent Distribution2 large disks - 2 small disks

Disk 1 Disk 2

39

1521Metadata

0268

12141820

Disk 0 Disk 4

147

10

5111723

13161922

Metadata Data

Page 31: ASM.ppt - Julian Dyke

31

© 2008 Julian Dyke juliandyke.com

Rebalancing

Page 32: ASM.ppt - Julian Dyke

32

© 2008 Julian Dyke juliandyke.com

Extent Distribution Adding a disk:

ALTER DISKGROUP diskgroup1 ADD DISK '/dev/oracleasm/disks/VOL2' REBALANCE POWER 0;

Dropping a disk:

ALTER DISKGROUP diskgroup1 DROP DISK 'DISKGROUP1_0002' REBALANCE POWER 0;

Rebalancing a disk group:

ALTER DISKGROUP diskgroup1 REBALANCE POWER 1;

Page 33: ASM.ppt - Julian Dyke

33

© 2008 Julian Dyke juliandyke.com

RebalancingAdding disks - 1 disks to 2 disks

Disk 0 Disk 1

01234567

57

01234567

57

13

13

STOP

Metadata Data

Page 34: ASM.ppt - Julian Dyke

34

© 2008 Julian Dyke juliandyke.com

RebalancingAdding disks - 1 disks to 4 disks

Disk 0 Disk 1 Disk 2 Disk 3

01234567

26

15

04

01234567

1 045

26

STOP

Metadata Data

Page 35: ASM.ppt - Julian Dyke

35

© 2008 Julian Dyke juliandyke.com

RebalancingAdding disks - 2 disks to 3 disks

Disk 0 Disk 1 Disk 2

13579111315

02468

101214

25811

012345

031

4

14

17

1617

Metadata Data

Page 36: ASM.ppt - Julian Dyke

36

© 2008 Julian Dyke juliandyke.com

RebalancingAdding disks - 2 disks to 4 disks

Disk 0 Disk 1 Disk 2 Disk 3

13579

111315

02468101214

159

13

048

12

01234567

1 045

2

6

STOP

Metadata Data

Page 37: ASM.ppt - Julian Dyke

37

© 2008 Julian Dyke juliandyke.com

RebalancingDropping disks - 3 disks to 1 disk

Disk 0 Disk 1 Disk 2

036

12457

4 5

03

1245

25

14

8

7 8

1 2

STOP

Metadata Data

Page 38: ASM.ppt - Julian Dyke

38

© 2008 Julian Dyke juliandyke.com

RebalancingMoving disks - 2 disks to 2 disks

Disk 0 Disk 1 Disk 2

13579

111315

468

101214

10

6

20

4

8

01234567

0

42

6

STOP

20

1214

Metadata Data

Page 39: ASM.ppt - Julian Dyke

39

© 2008 Julian Dyke juliandyke.com

RebalancingV$ASM_OPERATION Contains details of ongoing rebalance operations

Column Name Data Type

GROUP_NUMBER NUMBER

OPERATION CHAR(5)

STATE VARCHAR2(4)

POWER NUMBER

ACTUAL NUMBER

SOFAR NUMBER

EST_WORK NUMBER

EST_RATE NUMBER

EST_MINUTE NUMBER

ERROR_CODE VARCHAR2(44)

Estimate of remaining time

Page 40: ASM.ppt - Julian Dyke

40

© 2008 Julian Dyke juliandyke.com

RebalancingPower Limit Power limit can be 0 to 11

0 disables rebalance operation 1 to 11 specifies number of ARBn background processes used for

rebalance

In Oracle 10.2 RBAL manages rebalance operation Each ARBn background process is allocated a range of 128 allocation

units to rebalance When complete another range is requested

AD lock is taken while an allocation unit is being rebalanced Rebalance operations take much longer than theoretically necessary.

Possible reasons include: Locking GES updates with other ASM instances Updates to RDBMS instance

Page 41: ASM.ppt - Julian Dyke

41

© 2008 Julian Dyke juliandyke.com

RebalancingSummary EST_MINUTES column of V$ASM_OPERATION is reasonably accurate

Allow a few minutes for SAN cache to stabilize Check regularly for changes to estimate

ASM rebalance operations do not affect workload Locks are only taken briefly

Lock mechanism has changed in Oracle 11.1 SAN cache and I/O performance will be affected

In Oracle 10.2 rebalancing is fastest if Other ASM instances are shutdown RDBMS instance is shutdown

Estimated completion time will be affected by: Use of SAN cache and I/O by rest of workload Rate of change by applications to blocks in ASM files being rebalanced

Page 42: ASM.ppt - Julian Dyke

42

© 2008 Julian Dyke juliandyke.com

Redundancy

Page 43: ASM.ppt - Julian Dyke

43

© 2008 Julian Dyke juliandyke.com

Redundancy ASM Supports three levels of redundancy

External Redundancy Implemented externally using storage layer Most common configuration in production

Normal Redundancy Two copies of each extent maintained in separate failure groups Used with extended clusters Used occasionally in production e.g. CERN Increases CPU overhead on servers

High Redundancy Three copies of each extent maintained in separate failure groups Very rare in production

Page 44: ASM.ppt - Julian Dyke

44

© 2008 Julian Dyke juliandyke.com

ASM Failure Groups - External Redundancy

Disk Group

Disk 1 Disk 2 Disk 3

Page 45: ASM.ppt - Julian Dyke

45

© 2008 Julian Dyke juliandyke.com

ASM Failure Groups - Normal Redundancy

Failure Group 1 FailureGroup 2

Disk Group

Disk 1 Disk 2 Disk 3 Disk 4 Disk 5 Disk 6

Page 46: ASM.ppt - Julian Dyke

46

© 2008 Julian Dyke juliandyke.com

ASM Failure Groups - High Redundancy

Failure Group 1

Disk Group

Disk 1 Disk 2

Failure Group 2

Disk 1 Disk 2

Failure Group 3

Disk 1 Disk 2

Page 47: ASM.ppt - Julian Dyke

47

© 2008 Julian Dyke juliandyke.com

Normal Redundancy1 Disk Per Failure Group

Disk 0 Disk 1

01

01

23

23

1011

Failure Group 1

89

67

012345

910

78

56

01234

11

Failure Group 2

Primary SecondaryMetadataData Primary Secondary

Page 48: ASM.ppt - Julian Dyke

48

© 2008 Julian Dyke juliandyke.com

Normal Redundancy2 Disks per Failure Group

Disk 0 Disk 1 Disk 2 Disk 3

03

0 123

12

47

56

47

56

2023

Failure Group 1 Failure Group 2

1619

1215

0347811

1821

1417

1013

12569

22

1920

1516

1112

03478

232122

1718

1314

12569

10

Primary SecondaryMetadataData Primary Secondary

Page 49: ASM.ppt - Julian Dyke

49

© 2008 Julian Dyke juliandyke.com

High Redundancy1 Disk per Failure Group

Disk 0 Disk 1 Disk 2

0 0

Failure Group 1

0 0

Failure Group 2 Failure Group 3

0111

2 2 23 33

4445 5 5

011 1

22 23 3 3

44 455 5

6 6 677 7

88 89 9 9

Primary Secondary TertiaryMetadataData Primary Secondary Tertiary

Page 50: ASM.ppt - Julian Dyke

50

© 2008 Julian Dyke juliandyke.com

References Oracle Automatic Storage Management (Oracle Press)

Nitin Vengurlekar Murali Vallath Rich Long

What ASM and ZFS Can Do For You Jason Arneil - Nominet

A Closer Look Inside Oracle ASM Luca Canali - CERN

Implementing ASM Without HW Raid Luca Canali - CERN

Page 51: ASM.ppt - Julian Dyke

51

© 2008 Julian Dyke juliandyke.com

Thank you for listening

[email protected]