LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 
Si alguna vez se ha encontrado en la tesitura de tener que reiniciar rápidamente una o varias veces, sabrá que no es un proceso muy rápido, especialmente si usted tiene dispositivos SCSI o de otro tipo de inicialización del sistema. Un paquete llamado kexec puede acelerar su reinicio - si usted entiende las reglas.

Kexec fue originalmente destinado a ser utilizado por el núcleo y el sistema de los desarrolladores que han tenido que reiniciar varias veces al día. Pronto, los administradores de sistemas de alta disponibilidad de servidores lo emplean también. Como los sistemas más avanzados se consiguen tiempos de arranque más eficaces, los usuarios finales pueden ahora beneficiarse de él.
El sistema es simple, y consta de dos partes: una kexec habilitado para el núcleo y el paquete de herramientas kexec. La mayoría de los núcleos soportan ya la funcionalidad kexec, pero si no ha encontrado una manera confiable de probar el soporte de kexec en el núcleo. Mi sugerencia es intentar que - si funciona, usted lo tenga y use. Si no es así, puede que tenga que compilar un kernel personalizado para obtenerlo. En cuanto a la segunda parte, puede obtener las herramientas de software kexec, ya sea desde su distribución de repositorio o desde la página del proyecto kexec.

Antes de que pueda ejecutar los comandos, hay algunas cosas que debería saber. Cuando se carga un nuevo kernel ejecutado por kexec se sobreescribe el actual núcleo con el núcleo que usted especifique. Si bien esto tiene el efecto de reiniciar el sistema rápidamente, también se salta el proceso que restablece la totalidad de su hardware a una "limpia" del Estado, que puede tener algunas consecuencias imprevisibles dependiendo del hardware que utilice. Por ejemplo, la tarjeta de vídeo en mi sistema es una vieja GeForce2 Go, y yo había estado utilizando el driver de Nvidia para ello. Después de usar kexec al reiniciar, el vídeo no funcionaba correctamente. Cuando cambia al driver de código abierto, el vídeo salió bien. Los resultados de este tipo pueden ser tan variados como los tipos de hardware que existen. Usted sólo tiene que ser consciente de la posibilidad de problemas en el caso de que algo suceda como no esperaba.

También es necesario saber que sólo kexec reinicia el núcleo - que no tiene ninguna atención de la limpieza, como cerrar aplicaciones o desmontar discos. Vamos a crear un script que se encargará de todo el proceso.

He puesto este script en /etc/init.d/reiniciar en Ubuntu. La mejor ubicación variará en función de su distribución. Yo recomiendo que esta parte de su sistema se encargue del procedimiento de reiniciar, sin embargo el script es una secuencia de comandos podría tener resultados inesperados. Cuando por primera vez experimentaron con kexec, he encontrado que la ejecución de kexec desde una línea de comandos que producen el comportamiento a veces errática y, a veces, mi sistema ha estado inutilizable temporalmente.

En el siguiente código, se realizó para iniciar el sistema, en negrita se resaltan las partes más importantes del archivo.

do_stop () {

UNAMER=`uname -r` # this checks the version of the kernel
#just to save typing

#This just puts all of the parameters for loading in one place

KPARAMS="-l " # tells kexec to load the kernel

# --append tells the kernel all of its parameters
# cat /proc/cmdline gets the current kernel's command line
KPARAMS=$KPARAMS"--append="`cat /proc/cmdline`" "

# this tells the kernel what initrd image to use
KPARAMS=$KPARAMS"--initrd=/boot/initrd.img-$UNAMER "

# this tells the kexec what kernel to load
KPARAMS=$KPARAMS"/boot/vmlinuz-$UNAMER"


# Message should end with a newline since kFreeBSD may
# print more stuff (see #323749)
log_action_msg "Will now restart"

if [ -x `locate kexec | grep sbin` ]; then # check for the kexec executable
kexec $KPARAMS # load the kernel with the correct parameters
sync # sync all of the disks so as not to lose data
umount -a # make sure all disks are unmounted
kexec -e # reboot the kernel
fi

#This next line should never happen.


reboot -d -f -i
}
Resto del artículo en linux.com

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías