17/03/08

Configuraciones RAID y LVM en Debian Linux

Hoy tengo una nueva batallita que contaros sobre configuraciones RAID y LVM en un Debian Lenny (testing). Ya tocaba porque hacia bastante que funcionaba sin ningún problema y eso "no puede ser normal".

Bromas aparte os recuerdo un poco como está configurada esta máquina:

El servidor incorpora 5 discos duros bastante variados: 1 de 300 GB, 2 de 320 GB y 2 de 500 GB.

El motivo de esta variedad es porque a medida que van fallando o puedo ir ampliando discos los voy sustituyendo por otros de mayor capacidad lo que me permite ir aumentando la capacidad disponible, sobre todo teniendo en cuenta que sobre el software RAID utilizao LVM para gestionar particiones.

El problema me lo he encontrado ahora que he reiniciado la máquina, pero se generó hace ya semanas con un cambio que realicé (y para el que no reinicié en su momento ya que no era necesario).

Antes de ese cambio tenia dos unidades software RAID, md0 y md1. La primera es un simple RAID 1 para /boot sobre 3 dispositivos. El segundo es más interesante, un RAID 5 sobre 5 particiones de cada uno de los discos.

El cambio fue sustituir 2 discos de 320 GB por los actuales 2 de 500 GB y para ir aprovechando el espacio (hasta que pueda disponer de todos en 500GB) utilizaré el espacio sobrante de los de 500GB para crear un RAID 1 de dos particiones.

Bueno, nada más facil. Creé el RAID con mdadm, lo convertí en unidad física LVM con pvcreate y lo añadí a un grupo existente (vg0). Todo funcionaba correctamente hasta que hoy he reiniciado la máquina y me he encontrado que no arranca quejándose de que no puede montar la partición raiz (y unas lineas más arriba el LVM se queja que le falta un dispositivo).

El problema está en que si bien LVM si que hace un escaneo total de todas las particiones y busca las unidades y dispositivos físicos, el software raid se basa en el fichero /etc/mdadm/mdadm.conf para construir los arrays aunque los pueda detectar automáticamente. El problema es que el arranque del Debian me deja un mínimo sistema (busybox) en el que no dispongo del LVM aunque si del mdadm.

Lo siguiente es arrancar con un CD (en este caso tras un kubuntu que no lleva mdadm ni lvm y un debian-installer antiguo que no me reconoce una controladora SATA PCI-Express) acabo consiguiendo arrancar con una imagen nueva del Debian-Installer para testing. Con eso consigo entrar por linea de comandos, construir la unidad y el lvm y acceder a mi /etc.

Una vez en /etc puedo ya editar el mdadm.conf y poner el nuevo array. Grabo fichero, rearranco, y sigue igual. ¡Claro! El mdadm.conf es una de las partes que se copian en la imagen de arranque en memoria (el llamado initramfs). Así que además de modificar el mdadm.conf tengo que actualizar ese initramfs.

Así que vuelta a arrancar con el CD, monto de nuevo la partición raiz y el /var que también necesito, y ejecuto update-initramfs -ut para actualizar la última versión del kernel. De momento no los actualizo todos para probar... no sea el caso que rompamos algo.

Reinicio para probar y arranco con el último kernel. Y ahora si, todo perfecto (aunque con tanto ir y venir el RAID se ha quejado y está reconstruyendo la unidad).

Así que la moraleja de hoy es: si añades un array con mdadm y quieres tenerlo disponible al arrancar, recuerda ejecutar update-initramfs.

Actualización 6/6/08: Para generar fácilmente el fichero mdadm.conf podemos utilizar el comando mdadm --examine --scan

Etiquetas: ,

9/02/07

Rendimiento de software RAID sobre Linux (2)

Continuamos las pruebas, ahora le toca el turno a el RAID10 sobre 4 discos (por si el número par afecta en algo):

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 64797 96 119486 21 48358 12 61408 95 98698 13 430.2 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2734 7 +++++ +++ 2172 4 3093 10 +++++ +++ 1695 5

Rendimiento (E/L): +77% / +34%

Configuración con 4 discos en RAID1+0:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 65864 98 114191 23 42419 11 59552 97 124150 21 495.5 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 3248 12 +++++ +++ 2530 7 3060 13 +++++ +++ 1801 6

Rendimiento (E/L): +69% / +69%

Para los interesados, esta configuración la he construido con estas órdenes:

mdadm --create -n 2 -l 1 /dev/md1 /dev/sdb2 /dev/sdd2 --size 5000000
mdadm --create -n 2 -l 1 /dev/md3 /dev/sdc2 /dev/sda2 --size 5000000
mdadm --create -n 2 -l 0 /dev/md4 /dev/md1 /dev/md3
mkfs.xfs /dev/md4 -f
mount /dev/md4 test


Y ahora una prueba que es la que realmente me ha pasado por la cabeza como candidata, y para la que he realizado las pruebas. Montar RAID1 + LVM con stripping para simular RAID0. Ya que de todas formas voy a utilizar LVM quizás pueda aprovecharlo para obtener un buen rendimiento con una excelente flexilibilidad:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 66600 97 114477 24 44862 15 53496 95 120469 29 397.6 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 4115 24 +++++ +++ 4197 0 5103 28 +++++ +++ 1958 7

Rendimiento (E/L): +69% / +64%

Y finalmente poniendo todos los datos juntos, junto con la eficiencia de disco y el número de discos usados:

  • RAID5(5): +47% / +113% / 80%
  • RAID1(5): -17% / -9% / 20%
  • RAID10(5): +108% / +77% / 50%
  • RAID10(4): +69% / +69% / 50%
  • RAID1+LVM(4): +69% / +64% / 50%

¿Adivináis el que he escogido?

Actualizado (9/2/07): adjunto tabla resumen.

Nivel RAID Discos Escritura Lectura % Espacio % Escritura % Lectura
N/A 1 67512 73633 100 100% 100%
5 5 99400 157120 80 147% 213%
1 5 55983 67411 20 83% 92%
10 5 140498 130574 50 208% 177%
10 4 119486 98698 50 177% 134%
1+0 4 114191 124150 50 169% 169%
1+lvm(0) 4 114477 120469 50 170% 164%

Etiquetas: ,

Estabilidad y rendimiento de software RAID en Linux

Ha llegado el momento de renovar un servidor linux que, entre otras tareas, actua de servidor de ficheros. Así que necesita mucha capacidad y también un buen rendimiento. Los ficheros son pocos pero grandes. Hablamos de centenares de gigas, así que se mueve mucha información mediante red gigabit.

Para el nuevo servidor quiero probar diferentes configuraciones de RAID y LVM en cuanto a rendimiento. Ya que he de hacerlo yo mismo, he pensado compartir los datos por si a alguien le sirven. Que quede claro que las pruebas no son en absoluto cientificas, sino una burda aproximación para ayudar a tomar una decisión sobre la configuración.

Primero, la configuración hardware de la nueva máquina:
  • Placa base: Asus A8V-E SE
  • Procesador: Athlon 64 X2 4600+ (2 x 2.4 GHz)
  • Memoria: 2 GB DDR 400 (dual channel)
En cuanto a discos, la placa dispone de 2 conectores SATA y 2 PATA. He añadido una controladora PCI para 2 SATA adicionales (Conceptronic). Actualmente hay 5 discos duros, una mezcla variada. Como digo, la prueba dista de ser muy válida salvo como un ejemplo más. Hay discos de 300GiB y de 320GiB, de 8 y 16 MiB de cache y tanto PATA como SATA. Las marcas son Maxtor y Seagate.

Bien, lo primero es probar la estabilidad de la máquina para comprobar placa, procesador, memoria, discos y controladoras. Para ello, utilizo el paquete stress de Debian. Por cierto que el sistema instalado es Debian Etch (en testing actualmente) utilizando el instalador RC1. La arquitectura escogida es AMD64. He actualizado al último kernel, 2.6.18.

La prueba de stress con múltiples trabajos de CPU, memoria, IO y disco ha funcionado sin problemas durante 10 horas seguidas (aunque la caja y la fuente de alimentación se han calentado considerablemente).

Como sistema de ficheros utilizo XFS. Para las pruebas de rendimiento de disco hecho mano del paquete bonnie++.

Aquí van los primeros resultados:

Configuración con 5 discos en RAID5:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 61606 95 99400 26 38831 16 53337 93 157120 43 511.5 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 1843 8 +++++ +++ 1732 7 1806 7 +++++ +++ 751 4

Configuración con 5 discos en RAID1:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 54048 80 55983 9 27978 5 63971 95 67411 6 645.1 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 3070 3 +++++ +++ 2462 0 2960 2 +++++ +++ 1023 2

Configuración con 5 discos en RAID10:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 66499 98 140498 24 48772 12 58759 90 130574 18 611.0 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 3313 9 +++++ +++ 2528 4 3658 9 +++++ +++ 2401 5

Bien. Obviamente en cuanto a espacio de disco RAID5 ofrece la mayor capacidad (N-1), RAID1 la peor (1) y RAID10 un término medio (aprox. N/2).

Para tener una referencia ejecuto el mismo test sobre uno sólo de los discos:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ns1 4G 60706 92 67512 14 30783 5 55824 84 73633 5 212.6 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 375 2 +++++ +++ 299 1 358 2 +++++ +++ 208 1


En rendimiento un poco lo esperado. Para escritura / lectura:
  • RAID5: +47% / +113%
  • RAID1: -17% / -9%
  • RAID10: +108% / +77%
Continuará...

Etiquetas: ,

13/12/06

RAID5 vs RAID10 (o RAID6...)

En mis lecturas de diversos documentos relacionados con sistemas RAID he encontrado algunos detractores de los sistemas RAID5 frente a sistemas como RAID10 o otros.

Por ejemplo, este artículo incluso viene en la documentación del paquete 'mdadm' de Debian: RAID5 vs RAID10.

Para los interesados en discusiones sobre la idoneidad de tal o cual sistema RAID os aconsejo la página web originaria del artículo, BAARF.

Yo de momento aún no me pronuncio... no lo veo del todo claro, pero estoy planteandome diversas opciones.

Etiquetas: ,

20/09/06

Manipulación en batch de videos

Creo que todo el mundo puede coincidir que las herramientas básicas de todo Linux (ls, cat, find, xargs, ...) resultan realmente impresionantes. Especialmente en manos expertas. NO es mi caso.

Sin embargo creo que resulta útil ir aprendiendo a combinar diversas herramientas. Ayer me asaltó un problema y vi la oportunidad de resolverlo fácilmente con estas herramientas y, porque no, practicar un poco al respecto.

El problema era el siguiente: disponia de alrededor de 25 videos en formato AVI más otros 25 ficheros MP3 con una pista de audio para dichos videos. Los videos ya venian con dos pistas de audio, pero yo queria esa tercera pista (que tenia en un fichero externo).

El primer objectivo era, por tanto, generar nuevos ficheros de video con la pista de audio deseada.

Además, los nombres de los ficheros contenian un exceso de caracteres bastante alto. ¿Podria aprovechar para limpiar un poco los nombres de los ficheros?

Los nombres seguian más o menos el siguiente formato:

aaaaaaaaaaaaaaaaaa DxDD bbbbbbbbbbbbb [ccccccccc] ddddddddddddd.avi (o.mp3)

Donde 'aaaaa' era una cadena de carácteres fija para todos los ficheros, D eran números diferentes para cada video, y los otros 4 grupos (b, c y d) eran diversos carácteres alfanuméricos.

Lo primero es eliminar el prefijo común. Fácil, usamos el comando 'rename' con una expresión regular de sustitución de Perl:

rename 's/aaaaaaaaaaaaaaaa //' *.avi

Idem para los ficheros de audio. Con 'rename' podemos usar además la opción -n para simular como se renombraran los ficheros antes de hacerlo realmente.

Ahora el objetivo es dejar sólo los archivos con el siguiente formato:

DxDD bbbbbbbbbbbbb.avi

Para lo cual podemos usar de nuevo 'rename' con una expresión regular algo más complicada.

rename 's/(\dx\d\d[\w\s]+)\s\[.*\.(\w{3})$/$1.$2/' *

Básicamente capturamos el DxDD y los carácteres posteriores hasta el primer [, y lo guardamos para poder repetirlo luego (entre paréntesis). Luego capturamos el resto y guardamos finalmente la extensión (los 3 últimos carácteres tras el punto). Todo esto simplemente es convierte en $1.$2, o sea la primera parte capturada, un punto y la segunda.

Bien, ya tenemos los ficheros de audio y video con los nombre de fichero 'limpios'. Ahora, usamos FFmpeg para remultiplexar los videos con el nuevo audio. La idea es hacer algo como esto:

ffmpeg -i 'DxDD aaaaaaa.avi' -i 'DxDD aaaaaaa.mp3' -vcodec copy -acodec copy -map 0.0:0.0 -map 1.0:0.1 'DxDD aaaaaaaa mmm.avi'

Básicamente esta orden genera un avi sin modificar el audio ni el video, pero cambiando los canales de audio (opciones -map). Al resultado además queremos añadir un string fijo 'mmm'. Además tenemos que ejecutar la orden para cada uno de los 25 videos.

El resultado se consigue con una combinación de comandos: ls, cut y xargs.

ls -w1 *.avi | cut -d. -f1 | xargs -I '{}' ffmpeg -i '{}'.avi -i '{}'.mp3 -vcodec copy -acodec copy -map 0.0:0.0 -map 1.0:0.1 '{} mmm.avi'

¡Prueba superada!

Etiquetas:

11/08/06

Discos de repuesto

Soy bastante paranoico, lo se. Quizás tenga razón. Así que al montaje que ya tenia en mi servidor he añadido recientemente otro disco duro más que actua como disco de repuesto (spare disk).

Previamente habian 3 discos de 300G y he añadido otro igual. Para hacer la partición idéntica he utilizado sfdisk. Con una orden para extraer la partición de un integrante actual del RAID:

sfdisk -d /dev/sda > sda

Y otra orden para aplicar el mismo esquema al nuevo disco (sdb):

sfdisk /dev/sdb <>

Y ahora tan sólo nos queda añadir las diferentes particiones. Se utiliza la misma orden siempre, tanto para añadir discos que reemplazan a defectuosos como en este caso discos de repuesto. El sistema mdadm conoce el tamaño del array y cualquier dispositivo adicional que se incluya se convierte automáticamente en un repuesto. Por tanto:

mdadm --add /dev/md0 /dev/sda1

El resultado final queda plasmado con la salida de /proc/mdstat:

Personalities : [raid5] [raid4] [raid1]
md0 : active raid1 sdb1[3](S) sda1[0] hdg1[2] hdc1[1]
96256 blocks [3/3] [UUU]

md1 : active raid5 sdb2[3](S) sda2[0] hdg2[2] hdc2[1]
979712 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

md2 : active raid5 sdb3[3](S) sda3[0] hdg3[2] hdc3[1]
584926464 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

unused devices:

Etiquetas: ,

4/08/06

Y falló un disco

O... la prueba real de la configuración RAID de mi servidor.

Pues si, el primer disco (hda) de los tres que componen el RAID5 (hda,hdc,hdg) ha dicho que no quiere trabajar más. Sin problemas, recibo un email del monitor de RAID avisándome que el disco está fallando y lo saca del RAID.

Bien, el siguiente paso lógico es comprar un nuevo disco para sustituir al afectado. Voy a comprar otro disco de 300G pero sólo encuentro SATA. No importa, le enchufo una controlador SATA PCI, le conecto el nuevo disco (sda), quito el defectuoso (hda) y arranco de nuevo la máquina... y no arranca.

Momento de pánico...

Bien, no aparece nada en pantalla, o sea no carga ni el bootloader (GRUB). Así que sospecho que el problema está en que justamente ha fallado el disco principal (hda). Lo vuelvo a conectar y por suerte el disco no estaba totalmente irrecuperable y logro arrancar el sistema de nuevo.

Al parecer lo que indiqué en el artículo anterior no es del todo correcto. Curiosamente creí haberlo probado convenientemente. Al final mediante el wiki de Gentoo (aunque uso Debian) probé el mecanismo alternativo de configurar GRUB. Arranqué y funcionó.

Así que tengo dos teorias:
  • El procedimiento que utilicé originalmente no es correcto y lo probé mal.
  • El procedimiento original era correcto pero con los cambios de kernel y actualizaciones automáticas del GRUB se debería volver a ejecutar con cada actualización de kernel.
¿Alguna idea?

Etiquetas: ,

25/04/06

Traducción del howto de LVM

Leo en Barrapunto que está disponible la traducción al español del howto de LVM.

Cuidado con el artículo que hace mención a que se puede ampliar o reducir los volúmenes en caliente y eso no es siempre cierto (depende del sistema de ficheros). Algunos hay que desmontarlos (la mayoría) y pocos permiten reducir el tamaño (como xfs).

Etiquetas:

21/04/06

Comparativa de sistemas de ficheros

Leo en Debian Administrator una interesante compartiva sobre los sistemas de ficheros disponibles para Linux (kernel 2.6).

Parece que el ganador general es xfs , pero como siempre cada uno tiene sus ventajas e inconvenientes.

Etiquetas:

20/04/06

LVM

El Logical Volume Manager es uno de esos inventos inteligentes que creo ya han madurado lo suficiente para ser utilizados realmente. Y digo esto porque soy muy reacio a tecnologias muy nuevas cuando más "abajo" vayamos en la arquitectura de un sistema... y los sistemas de ficheros me parecen algo muy muy delicado!

Montando un LVM para un cliente resulta que para añadir espacio de disco (una de las principales razones para usar LVM!) le añadimos un cuarto disco duro IDE (/dev/hdd) al único "volume group" existente.

El problema ha venido tras un fallo de red que ha oblidado a reiniciar el sistema... mensaje fatídico:

Couldn't find device with uuid 'pAwTBA-RnrP-6Zhe-FmDc-mR0I-6Rtp-wvrt2J'

Vaya problema. Hago un pvscan para ver los volúmenes físicos:

linux2:/etc/lvm# pvscan
Couldn't find device with uuid 'pAwTBA-RnrP-6Zhe-FmDc-mR0I-6Rtp-wvrt2J'.
PV /dev/md3 VG data lvm2 [220.97 GB / 0 free]
PV unknown device VG data lvm2 [279.46 GB / 195.43 GB free]
Total: 2 [500.43 GB] / in use: 2 [500.43 GB] / in no VG: 0 [0 ]


El segundo debería ser /dev/hdd !

Curiosamente el disco si tiene el uuid correcto:

linux2:~/uuid_fixer# pvdisplay /dev/hdd
--- Physical volume ---
PV Name /dev/hdd
VG Name data
PV Size 279.46 GB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 71541
Free PE 50029
Allocated PE 21512
PV UUID pAwTBA-RnrP-6Zhe-FmDc-mR0I-6Rtp-wvrt2J


¿Cómo es posible?

Al final ha resultado que /dev/hdd era también /dev/cdrom y este último dispositivo no era revisado por el lvm según la configuración de /etc/lvm.conf. Eliminando esta limitación todo ha vuelto a funcionar correctamente.

Etiquetas:

9/03/06

Debian RAID

En mi despacho en casa dispongo de un servidor Debian Linux que hace multitud de tareas. Desde conexión a internet con cortafuegos (iptables), servidor de ficheros (samba), backups (backuppc), gestión de la red (bind, dhcp), copias de seguridad entre servidores (rsync), descargas p2p (mldonkey) y muchas más cosas que seguro que me olvido ahora mismo.

Se trata de un simple PC, concretamente mi antiguo PC ahora que tengo mi flamante Athlon. Dispone de un disco duro de 160G pero que esta muy justo y ya lo he tenido que cambiar una vez porque petó (y perdí los datos tuve que recurrir a las copias de seguridad, que le vamos a hacer).

Por eso he optado por reinstalar el sistema con mayor capacidad y, sobre todo, fiabilidad. He comprado 3 discos duros de 300G y la idea es montarlo todo sobre RAID.

Antes de ponerme con el servidor, he pillado un PC que había por aquí y lo he utilizado para hacer pruebas (con los 3 discos intentar instalar un Debian).

Tras muchas búsquedas por internet parece que lo de poner un RAID para todas las partes del sistema, especialmente el arranque, no es fácil. Más aún ya que yo quiero RAID 5 para disponer de 600G efectivos de capacidad.

Bien, la configuración que me ha quedado finalmente es la siguiente:

Todos los discos con estas 3 particiones:
  • 100M
  • 500M
  • resto (unos 298G)
Con esto construyo tres unidades RAID:
  • /dev/md0 en RAID1 con las tres particiones de 100M para /boot (100M)
  • /dev/md1 en RAID5 con las tres particiones de 500M para swap (1G)
  • /dev/md2 en RAID5 con las tres particiones de 298G para / (597G)
Bien, la primera en la frente: pese a lo que podáis leer por ahí, el Debian Installer no lo tiene tan sencillo para instalar un sistema sobre RAID. Primero probé con el último nightly build que en este momento era la beta 2 de Etch. Lo instalaba pero no arrancaba (al parecer generaba mal el initrd). El instalador de la versión Sarge (estable) tampoco funciona, parecía que si pero al arrancar no podia montar los RAIDs. Finalmente el instalador que me ha funcionado ha sido el Etch beta 1.

¿Cual es el problema de instalar y arrancar sobre RAID?

El problema está básicamente en que habitualmente el kernel carga los módulos de RAID (md, raid1, raid5) como eso... módulos. Por tanto, ha de leerlos de disco... círculo vicioso. Hay dos soluciones posibles: compilar un kernel con soporte incluido de RAID o crear un ramdisk con los módulos para que se pueda cargar.

Otro problema es que tanto la imagen del kernel como el ramdisk estan en /boot así que ... ¿como vamos a poner eso en RAID?
La respuesta es que en realidad no podemos... Sin embargo, tanto LILO como GRUB tienen soporte básico para RAID1 porque en realidad un RAID1 hace que todos los discos tengan lo mismo. De ahí que /boot sea un RAID1 y no un RAID5. Y sí, RAID1 no es exclusivo de 2 discos... puedes hacerlo sobre el número de discos que quieras.

Así que lanzando el Debian Installer simplemente hemos de particionar manualmente los discos con, según mi ejemplo, las tres particiones iguales en los tres discos. Luego, generamos los 3 dispositivos md y les asignamos los sistemas de ficheros correspondientes.

Con esto ya tenemos la redundancia que queríamos. Sin embargo, el gestor de arranque (en mi caso GRUB) sólo está instalado en el MBR del primer disco. Eso hace que si falla el primer disco, no podamos arrancar el sistema. Para solucionar esto nada más sencillo que marcar los otros MBR con el grub. Simplemente al arrancar el sistema normalmente entramos en el prompt de grub (ejecutando 'grub' como root) y ejecutamos los siguientes comandos:
  • root (hd1,0)
  • setup (hd1)
  • root (hd2,0)
  • setup (hd2)
  • quit
Lo único que nos falta es que, según las prueba de stress que he ido realizando (en plan parar discos) hay veces que el RAID parece 'olvidar' un disco pese a que lo volvemos a reconectar. Supongo que es un mecanismo de seguridad. El procedimiento para añadir una partición a un dispositivo es, sin embargo, muy sencillo:

Lo primero es comprobar el estado en /proc/mdstat o con la orden

mdadm -QD /dev/mdX

Y para añadir las particiones que nos falten:

mdadm --manage -a /dev/md2 /dev/hda3

¡Suerte con vuestros intentos!

Etiquetas: ,

18/02/06

La importancia de un buen RAID

O la desgracia de no tener uno. Ayer estuvimos de traslado de servidor por el fallo inminente del un disco duro. Por suerte esta página (y el resto de servicios alojados en esa web) no sufrieron más que un corte de pocas horas.

Etiquetas: ,

25/01/06

tar remoto

El domingo mi PC entró en coma. Al parecer (aún no lo he confirmado del todo) el problema fue un cable del ventilador de la CPU que hacía mal contacto. Esto provocaba que de vez en cuando se parara, la CPU se calentara y funcionara mal. Llevaba dias haciendo cosas "extrañas" con lo cual supongo que llevaba haciendo ese mal contacto una buena temporada.

Bien, el problema vino cuando se corrompió el disco parcialmente (probablemente por la CPU, los discos parecen estar bien). Pese a que hago una copia de seguridad diaria, por motivos obvios de espacio en disco hay ciertas cosas que no puedo guardar aunque no son críticas. Sin embargo, preferia disponer de ellas antes que tener que volver a descargarlas. Así que me dije... arranco con un LiveCD y paso los datos.

Pues no. Resulta que tengo un RAID por placa base (Asus A8N-SLI) de dos Raptors. Knoppix no lo reconoce, así que al final encontré una distribución especifica para esto. Básicamente se trata de la herramienta 'dmraid'.

En fin, el problema es que esta distribución viene "pelada", ni siquiera con soporte decente de red. Así que finalmente encontré este truco para pasar datos remotamente via SSH.

tar cvf - [fichero-o-directorio] | ssh username@host tar xf -

Y me funcionó de vicio (además de hacerlo realmente rápido).

Actualización 3/3/06: He corregido el comando 'tar' porque era incorrecto.
Actualización 24/3/06: No me habia dado cuenta, pero mi anterior corrección no fue correcta. Así que corrigo la corrección. Por cierto, el problema está en el editor integrado de blogger, que no admite correctamente (lo deja tal cual y el navegador se piensa que es HTML!).

Etiquetas:

11/12/05

Instalación de Tomcat 5 bajo Debian

A raiz de un mensaje en la lista de correo de usuario de Debian en catalán he publicado un nuevo artículo que tenía por aquí hecho sobre la instalación de Tomcat 5 en un Debian. Sencillito, pero contiene más o menos lo necesario.

Espero que os sea de utilidad. Los comentarios y sugerencias, donde siempre.

Etiquetas: , ,

22/09/05

Previniendo ataques al puerto SSH

Llevo una buena temporada bastante molesto con los intentos de acceso al servicio SSH del servidor de la empresa. Molesto aunque no preocupado porque se que está bien configurado: no permitimos el acceso a root, sólo permitimos acceso a ciertos nombres de usuario que han de poder entrar y además mantenemos totalmente al día en tema de actualizaciones de seguridad.

Pero es muy molesto encontrar avisos del sistema de monitorización de logs cada dos por tres de obvios casos de script kiddies que lanzan ataques de barrido sobre diversos servidores.

Hacia tiempo que me rondaba la idea de mirar de limitar el número de intentos erróneos antes de bloquear la IP durante un tiempo, pero ya que OpenSSH no dispone de esa opción por ahora, lo había postpuesto para un estudio más detallado el dia que tuviera tiempo (ja!).

Pero no ha hecho falta, la gente de debian-administrator.org vienen a la carga con un artículo exactamente sobre eso.

Etiquetas:

21/08/05

Plan de migración a Linux Desktop

Está bien, lo confieso. Uso Windows en mi PC. Encima es legal (pocos pueden decirlo) como todo el software que utilizo. Sin embargo, soy un acérrimo defenso de Linux para servidores... pese a que pienso que Linux para tareas de estación de trabajo... bueno, le falta aún un poco de desarrollo en ese aspecto, pero estamos cerca. Cada día más.

Tengo un colega que es muy pro-Linux. El, óbviamente, sí utiliza Linux. Ayer quedamos para hacer una paella y tras la comida y paseando al lado de la playa, comentábamos el tema (una vez más).

Tal como le comenté, es inevitable que yo acabe poniendome Linux en mi PC de escritorio. Lo tengo claro. Aún no es el momento, pero no falta mucho. De hecho, de un tiempo a esta parte estoy escogiendo las aplicaciones que utilizo de una manera un tanto especial: intento que sea software libre (GPL a ser posible) y que hayan versiones igualtes tanto en Windows como en Linux. De manera que poco a poco las aplicaciones que voy utilizando ya están listas para la migración. Llegará un momento que lo unico que me hará falta es migrar el sistema operativo... y listo!

Volviendo a casa pensé en publicar una lista de lo voy utilizando, y dentro de un tiempo podré revisarla a ver si voy hacia adelante o no.

Empecemos por software libre con versión Linux (que yo conozca):
  • Mozilla Firefox (navegador Internet)
  • Mozilla Thunderbird (correo Internet)
  • Gaim (mensajeria instantánea)
  • OpenOffice (paquete ofimàtico)
  • Gimp (edición fotográfica)
Resto de software, a ver que alternativas voy encontrando:
  • WinAMP, fácilmente sustituible por XMMS
  • Putty, OpenSSH incorpora un cliente SSH perfectamente completo
  • IntelliJ IDEA, uno de los pocos softs propietarios (y el más caro) que utilizo, pero siendo mi dedicación principal el desarrollo Java está justificado (para mí) Tiene versión Linux igual a la de Windows (está escrito en Java) así que no hay problema
  • Nero, aquí veo dificil que un soft llegue al nivel del Nero de Windows. Lo he intentado en varias ocasiones, pero todos los softs que he visto para Linux por el momento no llegan al nivel del Nero. Tienen el NeroLINUX pero creo que la opción sería encontrar un buen sustituto GPL.
  • UltraVNC, esta implementación del VNC es sólo Windows, pero existen otras versiones que implementan el protocolo para Linux.
  • FileZilla, es un soft para Windows de cliente FTP/SFTP. Supongo que en Linux hay alternativas igual de buenas.
  • 7-Zip, también es sólo para Windows aunque GPL. Soporta la mayoría de formatos de compresión de ficheros, aunque el propio .7z no podria leerlo en Linux. Imagino que los entornos de escritorio de Linux ya vienen con todo el software para leer archivos de todos los tipos.
  • Soft Agencia Tributaria. Como autónomo tengo que tratar mucho con todo el software de la Agencia Tributaria. Por suerte, cada día hacen mejor su trabajo y aunque aún salen ganando los de Windows por goleada, suelen haber alternativas para otras plataformas... desde simples aplicaciones Web a otras que estan migrando a Java.
  • EAC, para extraer audio de un CD con máxima seguridad. No conozco alternativa (igual de fiable) para Linux.
  • dbPowerAMP Music Converter, para conversión de formatos de audio. Tampoco conozco alternativa para Linux.
  • Palm Desktop. El software para sincronizar mi PDA Palm Tungsten T3. El soft oficial es para Windows y Mac. Así que aquí no hay suerte. Tengo la opción de correo el soft con un emulador o buscar versiones de terceros que las hay. Tengo dudas al respecto de cualquiera de las dos soluciones.
  • WinCVS. Un entorno gráfico para el CVS. Imagino que para Linux son mejores incluso que este.
  • Google Earth... de momento no tienen versión Linux, una lástima. No es que me haga falta el soft, pero es divertido ver cosillas de vez en cuando.
  • Adobe Reader for Palm OS. Este soft viene con una parte en Windows que prepara los PDFs para su lectura en la PDA. No conozco alternativa para Linux.
  • MemoriesOnTV. Otro de los pocos softs propietarios que tengo (correctamente licenciado como todo lo que utilizo) que sirve para crear CDs y DVDs con pases de fotos y música, con efectos bastante conseguidos. Lo utilizo para generar álbums de fotos digitales en CD o DVD, ya que desde que tengo la cámara digital lo encuentro mucho más práctico que los álbums convencionales.
  • UltraEdit. Se me olvidaba el EDITOR. Lo siento por los partidarios de vi o emacs, o kemacs, o gemacs o como se llamen esas perversas creaciones que nada tienen que ver con este editor. Ni idea de si hay una alternativa medianamente parecida en Linux.
  • DVD Shrink. No se si existe nada parecido en Linux.
  • DVD Decrypter. Idem, aunque este lo utilizo muy poco.
  • Ulead DVD Movie Factory, o algo así. Soft que me venia con la capturadora de video (no de TV). La uso para ir pasando antiguos videos VHS que tengo a DVD (especialmente los videos familiares mios y de allegados). Obviamente, este no corre en Linux y dudo mucho que haya algo ni remotamente parecido (esto es terreno Mac).

Uf, haciendo así el recuendo está la cosa mala. En unos meses veré si he podido arreglar las cosas un poco.

Actualización 11/10/05: Los comentarios valen más la pena que este post! Realmente veo que es un tema sensible entre los lectores de este blog. No, si al final me van a convencer... ;-)

Etiquetas:

19/08/05

Diario instalación phpbb2 actualizado

Tras instalar algunos foros más, he actualizado el diario de instalación de phpbb2. Mea culpa puesto que he encontrado un error en la gestión de los avatares. En realidad es un error de la documentación, pero yo he caido de cuatro patas (y es que es un error sutil, porque todo funciona igualmente).

El nuevo documento refleja correctamente los cambios ha realizar, y también hay un extenso ejemplo de como combinar más de un foro en el mismo servidor.

Que aproveche!

Etiquetas:

1/07/05

iptables connection tracking

El subsistema iptables (encargado de las tareas de filtrado y procesado de paquetes IP a nivel del kernel, para kernels >=2.4) es un cortafuegos con estado. Eso significa que puede recordar una conexión y facilitar la generación de reglas.

Sin embargo, el número de conexiones simultáneas que puede gestionar en un determinado momento no es ilimitada. ¿Cuantas? Depende de la memoria y de la configuración, pero lo podemos saber muy facilmente mirando /proc/sys/net/ipv4/ip_conntrack_max.

¿Y cuantas están utilizadas actualmente? También es sencillo. Se crea una entrada para cada conexión (con los detalles) en /proc/net/ip_conntrack. Una linea por conexión. Tan sólo tenemos que ejecutar wc /proc/net/ip_conntrack. El primer número es el de las conexiones actuales.

Estos valores normalmente no importan en máquinas individuales, pero son cruciales en cortafuegos con bastante carga (puede incluso obligarnos a no usar conntrack por insuficientes recursos).

Etiquetas:

5/04/05

Instalación de phpbb2 en Debian Woody

Otro documento corto sobre la instalación de un paquete habitual en un servidor Debian Woody. Esta vez he documentado como instalar el sistema de foros phpbb2. Lo he instalado para los foros de The Web Spain.

Dado que el servidor donde esta alojado todo esto es Debian Woody (stable) pero el paquete phpbb2 sólo está en la distribución testing he tenido que recurrir a instalarlo desde esa distribución (cabe decir que sin ningún problema).

Aquí está el diario de instalación de phpb2 sobre Debian Woody.

Etiquetas:

7/03/05

Configuración básica de un servidor Debian Sarge

Complementando al post anterior, que seguro que habréis encontrado claramente insuficiente (mis disculpas si todo lo publicado no está a la altura de vuestras espectativas, pero estos documentos los he ido creando para mi uso personal y ahora sólo los reviso para publicarlos).

Como decía, en este otro documento sobre configuración básica de un servidor basado en Debian doy algunos de los pasos básicos que suelo utilizar para configurar un servidor recien instalado.

Etiquetas:

4/03/05

Instalación de Debian Sarge en un Shuttle SB52G2

Sigo desenpolvando documentos que tenía escritos, esperando el día que me decidiera a montar el blog. En este caso se trata de un documento bastante breve y sencillo, y realmente no creo que sea excesivamente útil, aunque como mínimo sirve para confirmar a alguien que pueda dudar de la compatibilidad del hardware de esta máquina.

En mi despacho tengo montada una de estas máquinas como cortafuegos, separando en tres partes la red: red interna, internet y red inalámbrica. De esta manera puedo aplicar reglas de cortafuegos y calidad de servicio a cada parte.

Aquí tenéis el enlace para consultar el documento.

Etiquetas:

2/03/05

Instalando Debian Sid en mi portatil

Llevo ya unos dias instalando Debian Sid en mi portátil. Parece que las cosas iban funcionando pero hace un rato he recibido un duro golpe. No puedo utilizar la wifi integrada (Centrino) porque mi portátil tiene una especie de interruptor hardware controlado por un botón y software que evita que pueda hacer nada....

Os dejo la documentación hasta este punto. Ya decidiré en breve que hago al respecto.

Etiquetas:

1/03/05

Diario de instalación BackupPC

Como os comentaba en un anterior post, tras descubrir este magnifico software lo he instalado en mi red. Prometí un documento sobre su instalación, y ya lo tengo listo.

Etiquetas:

28/02/05

Debian Sid en portatil Centrino

Estos dias estoy instalando Debian Sid (unstable) en mi portatil Ahtec Signal 1555M. Como siempre, lo estoy documentando para que los que vengan detrás lo tengan más facil. La documentación aun es poca, puesto qeu no avanzo con mucha velocidad. De momento, he conseguido que el touchpad funcione como tal (no como un simple ratón).

En breve la documentación. Mientras tanto, os pongo las características técnicas del portatil por si alguien tiene alguno similar:

# Portátil Ahtec Signal 1555M

* Fast Ethernet Broadcom 440x 10/100 Mbps
* Controladora PC-Card (PCMCIA) Texas Instruments PCI)-1510
* USB 2.0
* Adaptador Memory Stick (MS)
* Adaptador Secure Digital (SD/MMC)
* Sonido AC'97 Crystal WDM
* Módem Agere Systems AC'97
* Touch-pad Synaptics
* Puerto impresora LPT
* Salida VGA D-SUB 15 pines
* Salida SVHS

# Pantalla TFT 15" XGA (1024x768)
# Video Intel 82855 64MB memoria SMA (compartida)
# Plataforma Centrino

* Adaptador WiFi 802.11b Intel PRO/Wireless LAN 2100 3B

# Procesador Pentium M 1,5 GHz 1024KB caché
# 512 MiB (2x256) DDR 266MHz PC2100
# Disco duro Toshiba 60 GiB 2,5" 4200 rpm MK6021GAS
# Unidad combo QSI DVD/CDRW SBW-242

Etiquetas:

24/02/05

Instalación de osCommerce

Como ya anuncie ayer, aquí os traigo un pequeño documento sobre la instalación de osCommerce 2.2m2.

Que aproveche...

Actualización: Aprovecho este documento para publicar enlaces en BULMA y Badopi. Es una manera de ir dando a conocer la web. Si alguien viene a través de esos enlaces, se agradecería un comentario. Muchas gracias.

Etiquetas:

23/02/05

Soft para tienda online

Dada mi estrecha vinculación con The Web Spain, y ya que la web necesitaba una mejora urgente, he optado por buscar una solución rápida y sencilla (y libre, claro) para publicar la sección de merchandise y pedidos que gestionamos nosotros en nombre de Racket Records.

Tras buscar un poco, he topado con osCommerce. Me ha sorprendido gratamente. Muy fácil de instalar. Se nota un producto maduro. Pero lo mejor (y raro por desgracia en proyectos de código libre) una documentación excelente.

En breve publicaré un pequeño documento sobre la instalación. Más que por su utilidad, para que los indecisos vean lo sencillo que es.

Etiquetas:

22/02/05

Sistema de copias de seguridad

Hace ya mucho tiempo que tengo muy presente en todos los sistemas sobre los que trabajo el tema de las copias de seguridad. Sin embargo, nunca he sido amigo de sistemas de backup en los cuales los datos eran comprimidos, encriptados, almacenados en sistemas más o menos propietarios. Me refiero a que estoy más a gusto simplemente copiando los ficheros en un soporte de datos adicional... sea floppys en su dia, CDs no hace mucho y DVDs últimamente.

Esta claro que en determinadas circunstancias, es necesario un sistema de backup tipo imagen con el que se puede restaurar un sistema en minutos, tras reemplazar, por ejemplo, un disco duro defectuoso. Pero para la mayoría de entornos, salvaguardar los datos es suficiente. De hecho, en muchos entornos ni se hace esto último.

O aún peor. Suponiendo que un sistema de copia de seguridad tipo imagen es mucho mejor que salvaguardar los datos, se opta por una copia de seguridad de muy baja frecuencia (mensual) cuando se podria tener un sistema diario de copias de seguridad de datos.

Y lo que me ha hecho escribir este post, ha sido que finalmente he descubierto una herramienta realmente útil para tener copias de seguridad de los datos de todos los PCs de una red, sean Windows o Linux (u otras cosas), muy automatizado, eficiente, fácil de implantar y que convierte en realidad una politica de copias de seguridad.

Además, es software libre (claro!): BackupPC.

Sus ventajas son innumerables, empezando porque puede realizar copias de seguridad de toda un red de máquinas sin tener que instalar ningún soft en cada punto, sino sólo un servidor. Se maneja por web y es un producto maduro y estable.

Actualización: he publicado un documento sobre la instalación. Aquí la entrada del blog correspondiente.

Etiquetas: