Configurando Multipath 2da Parte
Vamos a configurar nuestro multipath para que comience a trabajar y quede disponible para realizar una lectura de los dispositivos asignados.
Es muy importante entender que es lo que estamos haciendo, asi que les voy a comentar de lo que a mi criterio es necesario a la hora de realizar una configuracion de este tipo.
No se queden con lo que les ofrezco en este articulo, pueden investigar más acerca de este tema, ya que mi objetivo no es entrar en el detalle ni profundidad acerca de mutlipath.
Pueden obtener mucha documentación, ya que en el mundo linuxero hay mucha cortesía, sin ir mas lejos sus colegas administradores de ambientes tipo unix de su área laboral.
Yo lo se por haber sido linux admin y por que tengo dos grandes colegas ! Un abrazo para Diego y Fede !
En el archivo /etc/multipath.conf existe en la configuracion por default unas lineas que provocan que se ignoren todos los dispositivos.
Nuestra primer tarea sera comentarla para que multipath pueda detectar los dispositivos existentes.
##blacklist { ## devnode "*" ##}
Bien , ahora debemos descomentar las siguientes lineas que habilita a que multipath detecte por default todos los dispositivos.
defaults { udev_dir /dev polling_interval 10 selector "round-robin 0" path_grouping_policy multibus getuid_callout "/sbin/scsi_id -g -u -s /block/%n" prio_callout /bin/true path_checker readsector0 rr_min_io 100 max_fds 8192 rr_weight priorities failback immediate no_path_retry fail user_friendly_names no
Como última medida debemos conocer las lineas que nos permiten asignar que dispositivos queremos que multipath ignore.
Este es el modelo por default.
#blacklist { # wwid 26353900f02796769 # devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" # devnode "^hd[a-z]" #}
Acá tenemos un modelo de LUN asignadas y listas para ser leidas por el operativo.
## Discos de la base DANAPRO multipath { wwid 360060580000290105599912030333634 alias SAN_DANAPRO_DG1_LV1 } multipath { wwid 360060480000190105392231030343643 alias SAN_DANAPRO_DG2_LV1
Cuando hayamos finalizado nuestra configuración vamos a recargar el modulo del kernel de multipath por unica vez.
# modprobe dm-multipath # modprobe dm-round-robin # /etc/init.d/multipathd restart # multipath
Como servicio debemos aegurarnos que en el inicio del OS por cualquier eventualidad o motivo, se inicie de modo automatico , ya que los discos asignados dependen de este servicio.
# chkconfig --level 35 multipathd on
Una vez realizado todos estos pasos, vamos a vaciar la cache de multipath mediante el comando:
# multipath -F
Reiniciamos el servicio
# /etc/init.d/multipathd restart
Reescaneamos los dispositivos.
# multipath
Y ejecutamos el comando :
# multipath -ll
La salida que obtendremos es muy similiar al formato que les presento en la tabla :
SAN_DANAPRO_DG1_LV1 | El alias del dispositivo que podemos montar desde /dev/mapper/SAN_DANAPRO_DG1_LV1 (36...................331) | wwid del dispositivo. size | Tamaño del disco. round-robin 0 [enabled] | Tipo de balanceo _ 0:0:0:11 sdg 8:96 [active][ready] | Información del camino y el LUN SCSI _ 1:0:0:11 sdo 8:224 [active][ready] | Información del camino y el LUN SCSI
Como yo configure dos discos, obtengo una salida similar a esta:
SAN_DANAPRO_DG1_LV1 (360060580000290105599912030333634) [size=90 GB][features="0"][hwhandler="0"] \_ round-robin 0 [prio=4][active] \_ 3:0:1:117 sdbx 68:176 [active][ready] \_ 4:0:0:117 sddx 71:240 [active][ready] \_ 4:0:1:117 sdfx 131:48 [active][ready] \_ 3:0:0:117 sdx 65:112 [active][ready] SAN_DANAPRO_DG2_LV1 (360060480000190105392231030343643) [size=180 GB][features="0"][hwhandler="0"] \_ round-robin 0 [prio=4][active] \_ 3:0:1:110 sdbq 68:64 [active][ready] \_ 4:0:0:110 sddq 71:128 [active][ready] \_ 4:0:1:110 sdfq 130:192 [active][ready] \_ 3:0:0:110 sdq 65:0 [active][ready]
Es muy importante tener este conocimiento basico/previo que nos ayuda a conocer como se arma nuestra infraestructura y será factor vital la hora de resolver problemas complejos de storage y nos quitara más de un dolor de cabeza en forma immediata.
yo hice hasta el punto donde te quedaste pero ahora que necesito hacer en ASM oracle para verlo sin usar oracleasm.
de hecho ya lo veo en el asm pero en total_mb en 0
HEADER_STATU TOTAL_MB PATH NAME
———— ———- ————————- ——————————
CANDIDATE 0 /dev/mapper/mpath2p1
CANDIDATE 0 /dev/mapper/mpath2
CANDIDATE 0 /dev/mapper/mpath1
MEMBER 147542 /dev/mapper/mpath0p3 SRGROUP_0000
Espero que me puedas ayudar saludos.
Me gustaMe gusta
Pedro:
esta bien lo que hiciste , pero debes formatear las particiones para que pueda ver el storage , te recomiedo que leas este link o contame los pasos que realizaste https://burzaco.wordpress.com/2010/02/10/asm-instalando-y-configurando-asmlib/#more-298
si no es lo que buscas te paso las lineas de formateo del header con dd
Me gustaMe gusta
Gracias por la respuesta.
puedes checar este link porfavor..
http://comunidadoraclehispana.ning.com/forum/topics/agragar-disco-multipath-al-asm-oracle-11g
en otros foros encontre que no es necesario el oracleasm, esta BD ya estaba cuando llegue.. revise y no encontre el software.
le pasare el dd y te escribire ..
solo un comentario es necesario el oracleasm para agregar los discos es como dicen que con solo presentarlos y
chown oracle:oinstall ya los agregaria al ASM
de antemano gracias
Me gustaMe gusta
me puedes pasar las lineas del dd que mencionas por favor… gracias y saludos
Me gustaMe gusta
Pedro:
Analice tu problema y Hay varias cosas :
Lo que ocurre que tu disco en CANDIDATE ya esta listo para ser asignado como MEMBER de un DISKGROUP.
Cuando tu disco se convierta en MEMBER (miembro) ahi aparece el valor.
Cuando aparezca ese valor, lo podes unir a tu diskgroup.
Te recomiendo tambien que uses alias en el multipath para asociar los disco externos a discos candidatos o miembros en el futuro y esto te ayudara a ser mas prolijo.
Por ejemplo:
DISKGROUP +SAR_APP
MEMBER SAR_APP_01
Multipath SAR_APP_LV1
Prueba con ello.
SQL> select HEADER_STATUS,TOTAL_MB,PATH,NAME from v$asm_disk
HEADER_STATU TOTAL_MB PATH NAME
———— ———- ———————————————————— ——————————
CANDIDATE 0 /dev/oracleasm/disks/SAN_DATA05
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA04 DATA_0003
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA03 DATA_0002
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA02 DATA_0001
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA01 DATA_0000
5 rows selected.
SQL>
Despues de utilizar la herramienta asmca.
SQL> select HEADER_STATUS,TOTAL_MB,PATH,NAME from v$asm_disk
HEADER_STATU TOTAL_MB PATH NAME
———— ———- ———————————————————— ——————————
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA05 DATA_0004
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA04 DATA_0003
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA03 DATA_0002
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA02 DATA_0001
MEMBER 184323 /dev/oracleasm/disks/SAN_DATA01 DATA_0000
5 rows selected.
SQL>
Me gustaMe gusta
Este es oracle 11g, yo recuerdo que en la 10g
te aparecia el espacio y solo le asignabas el disco al diskgroup que deseabas
ejemplo:
a) HEADER_STATU TOTAL_MB PATH NAME
CANDIDATE 16286 /dev/mapper/mpath2p1
MEMBER 16286 /dev/mapper/mpath0p3 SRGROUP_0000
b) alter diskgroup SRGROUP add disk ‘/dev/mapper/mpath2p1’;
c) asi quedaba el disco
HEADER_STATU TOTAL_MB PATH NAME
MEMBER 16286 /dev/mapper/mpath2p1 SRGROUP_0001
MEMBER 16286 /dev/mapper/mpath0p3 SRGROUP_0000
Entoces mi duda es esa como antes podia ver el espacio y en CANDIDATE antes de agregarlo pense que era un error,
entonces ahora se tiene que poner MEMBER y despues dar el
alter diskgroup SRGROUP add disk ‘DISCO’ ???
Saludos. Juan
Me gustaMe gusta
Mi estimado Juan:
despues de todo, le movi muchas cosa pero alfinal quedo esto como lo muestro, y tienes razon el espacio se ve despues de que lo agregas al diskgroup, pero como te comentaba en la 10G te lo mostraba aun que estuviera en CANDIDATE.
Lo raro esque ya lo habia hecho y me marco unos errores en el alert lo cuales anexo en la parte inferior.
una de las cosas fue un /etc/init.d/multipathd restart
Así quedaron los permisos en los 2 nodos
[root@gevbdsr1 mapper]# ls -la /dev/mapper/*
crw——- 1 root root 10, 63 Jan 13 20:22 /dev/mapper/control
brw-rw—- 1 oracle oinstall 253, 2 Jan 13 20:23 /dev/mapper/mpath0
brw-rw—- 1 oracle oinstall 253, 8 Jan 13 20:23 /dev/mapper/mpath0p1 voting disk
brw-rw—- 1 oracle oinstall 253, 9 Jan 20 18:33 /dev/mapper/mpath0p2 ocr
brw-rw—- 1 oracle oinstall 253, 10 Jan 20 18:33 /dev/mapper/mpath0p3 Esta en ASM
brw-rw—- 1 oracle oinstall 253, 3 Jan 16 20:53 /dev/mapper/mpath1
brw-rw—- 1 oracle oinstall 253, 5 Jan 16 20:53 /dev/mapper/mpath1p5
brw-rw—- 1 oracle oinstall 253, 6 Jan 16 20:53 /dev/mapper/mpath1p6
brw-rw—- 1 oracle oinstall 253, 7 Jan 16 20:53 /dev/mapper/mpath1p7
brw-rw—- 1 oracle oinstall 253, 4 Jan 16 20:53 /dev/mapper/mpath2 Este era el disco que deseba pegar al ASM
brw-rw—- 1 oracle oinstall 253, 11 Jan 20 18:33 /dev/mapper/mpath2p1 Esta la particion que se hizo con el FDISK
brw-rw—- 1 root disk 253, 0 Jan 13 20:23 /dev/mapper/VolGroup00-LogVol00
brw-rw—- 1 root disk 253, 1 Jan 13 20:22 /dev/mapper/VolGroup00-LogVol01
[root@gevbdsr1 mapper]#
[oracle@gevbdsr1 scrips]$ vi chk_asm.sql
set linesize 1000
SELECT group_number, operation, state, power, est_minutes FROM v$asm_operation;
col disk_group_name format a20
col disk_file_path format a25
col disk_file_name format a15
col disk_file_fail_group format a25
SELECT NVL(a.name, ‘[CANDIDATE]’) disk_group_name
, b.path disk_file_path
, b.name disk_file_name
, b.failgroup disk_file_fail_group
, b.total_mb
FROM v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY a.name;
~
~
«chk_asm.sql» 13L, 565C written
[oracle@gevbdsr1 scrips]$ sqlplus / as sysasm
SQL*Plus: Release 11.1.0.6.0 – Production on Fri Jan 20 17:55:22 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> @chk_asm
no rows selected
DISK_GROUP_NAME DISK_FILE_PATH DISK_FILE_NAME DISK_FILE_FAIL_GROUP TOTAL_MB
——————– ————————- ————— ————————- ———-
SRGROUP /dev/mapper/mpath0p3 SRGROUP_0000 SRGROUP_0000 147542
[CANDIDATE] /dev/mapper/mpath0p1 0
[CANDIDATE] /dev/mapper/mpath2p1 0
[CANDIDATE] /dev/mapper/mpath1p7 0
[CANDIDATE] /dev/mapper/mpath1p5 0
[CANDIDATE] /dev/mapper/mpath2 0
[CANDIDATE] /dev/mapper/mpath0 0
[CANDIDATE] /dev/mapper/mpath1 0
[CANDIDATE] /dev/mapper/mpath0p2 0
[CANDIDATE] /dev/mapper/mpath1p6 0
10 rows selected.
SQL> alter diskgroup +SRGROUP add disk ‘/dev/mapper/mpath2p1’ rebalance power 11;
SQL> @chk_asm
no rows selected
DISK_GROUP_NAME DISK_FILE_PATH DISK_FILE_NAME DISK_FILE_FAIL_GROUP TOTAL_MB
——————– ————————- ————— ————————- ———-
SRGROUP /dev/mapper/mpath0p3 SRGROUP_0000 SRGROUP_0000 147542
[CANDIDATE] /dev/mapper/mpath0p1 0
[CANDIDATE] /dev/mapper/mpath2p1 0
[CANDIDATE] /dev/mapper/mpath1p7 0
[CANDIDATE] /dev/mapper/mpath1p5 0
[CANDIDATE] /dev/mapper/mpath2 0
[CANDIDATE] /dev/mapper/mpath0 0
[CANDIDATE] /dev/mapper/mpath1 0
[CANDIDATE] /dev/mapper/mpath0p2 0
[CANDIDATE] /dev/mapper/mpath1p6 0
10 rows selected.
SQL> alter diskgroup SRGROUP add disk ‘/dev/mapper/mpath2p1’ rebalance power 11;
Diskgroup altered.
SQL> @chk_asm
GROUP_NUMBER OPERA STAT POWER EST_MINUTES
———— —– —- ———- ———–
1 REBAL RUN 11 23
DISK_GROUP_NAME DISK_FILE_PATH DISK_FILE_NAME DISK_FILE_FAIL_GROUP TOTAL_MB
——————– ————————- ————— ————————- ———-
SRGROUP /dev/mapper/mpath0p3 SRGROUP_0000 SRGROUP_0000 147542
SRGROUP /dev/mapper/mpath2p1 SRGROUP_0001 SRGROUP_0001 307199
[CANDIDATE] /dev/mapper/mpath1p7 0
[CANDIDATE] /dev/mapper/mpath1p6 0
[CANDIDATE] /dev/mapper/mpath0 0
[CANDIDATE] /dev/mapper/mpath1 0
[CANDIDATE] /dev/mapper/mpath2 0
[CANDIDATE] /dev/mapper/mpath0p1 0
[CANDIDATE] /dev/mapper/mpath0p2 0
[CANDIDATE] /dev/mapper/mpath1p5 0
10 rows selected.
************************************************************************************************************************
ESTOS FUERON LOS ERRORES DEL ALERT, Seria cuestion de permisos??
SQL> ALTER DISKGROUP SRGROUP ADD DISK ‘/dev/mapper/mpath2p1’ NAME SRGROUP_0001 SIZE 307196 M
NOTE: Assigning number (1,1) to disk (/dev/mapper/mpath2p1)
NOTE: requesting all-instance membership refresh for group=1
NOTE: initializing header on grp 1 disk SRGROUP_0001
NOTE: cache opening disk 1 of grp 1: SRGROUP_0001 path:/dev/mapper/mpath2p1
NOTE: requesting all-instance disk validation for group=1
Thu Jan 12 18:17:19 2012
NOTE: disk validation pending for group 1/0x9a9388fd (SRGROUP)
SUCCESS: validated disks for 1/0x9a9388fd (SRGROUP)
NOTE: membership refresh pending for group 1/0x9a9388fd (SRGROUP)
kfdp_query(): 9
Thu Jan 12 18:17:25 2012
kfdp_queryBg(): 9
kfdp_query(): 10
kfdp_queryBg(): 10
NOTE: cache closing disk 1 of grp 1: SRGROUP_0001 path:/dev/mapper/mpath2p1
NOTE: cache closing disk 1 of grp 1: SRGROUP_0001 path:/dev/mapper/mpath2p1
NOTE: De-assigning number (1,1) from disk (/dev/mapper/mpath2p1)
kfdp_query(): 11
kfdp_queryBg(): 11
SUCCESS: refreshed membership for 1/0x9a9388fd (SRGROUP)
Thu Jan 12 18:17:28 2012
ORA-15032: not all alterations performed
ORA-15075: disk(s) are not visible cluster-wide
ERROR: ALTER DISKGROUP SRGROUP ADD DISK ‘/dev/mapper/mpath2p1’ NAME SRGROUP_0001 SIZE 307196 M
Thu Jan 12 18:25:20 2012
SQL> ALTER DISKGROUP SRGROUP ADD DISK ‘/dev/mapper/mpath2p1’ NAME SRGROUP_0001 SIZE 307196 M
NOTE: Assigning number (1,2) to disk (/dev/mapper/mpath2p1)
NOTE: requesting all-instance membership refresh for group=1
NOTE: De-assigning number (1,2) from disk (/dev/mapper/mpath2p1)
Thu Jan 12 18:25:23 2012
NOTE: membership refresh pending for group 1/0x9a9388fd (SRGROUP)
kfdp_query(): 12
Thu Jan 12 18:25:24 2012
kfdp_queryBg(): 12
kfdp_query(): 13
kfdp_queryBg(): 13
SUCCESS: refreshed membership for 1/0x9a9388fd (SRGROUP)
ORA-15032: not all alterations performed
ORA-15033: disk ‘/dev/mapper/mpath2p1’ belongs to diskgroup «SRGROUP»
ERROR: ALTER DISKGROUP SRGROUP ADD DISK ‘/dev/mapper/mpath2p1’ NAME SRGROUP_0001 SIZE 307196 M
Thu Jan 12 18:25:55 2012
Gracias juan
Me gustaMe gusta