Documente Academic
Documente Profesional
Documente Cultură
PEC 1
Por:
EDUARDO ALEJANDRO GALLO
Armenia Colombia
2015
Contenido
Pregunta 1 El Ncleo ..................................................................................................... 3
Ejercicio a - Actualizacin automtica Kernel ................................................................ 3
Ejercicio b Anlisis mdulos kernel ............................................................................ 3
Anlisis de los mdulos .............................................................................................. 3
Anlisis de los aspectos vinculados a los mdulos ..................................................... 5
Ejercicio c Anlisis - Udev .............................................................................................. 6
Mecanismo de reconocimiento y gestin de dispositivos udev ................................. 6
Creando un nombre predeterminado para un disco USB........................................... 7
Ejercicio d Configuracin personalizada del Kernel. ...................................................... 8
Ejercicio e - Informe configuracin ncleo .................................................................... 9
Ejercicio f comparacin ncleo antiguo y nuevo ......................................................... 10
Pregunta 2 -Virtualizacin .............................................................................................. 11
Ejercicio a- mquina virtual KVM ................................................................................ 11
Ejercicio b - mquina virtual qemu.............................................................................. 13
Ejercicio c - Rendimiento mquinas virtuales .............................................................. 14
Ejercicio d - Benchmark Phoronix ............................................................................... 15
Ejercicio e - Tunning mquinas virtuales ..................................................................... 16
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Pregunta 1 El Ncleo
En este ejercicio se trabajar con el ncleo de GNU/Linux, haciendo algunas comprobaciones y
compilando/instalando un ncleo nuevo.
Determinar la versin actual del ncleo instalada en la distribucin de trabajo y obtener informacin sobre si
existe alguna nueva versin del mismo (ltima estable 4.2.1) con las herramientas de gestin de paquetes. En caso
que exista en la distribucin utilizada realizar la actualizacin correspondiente.
Los ejercicios se realizaran en la distribucin deban 8 jessie, instalada como mquina virtual.
En ese caso de que se encontrara una versin actualizada se podra instalar usando cualquiera de los comandos:
apt-get install nombre-kernel o aptitude install nombre-kernel.
https://www.reddit.com/r/debian/comments/365tha/upgrading_to_kernel316_on_jessie/
Analizar todos los mdulos cargados y generar una tabla donde indique el mdulo, que dispositivo controla o qu
servicio presta, exporta cada mdulo (en caso que sean muchos de deber poner un resumen de los ms
importantes explicando la metodologa para obtener esta informacin). Analizar todos los aspectos vinculados a
los mdulos haciendo ejemplos de verificacin, insercin, eliminacin y configuracin (p.e. alias).
Esta es la informacin resumida de algunos de los mdulos con mayor nmero de cargas en el sistema.
-Modulo: evdev -Modulo: snd
filename: /lib/modules/3.16.0-4-amd64/kernel/drivers/input/evdev.ko filename:
description: Input driver event char devices /lib/modules/3.16.0-4-amd64/kernel/sound/core/snd.ko
depends: description: Advanced Linux Sound Architecture driver for soundcards.
-Resumen smbolos exportados evdev description: Jack detection support for ALSA
Nmero total de smbolos exportados: 26 depends: soundcore
evdev_poll -Resumen simbolos exportados snd
evdev_cleanup Numero total de simbolos exportados: 775
evdev_disconnect compat_SyS_msgsnd
evdev_fasync compat_sys_msgsnd
evdev_free do_msgsnd
evdev_flush SyS_msgsnd
------------------------------------ sys_msgsnd
security_msg_queue_msgsnd
------------------------------------
-Modulo: sunrpc -Modulo: usbcore
filename: /lib/modules/3.16.0-4-amd64/kernel/net/sunrpc/sunrpc.ko filename: /lib/modules/3.16.0-4-amd64/kernel/drivers/usb/core/usbcore.ko
depends: depends: usb-common
-Resumen simbolos exportados sunrpc -Resumen simbolos exportados usbcore
Numero total de simbolos exportados: 669 Numero total de simbolos exportados: 447
rpc_default_callback usb_dev_prepare
call_start __find_interface
rpcproc_encode_null __each_dev
rpcproc_decode_null usb_dev_restore
rpc_setup_pipedir_sb usb_dev_thaw
call_reserve usb_dev_resume
http://docencia.ac.upc.edu/FIB/grau/SO2/documents/tema7.pdf
http://www.fing.edu.uy/inco/cursos/tso/teorico/TSO-Modulos.pdf
https://wiki.archlinux.org/index.php/Kernel_modules_%28Espa%C3%B1ol%29
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Analizar el mecanismo de reconocimiento y gestin de dispositivos udev (se deber analizar cmo funcionan,
cmo coexisten y cmo se configuran). Mostrar cmo se gestionan las reglas y demostrarlo creando un nombre
predeterminado para un disco USB (p.e. Para que cuando se inserte el usb en particular se mapee como
/dev/usb_disc i no como /dev/sdx).
Mecanismo de reconocimiento y gestin de dispositivos udev
Udev gestiona los nodos de dispositivo en el directorio /dev y tambin todos las acciones en espacio de usuario
cuando se aaden o eliminan dispositivos, cada vez que se produce un cambio en la estructura de los dispositivos,
el ncleo emite un uevent que se detecta mediante el demonio udevd, a continuacin sigue las reglas declaradas
en los directorios /etc/udev/rules.d, /run/udev/rules.d y /lib/udev/rules.d. Basndose en la informacin contenida
en el evento (subsistema del kernel, conector fsico usado, nombre dado por el kernel, nmero de serie,
fabricante, entre otros) busca la regla o reglas que necesita ejecutar y realiza las acciones requeridas. Estas
acciones pueden consistir en la creacin o eliminacin de ficheros de dispositivo, pero pueden suponer tambin
la carga de ficheros de firmware particulares en la memoria del ncleo.
Las definiciones de las reglas se almacenan en dos localizaciones:
/lib/udev/rules.d/. Las reglas en este directorio son instaladas por determinados paquetes, normalmente los
usuarios no deberan cambiarlas.
/etc/udev/rules.d/. Este directorio es para las reglas especificadas por los usuarios finales. Cualquier nueva regla
se debe aadir en este directorio
En estos directorios se recorren en orden alfabtico mltiples ficheros de reglas (con el sufijo .rules), udev buscar
expresiones que concuerden con un uevent, el estado definido y la orden a ejecutar.
La concordancia del evento se basa en informacin como:
Verificamos que tenemos una memoria Sandisk Cruzer Blade de 8.00 GB. En /dev/sdb1
Usamos el comando udevadm info a /dev/sdb1 para extraer alguna informacin particular que permita
identificar al dispositivo, puesto que la salida del comando es muy extensa solo se presenta la primera parte, de
donde extraemos ATTR{size}=15633408 como atributo para identificar esta memoria en particular.
Ahora procedemos a crear la regla usando esta informacin, para ello creamos el fichero alejousb.rules en la
carpeta /etc/udev/rules.d/ con la siguiente regla.
La memoria se identific como sdc pues haba ya una memoria conectada a la cual se le asignno sdb, el nombre
usb_disc se vincul correctamente como se esperaba.
http://www.reactivated.net/writing_udev_rules.html#example-usbhdd
http://www.vicente-navarro.com/blog/2007/03/29/creacion-de-reglas-udev-para-personalizar-el-nombre-de-los-ficheros-
de-dispositivo-de-las-memorias-usb/
https://wiki.gentoo.org/wiki/Udev/es#Configuraci.C3.B3n
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Instalar el cdigo fuente del ncleo de la versin estable ms nueva disponible (en Kernel.org la 4.2.1), configurarla
para seleccionar nicamente el hardware disponible en la mquina de trabajo prestando atencin al procesador
(32-64 bits) y dispositivos hardware (red, discos, audio, tarjeta grfica, etc) -drivers- y considerar que opciones de
seguridad se deben configurar (AppArmor, SELinux, Smack, Tomoyo, ) -justificar el porqu de la seleccin y
recordar que solo se puede configurar uno de estos mdulo- .
Consultando en Kernel.org la
versin ms actualizada es la 4.2.3
la descargamos en la carpeta
/usr/src , luego la
descomprimimos para realizar la
compilacin e instalacin.
Descomprimimos el paquete e ingresamos al directorio
donde iniciaremos con el proceso de configuracin,
limpiamos con
make mrproper.
Para configurar usamos make xconfig, prefer esta opcin pues es ms usable permite buscar y visualizar
rpidamente la ayuda de cada opcin a configurar, al ejecutar el comando automticamente carga la
configuracin del kernel anterior lo que facilita en gran medida la configuracin.
Puesto que hay una gran cantidad de opciones
por configurar no centramos en eliminar lo
que no se encuentra en el sistema y lo que no
se va a usar para ello exploramos el hardware
instalado con el fin de tener una idea de lo que
se debe dejar en el kernel.
Usamos la utilidad lshw short que nos da un
resumen de los dispositivos configurados
actualmente, tambin revisamos los mdulos
cargados verificando aquellos que no son
usados y que podemos eliminar.
Como modulo e seguridad se eligi Apparmor,
este es efectivo, fcil de configurar y
administrar, protege el sistema proactivamente de amenazas externas e internas, las polticas definen que
recursos del sistema y privilegios pueden acceder las aplicaciones.
Algunas ventajas de Apparmor son: polticas de fcil auditoria, disponibilidad de herramientas y GUI, rpida curva
de aprendizaje, fcil de usar, proporciona un nivel de seguridad suficiente.
Continuamos con el proceso de compilacin, se ejecuta el comando make deb-pkg clean -j8 se inicia con el
proceso de compilacin en este comando se indica que para el proceso se pueden usar los 8 ncleos del
procesador. Finalizado se procede a instalar el kernel compilado nos ubicamos en la carpeta superior /usr/0. y
ejecutamos el comando dpkg i Linux-image 4.2.3_4.2.3-1_amd64.deb Linux-headers-4.2.3-1.deb, con esto
finalizamos la instalacin y solo debemos reiniciar.
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Verificamos la nueva
versin del ncleo
https://operativoslinux.wordpress.com/2015/04/16/instalar-el-kernel-4-0-debian-style/
http://users.wowway.com/~zlinuxman/Kernel.htm
http://man.chinaunix.net/linux/debian/reference/ch-kernel.es.html
https://en.wikipedia.org/wiki/Linux_Security_Modules
https://es.wikipedia.org/wiki/AppArmor
https://es.opensuse.org/AppArmor
En general se desactivan el soporte para Wireless, bluetooth, wimax, pcmcia, infrared, algunos sistemas
de fichero no usados , soporte puerto paralelo, misc device.
En Network device suport desactivamos HIIPI, FDDI, surfboard1000, virtualizacin net opcin, fiber
chanel, Eql, atm drivers, solo se dejan driver Intel, Ethernet driver support.
Se deshabilita usb network adapters, wireles lan, wimax, ieee802.15, isdn.
Input device suport, se desactiva todo menos mouse y teclado, (toushcrens, miselaneous, joystics)
Se desactivan drivers de sonido que no se usaran solo se dejan los intel ac97, driver de red que no se
usaran solo se dejan Intel, se desactiva usb sound devices, firewire, pcmcia, Pci soud devices, entre otros.
Se desactiva usb dsl modems, accesibility suport, imnfniband suport, todo el soporte para virtualizacin,
plataform suport for chorme hardware, Disable industrial i/o support.
Se deshabilitan la mayora de las opciones para procesadores AMD, se deshabilitan drivers de video no
usados.
Este proceso se repiti varias veces puesto que algunas de las configuraciones realizadas no permitieron que
iniciara el sistema operativo, seguramente por desactivar algn modulo necesario para el funcionamiento del
mismo, se fue puliendo hasta lograr el objetivo.
http://www.makelinux.net/ldd3/
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Sobre el nuevo ncleo analizar los mdulos cargados y sus diferencias con el anterior y verificar aspectos bsicos
de funcionamiento (red, dispositivos hw, y comandos como time ls -R / que consuman gran cantidad de tiempo y
recursos) y que mejoras ha aportado esta nueva compilacin del ncleo (medida del mismo, adecuacin al HW
disponible, inclusin/no inclusin de aspectos de seguridad, tiempo de arranque, etc.).
Inicialmente se percibe que el sistema inicia un poco ms
rpido no es una gran diferencia es solo cuestin de unos
4 segundos en comparacin con el kernel anterior
Todos los dispositivo de hardware se reconocen
correctamente lo cual se verifica con el comando lshw
obteniendo un resultado muy similar al del kernel
anterior, un pequeo cambio en los puertos scsi lo cual
no modifica en nada el funcionamiento.
Con respecto a los mdulos podemos verificar que no se
cargan aquellos que no se necesitan ejemplos pcskr,
joydeb, entre otros.
La red funciona correctamente, la navegacin por las distintas partes del sistema se percibe un poco ms fluida.
En cuanto a el tamao del kernel al desactivar gran cantidad de opciones que non se utilizan es menor incluso
teniendo en cuenta que por ser un kernel ms actualizado tiene ms lneas de cdigo, su tamao es menor que el
kernel anterior, esto lo verifique ejecutando el comando para desinstalarlo all se puede ver el espacio que ser
liberado para cada versin.
Se ejecut el comando time ls R / para verificar el rendimiento, obteniendo los siguientes resultado,
verificamos que el rendimiento es muy similar con diferencia de unos pocos segundos ms rpido el kernel 4.2.
Pregunta 2 -Virtualizacin
Puesto que trabajaremos con kvm Instalamos todas las herramientas necesarias usamos el comando
apt-get install kvm qemu-kvm libvirt-bin virt-viewer virt-manger, con las siguientes instrucciones permitimos el
uso de mquinas virtuales al usuario adduser alejo libvirt, adduser alejo kvm.
Verificamos que los mdulos correspondientes para el funcionamiento de las maquinas se encuentren cargados.
Ahora podemos crear la mquina virtual, usaremos un sistema operativo Ubuntu versin 12.04, mediante la
utilidad virt-install, la cual permite elegir varios parmetros de la mquina virtual y crear el disco imagen
automticamente.
Se crea una mquina virtual llamada ubuntu con 1024mb de ram, 1 ncleo cpu activado, virtualizacin kvm,
conexin por consola grfica, video qxl (fue necesario pues en la configuracin por defecto se presentaban
problemas con la carga de la interfaz grfica), la imagen del disco se guardara en
/home/alejo/driverimag/ubuntua.img de 8gb, reservada dinmicamente, la imagen de instalacin se encuentra
en /home/alejo/descargas/ubuntu-12.04-desktop-i386.iso
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Este comando crea la mquina y abre el virt-viewer donde se puede continuar con el proceso de instalacin,
finalizado el proceso se carga el sistema, para configuraciones adicionales utilizamos el virt-manager.
Se realizaron pruebas con varios sistemas operativos encontrando problemas en la carga de la interfaz grfica por
lo que se debi configurar el controlador de grficos por QXL, lo cual soluciono los inconvenientes.
Se muestra capturas de pantalla de la mquina virtual y la ejecucin de algunos comandos en ella, al igual que en
el host.
uname a en el host y en la mquina virtual
https://wiki.debian.org/es/KVM
http://proyectosbeta.net/2015/06/instalar-kvm-en-debian-jessie/
http://wiki.libvirt.org/page/Networking
Repetir el ejercicio anterior de construir una mquina virtual utilizando Quemu en modo emulacin (es decir sin
utilizar la interfaz hardware especfico del procesador).
En este modo de emulacin se presenta un rendimiento muy bajo su funcionamiento es extremadamente lento
al punto de no poder cargar la mayora de los instaladores con los que se prob, se logr completar la instalacin
de una imagen de Linux-mint de 32 bits.
Crea una mquina virtual llamada mintqemu con 1024mb de ram, 4 ncleos cpu activados, virtualizacin qemu
conexin por consola grfica, video qxl, la imagen del disco se guardara en
/home/alejo/driverimag/mintqemu.img de 8gb, reservada dinmicamente, la imagen de instalacin se encuentra
en /home/alejo/descargas/linuxmint-17-cinnamon-32bit-v2.iso
El proceso de instalacin en comparacin con el punto anterior es muy lento tardo varias horas, la interfaz grfica
fue difcil de manejar por lo que para las pruebas se us la consola.
Comando uname -a
Comando ping
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Comando top
http://manpages.ubuntu.com/manpages/lucid/man1/virsh.1.html
Realizar pruebas de rendimiento ejecutado diferentes comandos (p.e ls -R /, find / -name * -print, reproduccin
de streaming de vdeo) sobre las dos mquinas virtuales y sobre la mquina host.
(Utilizar el comando time para determinar el tiempo utilizado en ejecutar el comando y realizar las comparaciones
entre las dos instalaciones indicando las prestaciones y comparativa de rendimiento sobre los tres sistemas (sobre
los dos sistemas virtualizados y sobre el sistema host)).
Se realizaron las pruebas correspondientes en cada una de las maquinas obtenido los resultados mostrados en la
tabla
Comando time Host Guest kvm Guest qemu
Ls R /
find / -name * -
print -.-
El resultado de la ejecucin de estos comandos nos muestra
que la maquina basada en kvm, muestra un rendimiento
similar a la maquina Host al ejecutar estas instrucciones, no
siendo as la maquina basada en qemu la cual debido a la
emulacin del hardware funciona muy lento.
Pruebas de reproduccin de streaming de video, se realiz la
prueba en la mquina virtual basada en kvm, se consigui
reproducir el video con resultados aceptables con algo de
lag, presenta un rendimiento mucho menor que la maquina
host en la cual se reproducen los videos sin problemas.
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
Realizar un anlisis de las medidas aplicables en la posible optimizacin o tunning asociado al rendimiento de la
mquina virtual a nivel de CPU y operaciones de E/S (disco principalmente). Aplicar las optimizaciones (si es
posible) y realizar un anlisis comparativo sobre la ejecucin de una carga intensiva de trabajo en la mquina fsica
y en la mquina virtual y con/sin la optimizacin.
Es posible realizar configuraciones para
mejorar el rendimiento usando la aplicacin
virt-manager que nos muestra todas las
mquinas virtuales y se pueden configurar sus
caractersticas, all podemos modificar la
configuracin del procesador, para empezar
podemos ampliar el nmero de ncleos que se
van a usar, el tipo de procesador, la topologa
y el conexionado, la mejor alternativa es que la
mquina virtual use todas las caractersticas
del cpu host,
Con respecto a las operaciones de E/S, la mejor
alternativa es que el disco duro del sistema
host sea pasado directamente a la mquina
virtual esto proporciona el mejor rendimiento,
en su defecto usar el formato raw de tamao
fijo, nos da el mejor rendimiento de los backends basados en fichero, algunas configuraciones adicionales como
el modo E/S y la cache tambin pueden mejorar el rendimiento dependiendo del escenario en el que se est
trabajando, indispensable habilitar VT-x/AMD-V (si nuestro procesador as lo permite).
Algo que tambin puede mejorar el rendimiento si se va a usar interfaz grfica es cambiar la configuracin del
video para activar la aceleracion2d y 3d y asignar una mayor cantidad de memoria de video a la mquina virtual,
lo cual se puede hacer modificando el archivo xml de la mquina virtual de la siguiente manera.
virsh edit ubuntu
se elige el editor nano y se cambia la configuracin de video como se muestra a continuacin
Lo cual cambia los grficos por vmvga y ampla la memoria a 128mb activa la aceleracin 2d y 3d.
Para optimizar modificamos las operaciones E/SI por la opcin native, asignamos los 4 ncleos al procesador y
ampliamos la memoria de video y activamos la aceleracin y si inicia nuevamente la mquina para ejecutar
PEC 1 - Administracin Avanzada del S.O. GNU/Linux
algunas instrucciones para verificar el rendimiento, de entrada se puede ver que la interfaz grfica va muy rpido,
se ve mejor.
Comando time ls R / se obtiene menores tiempos que en la ejecucin anterior donde el tiempo fue mayor a 1
minuto ahora fue menor.
El rendimiento de la mquina mejoro , en cuanto a reproduccin de videos se sigue presentando lags , se realiz
una carga intensa abriendo varias aplicaciones y pestaas en el navegador, los resultados fueron que sin el proceso
de tuneado el equipo fue muy lento rpidamente no soporto ms de tres pestaas de pginas como youtube,
vimeo, speedteest al abrir otra aplicacin se torn demasiado lento para usarlo, con las mejoras el sistema
soporto abrir varias aplicaciones, navegar con 5 o 6 pestaas antes de ponerse demasiado lento, definitivamente
se ve una mejora sustancial en el rendimiento.
http://www.makeinstall.es/2011/04/virtualizar-con-la-maquina-virtual-del.html
http://blog.flexvdi.com/2014/05/23/optimizar-el-rendimiento-de-disco-en-una-maquina-virtual/
http://serverfault.com/questions/425607/kvm-guest-io-is-much-slower-than-host-io-is-that-normal
http://hackurbano.net/2012/06/28/crear-convertir-o-clonar-un-disco-virtual-para-usar-con-kvm/