viernes, 30 de septiembre de 2011

Gestión de espacio de memoria de intercambio (swap) en GNU/Linux.


¿Cuanto espacio para memoria de intercambio se debe asignar al sistema?


Menos de 1 GB RAMDoble de la cantidad total de memoria RAM.
Más de 1 GB RAMMisma cantidad del total de memoria RAM, más 2 GB.

Optimizando el sistema, cambiando el valor de /proc/sys/vm/swappiness


El núcleo de GNU/Linux permite cambiar con que frecuencia las aplicaciones y programas son movidas de la memoria física hacia la memoria de intercambio. El valor predeterminado es 60, como puede observarse al mirar el contenido de/proc/sys/vm/swappiness de la siguiente forma:

cat /proc/sys/vm/swappiness

Pueden establecerse valores entre 0 y 100, donde el valor más bajo establece que se utilice menos la memoria de intercambio, lo cual significa que se reclamará en su lugar el caché de la memoria. El valor predeterminado de 60, fue establecido teniendo en mente a quienes desarrollan el núcleo de Linux, con la finalidad de permitir realizar pruebas y diagnósticos.


Para la mayoría de los casos, conviene cambiar este valor por uno más bajo a fin de que el sistema utilice menos la memoria de intercambio, y utilice más la memoria cache. Ésta es una clase de memoria RAM estática de acceso aleatorio (SRAM oStatic Random Access Memory). Se sitúa entre la Unidad Central de Procesamiento (CPU) y la memoria RAM y se presenta de forma temporal y automática para el usuario proporcionado acceso rápido a los datos de uso más frecuente.

Un valor apropiado y que funcionará para la mayoría de los sistemas en producción es 10. En el siguiente ejemplo se aplica el valor 10 para el archivo /proc/sys/vm/swappiness.

echo 10 > /proc/sys/vm/swappiness
Para lo anterior, también se puede ejecutar el mandato sysctl de la siguiente forma:

sysctl -w vm.swappiness=10

Lo anterior devuelve una salida similar a la siguiente, confirmando que se ha aplicado el cambio:

vm.swappiness = 10
Este cambio en las variables del sistema de forma aplica inmediata hasta el siguiente reinicio del sistema. Para hacer que el cambio sea permanente, se edita el archivo /etc/sysctl.conf.

sudo nano /etc/sysctl.conf
Y se añade la siguiente línea:

vm.swappiness = 10

viernes, 23 de septiembre de 2011

Clonado de Discos y Particiones por Red con Terminal de Comandos GNU-linux.


Clonado de Discos y Particiones por Red con Terminal de Comandos GNU-linux .
FUENTE: http://www.vicente-navarro.com/blog/2008/12/07/usando-ntfsclone-y-dd-para-clonado-por-red-con-netcat/



Para empezar es bueno aclarar que, SSH es mucho más seguro y recomendable, pero si tienes que clonar un disco de 500 GB, tenemos que tener en cuenta el coste en tiempo procesador de encriptar y desencriptar los datos en ambos extremos. Si trabajamos sobre una red controlada, creo que podemos considerar razonable el usar el netcat.

A mí me gusta netcat para este propósito. netcat se autodenomina “la navaja suiza de TCP/IP”, y es verdad que lo es. De las varias implementaciones existentes, si usamos la original (cuyo autor es *Hobbit*) y leemos su README (en Debian/Ubuntu en /usr/share/doc/netcat-traditional/README.gz), veremos unos pocos ejemplos de sus posibilidades, suficientes para sorprendernos de la enorme versatilidad de esta herramienta.

En su forma más sencilla de uso, a mí me gusta ver a netcat como una tubería (pipe) que se extiende a otra máquina de la red. Por ejemplo, si hacemos:

sistema1 $ echo "Hola Mundo" | nc -q 0 -lp 2222
sistema2 $ nc sistema2 2222 | cat
Hola Mundo

es como si hiciéramos:

echo "Hola Mundo" | envia_por_red_a_sistema2 | cat

Para clonar una particion esta el comando dd que no dice absolutamente nada de cuanto lleva leído o escrito, hasta que finaliza. Como clonar un disco de muchos Gigabytes puede ser una tarea bastante larga, puede ser muy útil introducir entre los comandos de la tubería un pv para saber por dónde va la copia. El pv es un interesante comando que, usado en una tubería (pipe), copia directamente la información de la entrada estándar en la salida estándar y además nos informa del volumen de datos que ha movido por la tubería por la salida de error:

sisdest # nc -lp 2222 | pv | gzip -d -c | dd of=/dev/sda
sisorig # dd if=/dev/sda | gzip | pv | nc -q 0 sisdest 2222

En el ejemplo anterior, como hemos puesto el pv entre el gzip y el nc, medimos la tasa de datos comprimidos que enviamos a la red. Si lo comparamos con el informe que nos da el dd al final de su ejecución de datos escritos en el dispositivo (sin comprimir), podremos ver cuánto se han comprimido los datos antes de ser enviados por la red.

sisdest # nc -lp 2222 | pv | gzip -d | dd of=/dev/sda2sisorgi # dd if=/dev/sda2 | gzip | pv | nc -q 0 sisdest 2222

También podríamos poner el pv entre el dd y el gzip para ver qué cantidad de datos sin comprimir, de los que tiene el disco o partición, hemos procesado ya.

Sin embargo, si vamos a hacer esta operación de clonado de discos muy a menudo, tal vez nos interese probar si no nos interesa eliminar el comando gzip de las tubería de ambos sistemas remotos: Si los sistemas de ambos extremos no son capaces de comprimir y descomprimir datos a más velocidad de la que tiene la red, es muy posible que nos interese más enviar los datos por la red sin comprimir:

sisdest # nc -lp 2222 | pv | dd of=/dev/sda2
sisorig # dd if=/dev/sda2 | pv | nc -q 0 sisdest 2222

Por cierto, la diferencia en cantidades es porque dd usa Gigabytes y pv usa Gibibytes:

$ bc
52954352640/1000/1000/1000
52.9543526400
52954352640/1024/1024/1024
49.3175840377
Hay una forma de obtener estadísticas del trabajo que lleva hecho dd, y que está hasta documentado en la página de man de dd.

En otro terminal (en cada una de las máquinas) podemos hacer un “ps -ef | grep dd” para buscar el PID del proceso y luego, al hacer el kill, en el terminal donde habíamos lanzado el dd, encontraremos, en la salida de error, las estadísticas del trabajo hecho hasta el momento por dd:

sisdest # ps -ef | grep dd
root 23772 23745 5 19:24 pts/1 00:00:01 dd of /dev/hda
sisorig # kill -USR1 23772
sisorig # kill -USR1 23772

sisorig # ps -ef | grep ddroot 34675 24619 28 11:23 pts/1 00:00:05 dd if /dev/hdasisdest # kill -USR1 34675sisdest # kill -USR1 34675

sisdest # nc -lp 2222 | dd of=/dev/hda
340522+0 records in
340522+0 records out
174347264 bytes (174 MB) copied, 21.9449 seconds, 7.9 MB/s
363920+0 records in
363920+0 records out
186327040 bytes (186 MB) copied, 23.4599 seconds, 7.9 MB/s

sisorig # dd if=/dev/hda | nc -q 0 sisdest 2222
242172+0 records in
242172+0 records out
123992064 bytes (124 MB) copied, 17.1812 seconds, 7.2 MB/s
270881+0 records in
270881+0 records out
138691072 bytes (139 MB) copied, 19.0057 seconds, 7.3 MB/s

Para finalizar, comentar que si vamos a usar dd y gzip y vamos a clonar un mismo disco multitud de veces, nos puede interesar mucho llenar todos los espacios vacíos de los sistemas de ficheros del disco con ceros para que el gzip pueda comprimir lo máximo posible. Para ello, tendríamos que hacer en cada partición del disco un “dd if=/dev/zero of=ceros; rm ceros” o un sdelete.


.

La prohibición de la instalación de Linux y sus posibles consecuencias.


Ayer me llevé un buen susto cuando leí que en Microsoft estaban pensando en impedir por hardware que en determinados dispositivos se ejecutara un sistema operativo que no fuese Windows. ¿Es que finalmente iban a conseguir que instalar Ubuntu fuese imposible o ilegal de instalar?
Sin embargo, ahora no creo que Microsoft esté intentando perseguir el escritorio Linux que, a pesar de que cada vez cobra más relevancia, sigue sin representar una auténtica amenaza. El auténtico objetivo de esta posible medida es Android, que está alcanzando una primera posición en el mundo de las tabletas y desde donde podría hacer que Linux saltase al escritorio y acabase de una vez con la hegemonía de Microsoft.
Realmente dice muy poco de los equipos de desarrollo de Redmond no haber visto venir esta amenaza. En los diez últimos años, apenas han desarrollado tecnologías táctiles ni móviles, aparte de aquella mesa extraña que, aparte de quedar genial en las películas de James Bond, parecía tener unas aplicaciones muy limitadas.
Y en esta situación aparece Android, que en unos pocos años ha conquistado las tabletas y los móviles de la mitad del mercado. No sólo han sacado el producto al mercado, sino que también han tenido tiempo de pulirlo y mientras que en Google se dedican a unificar interfaces, en Microsoft las fragmentan. ¿Tres sistemas operativos, Windows 7, Windows Phone y Windows 8, para unos dispositivos que cada vez se parecen más, cuando su máxima fortaleza, parece que no lo saben, es proporcionarle al usuario una experiencia similar a lo que conoce?
Por tanto, para resolver este fiasco, es necesario llegar rápidamente al sector de las tabletas, pero ¿cómo se convence a unos usuarios de que su producto, mucho más caro, es mejor que el que ahora es popular y barato?
Probablemente la única solución que tengan es la que suelen emplear: invadir el mercado con productos subvencionados (hasta que se hagan con el mercado, claro) por Microsoft y fomentar la piratería para atraer a los usuarios que no quieren gastarse dinero. Visto así, tiene mucho sentido que intenten impedir que el usuario instale otros sistemas operativos en el dispositivo que, tal vez a cuenta de Microsoft, consiga a mitad de precio, ya que no les haría ninguna gracia que esta campaña que tanto les va a costar acabase disparando el número de usuarios de Android, si compran tabletas con Windows 8 sólo para instalarles después Android.
Aunque esta medida en principio pueda parecer inteligente, a la larga probablemente tendría consecuencias nefastas. Para empezar, seguiría hundiendo la ya muy dañada imagen de Microsoft. Además, si alguien en los jurados internacionales tiene un poco de sentido común podría acarrearle nuevas demandas por competencia desleal que, aunque los ganasen, podría retrasar su comercialización en varios países. Fomentar la piratería tampoco va a hacerles ganar las simpatías de la comunidad de pequeños desarrolladores que son los que han hecho que se hagan tan populares el iPad y Android. Por último, habiendo una comunidad hacker que ha conseguido incluso devolver la posibilidad de instalar Linux en la PS3, no sería de extrañar que alguien consiguiese desactivar rápidamente esta protección, por mucho que Microsoft se haya dedicado a contratar a golpe de talón a varios famosos hackers.
Tras haber derrotado a buena parte de la competencia con la estrategia de llegar antes al mercado y aprovechar momentos de transición, esta vez es Microsoft quien llega tarde y mal al mercado. Quién sabe, tal vez esta mala idea acabe siendo esa gran metedura de pata que acabará expulsándoles del mercado.

FUENTE: http://www.ubuntu-es.org/node/159935