viernes, 20 de diciembre de 2013

Presentación PostgreSQL sobre FreeBSD

Solo se llevo a cabo una BSDCON, donde fui asistente y cuando me convocaron como expositor no se concreto nada solo para no perder el trabajo
y probar el embebed code, les dejo esta presentación:


Se extrañan esos tiempos en que la gente se reunía por amor al arte.

miércoles, 18 de diciembre de 2013

Entrenamiento productivo

Bueno, hoy he estado pensando en las posibilidades laborales que tengo en el futuro, y sin ir más lejos DevOps es lo mio. ¿Por qué? Porque es lo que que venia haciendo, porque aún siendo Administrador de sistemas desde temprana edad luego estudié y me especialice en ingeniería de software y cuando trabaje en desarrollo, siempre monte mis servidores tanto de desarrollo y producción. (En Chile esto es relativamente común. Pero España es otra cosa muy distinta.) Por otra parte volviendo a DevOps, hoy hay más herramientas y es más necesario.
Pero ¿Qué es DevOps?
DevOps es una metodología que integra en satisfacer las necesidades de tiempo respuesta en IT, por medio de la unión de Dev (desarrollo) y Ops (operaciones/sistemas).
¿Como se logra?
  1. Incluir desarrollo en operaciones
  2. Hacer que los desarrolladores sean administradores. (vagrant)
  3. Incluir a operaciones en los análisis de desarrollo.
Luego de trabajar el ultimo año en un proyecto muy alejado de esta realidad (Claramente perdía mi tiempo a cambio de dinero), he acabado desmotivado y abatido.
Como las semanas pasan y la mente se aclara, ahora necesito definir lo que quiero. Quiero aprovechar mi talento y explotarlo de tal forma que como dijo Confucio:  “Elige un trabajo que te guste y no tendrás que trabajar ni un día de tu vida." Bajo aquella premisa me convertí en ingeniero en computación. Después de más de diez años trabajando con sistemas informáticos, sigo queriendo mi profesión, por encima de cualquier otra. Y porque hasta hace unos dos años atrás seguía un consejo que alguna vez nos dio un profesor a toda la clase, "consigan tiempo de ocio en el trabajo, porque el tiempo de ocio siempre te lleva a mejorar los procesos y a la re-ingeniería." Y desde entonces estoy en la búsqueda del tiempo de ocio. ¿Como lo he logrado? Bajando el margen de error. ¿Como bajamos el margen de error? Dejando de hacer lo mismo y esperar un resultado diferente. Lo que quiere decir esto, es que debemos trabajar y esmerarnos arduamente y eliminar todos los errores recurrentes, hilando muy fino hasta encontrar la causa y pre ver posible nuevos errores. ¿Como hacemos esto? Lo más común es un análisis de flujo del proceso (recordando siempre que todo proceso humano induce ineludiblemente a un error) entonces que deberíamos hacer.... "AUTOMATIZAR" los despliegues y las tareas cotidianas. No olvidemos que muchas veces debemos ser como el agua y empapar nuestro entorno gota a gota.

Bien ya que haz leído todo eso te dejo, ahora te toca participar. Pregúntate: ¿Gastas más de tres horas diarias en la linea de comando?

Si la respuesta es sí, debes leer más el blog, y siempre puedes solicitar mis servicios de consultoría y entrenamiento productivo.

Para mejorar el problema citado en este articulo, debemos dominar muy bien las siguientes tecnologías:

  • Unix/Linux
  • Vim/vi
  • Git
  • Python
  • shell scripting (bash, awk, sed, *grep, etc)
  • tmux, screen
  • y otras más.


lunes, 9 de diciembre de 2013

Storage Clusters sobre VirtualBox

La gran mayoría de los clusters desarrollados por compañías privadas son diseñados como clusters de almacenamiento compartido, esto quiere decir que hay acoplamiento de unidades de almacenamiento o en palabras simples se requiere hardware SAN, para el funcionamiento del cluster (HBA, Switch SAN, Cabina de discos), algunos de estos clusters son Oracle RAC, HP Service Guard, VMWare HA Cluster, RedHat Cluster Suite y varios más.

Cuando queremos hacer un laboratorio y probar estas tecnologías en casa, sobre VirtualBox en este caso requiere compartir los discos del entorno en cluster, entre dos o mas nodos, y en este articulo describo como hacerlo con VirtualBox.

Creación del disco

Se debe crear un disco, de tamaño fijo debido a que no funciona con el modo almacenamiento variable.

VBoxManage createhd --filename /virtualbox/nodo1/disco_cluster_01.vdi --size 10240 --format VDI --variant Fixed

Asignación del disco a una maquina virtual.

Como recomendación es bueno crear los discos en el directorio del nodo principal, y luego se debe asignar respetando la secuencia de discos con --port X, debido a que ya están asignados los puertos 0 y 1, por tanto el siguiente puerto sería el 2.

VBoxManage storageattach nodo1 --storagectl "SATA" --port 2 --device 0 --type hdd --medium /virtualbox/nodo1/disco_cluster_01.vdi --mtype shareable

Luego se asigna a los siguientes nodos modificando los nombre de los nodos correspondientes:

VBoxManage storageattach nodo2 --storagectl "SATA" --port 2 --device 0 --type hdd --medium /virtualbox/nodo1/disco_cluster_01.vdi --mtype shareable

Ejemplos

Este ejemplo de storage para un RAC oracle, hecho sobre windows:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\ocr-vote-01.vdi" --size 1024   --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\ocr-vote-02.vdi" --size 1024   --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\ocr-vote-03.vdi" --size 1024   --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\fastrecarea.vdi" --size 102400 --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\asm-data-01.vdi" --size 51200  --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\asm-data-02.vdi" --size 51200  --format VDI --variant Fixed
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createhd --filename "D:\VirtualBox VMs\rac-01\asm-redo-01.vdi" --size 10240  --format VDI --variant Fixed


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 2 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 3 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 4 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-03.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 5 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\fastrecarea.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 6 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-01 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-redo-01.vdi" --mtype shareable


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 2 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 3 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 4 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\ocr-vote-03.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 5 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\fastrecarea.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 6 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-01.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-data-02.vdi" --mtype shareable
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach rac-02 --storagectl "SATA" --port 7 --device 0 --type hdd --medium "D:\VirtualBox VMs\rac-01\asm-redo-01.vdi" --mtype shareable

Nota:

Al momento de hacer esto en modo CLI no sabia que mediante el GUI se puede hacer con facilidad, los pasos son:
  1. Crear los discos en modo fixed.
  2. Quitarlo de la VM donde se han creado.
  3. Ir al menu superior File > Virtual Media Manager.
  4. Seleccionar el disco y clickear en modificar.
  5. Marcar como Shareable.
  6. Asignar a las VM del cluester.