Como Aumentar el Espacio de los Diskgroups de ASM en Exadata.

15 de Noviembre de 2020.

Llevar a cabo el incremento o disminución del espacio asignado en un Diskgroup de ASM hoy en día es una tarea normal de la operación, lo que hace años haciamos con los FileSystems, Folders o Puntos de Montaje en Unix y Windows.

En un Sistema de Ingenieria de Oracle tampoco es la excepción, pues las bases de Datos o repositorios de Datos, estan en constante crecimiento basados en el Negocio o Rubro que Soportan.

Siendo las Bases de Datos de Empresas de Telecomunicaciones o Bancos las que Más Rapido crecen.

En esta oportunidad vamos a Incrementar el espacio de almacenamiento en un Diskgroup de ASM en un Sistema de Ingenieria Exadata.

IPS de las celdas

Debemos conocer las IPs de las Celdas de Almacenamiento porque, es necesario hacer ciertos pasos de procedimiento en dichos componenes, aunque podria hacerse con el utilitario dcli desde el Nodo de Procesamiento Database Machine, Prefiero hacerlo desde la propia celda.

Los nombres de Diskgroups, IPS , Bases de Datos, Hostname, etc son ficticios en el Articulo.

20.10.101.230 nodo01

20.10.101.231 nodo02

20.10.101.232 nodo03

Conectarse mediante SSH

Nos conectamos mediante SSH ya sea fuera del Exadata o desde un nodo de computo a las celdas.

Tarea de Redimensión del espacio actual

Lo que se redimensiona son los GridDisk, los GridDisk son las porciones en que se dividen los CELLDISK, el CELLDISK es el LUN, y el CELLDISK es tambien cada disco fisico en la Celda, existen N discos fisicos en las celdas existiendo un minimo de 6 discos, y todas las celdas tienen la misma candidad de discos.

Validamos el espacio libre de los CELLDISk, a ver si hay espacio para incrementar los GridDisk del cluster en estudio.

 cellcli -e “list celldisk where name like ‘CD.*’ attributes name, size, freespace”

       CD_00_celda01   12.4737091064453125T  9.148468017578125T

       CD_01_celda01   12.4737091064453125T  9.148468017578125T

       CD_02_celda01   12.4737091064453125T  9.148468017578125T

       CD_03_celda01   12.4737091064453125T  9.148468017578125T

       CD_04_celda01   12.4737091064453125T  9.148468017578125T

       CD_05_celda01   12.4737091064453125T  9.148468017578125T

Vemos que hay 9.14Tb Libres por CELLDISK.

Ahora validamos el espacio que tiene cada GridDisk, observamos que el espacio que produce dicha configuración es de 1TB y se obtiene asi.

6 Discos de 58Gb por 3 celdas, 6*58G*3= 1044G aprox 1Tb , en los GridDisk del Diskgroup DATA

cellcli -e “list griddisk where name like ‘DATA.*’ attributes name, size” –> 1Tb

       DATA_CD_00_celda01  58G

       DATA_CD_01_celda01  58G

       DATA_CD_02_celda01  58G

       DATA_CD_03_celda01  58G

       DATA_CD_04_celda01  58G

       DATA_CD_05_celda01  58G

Vamos a trabajar tambien el diskgroup RECO

6 Discos de 14Gb por 3 celdas, 6*58G*3= 250G  , en los GridDisk del Diskgroup RECO

cellcli -e “list griddisk where name like ‘RECO.*’ attributes name, size” –> 250GB

              RECO_CD_00_celda01  14G

       RECO_CD_01_celda01  14G

       RECO_CD_02_celda01  14G

       RECO_CD_03_celda01  14G

       RECO_CD_04_celda01  14G

       RECO_CD_05_celda01  14G

Debemos comprender que los dos GridDisk tanto del diskgroup DATA y RECO provienen del mismo CELLDISK, pero Oracle usa la logica del sector del disco que da vueltas más rapidas, ese sector al ser mas rapido es definido para DATA, y el sector más alejado o que da las vueltas más lentas, es definido para RECo, usando una propiedad definido en cilindros y llamada Interleave Disk(Puede que me equivoque).

Aqui hay imagenes al respecto:

https://www.eproseed.com/wp-content/uploads/2019/07/picture-1.png
https://image.slidesharecdn.com/exadatav2foroltpanddwh-12556401118401-phpapp02/95/sun-oracle-exadata-v2-for-oltp-and-dwh-56-728.jpg?cb=1255622474

Analizamos los diskgroups a aumentar el tamaño ( el proceso de reducir es exactamente igual al reves los pasos).

asmcmd lsdg

State   Type Rebal Sector Logical_Sector Block      AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name

MOUNTED HIGH N        512            512  4096 4194304  1069056  172704          118784          17973             0            Y DATA/

MOUNTED HIGH N        512            512  4096 4194304   258048   63060           28672          11462             0            N RECO/

Necesitamos incrementar los griddisk de data a 116GB

Necesitamos incrementar los griddisk de reco a 58G

Consultamos el tamaño de cada Disco o GRIDDISK de ASM para RECO y DATA en cualquiera de los nodos de Computo o Database Machine del Cluster que estamos trabajando ( Virtual o BareMetal es indiferente).

SQL> select name, total_mb from v$asm_disk_stat where name like ‘%RECO%’;

NAME                            TOTAL_MB

—————————— ———-

RECO_CD_01_celda03      14336

RECO_CD_00_celda03      14336

RECO_CD_03_celda03      14336

RECO_CD_04_celda03      14336

RECO_CD_05_celda03      14336

RECO_CD_02_celda03      14336

RECO_CD_05_celda02      14336

RECO_CD_02_celda02      14336

RECO_CD_00_celda02      14336

RECO_CD_01_celda02      14336

RECO_CD_04_celda02      14336

RECO_CD_03_celda02      14336

RECO_CD_04_celda01      14336

RECO_CD_00_celda01      14336

RECO_CD_05_celda01      14336

RECO_CD_01_celda01      14336

RECO_CD_03_celda01      14336

RECO_CD_02_celda01      14336

QD_RECO_NODO1              128

QD_RECO_NODO1              128

20 rows selected.

SQL> c.RECO.DATA

 1* select name, total_mb from v$asm_disk_stat where name like ‘%DATA%’

SQL> /

NAME                            TOTAL_MB

—————————— ———-

DATA_CD_02_NODO03      59392

DATA_CD_05_NODO03      59392

DATA_CD_04_NODO03      59392

DATA_CD_00_NODO03      59392

DATA_CD_03_NODO03      59392

DATA_CD_01_NODO03      59392

DATA_CD_04_NODO02      59392

DATA_CD_03_NODO02      59392

DATA_CD_01_NODO02      59392

DATA_CD_00_NODO02      59392

DATA_CD_02_NODO02      59392

DATA_CD_05_NODO02      59392

DATA_CD_03_NODO01      59392

DATA_CD_02_NODO01      59392

DATA_CD_04_NODO01      59392

DATA_CD_05_NODO01      59392

DATA_CD_00_NODO01      59392

DATA_CD_01_NODO01      59392

QD_DATA_NODO2              128

QD_DATA_NODO1              128

20 rows selected.

Para cada griddisk por celda primero los griddisk del diskgroup RECO

En cellcli, por Celda aumentar en Megabytes en Multiplos de 16MB dice la documentación.

Celda3

cellcli

cellcli>

alter griddisk RECO_CD_01_NODO03,RECO_CD_00_NODO03,RECO_CD_03_NODO03,RECO_CD_04_NODO03,RECO_CD_05_NODO03,RECO_CD_02_NODO03 size=59392M;

Celda2

cellcli

cellcli>

alter griddisk RECO_CD_05_NODO02,RECO_CD_02_NODO02,RECO_CD_00_NODO02,RECO_CD_01_NODO02,RECO_CD_04_NODO02,RECO_CD_03_NODO02 size=59392M;

Celda1

cellcli

cellcli>

alter griddisk RECO_CD_04_NODO01,RECO_CD_00_NODO01,RECO_CD_05_NODO01,RECO_CD_01_NODO01,RECO_CD_03_NODO01,RECO_CD_02_NODO01 size=59392M;

Luego DATA

Celda3

cellcli

cellcli>

alter griddisk DATA_CD_01_NODO03,DATA_CD_00_NODO03,DATA_CD_03_NODO03,DATA_CD_04_NODO03,DATA_CD_05_NODO03,DATA_CD_02_NODO03 size=118784M;

Celda2

cellcli

cellcli>

alter griddisk DATA_CD_05_NODO02,DATA_CD_02_NODO02,DATA_CD_00_NODO02,DATA_CD_01_NODO02,DATA_CD_04_NODO02,DATA_CD_03_NODO02 size=118784M;

Celda1

cellcli

cellcli>

alter griddisk DATA_CD_04_NODO01,DATA_CD_00_NODO01,DATA_CD_05_NODO01,DATA_CD_01_NODO01,DATA_CD_03_NODO01,DATA_CD_02_NODO01 size=118784M;

Los outputs, tener cuidado que el comando quede en una sola linea, el cellcli es como un prompt CLI ASMCMD o SQLPLUS.

GridDisk RECO_CD_04_nodo01 successfully altered

GridDisk RECO_CD_00_nodo01 successfully altered

GridDisk RECO_CD_05_nodo01 successfully altered

GridDisk RECO_CD_01_nodo01 successfully altered

GridDisk RECO_CD_03_nodo01 successfully altered

GridDisk RECO_CD_02_nodo01 successfully altered

GridDisk DATA_CD_04_nodo01 successfully altered

GridDisk DATA_CD_00_nodo01 successfully altered

GridDisk DATA_CD_05_nodo01 successfully altered

GridDisk DATA_CD_01_nodo01 successfully altered

GridDisk DATA_CD_03_nodo01 successfully altered

GridDisk DATA_CD_02_nodo01 successfully altered

GridDisk RECO_CD_05_nodo02 successfully altered

GridDisk RECO_CD_02_nodo02 successfully altered

GridDisk RECO_CD_00_nodo02 successfully altered

GridDisk RECO_CD_01_nodo02 successfully altered

GridDisk RECO_CD_04_nodo02 successfully altered

GridDisk RECO_CD_03_nodo02 successfully altered

GridDisk DATA_CD_05_nodo02 successfully altered

GridDisk DATA_CD_02_nodo02 successfully altered

GridDisk DATA_CD_00_nodo02 successfully altered

GridDisk DATA_CD_01_nodo02 successfully altered

GridDisk DATA_CD_04_nodo02 successfully altered

GridDisk DATA_CD_03_nodo02 successfully altered

GridDisk RECO_CD_01_nodo03 successfully altered

GridDisk RECO_CD_00_nodo03 successfully altered

GridDisk RECO_CD_03_nodo03 successfully altered

GridDisk RECO_CD_04_nodo03 successfully altered

GridDisk RECO_CD_05_nodo03 successfully altered

GridDisk RECO_CD_02_nodo03 successfully altered

GridDisk DATA_CD_01_nodo03 successfully altered

GridDisk DATA_CD_00_nodo03 successfully altered

GridDisk DATA_CD_03_nodo03 successfully altered

GridDisk DATA_CD_04_nodo03 successfully altered

GridDisk DATA_CD_05_nodo03 successfully altered

GridDisk DATA_CD_02_nodo03 successfully altered

Los celldisk despues del resize scaleup, vemos que ocupamos .10TB de cada CELLDISK

 cellcli -e “list celldisk where name like ‘CD.*’ attributes name, size, freespace”

       CD_00_nodo02   12.4737091064453125T  9.048858642578125T

       CD_01_nodo02   12.4737091064453125T  9.048858642578125T

       CD_02_nodo02   12.4737091064453125T  9.048858642578125T

       CD_03_nodo02   12.4737091064453125T  9.048858642578125T

       CD_04_nodo02   12.4737091064453125T  9.048858642578125T

       CD_05_nodo02   12.4737091064453125T  9.048858642578125T

Ahora se debe redimensionar para agrandar los discos del ASM queforman los diskgroups.

DATA,RECO

Usando sqlplus en 1 nodo del Cluster con usuario GRID o dueño de software de GI/ASM:

alter diskgroup DATA resize all rebalance power 32;

alter diskgroup RECO resize all rebalance power 32;

Usar select * from v$asm_operation; en el sqlplus para monitorear el rebalance o asmcmd lsdg y ver la columna rebalance, hastaque diga N.

Vemos los nuevos Tamaños:

Nodo1

asmcmd lsdg

State   Type Rebal Sector Logical_Sector Block      AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name

MOUNTED HIGH N        512            512  4096 4194304  2138112 1241760          237568         334730             0            Y DATA/

MOUNTED HIGH N        512            512  4096 4194304  1069056  873972          118784         251729             0            N RECO/

Desde nodo2.

asmcmd lsdg

State   Type Rebal Sector Logical_Sector Block      AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name

MOUNTED HIGH N        512       

A/

MOUNTED HIGH N        512            512  4096 4194304  1069056  873972          118784         251729             0            N RECO/

Tomado de:

https://docs.oracle.com/en/engineered-systems/exadata-database-machine/sagug/exadata-administering-asm.html#GUID-42DA2512-667D-443C-93C5-6E5110DFAE21

y

Saludos, espero les sea de utilidad.

Raúl

Publicado por

Estado: con conexión Raúl Antonio Molina Alvarenga(OCM) Coordinador BD & AS Oracle en SSA Sistemas Fecha de publicación: 3 meses 5 artículos Como Administrar el espacio de Diskgroups de ASM en Sistema De Ingenieria Oracle , Exadata. #Oracle,#Exadata,#RAC,#ASM,