miércoles, 9 de octubre de 2013

Redimensionado de un volumen fisico LVM2

A vueltas de nuevo con LVM2.

En esta ocasión necesitaba restarle 10GB al LVM para crear una nueva partición auxiliar para Windows.
El problema con el que me encontré es que las instalaciones por defecto meten el LVM en una única partición, esto no tiene porque ser un problema a menos que quieras recortarla y te encuentres que:

sda3 (139GB):  (primaria)
|| swap ||      home       ||    root               ||
3GB         86GB        50GB

Si quisiera haber recortado el espacio del root no habria tenido ningun problema al encontrarse al final del volumen físico pero al ser el home no podía realizar el pvmove, al seguir esta guia:

http://fedorasolved.org/Members/zcat/shrink-lvm-for-new-partition



El pvmove aun moviendolo en el mismo disco duro "pvmove --alloc anywhere" no te va a dejar debido a que los ultimos extents del lv_root estan alocados.
La única solución posible era tirar de un disco externo y pvmove el home a este, pvmove el root al espacio del home antiguo (ahora hueco), redimensionar la particion sda3, crear una nueva particion y adjuntarla al LVM y pvmove el /home a esta.  Finalmente opté por mover ambos volumenes, por considerarla mas "segura e intuitiva". (ver resumen final)
Para realizar estos cambios me he apoyado de un live-cd de Fedora 16 que tenia rondando de este sistema (ordenador para la universidad ,que ya va por Fedora 19) a la cual le instalé gparted y sobretodo system-config-lvm (por una vez opté por hacerlo de forma gráfica) para adjuntar el volumen externo y realizar los pvmove.
Al final el resultado ha sido (le recorté un GB al swap, tengo 1,5GB de RAM y 2 máximos permitidos):

sda3 (53GB): (primaria)
|| swap ||         root      ||
2GB             51GB
sda5 (74GB): (extendida)
||               home              ||
                74GB

¿Que he aprendido?
  • Que existe el system-config-lvm, incluso los system-config-...
  • Que es aconsejable meter cada volumen fisico en una partición o por lo menos los volumenes mayores en una partición aparte con el facilitar posibles cambios de tamaño en particular las reducciones.
  • El uso de pvmove.
  • Que en LVM es bastante robusto, le he realizado bastantes cambios al sistema y no se ha visto afectado.
  • Que el lvresize no comprueba el espacio disponible y puedes redimensionar el volumen logico a 76e/E (Exabytes) si quieres (pensaba que significaban Extents :P ).
Por mero resumen histórico, el resumen de comandos ha sido (mas o menos):
1-Arrancar con live-cd
2-Adjuntar disco externo USB, particionarlo y añadirlo al grupo de volumenes.
3-pvmove con system-config-lvm las particiones home y root
4-pvmove root de vuelta a sda3
5-resize2fs -p /dev/vg_uni/lv_root 51G
6-lvm lvresize /dev/vg_uni/lv_root --size 51G

7-lvm pvresize /dev/sda3 --setphysicalvolumesize 51G
(realizar calculos de sectores en sda3)
8-parted /dev/sda rm  3
 parted /dev/sda mkpart primary 21508096s 132722688s (comprobando bien la suma...)
parted /dev/sda set 3 lvm on
parted /dev/sda print
fsck -fCv /dev/vg_uni/lv_root 
(aumentamos hasta el sobrante)
9-lvm lvresize /dev/vg_uni/lv_root -L +57 (le agrego los libres) tambien podria ser lvresize /dev/vg_uni/lv_root -L +100FREE
10-resize2fs -p /dev/vg_uni/lv_root
11-fsck -fCv /dev/vg_uni/lv_root

Y ahora con el gparted crear una extendida con el espacio libre y dentro una de 74GB (lvm ext4) y otra de 10GB (ntfs).
1-Seguidamente adjuntar la extendida ext4 (sda5) y pvmove el home allí con system-config-lvm
2-Ocupar los posibles libres.
3-Desajuntar el disco externo USB del grupo de volumenes y quitarlo de LVM con system-config-lvm.

Y listo, no he tenido que tocar nada en grub, fstab ni en ningun fichero de LVM (quizás por haber conservado /root en sda3, la verdad no me quita el sueño :D).
Logicamente sino hubiera utilizado pvmove no se hubieran conservado los UUID y entonces si habría que realizar cambios.

jueves, 24 de marzo de 2011

Chuletillas linuxeras varias

Voy a poner un par de chuletas a modo de recordatorio/ayuda a posibles usuarios que he estado usando estos dias (debian squeeze):


Compilar unos modulos sueltos del kernel. 

Resulta que a veces, quieres habilitar alguna funcion nueva en el kernel que no estaba por defecto o simplemente modificastes el kernel y quieres que coja los cambios.
Por ejemplo en este caso, mi cpu no era capaz de cambiar la frecuencia del procesador dinamicamente segun la carga del sistema, para ello necesitaba modificar el p4-clockmod para que cargara en mi cpu (pentium celeron M). Tras el cambio pertinente (establecer policy->cpuinfo.transition_latency = 10000000):


  1. Agregar los cambios al .config, bien sea con make menuconfig o simplemente con el vim, en el caso de que no estuviera ya cargado el modulo. 
  2. make modules_prepare
  3. make SUBDIR=arch/x86/kernel/cpu/cpufreq/ modules
  4. make SUBDIR=arch/x86/kernel/cpu/cpufreq/ modules_install
Y listo: modprobe p4-clockmod

Tras varias pruebas, le he puesto 800 Mhz de frecuencia minima (1,6Ghz) y me ahorro buena parte de la bateria,ventiladores sin notar ninguna perdida de rendimiento (es lo que tiene usar Linux).

Compilar el kernel

#make menuconfig
#make clean (si es necesario)
#make-kpkg --initrd kernel_image kernel_headers
#dpkg -i ../*.deb (los correspondientes ...)


Desactivar el swap

Tengo 1,5 gigas de ram y no me hace falta tirar de swap practicamente nunca (WindowMaker,mocp,aterm...) y tenia un volumen de 2 gigas de swap. Decidí desactivarlo y quedarme con ese espacio para mis cosas (aparte de desactivarlo directamente en el kernel...).


#swapoff /dev/squeeze/swap
#lvdisplay /dev/squeeze/swap

#lvremove /dev/squeeze/swap
#vi /etc/fstab ...

Y listo 2 gigas mas para repartir para el sistema, aparte de asegurarme que siempre tire de ram.
No olvidarse que para que coja mas de 1Giga de RAM hay que activada la opcion de highram en el kernel (gloriosos 640Kb :D).


Usar el autogroup

Se trata de una funcionalidad que utilizando los cgroups, agrupa por defecto los procesos por tty, haciendo que a nivel de desktop aumente una barbaridad la justicia del reparto del timing en el planificador.Especialmente para gente que usar el ordenador en tarias pesadas. En mi caso ya he compilado el kernel 6 veces (estoy de experimentos) desde que lo uso y es una gozada comprobar como puedes realizar tareas pesadas y seguir usando el sistema como si nada.


Para ello simplemente hay que usar un kernel del 2.6.38 en adelante.


Pasar de ext3 a ext4 un sistema de ficheros

En mi caso está operación la realizé en un filesystem de 250 Gigas al 82%.

Simplemente (importante cada paso...):

#umount /home/datos
#fsck.ext3 -pfv /dev/squeeze/datos
#tune2fs -O extents,uninit_bg,dir_index /dev/squeeze/datos

#fsck.ext4 -yfD /dev/squeeze/datos
#vi /etc/fstab (muy importante el noatime para que se olvide de la fecha de ultimo acceso ...)
 /dev/squeeze/datos /home/datos ext4 defaults,noatime 0 2
#mount /home/datos






Y listo a disfrutar del ext4...
Es importante recalcar que los ficheros antiguos seguiran usando ext3 hasta que no se "actualizen" Se pueden utilizar trucos como usando chattr +e sobre ellos para decirle que usen los extents y con ello se pasen a ext4 pero en mi caso tras hacerlo con unos cuantos miles de fichero me dejó el volumen echo un cristo y tuve que tirar de fsck intensivos, reparando un monton de inconsistencias y preferí dejarlo a medias, los nuevos archivos sin problemas... :D



Ampliar un volumen logico

Esos 2 gigas que me sobraban del swap decidí repartirlos, de momento le puse 1Gigas al volumen root /, con el fin de poder compilar tranquilamente los kernels (procedimiento de memoria).

Para aumentar un volumen, el procedimiento se hace al contrario que para reducirlo por motivos "logicos".
Quiere decir, para aumentarlo primero hay que aumentar el volumen y despues el sistema de ficheros y para reducirlo hay que reducir primero el sistema de ficheros y despues el volumen, es completamente lógico si conoces como funciona un poco  la historia.
Tambien he de decir que para aumentarlo no hace falta desmontar el volumen, siendo necesario este paso para disminuir sin embargo.

Pues bien para aumentarlo basicamente, ver cuanto hay libre en el grupo:

#vgdisplay squeeze:
....
  Free  PE / Size       611 / 2,61 GiB

#df -h /

Tenemos mas de 2 gigas libres en el grupo de volumenes, vamos a darle 1 gigas al volumen /.

#lvresize -L +1G -v squeeze/root

Despues ampliar el FS (no lo vayas a hacer al reves que la lias bien liada ...). Simplemente le decimos que se expanda al tamaño del volumen (tamaño maximo):

#resize2fs -p squeeze/root

#df -h /


Y listo.
Lo dicho, unas chuletillas a modo de recordatorio de como repartir espacio entre volumentes, re/compilar el kernel, activar autoescalado del procesador y pasarse a ext4...



Un saludo!

jueves, 3 de marzo de 2011

Pasando página

Ha decir verdad, tengo varias cosas en el tintero que deberia/podria publicar pero la falta de ganas de escribir pueden con ello.

Se podría decir que he estado estos dos ultimos años aprendiendo ingles casi a tiempo total y la verdad el resultado ha sido espectacular, tanto a nivel personal como profesional.
Hablo con fluidez,calculo que conozco 25k de las 40k palabras (antes andaria por las 8k), entiendo perfectamente "normalmente" y he aprendido muchisimo sobre la cultura anglosajona (EEUU,UK,Australia,Singapur...).

Mi próxima meta, es la realización de un sueño que primeramente exigía aprender ingles.
Desde hace 10 años, que empecé con la informática y con el mundo GNU/Linux, he soñado en poder algun dia entender completamente como funciona un SO, poder explicar con todo lujo de detalles que está realizando el SO e incluso contribuir a nivel mundial parcheando el kernel.
En una palabra, convertirme en un kernel hacker. :)


Y ese es mi nuevo proyecto, para los años venideros. De momento estudiando y mejorando muchos conceptos con muchas ganas.

Entre otras cosas, he aprendido estos ultimos años que es necesario plasmar tus conocimientos/trabajo bajo dominio público con el fin de que las empresas puedan valorarte objetivamente.

Con el fin de ponerme en contacto con el software libre tengo en mente realizar los próximos trabajos:

-Vimperator: Publicar los plugins personales y desarrollar el manejo de varias ventanas por pestaña.
-rt73: Implementar el autosuspendido del driver usb cuando no está en uso y eliminar la race condition que hace que cuelgue el SO cuando se desconecta y conecta fisicamente el adaptador.
-mocp: Soporte para flac y que al guardarse la playlist y falle al leer un tag salta al siguiente track, asi como un comando para realizar esto en cualquier momento, no únicamente al salir.
-Escribir/colaborar/leer constantemente acerca de temas propios de los SO's, kernel tuning y estar al tanto de las novedades dentro del kernel.

Todo esto es posible que lo realize en un blog aparte, únicamente para temas profesionales, pues este es de caracter general e impersonal.


Como dice el dicho:
"Ten cuidado con lo que deseas porque puede que se cumpla".

domingo, 7 de noviembre de 2010

Almeria - Alhabia - Almeria (80 kms)

Pues estoy cogiendo un poco de forma de nuevo, despues de este ultimo año de parón absoluto bicicletero.


Llevo mas o menos un mes de toma de contacto y como 8 salidas ya, pero la de este sabado ha sido la mas dura con diferencia.

Tenia pensado hacer un ruta llamada ruta de la piedad-seca cogida del wikiloc pero el track estaba cortado al llegar a las canteras de benhadux y cuando me volvia me cruzé con dos ruteros mas, me uní a ellos y para que quise mas. :D

La cosa termino muy malita finalmente para mi maltrecha forma fisica actual y la verdad los ultimos 30 minutos los pase bastante mal.


Necesitaba comer y estirar un poco, pero esta gente ni paraban, ni comian ni bebian agua apenas (un botellin cada uno). :D
El año pasado tendría un pase pero este año, esta ruta a ese ritmo me resulto dura finalmente.



En fin, sudiba desde Almeria a Alhama y despues Alabia, Santa Fe y vuelta a almeria.
Parandote, comiendo y estirando de vez en cuando se pasa bien pero desentrenado y a ritmo ajeno la cosa cambia. :D
 







Lo dicho, buen ritmo, buen desnivel acumulado y no dejeis que los niños salgan solo al monte. :P

PD: Fotos no hay, ni una. :D

Un saludo!

lunes, 25 de octubre de 2010

Jugando con LVM2 en Debian

Este post va a tratar sobre como trabajar con el LVM2 en la consola de tal modo que puedas crear,formatear y redimensionar los volumenes lógicos existentes en tu instalación.

La situación era el siguiente:
-Disco 320 Gigas
-Particion /dev/sda2 319Gigas
  • Particiónado por defecto en lenny con LVM2 y cifrado en el grupo de volumenes. 
  • Volumen lógico  /dev/lenny/home de 280 Gigas.
  • Dentro del volumen de home tengo mas de 200 Gigas ocupados con datos.
  • Cuando arrancaba y habia sobrepasado el limite de montajes sin chequeo, tenia que esperar a que realizara el fsck para 280Gigas(como 8 minutos).
  • Necesidad/ganas de refrescar el trabajo con LVM. :)


Básicamente, mi idea era separar los datos brutos en un nuevo volumen y dejar otro únicamente para los datos de usuario(25 Gigas).


Pues bien una serie de puntos sencillos que has de saber antes de reducir un volumen lógico:

  • Primero se reduce el sistema de ficheros y despues el volumen lógico. En caso contrario se pierden los datos sobrantes del volumen lógico.
  • No se puede reducir menos del espacio libre en el volumen (suena lógico ...)
  • Si el volumen está cifrado no hace falta realizar ninguna operación especial, puesto que el propio modulo,al estar cargado y el sistema arrancado, se encarga de "activar el cifrado" al crearlos
  • Debe de estar desmontado lógicamente

El estado inicial era este (df -h /home):

 S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/lenny-home
                      283G  219G   51G  82% /home
Y el estado final ha sido este (df -h /home/liloman /home/datos /home):

S.ficheros          Tamaño Usado  Disp Uso% Montado en
/dev/mapper/lenny-liloman
                       25G   11G   13G  47% /home/liloman
/dev/mapper/lenny-datos
                      254G  201G   41G  84% /home/datos
/dev/mapper/lenny-home
                      4,0G  137M  3,7G   4% /home

Quiere decir, el volumen home lo reducí hasta 254 (espacio final despues de reservar para los i-nodos) y cree un nuevo volumen de 25 gigas. 

Os pongo el resumen de comandos pues (como root en tty1 o modo single user):

(Reduzco el volumen home con cuidado)

umount /home
e2fsck -v -f /dev/lenny/home
resize2fs -p /dev/lenny/home 258G  (tarda bastante)
lvreduce -L 258G -v /dev/lenny/home
e2fsck -v -f /dev/lenny/home


(creo el nuevo volumen liloman en el grupo de volumenes lenny)

lvcreate -L25G --name liloman lenny
mk2fs -j -L liloman /dev/lenny/liloman

Con esto ya habia reducido y preparado minimanente los cambios. Me faltaba cambiarle nombre al antiguo "home" por "datos",crear el nuevo volumen "/home", ajustar el fstab y finalmente mover los datos entre ellos .

  1. lvrename /dev/lenny/home datos
  2. lvcreate -L4G --name home lenny 
  3. mk2fs -j -L home /dev/lenny/home
  4. vi /etc/fstab 
/dev/mapper/lenny-home /home ext3    defaults  0  2
/dev/mapper/lenny-liloman /home/liloman ext3 defaults 0  2
/dev/mapper/lenny-datos /home/datos   ext3   defaults 0  2
  5. mount /home ; mkdir /home/liloman /home/datos; mount /home/liloman /home/datos

  6. cd /home/liloman; mv -v !(Datos|Datos2|Informacion|Fotos) /home/datos; ln -s /home/datos/*
  

¡Y Voila!


Las ganancias obtenidas son las siguientes:
  1. Ganancia en velocidad de acceso, administración y organización.
  2. Ganancia en el fsck, debido a que se puede o bien programar un chequeo o bien anularlo y hacerlo manual sin tener que prescindir de iniciar tu sesion como usuario. Desmontando previamente el volumen claro está.
  3. Ganancia en proximas ampliaciones, puesto que para realizar un backup del volumen de datos solo tengo que crear un volumen snapshot en un disco externo o mejor todavia un volumen espejo ...
  4. Refresco en el manejo de LVM. :P

Futuras mejoras:
  1. Tunning del sistema de ficheros (ext3) para el volumen de datos para el tamaño medio de los archivos (algo se puede ganar con algo de magia).
  2. Cambio del sistema de ficheros (¿XFS?) y mirar sistema de ficheros "de batalla" (escritura y borrado facil)
  3. Sistema de "backup automático" con un disco externo por medio de LVM del volumen datos.
  4. Adaptar el tiempo de chequeo con tune2fs de todos los volumenes (lo tengo puesto a 15 dias juraria pero tengo que repasarlo)
  5. Backup online del volumen liloman o almenos los archivos de configuración esenciales de este.(GNUstep,bash*,Scripts/,...) :D 
  6. Reducir los 2Gigas de swap que me metio la instalación y repartirlo al volumen mas necesitado. :D
  
Todavia me queda 1Giga libre que ya le daré uso, posiblemente como volumen de benchmark de próximos sistemas de ficheros. :P 


Esto es todo amigos. :D
He intentado ponerlo lo mas sencillo e explicado posible, no entro en detalle sobre las virtudes del LVM, que este no es el proposito de este minitutorial.

martes, 11 de mayo de 2010

Welcome to Lagos

Ha caido en mis manos esta maravillosa serie de reportajes sobre un proyecto de modernización que quiere llevarse a cabo en Nigeria(Lagos) y como afecta este a la vida de la gente que vive en los suburbios.

La verdad, los recomiendo altamente por:
  • Trata de Africa
  • Trata de Nigeria
  • Muestra el caracter nigeriano con bastante fidelidad
  • Tremendamente humano

 Son 3 episodios cada uno de una hora en megavideo (yo tengo cuenta en megavideo). En el primero tratan sobre la gente que vive en el vertedero de basura, en el segundo del enorme suburbio contruido con la basura de los vertederos en el mar y el tercero de la campaña de remodelación del gobierno y de como afecta esta a un suburbio costero de Lagos.

Como bien comentan los reporteros, esperaban encontrarse con personas sin ningun tipo de moral y se encontraron personas de alta condición humana.
Es impresionante la dureza de la vida allí y el como afrontan esta en Nigeria.


Son en ingles pero no son dificiles de entender y cuando hablan los nativos suelen poner subtitulos.


Primero

Segundo

Tercero

viernes, 5 de marzo de 2010

Starsailor

Un poquito de Folk.

Con solo 3 discos en el mercado y mucho talento, para mi son un buen grupo sin lugar a dudas.

Me encanta el folk, en especial por el mensaje y por la melodia y este grupo es uno de mis favoritos sin duda.

Poor Misguided Fool (Pobre tonto equivocado)



Sylence is easy (Deja de prejuzgar)



Lo que mas me atrae de este grupo, es su melancolia e incapie en los constumbres.


Me encanta llevarlos puestos en la calle con unos buenos cascos.