martes, 30 de noviembre de 2010

Reemplazar discos duros en AIX (en mirror y en LVM)

La situación es mas o menos así:

Hay un servidor con 2 discos duros y uno de ellos falla. Lo quitan y se espera a que llegue uno nuevo. El problema reside en que este disco está dentro de un Volume Group, y este Volume Group está en espejo; por lo que no se puede simplemente meter el disco nuevo y esperar a que todo funcione como estaba antes. Además que el hdisk0 que ya quitaron nos deja con información faltante.

Según las diversas consultas que hice a mis gurú amigos lo que debería de hacer es lo siguiente:
  1. Cambiar el arranque del sistema al disco1 (hdisk1)
  2. Romper el mirror
  3. Que metan el otro disco
  4. Crear el mirror nuevamente
  5. Sincronizar
 Antes de hacer todo eso es recomendable obtener algunos datos sobre los discos y los Volume Groups:

# lspv hdisk0
PHYSICAL VOLUME:    hdisk0                   VOLUME GROUP:     rootvg
PV IDENTIFIER:      00c4870ee76ee9af VG IDENTIFIER     00c4870e00004c0000000126e76eea39
PV STATE:           removed
STALE PARTITIONS:   65                       ALLOCATABLE:      yes
PP SIZE:            32 megabyte(s)           LOGICAL VOLUMES:  15
TOTAL PPs:          545 (17440 megabytes)    VG DESCRIPTORS:   0
FREE PPs:           113 (3616 megabytes)     HOT SPARE:        no
USED PPs:           432 (13824 megabytes)    MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  12..00..00..00..101
USED DISTRIBUTION:  97..109..109..109..08
MIRROR POOL:        None


# lspv hdisk1
PHYSICAL VOLUME:    hdisk1                   VOLUME GROUP:     rootvg
PV IDENTIFIER:      00c4870e1b06c786 VG IDENTIFIER     00c4870e00004c0000000126e76eea39
PV STATE:           active
STALE PARTITIONS:   0                        ALLOCATABLE:      yes
PP SIZE:            32 megabyte(s)           LOGICAL VOLUMES:  13
TOTAL PPs:          545 (17440 megabytes)    VG DESCRIPTORS:   2
FREE PPs:           48 (1536 megabytes)      HOT SPARE:        no
USED PPs:           497 (15904 megabytes)    MAX REQUEST:      256 kilobytes
FREE DISTRIBUTION:  00..00..00..00..48
USED DISTRIBUTION:  109..109..109..109..61
MIRROR POOL:        None


# lsvg -p rootvg
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk0            removed           545         113         12..00..00..00..101
hdisk1            active            545         48          00..00..00..00..48


# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
hd5                 boot       1       2       2    closed/stale  N/A
hd6                 paging     32      64      2    open/syncd    N/A
hd8                 jfs2log    1       2       2    open/stale    N/A
hd4                 jfs2       8       16      2    open/stale    /
hd2                 jfs2       96      192     2    open/stale    /usr
hd9var              jfs2       7       14      2    open/stale    /var
hd3                 jfs2       32      64      2    open/stale    /tmp
hd1                 jfs2       19      38      2    open/stale    /home
hd10opt             jfs2       32      64      2    open/stale    /opt
lg_dumplv           sysdump    64      64      1    closed/syncd  N/A
livedump            jfs2       8       16      2    open/stale    /var/adm/ras/livedump
fslv00              jfs2       4       8       2    open/stale    /root
fslv01              jfs2       1       1       1    open/syncd    /infradm
fslv02              jfs2       256     256     1    open/syncd    /temp
fslv03              jfs2       64      64      1    closed/syncd  /web
fslv04              jfs2       32      32      1    closed/syncd  /usr/IBMIHS
fslv05              jfs2       32      32      1    closed/syncd  /usr/UpdateInstaller


Atención en este último paso. Si el número en la columna de LPs es el doble en la columna de PPs significa que tenemos el mirror activado.
Otro detalle que tenemos es que los LVs en estado stale son probablemente las que se encontraban en mirror pero no pueden continuar debido a que hace falta el otro disco (hdisk0).

Al no haber hdisk0, necesitamos especificarle al sistema que arranque con el hdisk1 en el próximo arranque:
# bootlist  -m  normal  hdisk1
# mkboot -cd /dev/hdisk1

Hay que romper el mirror:
# unmirrorvg rootvg hdisk0 
o
# unmirrorvg rootvg

Eliminamos también la definición del hdisk0:
# rmdev -dl hdisk0

Confirmamos que ya no exista la definición del hdisk0 en el VG y que no exista el mirror:
# lspv
hdisk1          00c4870e1b06c786                    rootvg          active






# lsvg -l rootvg
rootvg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
hd5                 boot       1       1       1    closed/syncd  N/A
hd6                 paging     32      32      1    open/syncd    N/A
hd8                 jfs2log    1       1       1    open/syncd    N/A
hd4                 jfs2       8       8       1    open/syncd    /
hd2                 jfs2       96      96      1    open/syncd    /usr
hd9var              jfs2       7       7       1    open/syncd    /var
hd3                 jfs2       32      32      1    open/syncd    /tmp
hd1                 jfs2       19      19      1    open/syncd    /home
hd10opt             jfs2       32      32      1    open/syncd    /opt
lg_dumplv           sysdump    64      64      1    closed/syncd  N/A
livedump            jfs2       8       8       1    open/syncd    /var/adm/ras/livedump
fslv00              jfs2       4       4       1    open/syncd    /root
fslv01              jfs2       1       1       1    open/syncd    /infradm
fslv02              jfs2       256     256     1    open/syncd    /temp
fslv03              jfs2       64      64      1    closed/syncd  /web
fslv04              jfs2       32      32      1    closed/syncd  /usr/IBMIHS
fslv05              jfs2       32      32      1    closed/syncd  /usr/UpdateInstaller


La columna de LPs es igual a la de PPs por lo que podemos confirmar que el espejo ya se eliminó. Además la columan de LV state ya muestra a las particiones como syncd.

En la próxima entrega, la instalación del nuevo disco, creación del mirror y resincronización.

lunes, 29 de noviembre de 2010

Mejor nos ahorramos el choro

Esto iba a ser un largo post de regaño pero me dió hueva  por que ya lo he escrito en anteriores ocasiones.

Iba relacionado con una frase que ayer mi carnal mencionó:
“Lo más atroz de las cosas malas es el silencio de la gente buena”. - Gandhi


Aplíquenlo en la vida diaria cuando escuchen lo mal que andamos en cambio climático, corrupción, violencia, inequidad, etc. y quieran propiciar algún cambio. No solo es quedarse cruzado de manos.


Obviamente, el silencio es algo literal.

miércoles, 24 de noviembre de 2010

No todo lo que brilla es oro

Esto no es noticia, pero se han dado cuenta de la infinidad de marcas de productos y servicios que se ostentan verdes y que cuidan el medio ambiente? Me parece que esto es más mercadotecnia que una realidad. Los productos "verdes/ecológicos" simplemente venden más ya que el consumidor siente dar un aporte a una benéfica causa.

Charadas!

Un caso específico, que ya había mencionado en este blo' era lo de los vehículos eléctricos "cero emisiones" que usan electricidad para su funcionamiento, que es generada en varias modalidades: eólica, hídrica, solar, nuclear, por hamster en algún lugar desconocido para nosotros del país.
Según la tabla estadística de producción de electricidad en el país, la mayor producción eléctrica proviene de la quema de hidrocarburos; pueden consultar ustedes mismos esa información en el sitio de la SENER


















Entonces, cual es el caso de usar un vehículo eléctrico para "dejar de contaminar" si solo estamos transportando esa contaminación a otro sitio? Lo mismo que sucede en el mundo con China. Ellos producen, fabrican y hacen el trabajo sucio para enviar productos terminados a otros países, quedándose con los químicos, tóxicos, emisiones, basura.

Otra cosa sería si la producción eléctrica en el país proviniera mayoritariamente de fuentes renovables. Pero mientras eso no cambie, usar electricidad es contaminante.

Conclusión: Los vehículos eléctricos no son la panacea

Incrementar paging space en AIX

De esas tareas talacheras; incrementar el tamaño del paging space (es el equivalente a la swap de otros sistemas *nix) en AIX.

La tarea es relativamente sencilla, el detalle es que generalmente esto se pide o se hace en base a tamaños y las definiciones de los paging spaces están dadas en Logical Partitions. Por ejemplo: Me puedes aumentar el paging space de 1GB a 4GB?

El paso 1: Verificar el nombre actual del paging space:
# lsps -a
Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
paging00        hdisk10           rootvg        1024MB     1   yes   yes    lv
hd6             hdisk10           rootvg         256MB     4   yes   yes    lv
hd6             hdisk12           rootvg         256MB     4   yes   yes    lv
hd6             hdisk16           rootvg        3072MB     4   yes   yes    lv


Paso 2: determinar el tamaño de la partición física (PP) y el tamaño total del paging space
# lslv paging00
LOGICAL VOLUME:     paging00               VOLUME GROUP:   rootvg
LV IDENTIFIER:      00c5e69d00004c0000000124cef67ef3.11 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       opened/syncd
TYPE:               paging                 WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        64 megabyte(s)
COPIES:             1                      SCHED POLICY:   parallel
LPs:                16                     PPs:            64
STALE PPs:          0                      BB POLICY:      non-relocatable
INTER-POLICY:       minimum                RELOCATABLE:    yes
INTRA-POLICY:       center                 UPPER BOUND:    32
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: off
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?:     NO

Tamaño del paging space: 16(LPs) x 64(PP Size) = 1024MB. Aunque esto también se puede determinar en el paso número 1.

Paso 3: Determinar cuantas particiones lógicas (LPs) extra necesitamos para alcanzar los 4GB. Algebra simple.
3 x 1024(MB) =  3072MB
3072(MB)/64(MB) = 48(LPs)

Paso 4: Incrementar el tamaño del paging00
# chps -s 48 paging00

Paso 5: Verificar el tamaño final de paging00
# lsps -a
Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
paging00        hdisk10           rootvg        1024MB     1   yes   yes    lv
paging00        hdisk11           rootvg        1024MB     1   yes   yes    lv
paging00        hdisk12           rootvg         128MB     1   yes   yes    lv
paging00        hdisk9            rootvg        1920MB     1   yes   yes    lv
(1024 + 1024 + 128 + 1920) = 4096 = 4GB

o

# lslv paging00
LOGICAL VOLUME:     paging00               VOLUME GROUP:   rootvg
LV IDENTIFIER:      00c5e69d00004c0000000124cef67ef3.11 PERMISSION:     read/write
VG STATE:           active/complete        LV STATE:       opened/syncd
TYPE:               paging                 WRITE VERIFY:   off
MAX LPs:            512                    PP SIZE:        64 megabyte(s)
COPIES:             1                      SCHED POLICY:   parallel
LPs:                64                     PPs:            64
STALE PPs:          0                      BB POLICY:      non-relocatable
INTER-POLICY:       minimum                RELOCATABLE:    yes
INTRA-POLICY:       center                 UPPER BOUND:    32
MOUNT POINT:        N/A                    LABEL:          None
MIRROR WRITE CONSISTENCY: off
EACH LP COPY ON A SEPARATE PV ?: yes
Serialize IO ?:     NO


64(LPs) X 64(PP Size) = 4096MBs = 4GB


Fin. El sysadmin talachero es feliz.

Fuentes:
Increasing AIX paging space
Logical Volume Manager (LVM) Commands for AIX

lunes, 22 de noviembre de 2010

Debo intentarlo mas ocasiones

Para empezar, el sábado no hice nada, me acosté como a las 0:00hrs intentando jugar world of warcraft, el cual no me entretuvo como lo hacía antes. El domingo desperté, bañé a los perros, jugué más world of warcraft, elevé mi ki a nivel 9, básicamente me la pasé encerrado en la casa y sentado. Como a eso de las 4 de la tarde me eché una siestecita y me quedé 2 horas dormido hasta que me despertó lo frío de la tarde/noche. Desperté para preparar la comida de la semana y me sentí un tanto descansado.
Realmente descansado, no como esas ocasiones en las que vamos con los cuates el sábado y llegamos ya muy en la madrugada del domingo para despertarse tarde y al día siguiente ir a la oficina. Hasta me dió la sensación de que era uno de esos días de vacaciones escolares cuando no tenía otra obligación mas que "estudiar" y pasarla quemando el tiempo libre en cosas ociosas.

Deberían intentarlo algún fin de semana. No hacer absolutamente nada, no ir al cine, o con los amigos o a hacer compras (mejor lo hacen entre semana) o cosas de esas.

#CiudadBala en una cáscara de nuez

"en referencia a los libros in a nutshell"

(Ciudad Gobierno + Ciudad Salud + Ciudad del conocimiento + Ciudad petate + Ciudad deporte + Ciudad faro + Ciudad plátano + Ciudad vaca) = #CiudadBala

#CiudadBala + Alcalde Diamante = Springfield

martes, 16 de noviembre de 2010

De visitas en lugares en el centro del país y otras desvariaciones

Estos tres días de puente se exprimieron hasta el último segundo y la última gota de cansancio; pero bien valió la pena.
Fué algo como un tour que disque iba a estar gélido gélido al centro del país pero a la mera hora ni estuvo tan frío; con nimiedades de retrasos en el transporte pero aún así aguantó la batería de los cuatro andariegos sobre un recorrido que incluyó:
Obviamente eso no iba a ser posible sin una buena dotación de garnachas y alimentos ricos en melcocha de tamaño descomunal como:
  • Tortas de tamal
  • Pambazos
  • Atole
  • Quesadillas de Cuitlacoche
  • Churros con chocolate
  • Huaraches
  • Conejo en adobo
  • Cecina
  • Tacos de guisados (taco de chile relleno con arroz ñam!)
Y claro; esto no se hubiera gestado correctamente sin la amable ayuda de @mauropm, @estoparojo, Edith y Jorge. Así como la amable presencia y compañía de @gnuowned y Gunnar.
Creo que nos faltó muuuuucho tiempo para visitar y hacer otras cosas. Será en otra ocasión.








miércoles, 10 de noviembre de 2010

Restaurar DBs de DB2

La parte que faltaba después de hacer respaldos de DB2 era restaurar.

$ db2 restore db db_name from /some/path taken at '20101109164220' on /foo/path WITHOUT ROLLING FORWARD

Atención en especial con el "without rolling forward" por que al omitirlo se pueden quedar los tablespaces en estado pending.

jueves, 4 de noviembre de 2010

rPerf a detalle

Si. Bueno; salió por ahí en el requerimiento de un cliente que le calculáramos el rPerf de unos sistemas para hacer unos cálculos de rendimiento (performance).

QUE?!

Me di a la tarea de leer un poco sobre rPerf, nunca queda de más investigar algo nuevo o desconocido.

rPerf o Relative Performance es el rendimiento estimado en referencia a otros sistemas UNIX de IBM; aplicable a pSeries. Los sistemas pSeries 640 son la base de referencia y tienen un valor de 1.0.
IBM tiene en su documentación los valores de rPerf para sus sistemas, pero de vez en cuando se requiere obtener el valor de rPerf para un LPAR para lo cual se puede echar mano de los siguientes scripts.

Fuentes:
Virtualization
The relative performance metric for Power Systems servers
rperf - rPerf Number Finder
rPerf script - to work out an rPerf rating for your LPAR

miércoles, 3 de noviembre de 2010

Correct fail2ban filter for sshd on Amazon Linux

Fail2ban does not catch the regular expression for Invalid or Illegal ssh logins on Amazon Linux. So far the fix goes like this: Not match...