jueves, 17 de marzo de 2011

ext4 optimization and throughput (Preview)

Scenario: Debian Stable 6.0 under VmWare ESXi 4.1
Cases:

  • 1 core and 497 Mb RAM
  • 4 cores and 4Gb RAM

Test used:  Phoronix Test Suite
Mount options:
  • defaults
  • noatime
  • long  noatime,barrier=0,data=writeback,nobh,commit=100,nouser_xattr
  • no_journal - defaults, but fs created with "mkfs.ext4 /dev/sdb1 -O^has_journal" defaults
Results Case1 (1 Core):
Results Case2 (4 Cores):
Results Case1 & Case2 Mixed:
http://openbenchmarking.org/result/1103160-IV-MERGE353122 (It has some visualization problems)
Comments:
To be update... soon
Improvements to do:
Test in a bare installation, and testing hypervisor overload (vmware Vs. kvm)

jueves, 5 de junio de 2008

Evitando apagados innecesarios

Cuando se maneja un gran número de servidores desde un único monitor/teclado, más de una vez se corre el peligro de que por querer hacer las cosas rápidas, pulsamos crtl+alt+sup para iniciar sesión en Windows... pero si es un Linux, eso supone un reinicio del servidor. Para evitarlo, en el fichero /etc/inittab, buscaremos algo parecido a esta línea y la comentamos:

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

jueves, 8 de mayo de 2008

Instalar un número de paquetes mínimos (sin recomendaciones)

Las recomendaciones para un equipo de escritorio suelen ser útiles, pero cuando se trata de un servidor, cuanta menos mierda mejor. Para evitar tener que acordarse de ésto siempre que instalemos algo, basta con:

echo 'APT::Install-Recommends "0";' >> /etc/apt/apt.conf.d/70debconf

martes, 12 de febrero de 2008

schroot - snapshots con LVM (II)

A la hora de probar y desarrollar nuevo software, el usar software actualizado es casi un requerimiento para poder acceder a aquellas funcionalidades. Ya vimos como tener distintas versiones instaladas, a la vez que para el día a día usamos algo más estable. Sin embargo, tras pruebas y compilaciones/recompilaciones, nuestros entornos de pruebas, puede llegar a "ensuciarse" o deteriorarse. Siempre podemos optar por borrar la instalación y reinstalarlo desde 0, pero hay sistemas más rápidos y más flexibles: Snapshots de LVM.

Una de las características que tiene LVM, es el de poder hacer snapshots (o copias exactas) de un dispositivo en un momento dado. Con LVM2, dichas copias, ya son de lectura/escritura, es decir, podemos modificar la copia... sin llegar a alterar el original. ¿Qué conseguimos con ésto? Tener un sistema recién instalado sobre el que trabajar... dejándolo totalmente limpio, una vez que hemos finalizado.

Para conseguir ésto, obviamente necesitamos tener una partición LVM, sobre la que instalaremos los sistemas, y espacio libre suficiente en LVM para poder hacer las copias. (Cómo crear particiones LVM y manejarlas quedan fuera del ámbito de este tutorial... pero no del siguiente)

Así pues, tenemos una partición LVM (/dev/Volume_00/schroot), que hemos montado en /schroot (por ejemplo) y hemos "instalado" una versión de sid (debootstrap sid /schroot/sid). Una vez que tenemos todo instalado y configurado a nuestro gusto, no es necesario tener la partición montada para nada.

Una vez preparado, sólo queda editar el fichero de configuración /etc/schroot/schroot.conf en el cual le especificamos que es una partición LVM y que cuando la ejecutemos, queremos que nos haga snapshots de ella:

[sid]
aliases=unstable,default
description=Debian sid
location=/sid
lvm-snapshot-options=--size 1G
device=/dev/Volume_00/schroot
type=lvm-snapshot
priority=3
groups=sbuild,root
root-groups=sbuild,root
source-groups=sbuild,root
source-root-groups=root
run-setup-scripts=true
run-exec-scripts=true

Las opciones de configuración claves son:
  • location=/sid
    • Carpeta dentro de la partición de LVM donde se encuentra el sistema instalado (Se pueden tener varios sistemas en distintas carpetas colgando todos de la misma partición)
  • lvm-snapshot-options=--size 1G
    • Opciones a pasar al snapshots. En este caso, le decimos que el espacio libre en el snapshot será de 1 GB (para esto era necesario tener espacio libre sin particionar en el Volume LVM)
  • device=/dev/Volume_00/schroot
    • Partición donde tenemos instalados los sistemas.
  • type=lvm-snapshot
    • Tipo de partición.
Así pues, una vez configurado todo, podemos acceder a Sid, simplemente con el comando schroot -c sid

Cuando creamos una configuración de tipo lvm-snapshot (sid en nuestro caso), automáticamente, también se crea una del tipo name-source (sid-source). Dicha configuración nos permite acceder a sid, pero sin crear un snapshot. Es decir, todos los cambios que hacemos, quedaran grabados. Ésto es útil, ya que Sid en una versión muy cambiante, y no está mal, ir actualizandola de vez en cuando.

jueves, 22 de noviembre de 2007

schroot - Varias versiones de Debian en un único sistema (I)

Usando Debian Etch se consigue estabilidad y seguridad. Sin embargo, de vez en cuando, hacen falta versiones más recientes con nuevas funcionalidades que nos permitan seguir trabajando día a día sin ningún problema. Para ello existe schroot. De esta, podremos tener otras versiones instaladas de Debian, y ejecutar programas más recientes sin interferir con el sistema estable. Las aplicaciones de ésto son incontables: desde probar nuevas versiones, hasta tener un versiones de 32bits, para ejecutar aquellas aplicaciones que no existen en un entorno de 64 bits (Flash player, y productos privativos principalmente). Pero, ¿cómo lo hacemos?
  • apt-get install schroot debootstrap
  • mkdir /chroot/sid
    • O cualquier otra carpeta en la que queramos instalar nuestro nuevo sistema
  • debootstrap sid /chroot/sid
Et voilà! Ahora sólo faltaría configurar un par de cosillas. El fichero /etc/schroot/schroot.conf debería ser tal que:

[sid]
description=Debian sid (unstable)
location=/chroot/sid
users=ghe
aliases=unstable,default
run-exec-scripts=true
run-setup-scripts=true
[lenny]
description=Debian lenny (testing)
location=/chroot/lenny
users=ghe
aliases=testing,lenny
run-exec-scripts=true
run-setup-scripts=true

si tenemos tanto una versión de sid como de lenny, y finalmenet, en el fichero /etc/fstab se debería de añadir: (Los directorios home son opcionales)

proc /chroot/sid/proc proc defaults 0 0
proc /chroot/lenny/proc proc defaults 0 0
/home /chroot/sid/home none bind 0 0
/home /chroot/lenny/home none bind 0 0

A partir de ahora, para acceder a los nuevos sistemas, con
schroot -c lenny
schroot -c sid

accederíamos a cada uno de ellos (si no especificamos cual con -c, sería el que tuviera el alias de default) y para ejecutar algún programa, bastaría con:
schroot -c sid -p miro

Aunque esto tiene utilidad para el usuario final, hay ciertas características avanzadas, como el uso de snapshots en sistemas LVM, que son ideales para ser usados por desarrolladores de Debian... pero eso será otro capítulo.