_libra_ | esta es la cuarta vez que participo en Umeet |
---|---|
_libra_ | i siempre ha sido divertido |
_libra_ | hoy voy a hablar de unos parches guapos (y proyectos) que estan preparados para ir en el kernel 2.6 |
_libra_ | no tengo ningun texto preparado asique no dudeis en preguntarme |
_libra_ | podeis preguntar CUANDO QUERAIS en el canal #qc |
_libra_ | la traduccion al aleman se realiza en #taee y al español en #redes |
_libra_ | creo que deberia empezar diciendo que el kernel 2.6 parece mucho mejor que los 2.0, 2.2 o el 2.4 |
_libra_ | asique todos deberiais probarlo y reportar los bugs a linux-kernel@vger.kernel.org ;)) |
_libra_ | hablaré un poco de los siguientes proyectos: |
_libra_ | - execshield |
_libra_ | - 4/4 split |
_libra_ | - CKRM (manejador de recursos del kernel basado en clases) |
_libra_ | - memory hotplug |
_libra_ | ... |
_libra_ | el primer parche del que voy a hablar esta relacionado con la seguridad |
_libra_ | como seguramente todos dabeis, el kernel 2.6 tiene algunas mejoras en seguridad para limitar el daño que pueda ocasionar un agujero |
_libra_ | por ejemplo, con selinux puedes limitar el daño que se haga cuando sendmail explote OTRA VEZ o bind ;) |
_libra_ | con exec-shield puedes dar otro paso para hacer tu sistema mas seguro |
_libra_ | basicamente, las capas de tus procesos cambiaran un poco |
_libra_ | y los datos y la pila no seran por defecto ejecutables nunca mas |
_libra_ | esto hace un poco mas dificil convertir un debordamiento de buffer en un exploit |
_libra_ | in x86 CPU´s la tabla de paginas nmo tiene un bit de permiso de ejecucion, asique exec-shield necesita hacer trucos verdaderamente feos |
_libra_ | con suerte, funcionara en otras cpus como AMD64 |
_libra_ | tiene bits de ejecucion en las tablas de paginas, a si que los trucos de segmentacion no seran necesarios en el futuro |
_libra_ | <hans> riel: no reducira este proceso la velocidad del sistema operativo? |
_libra_ | si, totalmente |
_libra_ | la segmentacion hace que el programa funcione un poco mas lento |
_libra_ | de todas formas, el incremento en la seguridad valdra la pena para algunsa personas |
_libra_ | en este punto, debo decir que exec-shield NO es el mejor gestor de memoria para seguridad |
_libra_ | PaX es probablemente mas flexible |
_libra_ | pero a un coste superior |
_libra_ | me parece que exec-shield tendra un equilibrio razonable entre seguridad y celeridad para varios usuarios |
_libra_ | tiene otros trucos como aleatoriedad de la direccion de inicio de la pila, ejecutables y librerias |
_libra_ | a si que usar desbordamientos de bufer para asaltar una funcion de libc es improbable |
_libra_ | en cambio, el atacante tumbara sendmail, en ves de conseguir una cuenta root |
_libra_ | (o mejor, el desbordamiento no sera un ataque al fin y al cabo) |
_libra_ | xtingray: cual es el recurso mas barato que conoces? |
_libra_ | bueno, el mejor seria usar un chip AMD64 ;)) |
_libra_ | este hard tiene el bit de ejecucion para tablas de paginas |
_libra_ | entoces no tiene penalizacion de tiempo |
_libra_ | hans: que lo hace mejor, or ejemplo, un medio chrootado para aplicaciones? |
_libra_ | ok, exec-shield no es "mejor"... Usaria los dos juntos |
_libra_ | puedes (y probablemente deberias) ejecutar named en un medio chroot |
_libra_ | pero entonces alguien lo rompe, y puede usar tu pc para mandar paquetes a cualquier lado (quiza para ayudar en un DDoS?) |
_libra_ | a si que, reduciendo la posibilidad de que un desbordamiento de bufer sea explotado es probablemente algo bueno a hacer |
_libra_ | ah, puedes ejecutar exec-shield como parte del rpm para el kernel 2.6 de Arjan |
_libra_ | http://people.redhat.com/~arjanv/ |
_libra_ | no lo he visto corriendo en ingun otroparche para el kernel |
_libra_ | amplifiel: otras distribuciione como adamantrix usan rsbac y pax para seguridad, que piensas de estos aprches? |
_libra_ | ok |
_libra_ | rsbac es como selinux |
_libra_ | ayuda a reducir el daño una vez se ha roto el programa |
_libra_ | pero no ayuda a prevenir intrusiones en el programa |
_libra_ | PaX ayuda a prevenir las intrusiones, pero tiene un coste mayor que exec-shield |
_libra_ | si eres verdaderamente paranoico, seguramente preferiras Pax a exec-shield |
_libra_ | pero personalmente creo que el impacto sobre el funcionamiento de PaX (particularmente, el espacio extra de uso, es decir, que tus programas tiene menos espacio de direccionamiento) lo haran muy "costoso" para mucha gente |
_libra_ | ok, 4/4 split ;) |
_libra_ | ahora explicare el que probablemente sea el peor problema que tiene linux en los sistemas x86 de 32 bits |
_libra_ | el problema es que estos sistemas tienen como maximo 64GB de memoria fisica, pero solo 4Gb de virtual |
_libra_ | y el clasico planteamiento de memoria virtual de linux dice que el kernel solo tiene 1GB de espacio!! |
_libra_ | lo que significa que un giga debe manejar 64 |
_libra_ | esto es, cimplemente, espacio insuficiente si ejecutas lo que todo el mundo con un servidor de 64gigas corriendo |
_libra_ | para hacer corta la historia, con 1 giga de espacio para el kernel, un sistema con mas de 24 gigas de ram es casi inutil |
_libra_ | porque no tienes el espacio de memoria necesario para correr un gran sistema con los programas de uso cotidiano |
_libra_ | en 2.4, y posteriormente en 2.6, las tablas de paginas fueronpuestas en la parte alta de la memoria |
_libra_ | es decir, estan alojadas fuera de el giga perteneciente al espacio para el kernel |
_libra_ | esto incremetna el limite de 16 gigas a 24 o 32 gigas |
_libra_ | pero todavia esta lejos de los 64 gigas para sistemas x86 de 64gb de ram |
_libra_ | por suspuesto, la solucionpara genet con grandes servidores es usar procesadores de 64 bits |
_libra_ | asi, el kernel tiene todo el espacio que necesita |
_libra_ | pero no, ellos quieren un servidor barato ;(( |
_libra_ | a si que compran un x86 |
_libra_ | por supuesto, los programadores son siempre los que se enfrentan al problema |
_libra_ | pero lo unico que podemos hacer es incrementar elespacio para elkernle a 4 gigas |
Arador | pero solamente hay 4 GB en total deisponibles en Linux, divididos entre el espacio de usuario y el espacio del kernel |
Arador | asique necesitamos cambiar eso |
Arador | Ingo Molnar hizo nu parche que hacia algo bastante feo, que simplemente funciona bien y necesita pocos cambios en el resto del codigo |
Arador | del kernel |
Arador | sabeis que cada proceso tiene su propio espacio de memoria |
Arador | con el parche de division 4/4, el _kernel_ tambien tiene su propio espacio de memoria de 4 GB |
Arador | y cada vez que haces una llamada al sistema o ocurre una interrupcion, el sistema hace un cambio de contexto de memoria |
Arador | en el espacio de memoria del kernel de 4 GB |
Arador | de esta manera el kernel tiene suficiente memoria para gestionar 64 GB de memoria fisica y a los programas ejecutandose en el |
Arador | sin embargo, esto tiene un coste, comunmente el 10% de rendimiento |
Arador | porque la CPU necesita cambiar las direcciones de los espacios de memoria todo el tiempo |
Arador | en algunos benchmarks el coste es del 30%... |
Arador | tambien, este es el ultimo gran cambio que se puede hacer en sistemas de 32 bits |
Arador | si Intel viniera alguna vez con un sistema de 32 bits que gestione mas de 64 GB de memoria fisica, no hay mas trucos que podamos usar |
Arador | eso es por lo que la unica solucion real es usar un chip de 64 bits |
Arador | si necesitas mucha memora |
Arador | <jamesm> riel: cuanto tiempo crees que la gente seguira usando sistemas de 32 bits? |
Arador | creo que seguiran usando ia32 hasta que intel tenga un chip de 64 bits barato |
Arador | o hasta que necesiten mas de 128 GB de memoria |
Arador | me temo que IA64 nunca será barato |
Arador | porque está diseñado para ser un chip de alto nivel |
Arador | sin embargo, con amd intentando vender si chip de 64 bits, creo que Intel tendrá que sacar algo |
Arador | De verdad espero que lo hagan... ;) |
Arador | alguna otra pregunta sobre la division 4/4, o problemas de gestión de memoria? |
Arador | ok, daré una pausa de 1 minuto para dar una oportunidad a los traductores |
Arador | entonces seguire con CKRM, el kernel gestor de recursos del kernel basado en clases |
Arador | CKRM, el gestor de recursos del kernel basado en clases el kernel 2.0 ;) |
Arador | y algunos aspectos de el están en el kernel |
Arador | basicamente, CKRM consiste de dos partes |
Arador | 1) un clasificador, para agrupar las tareas en clases de recursos basadas en... |
Arador | - pid |
Arador | - gid |
Arador | - uid |
Arador | - nombre |
Arador | - identificador de la clase de recursos |
Arador | - ... |
Arador | 2) modulos de control de recursos, que se meten en el nucleo de CKRM y que: |
Arador | - dividen la CPU entre clases de recursos |
Arador | - dividen los limites de memoria entre clases de recursos |
Arador | - .... |
Arador | basicamente, con CKRM puedes hacer ocsas como: |
Arador | "quiero que sendmail y todos los procesos iniciados por él consuman no mas del 10% de la memoria o el 20% de la cpu" |
Arador | de manera que no importa como este de sobrecargado tu cola de correo, tu sistema nunca estará sobrecargado |
Arador | o en una universidad, podrias especificar "que los estudiantes tengan entre un 10% y un 50% de la memoria, los profesores ente 30% y 80% de la memoria, el administrador del sistema lo que quiera" |
Arador | las posibilidades de lo que puedes hacer con CKRM son infinitas |
Arador | Estoy seguro que algunos de vosotros con inspiraciones BOFH tendran algunas ideas creativas... |
Arador | [de nuevo, preguntas en #qc] |
Arador | podeis encontrar informacion sobre CKRM en http://ckrm.sourceforge.net/ |
Arador | por supuesto, CKRM tiene sus lados malos tambien |
Arador | es muy bonito y flexible, pero tambien muy complejo |
Arador | no estaría sorprendido de que CKRM fuera demasiado complejo para Linus |
Arador | y se tienen que hacer las cosas mas simples antes de que sea incluido en el kernel 2.7 |
Arador | <bigsam72> ok, cuando seaimplementado ckrm y se ponganmites a por ejemplo sendmail, que pasa cuando sendmail llega al limite? ¿errores de asignación de memoria? |
Arador | en el caso mas comun, sendmail seria mandado a swap |
Arador | conseguiria memoria virtual, solo que no memoria fisica |
Arador | tambien, si el sistema tiene memoria libre que no se esta usando en ese momento, una clase de recurso puede pedir prestado esa memoria |
Arador | <james> riel: ¿cual es la sobrecarga en el rendimiento? |
Arador | No puedo responder a esa pregunta, ya que CKRM está en sus estados mas tempranos |
Arador | el codigo no esta preparado todavia y necesita mucho trabajo |
Arador | Sospecho que la sobrecarga sera pequeña para la mayoria de gestores de recursos |
Arador | <franl> Puede CKRm controlar solo la CPU y uso de memoria, o tambien puede controlar otras cosas como fork()s y send()s por segundo? |
Arador | franl: actualmente, CKRM solo puede controlar la CPU, memoria y el IO |
Arador | pero la gent eesta planeando mas gestores de recursis |
Arador | para la cpu y el io, el modulo CKRM es un scheduler |
Arador | de manera que puede dar ciertas garantias de ancho de banda y limites maximos en los grupos de recursos |
Arador | la memoria es bastante similar, excepto por una gran diferencia |
Arador | tienes un nuevo segundo de cpu en cada segundo, pero la memoria no crece ;) |
Arador | en terminos de ciencia de computadores, la memoria es un espacio no renovable |
Arador | de manera que si un grupo de recursos usa mas memoria de su limite pero algo mas lo necesita el sistema necesita trabajo para quitarlo (mandandolo a swap) |
Arador | Para la CPU, ancho de banda de IO o gestion de la red el sistema no tiene que hacer ese trabajo |
Arador | para los adminitradores hay otro problema |
Arador | si das a cada grupo de recursos nu minimo de 10% garantizado, estate seguro de que no tienes mas de 10 grupos de recursos ;) |
Arador | <franl> como es la interfaz de la llamada de sistema de CKRM? solamente es un monton de ioctls? |
Arador | franl: la interfaz al espacio de usuario todavia esta en cursos |
Arador | CKRM A0* usaba llamadas al sistema, pero CKRM B0 parece usar una interfaz /proc |
Arador | esto podría cambiar en un futuro, hasta que Linus este feliz |
Arador | franl: Apoya Linus en un principio a CKRM para 2.7? |
Arador | no creo que le hayan preguntado ;) |
Arador | podria ser dificil convencerle de que CKRM esta bien |
Arador | nunca le gustan las cosas de solo-servidores |
Arador | Linus quiere funcionalidad que sea util para todos |
Arador | ....y tiene razon |
Arador | sin embargo, CKRM podría ser util para sistemas de escritorio |
Arador | por ejemplo, el usuario de escritorio podria tener un minimo garantizado de recursos del sistema de manera que updatedb no pueda hacer lento al escritorio |
Arador | si, es un hack, pero si hace a los escritorios sentirse mejor... ;) |
Arador | ¿alguna otra pregunta, antes de que me mueva en "conexion de memoria en caliente" ? |
Arador | ... |
Arador | de acuerdo, conexion de memoria en caliente ;) |
Arador | los grandes manufacturadores de servidores están trabajando en una nueva funcionalidad |
Arador | la idea es que los administradores puedan añadir nueva memoria (DIMMs) en el sistema, mientras el sistema esté corriendo |
Arador | algunos incluso quieren que el administrador del sistema pueda quitar DIMMs |
Arador | ahora bien, añadir memoria debería ser posible durante el kernel 2.6 |
Arador | tenemos soporte de NUMA en el kernel, para soportar diferentes areas de memoria en un sistema |
Arador | cuando el sistema añada nueva memoria, podriamos crear una nueva zona para esa memoria |
Arador | y entonces enganchar la nueva zona en las listas de otras zonas de memoria |
Arador | despues de eso ya podemos empezar a usar la memoria |
Arador | "simple" ... excepto por algunos detalles con los que no os aburrire ;) |
Arador | <franl> Como quitar DIMMs cuando tienes páginas sucias en ellos? |
Arador | ok....quitar memoria es un GRAN PROBLEMA ;) |
Arador | no creo que Linux vaya a soportarlo muy pronto |
Arador | Si toda la memoria en un DIMM pertenece a programas de usuario, entonces simplemente podemos mandarlos a swap cuando el administrador diga que quiere quitar un DIMM del sistema |
Arador | pero que pasa si esta memoria esta mlockeada y teneos prohibido mandarla a swap? |
Arador | o peor, que pasa si tiene esctructuras de datos del kernel que son referenciadas por una direccion fisica de memoria ?! |
Arador | No veo ninguna manera buena de luchar con ello |
Arador | puedo pensar unas cuantas MALAS, pero no queremos eso ;) |
Arador | <franl> INcluso si un DIMM puede ser quitado de las paginas del kernel y de las paginas sucias del usuario, todavia tienes que esperar que el sysadmin quite el DIMM correctamente |
Arador | creo que para eso son las luces verdes y rojas ;) |
Arador | las tarjetas de enganche de memoria en caliente tienen a tener todo tipo de luces en ellos afortunadamente |
Arador | tambien, porque querrías quitar memoria del sistema? |
Arador | solo se me ocurren dos cosas que un administrador de sistemas necesita hacer: |
Arador | 1) añadir mas memoria, porque el programa lo necesita |
Arador | 2) reemplazar un trozo de memoria dañada con buena memoia...pero eso se podria hacer en hardware, haciendo un espejo en el hardware con buena memoria y dejarle quitar el malo |
Arador | en este caso la "mala memoria" sería memoria que tiene errores ECC corregibles |
Arador | de manera que los datos aun parezcan buenos |
Arador | <hans> tambien, porque querrias quitar memoria de un sistema ? |
Arador | <hans> tal vez para cambiarlo por ram mas rapida? |
Arador | <franl> O para actualizarlo a DIMMs mas grandes |
Arador | ok, dos buenos puntos ;) |
Arador | el de sustituirlo por uno de mas capacidad de memoria es especialmente valido |
Arador | Se me habia olvidado eso |
Arador | alguien en VALinux de Japon esta trabajando en quitar memoria en caliente, por cierto |
Arador | pero esta encontrandose los problemas fundamentales que acabo de describir |
Arador | asique su codigo parchea la mayoria del tiempo |
Arador | resumiento, en el kernel 2.6 solamente deberías esperar soporte para añadir memoria en caliente |
Arador | quitar en caliente es muy complejo.... |
Arador | ... |
Arador | hay aluna otra pregunta sobre enchufar memoria en caliente? |
Arador | ok, entonces supongo que la conferencia esta terminada ;) |
Arador | gracias a todos los organizadores que han hecho posible este evento |
Arador | se cuanto trabajo es, y estoy agradecido de que organizaran otra umeet |
Arador | si no estais dormidos, tambien me gustaria dar gracias a la audiencia |
Arador | si no sería como hablar conmigo mismo ;) |
MJesus | clap clap clap clap clap clap clap clap clap clap |
MJesus | clap clap clap clap clap clap clap clap clap clap |
EMPEROR | plas plas plas plas plas plas plas |
EMPEROR | plas plas plas plas plas plas plas |
EMPEROR | plas plas plas plas plas plas plas |
EMPEROR | plas plas plas plas plas plas plas |