Agregar ASM Disk a un DiskGroup de ASM en Solaris

Contrario a Linux, en sistemas operativos Solaris no hay herramientas específicas para poder ‘crear’ discos ASM y ser añadidos a un DiskGroup especifico. Y me refiero al término ‘crear’ pues el objetivo de librerías como ASMLib en Linux es hacer accesibles los dispositivos para la instancia ASM de modo que concuerden con el parámetro  ASM_DISKSTRING y cuenten con los permisos adecuados para su manipulación.

Cómo no tenemos una librería que nos ayude a crear estos permisos y rutas debemos realizar todo ‘a mano’ por decirlo así. Lo que nos otorga un mayor control sobre los dispositivos. Véamelo como una ventaja.

El primer paso será descubrir nuevas unidades asignadas a nuestro servidor, en Solaris una forma útil de hacerlo es mediante el comando cfgadm.

root@cen-tlg-ser-01:/dev/rdsk# cfgadm -al
Ap_Id                          Type         Receptacle   Occupant     Condition
Slot1                          pci-pci/hp   connected    configured   ok
Slot2                          pci-pci/hp   connected    configured   ok
Slot3                          etherne/hp   connected    configured   ok
Slot4                          unknown      empty        unconfigured unknown
c3                             scsi-sas     connected    configured   unknown
c3::w5000cca056cc1cb5,0        disk-path    connected    configured   unknown
c4                             scsi-sas     connected    configured   unknown
c4::w5000cca056cc2485,0        disk-path    connected    configured   unknown
c5                             scsi-sas     connected    unconfigured unknown
c6                             fc-fabric    connected    configured   unknown
c6::50060e8007dd0d00           disk         connected    configured   unknown
c6::50060e8016061050           unavailable  connected    unconfigured failed

Mediante este listado podemos identificar el SCSI_ID del disco que deseamos agregar al DiskGroup.
Una vez identificado el SCSI_ID sabremos que disco necesitamos configurar. A continuación utilizaremos el comando FORMAT para comenzar a crear particiones en nuestro dispositivo.

root@cen-tlg-srv-01:/dev/rdsk# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t5000CCA056CC1CB4d0 <HITACHI-H109060SESUN600G-A690-558.91GB>
          /scsi_vhci/disk@g5000cca056cc1cb4
       1. c0t5000CCA056CC2484d0 <HITACHI-H109060SESUN600G-A690-558.91GB>
          /scsi_vhci/disk@g5000cca056cc2484
       2. c0t60060E8007DD0D000030DD0D0000048Ad0 <HITACHI-OPEN-V      -SUN-8001 cyl 26106 alt 2 hd 255 sec 63>
          /scsi_vhci/disk@g60060e8007dd0d000030dd0d0000048a
       3. c0t60060E8007DD0D000030DD0D00000489d0 <HITACHI-OPEN-V      -SUN-8001 cyl 26106 alt 2 hd 255 sec 63>
          /scsi_vhci/disk@g60060e8007dd0d000030dd0d00000489
       4. c0t60060E80166E4F0000016E4F000000BAd0 <HITACHI-OPEN-V      -SUN-7005 cyl 26105 alt 2 hd 255 sec 63>
          /scsi_vhci/disk@g60060e80166e4f0000016e4f000000ba
       5. c0t60060E80166E4F0000016E4F000000BBd0 <HITACHI-OPEN-V      -SUN-7005 cyl 26105 alt 2 hd 255 sec 63>
          /scsi_vhci/disk@g60060e80166e4f0000016e4f000000bb
       6. c0t60060E80166E4F0000016E4F000000BCd0 <HITACHI-OPEN-V      -SUN-7005 cyl 26105 alt 2 hd 255 sec 63>
          /scsi_vhci/disk@g60060e80166e4f0000016e4f000000bc
       7. c0t60060E80166E4F0000016E4F000000BDd0 <HITACHI-OPEN-V      -SUN-7005 cyl 26105 alt 2 hd 255 sec 63>
          /scsi_vhci/disk@g60060e80166e4f0000016e4f000000bd
      

Specify disk (enter its number):

Como ya tenemos identificado el SCSI_ID del nuevo dispositivo, utilizamos el número de disco al que pertenece en nuestro servidor. Lo siguiente es establecer las particiones en el disco:
Debemos elegir la opción 1, para utilizar todo el espacio disponible.


Despues de esta partición, elegiremos una nueva que servirá como encabezado para la etiqueta del disco que nos ayuda a mantener el orden en los discos de nuestro servidor.

Specify disk (enter its number): 7
selecting c0t60060E80166E4F0000016E4F000000BDd0
[disk formatted]
Disk not labeled.  Label it now? y


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !     - execute , then return
        quit
format> p

Current partition table (original):
Total disk cylinders available: 4924 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 usr wm 0 - 584 1.00GB (585/0/0) 2100735
1 unassigned wm 585 - 1169 1.00GB (585/0/0) 2100735
2 unassigned wm 1170 - 1754 1.00GB (585/0/0) 2100735
3 unassigned wm 1755 - 2339 1.00GB (585/0/0) 2100735
4 unassigned wm 2340 - 2924 1.00GB (585/0/0) 2100735
5 unassigned wm 2925 - 3509 1.00GB (585/0/0) 2100735
6 unassigned wm 3509 - 4677 2.00GB (1169/0/0) 4197879
7 usr wu 4678 - 4923 431.00MB (246/0/0) 883386


partition> modify
Select partitioning base:
0. Current partition table (original)
1. All Free Hog


Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0                0         (0/0/0)             0
  1       swap    wu       0                0         (0/0/0)             0
  2     backup    wu       0 - 51197      100.00GB    (51198/0/0) 209707008
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6        usr    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

Choose base (enter number) [0]? 1

Dou wish to continue creating a new partition
table based on above table[yes]? yes

Free Hog partition[6]? 7
Enter size of partition '0' [0b, 0c, 0.00mb, 0.00gb]: 500mb
Enter size of partition '1' [0b, 0c, 0.00mb, 0.00gb]:
Enter size of partition '3' [0b, 0c, 0.00mb, 0.00gb]:
Enter size of partition '4' [0b, 0c, 0.00mb, 0.00gb]: 5gb
Enter size of partition '5' [0b, 0c, 0.00mb, 0.00gb]:
Enter size of partition '6' [0b, 0c, 0.00mb, 0.00gb]:


Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 285 501.00MB (286/0/0) 1027026
1 swap wu 0 0 (0/0/0) 0
2 backup wu 0 - 4923 8.43GB (4924/0/0) 17682084
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 286 - 3206 5.00GB (2921/0/0) 10489311
5 unassigned wm 0 0 (0/0/0) 0
6 usr wm 0 0 (0/0/0) 0
7 unassigned wm 3207 - 4923 2.94GB (1717/0/0) 6165747


Okay to make this the current partition table[yes]? yes
Enter table name (remember quotes): "asm"
Ready to label disk, continue? y
partition> q
format> verify
format> q
 


En este punto, nuestro nuevo disco está listo para que le otorguemos los permisos y hacerlo visible para la instancia ASM.

Podemos ver la ubicación de los discos en: /dev/rdsk. Echemos un vistazo.

root@cen-tlg-srv-01:/dev/rdsk# ls -lL
crw-rw----   1 grid     asmadmin 208, 1728 Jun 26 17:46 c0t60060E80166E4F0000016E4F00000082d0s0
crw-rw----   1 grid     asmadmin 208, 1664 Jun 26 16:59 c0t60060E80166E4F0000016E4F00000083d0s0
crw-rw----   1 grid     asmadmin 208, 1600 Jun 26 17:57 c0t60060E80166E4F0000016E4F00000084d0s0
crw-rw----   1 grid     asmadmin 208, 1536 Jun 26 17:58 c0t60060E80166E4F0000016E4F00000085d0s0
crw-rw----   1 grid     asmadmin 208, 1472 Jun  7  2015 c0t60060E80166E4F0000016E4F00000086d0s0
crw-rw----   1 grid     asmadmin 208, 640 Jun 26 17:31 c0t60060E80166E4F0000016E4F0000009Fd0s0
crw-rw----   1 grid     asmadmin 208, 576 Jun 26 17:57 c0t60060E80166E4F0000016E4F000000BAd0s0
crw-r-----   1 root     root           208, 384 Jun 26 16:01 c0t60060E80166E4F0000016E4F000000BDd0s0
crw-rw----   1 grid     asmadmin 208, 320 Jun 26 01:00 c0t60060E80166E4F0000016E4F000000DDd0s0
crw-rw----   1 grid     asmadmin 208, 256 Jun 26 17:57 c0t60060E80166E4F0000016E4F000000DEd0s0
crw-rw----   1 grid     asmadmin 208, 2240 Jun 26 17:45 c0t60060E80166E4F0000016E4F00000106d0s0
crw-rw----   1 grid     asmadmin 208, 2176 Jun 20 19:30 c0t60060E80166E4F0000016E4F00000107d0s0
...

Podemos ver el dueño del nuevo dispositivo formateado es root y no tiene los permisos necesarios para ser manipulado por el diskgroup.

Lo siguiente será asignarle la pertenencia del dispositivo al usuario grid y al grupo asmadmin

root@cen-tlg-srv-01:/dev/rdsk# chown grid:asmadmin c0t60060E80166E4F0000016E4F000000BDd0s0
root@cen-tlg-srv-01:/dev/rdsk# chmod 660 c0t60060E80166E4F0000016E4F000000BDd0s0

Si validamos nuevamente permisos:

root@cen-tlg-srv-01:/dev/rdsk# ls -lL|grep grid
crw-rw----   1 grid     asmadmin 208, 1728 Jun 26 17:46 c0t60060E80166E4F0000016E4F00000082d0s0
crw-rw----   1 grid     asmadmin 208, 1664 Jun 26 16:59 c0t60060E80166E4F0000016E4F00000083d0s0
crw-rw----   1 grid     asmadmin 208, 1600 Jun 26 17:57 c0t60060E80166E4F0000016E4F00000084d0s0
crw-rw----   1 grid     asmadmin 208, 1536 Jun 26 17:58 c0t60060E80166E4F0000016E4F00000085d0s0
crw-rw----   1 grid     asmadmin 208, 1472 Jun  7  2015 c0t60060E80166E4F0000016E4F00000086d0s0
crw-rw----   1 grid     asmadmin 208, 640 Jun 26 17:31 c0t60060E80166E4F0000016E4F0000009Fd0s0
crw-rw----   1 grid     asmadmin 208, 576 Jun 26 17:57 c0t60060E80166E4F0000016E4F000000BAd0s0
crw-rw---   1 grid     asmadmin 208, 384 Jun 26 16:01 c0t60060E80166E4F0000016E4F000000BDd0s0
crw-rw----   1 grid     asmadmin 208, 320 Jun 26 01:00 c0t60060E80166E4F0000016E4F000000DDd0s0
crw-rw----   1 grid     asmadmin 208, 256 Jun 26 17:57 c0t60060E80166E4F0000016E4F000000DEd0s0
crw-rw----   1 grid     asmadmin 208, 2240 Jun 26 17:45 c0t60060E80166E4F0000016E4F00000106d0s0
crw-rw----   1 grid     asmadmin 208, 2176 Jun 20 19:30 c0t60060E80166E4F0000016E4F00000107d0s0

Finalmente, nuestro disco está listo para ser identificado y agregado en nuestro diskgroup.

root@cen-tlg-srv-01:/dev/rdsk# su - grid
Oracle Corporation      SunOS 5.11      11.2    April 2015
grid@cen-tlg-srv-01:~$ sqlplus / as sysasm

SQL*Plus: Release 12.1.0.1.0 Production on Sun Jun 26 18:10:27 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> col PATH format a60
SQL> Select PATH, HEADER_STATUS from v$asm_disk;

PATH                                                         HEADER_STA
------------------------------------------------------------ ----------
/dev/rdsk/c0t60060E80166E4F0000016E4F00000121d0s0            FORMER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000120d0s0            FORMER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000082d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000083d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000084d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000085d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000086d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000087d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000088d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F00000089d0s0            MEMBER
/dev/rdsk/c0t60060E80166E4F0000016E4F000000BDd0s0            CANDIDATE

SQL> alter diskgroup DATA add disk '/dev/rdsk/c0t60060E80166E4F0000016E4F000000BDd0s0' name DATA_05 rebalance power 8;


Si la base de datos que utilizamos pertenece a una arquitectura RAC, debemos repetir los pasos a excepción de la asignación al DISKGROUP en cada uno de los nodos de nuestra infraestructura.

Para crear ASM Disk en Linux, recomiendo las siguientes entradas. Oracle ASMLib y UDEV.

Salud!

Comments

Popular posts from this blog

Cómo extraer Archive Logs desde un Backup Piece

Ejemplo práctico con SQL Tuning Advisor y SQL Access Advisor

Guía rápida de uso de Oracle ASMLib