miércoles, 6 de febrero de 2013

lvmetad

Buenas.

Os dejo por aquí algo sobre este "demonio" que acabo de descubrir (perdonar si ya lo conocéis) buceando por la documentación de Red Hat 6.

El caso es que es bastante habitual ahora trabajar con volumenes lógicos, que en el caso de Linux es LVM2 (cuanto trabajo nos ahorra el poder ampliar discos en caliente, ¿eh?), con lo cual, todo lo que sea mejorar de alguna manera algo, nos viene bien.

El demonio al que hace referencia esta entrada viene como un "avance de tecnología", con lo cual, no viene activado por defecto pero vamos, que me parece interesante activarlo, sobre todo en sistemas en los que tengamos muchos discos y todos ellos gestionados vía lvm.

El funcionamiento de lvm, para cualquier operación que queramos, es escanear los metadatos de todos los discos cada vez que cambie el estatus de un disco, con lo cual conlleva un gasto extra de E/S (tan necesaria en estos tiempos, je). lvmetad lo que hace es ahorrarnos el tener que hacer ese escaneo ya que guarda de alguna manera esos datos para no tener que hacer esas operaciones.

La forma de activarlo en Red Hat 6.x es la siguiente:

Editamos el fichero "/etc/lvm/lvm.conf". Buscamos la línea donde aparezca "use_lvmetad" y la ponemos a 1:
use_lvmetad = 1
Hecho lo anterior, solo queda arrancar el demonio correspondiente y activarlo para que arranque con el sistema:
$ service lvm2-lvmetad start
$ chkconfig lvm2-lvmetad on
Con esto ya tenemos el demonio lvmetad arrancado y funcionando.

Saludos.

martes, 15 de enero de 2013

Minix 3 en VMWare Fusion

Buenas de nuevo. 

Hoy vamos a instalar el sistema operativo Minix 3 en una máquina virtual bajo VMware Funsion (en workstation sería igual). Podéis descargar Minix desde www.minix3.org. La última versión cuando escribo esto es minio_R3.2.0-116fcea.iso.bz. 

Lo primero que haremos será crear una nueva máquina en VMware. Seleccionaremos la opción "Crear una máquina virtual existente". Lo único que habrá que tener en cuenta es la elección del sistema invitado (guest), que será "Otros" y en la versión escogeremos lo mismo "otros". La red como "Bridge" y aparte de esto, pues el tamaño del disco. Yo lo he creado con uno de 10GB, pero vamos, eso es cosa vuestra. Creada la máquina solo nos queda asignar al CD-Rom la imagen ISO descomprimida que hemos bajado.

Como en otras ocasiones, tenemos la máquina, con lo cual, procedemos a encender la máquina la cual arrancará de la imagen ISO. Nos aparecen dos opciones:

1. Regular MINIX 3
2. Drop to boot prompt 

Seleccionaremos la primera pulsando "1". Veremos rapidamente como carga el kernel, como detecta el disco de nuestra máquina virtual, como carga un disco ram y varias cosas mas hasta que nos da la bienvenida. Vemos la captura a continuación.





Tal y como la misma pantalla nos dice escribiremos "root" lo cual nos dará acceso al sistema y nos aparecerá el prompt "#". Una vez tengamos el prompt escribiremos "setup".

minix login: root
# setup

El setup nos dará paso a un script de configuración que nos mostrará cuatro notas, pulsaremos "enter". Seguidamente nos pedirá el tipo de teclado, en mi caso "spanish":

Keyboard type? [us-std] spanish

Ahora nos pedirá como crear las particiones correspondientes en el disco. Como nosotros, en este caso lo estamos haciendo sobre un disco virtual sin nada, nos vale con pulsar "enter". Si quisieramos afinar las particiones tendríamos que escribir "expert" y hacer los ajustes necesarios.

Press ENTER for automatic mode, or type 'expert': 

Una vez pulsemos "enter" nos dirá que esta probando discos hasta que encuentre el que tenemos y nos lo muestre de la siguiente forma:



Una vez veamos la pantalla anterior, nos pedirá que introduzcamos el número de disco (en este caso con dar al enter nos vale puesto que no hay mas y cogerá el que tiene por defecto) y seguidamente la región que como en el caso anterior, solo tiene una por defecto y con un "enter" nos vale. 

Como podéis ver, estamos haciendo una instalación por defecto, con lo cual, con dejar todos los parámetros tal cual nos lo muestra es suficiente. Esto es especialmente útil para las siguientes preguntas que nos hará, como son, el tamaño del "/home" o el tamaño del bloque (4kB). Una vez hayamos dado los valores de lo anterior empezara a crear las particiones en el disco y a darlas el formato correspondiente.

Terminada la configuración del disco nos pedirá el tipo de tarjeta Ethernet:



Como podéis ver tal que marca el asterisco en la captura anterior, detecta la tarjeta que tenemos (en este caso una emulación AMD hecha por VMWare), por lo tanto, la selección por defecto se sitúa en el número "8" con lo que pulsando "enter" nos vale.

Ahora nos pedirá si la configuración será vía DHCP o bien manual. Aquí tendréis que decidir vosotros porque depende de como tengáis vuestra red configurada. Una vez seleccionada la configuración nos dirá que escribamos "shutdown" para reiniciar el sistema y nos recuerda que quitemos la ISO para que arranque de disco y no de la imagen. 

Hasta aquí tenemos la instalación básica del sistema. Una vez reinicie, tal y como nos ha indicado haría, nos aparecerá un menú en el arranque. Por defecto aparece la opción dos, con lo cual, dejaremos que cargue el kernel hasta que nos aparezca el login (nos aparecerá la IP que tiene el sistema seguido de login: 

192.168.0.101 login: root

Escribiremos "root". Hecho esto nos aparecen las opciones que podemos seguir para instalar paquetes. A continuación os muestro los parámetros que tiene pkgin, que es la herramienta de gestión de paquetes de Minix.




Como ejemplo para como funciona podéis ejecutar lo siguiente, los cual nos pedirá confirmación para ejecutar las dependencias correspondientes e instalar el software.

# pkgin install gcc44

A partir de aquí podemos decir que tenemos Minix 3 instalado y configurado. Quedaría instalar los paquetes que nos hacen falta o que queramos probar, como pueda ser todo lo relacionado al entorno gráfico, compiladores, editores, etc.

Saludos.


jueves, 27 de diciembre de 2012

Renaciendo

Buenas.

He cambiado el nombre del blog, si os preguntáis a que hace referencia, simplemente diré que viene de los tiempos del Spectrum y era el Poke para conseguir vidas infinitas en el juego Abu Simbel.

Fueros los "poke" del Spectrum los que me hicieron interesarme por la programación y los sistemas informáticos, es decir, gracias a esa instrucción mágica descubrí a lo que quería dedicarme. Ahora, después de muchos años de aquello y después dos meses en un nuevo trabajo en el que mi empresa no me está dando ninguna responsabilidad ni nada interesante que hacer, en el que estoy perdiendo la motivación, me he visto obligado a pensar el qué hizo que me dedicase a esto... y por ello, tirando de memoria y con la intención de recobrar toda la motivación que siempre tuve, hago este homenaje a esa maravillosa instrucción que en su momento tanto nos dio (a mi y seguro que a muchos otros).

Es tiempo de recobrar sensaciones.

"¿Quien sino va a cambiar el mundo, Martin? ¿Greenpeace?" (Los Fisgones)

Saludos.

jueves, 14 de julio de 2011

VMFS-5

Buenas...

Está a punto de salir la nueva versión de vSphere, concretamente la 5. Voy a intentar poner por aquí las novedades que presenta. Hoy empezaremos con el nuevo sistema de archivos, que pasará de VMFS-3 a VMFS-5. Vamos a enumerar las mejoras:

  • Se unifica el tamaño del bloque. De antes, dependiendo del tamaño de los ficheros .vmdk había que escoger entre bloques de 1, 2, 4 u 8 megas. Ahora, como hemos dicho, serán siempre de 1 MB, con ese tamaño de bloque será suficiente para crear ficheros de cualquier tamaño.
  • En la versión 3 estábamos limitados a 2 TB, en la versión 5 el limite son mas-menos 60 TB (casi ná).
  • VMFS-5 introduce lo que VMWare llama sub-bloque. Este sub-bloque es ahora de 8 KB cuando antes era de 64 KB. El resultado es que ahora los ficheros menores de 8 KB (y mayores de 1 KB) solo consumirán 8 KB y no 64 KB como anteriormente Esto, como podéis imaginar, reduce mucho la cantidad de espacio en disco que se consume por parte de ficheros pequeños.
  • Suporte para Ficheros Muy pequeños. Para ficheros menores o iguales a 1 KB, VMFS-5 utilizará la ubicación de descriptor de archivo en los metadatos en lugar de bloques de archivo. Cuando esos ficheros crezcan por encima de 1 KB pasarán a ocupar los nuevos sub-bloques de los que hemos hablado en el punto anterior. Esto, como también el punto anterior, reducirá un poco mas el espacio en disco que consumen los ficheros pequeños.
  • Incremento de la cantidad de Ficheros. VMFS-5 introduce soporte para 100,000 ficheros, es decir, el triple que el número de ficheros soportados por VMFS-3 que eran más o menos unos 30,000.
  • ATS (Atomic Test & Set). Ésta primitiva de aceleración Hardware es ahora utilizada por VMFS-5 para el bloqueo de archivos, lo cual mejora el rendimiento en el bloqueo de ficheros. Además, es parte de la API de almacenamiento para la intregración de Arrays.

martes, 1 de diciembre de 2009

Como compilar un módulo del kernel

La primera pregunta al leer el título de post será ¿Para qué quiero compilar un módulo del kernel?. Pues bien, si trabajas habitualmente con linux y con hardware variado llegará el día en que los drivers suministrados por el fabricante para dicho hardware no se corresponderán con el kernel que tienes en la máquina donde has instalado el hardware, con lo cual, es casi seguro que al intentar cargar el módulo te dé un error y por consiguiente, tendrás que compilar el fuente de ese módulo para que funcione en ese kernel. Vamos a ver los pasos necesarios:

1.- Necesitaremos tener el código fuente del núcleo. En mi caso (CentOS 5.3) deberemos buscar en el siguiente enlace http://vault.centos.org/ la versión exacta de nuestro kernel.
$ uname -r

En mi caso aparece lo siguiente:
2.6.18-128.el5

Buscaremos por el enlace que hemos indicado antes hasta encontrar el que nos hace falta, en mi caso sería:
kernel-2.6.18-128.el5.src.rpm

Ahora que ya tenemos el kernel necesario solo hace falta hacer lo siguiente:
$ rpm -Uvh kernel-2.6.18-128.el5.src.rpm
$ cd /usr/src/redhat/SPECS
$ rpmbuild -bp --target i386 kernel-2.6.spec

Con esto ya tenemos las fuentes del núcleo, concretamente en /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386/ (por lo menos en mi caso).

2.- Ahora toca proceder con la compilación en sí. Para ello vamos a utilizar un módulo de ejemplo. Crearemos un directorio nuevo en la rama del kernel, por ejemplo, "demo". Dentro de ese directorio crearemos un fichero:
$ vi Makefile

Añadimos lo siguiente:
obj-m:= hola.o
KERNEL = $(shell uname -r)
all:
make -C /lib/modules/$(KERNEL)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KERNEL)/build M=$(PWD) clean

3.- Ya tenemos el fichero "Makefile". Hay que tener en cuenta que donde pone "hola.o" hay que poner el nombre del fichero que vamos a compilar, pero en vez de .c poner .o. En nuestro caso, como veremos a continuación el fichero fuente será "hola.c" y será tal y como vemos a continuación (dentro del directorio "demo"):
#include 
#include

MODULE_LICENSE("Dual BSD/GLP");

static int hola_init(void)
{
printk(KERN_ALERT "Cargando el modulo hola...\n");
return 0;
}

static void hola_exit(void)
{
printk(KERN_ALERT "Descargando el modulo hola...\n");
}

module_init(hola_init);
module_exit(hola_exit);

4.- Ya tenemos todo lo necesario para compilar el módulo, en nuestro caso tenemos el fichero "hola.c" en el caso de que fuese un fuente suministrador por el fabricante de hardware pues sería lo mismo pero cambiando los nombres correspondientes. Bien, para compilar simplemente hay que ejecutar el comando "make":
$ Make

5.- Una vez compilado solo queda cargar el módulo (como root), en nuestro caso sería así:
# insmod hola.ko

6.- Sólo queda verificar que el módulo está cargado:
# lsmod |grep hola
hola 5504 0

o también, en nuestro nuestro módulo hola.ko, viendo el mensaje que nos aparece en el log del sistema:
# tail -f /var/log/messages

Que nos mostrará lo siguiente:
Jan  1 12:21:20 centos53 kernel: Cargando el modulo hola...

7.- Para descargar el módulo del kernel ejecutamos lo siguiente:
# rmmod hola.ko

8.- Solo recordar que deberéis copiar el módulo en /lib. Crearemos un directorio donde corresponda y copiamos el fichero allí:
# mkdir -p /lib/modules/$(uname -r)/kernel/drivers/hola
# cp hola.ko /lib/modules/$(uname -r)/kernel/drivers/hola/

Añadir la entrada que corresponde en /etc/modprobe.conf:
alias hola hola

Ejecutamos:
# depmod -a

Con esto nos basta ejecutar lo siguiente para cargar el módulo:
# modprobe hola

Saludos.

miércoles, 19 de diciembre de 2007

Plan 9 en VMware Workstation 6

Buenas...

Después de un tiempo sin escribir... a veces por mucho trabajo y otras por desgana, pues aquí estoy. Hoy os contaré como instalar Plan 9 (http://plan9.bell-labs.com/plan9/) en VMware workstation 6 (http://www.vwmare.com/). La verdad es que había probado este sistema operativo así por encima, y tenía ganas de meterme más con él, con lo cual, aprovechando que me había bajado la versión 6 de VMware me puse a ello.

Lo primero que haremos será crear una nueva máquina en VMware. Seleccionaremos la opción "Typical". Lo único que habrá que tener en cuenta es la elección del sistema invitado (guest), que será "Other -> Other", la red como "Bridge" y aparte de esto, pues el tamaño del disco. Yo lo he creado con uno de 4GB, pero vamos, eso es cosa vuestra. Una vez que hayáis hecho varios "siguientes" tendréis la máquina creada. Ahora tendreis que editar la configuración de la máquina y asignar al CD-Rom la imagen ISO de Plan 9.

Bien, ya tenemos la máquina virtual creada, ahora pasaremos a instalar el sistema en sí (cosa que es de lo más fácil). Arrancamos la máquina virtual, veremos que arranca desde el CD y nos mostrara tres opciones. Seleccionaremos la opción 1, para instalar el sistema en nuestro disco duro. A partir de ahí yo lo único que he hecho es dejar casi todas las opciones por defecto, pero os plasmaré aquí las mismas:

Use DMA for ide drives[yes]: yesMouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]: ps2
vgasize [640x480x8]: inst/textonlymonitor is [xga]: xga

Después de estas opciones nos dirá que no puede abrir el display y por tanto, la instalación seguirá en modo texto, que es lo que nosotros queremos. Nos aparece lo siguiente (En el "%" hay que poner inst/textonly).

init: starting /bin/rc%inst/textonly
Task to do [configfs]: (intro)File system (fossil, fossil+venti)[fossil]: (intro)

Task to do [partdisk]: (intro)
Disk to partition (sdC0, sdD0)[no default]: sdC0 (intro)
Install mbr (y, n)[no default]: y (intro)
>>>w (intro)
>>>q (intro)
Task to do [prepdisk]: (intro)
Plan 9 partition to subdivide (/dev/sdC0/plan9)[/dev/sdC0/plan9]: (intro)
>>>w (intro)
>>>q (intro)
Task to do [fmtfossil]: (intro)
Fossil partition to format (/dev/sdC0/fossil)[/dev/sdC0/fossil]: (intro)
Task to do [mountfs]: (intro)
Fossil partition (/dev/sdC0/fossil)[/dev/sdC0/fossil]: (intro)
Task to do [configdist]: (intro)
Distribution is from (local, net)[local]: (intro)
Task to do [mountdist]: (intro)
Distribution disk[no default]: /dev/sdD0/data (intro)
Location of archives [browse]: (intro)
/% exit (intro)
Task to do [copydist]: (intro)

Ahora se copiara el sistema a nuestro disco duro.

Task to do [bootsetup]: (intro)
Enabled boot method (floppy, plan9, win9x, winnt)[no default]: plan9 (intro)
Install the plan 9 master boot record (y, n)[no default]: y (intro)
Task to do [finish]: (intro)

Aqui se termina la instalación. Aclarar en la parrafada anterior, que cuando solo pongo "(intro)", es que no hay nada que poner, con la opción por defecto nos vale.

A partir de aquí tuve que hacer un par de retoques para que todo fuese bien. De entrada, antes de arrancar la máquina tendréis que, o bien eliminar el CD-Rom de la máquina virtual o bien configurarlo como SCSI. Esto es porque si lo dejas tal cual, la máquina virtual no arranca, por lo menos, a mi no me arrancaba, se quedaba en "Init starting /bin/rc". Por cierto, cuando os aparezca "user [none]": tenéis que poner "glenda".

Despues de lo anterior no deberiais tener problema para arrancar la máquina virtual y que os aparezca el entorno gráfico de plan 9. Aquí os podéis encontrar con el problema de que la pantalla de la máquina virtual no refresca bien, es decir, las ventanas dentro del entorno de vmware no refrescan bien y eso nos dará problemas para poder ver bien las pantallas y manejarnos con soltura. Si buscáis con el puntero del ratón los limites de las ventanas y las moveis un poco, veréis que esa ventana refresca hasta que de nuevo hagáis cosas. Para que las ventanas os refresquen perfectamente, deberéis desactivar la acceleración hardware de la siguiente forma: "echo hwaccel off > /dev/vgactl".

Con esto último ya os tiene que funcionar todo correctamente. A partir de aquí... pues nos queda mucho mucho mucho que investigar y aprender... pero lo dejamos para otros post, ok?
Saludos.

miércoles, 29 de agosto de 2007

Acceso SSH a nuestras máquinas sin pass.

Lo pasos que se describen a continuación os permitirán acceder a través de SSH a otros servidores sin tener que estar constantemente metiendo la clave. Por supuesto, lo tendréis que hacer desde un Linux. Lo ideal, como es mi caso, es tener una red interna y no accesible desde el exterior, tipo entorno de desarrollo, mas que nada para estar tranquilos, porque si alguien entrase a nuestra máquina tendría acceso directo a todas las demás que hayamos configurado de la forma en que mostramos a continuación.

Lo primero es generar en vuestro Linux la clave pública y privada, cosa que haremos con el siguiente comando: ssh-keygen -t rsa

Después, en la máquina a donde queremos acceder y dentro del "home" del usuario con el que queremos acceder creamos el siguiente fichero: /home/usuario/.ssh/authorized_keys

El contenido del fichero anterior será lo mismo que hay en el fichero /home/usuario/.ssh/id_rsa.pub de nuestro Linux local.

Hechos los pasos anteriores podréis acceder sin que la máquina remota os solicite el pass.

Tenéis mas información en el siguiente enlace:

http://www.ibm.com/developerworks/aix/library/au-satdistadmin/?ca=dgr-lnxw57sshunix&S_TACT=105AGX59&S_CMP=GRsite-lnxw57