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:
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:
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,