elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: MinusFour)
| | |-+  Ayuda con virtualización
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con virtualización  (Leído 4,304 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Ayuda con virtualización
« en: 6 Mayo 2016, 22:03 pm »

Hola, he decidido transformar mi servidor dedicado en varias instancias virtuales para separar en red local varios servicios tales como web, correo, archivos en la nube, vpnssl (o socks5 via ssh sobre un puerto personalizado), etc. El problema es que mi maquina no tiene recursos ilimitados, tiene 32gb de ram y una cpu xeon de 8 cores y quiero tener 7 u 8 instancias virtuales, sacando la cuenta de la cantidad de memoria que usa cada servicio mas lo que usa propiamente el sistema operativo me alcanza muy bien, pero estoy en el dilema de la compartición de recursos.

Estoy usando Centos 7, estuve observando KVM pero al crear una instancia necesitas declarar la cantidad de nucleos a usar y ram, si debo repartir estos recursos tendría que disponer de 1 nucleo para cada servicio y 2.5gb de ram para cada instancia, pienso que es muy poco en comparación a lo que tengo hoy (todo en uno).

La ventaja de lo que tengo hoy es que todos los servicios usan el mismo hardware asi que si un servicio no tiene mucha carga y otro tiene una carga elevada este puede hacer uso de la mayor parte de los recursos, esto quiere decir que el sitio web podría recibir una ataque muy bien mientras que los demás servicios estén relajados.

Al no poder hacer esto en KVM Qemu vi algunas alternativas como Openvz que justamente utilizan el hardware bajo demanda, esto quiere decir que ya no asignas un uso de memoria ram para cada instancia virtual sino que utiliza el máximo siempre y este se comparte (eso fue lo que entendí), el problema es que nunca he usado Openvz (pero si virtualbox y vmware workstation) y vi que ofrece un sistema llamado virtuozo pero que al parecer es de pago y mas de encima el sitio web está caido.

Asi que mi pregunta viene así: ¿Es posible utilizar software comunitario o de libre costo para realizar lo que necesito?

Otra pregunta: Esposible que la instancia web y mail hagan uso de todo el hardware pero el servidor de tetsing haga uso solamente de 2gb de ram y 2 cpu como máximo? hay algún software de virtualización que haga esto?

¿Que me recomiendan o que debiera ser lo mas óptimo que debiera hacer?


En línea

lemi

Desconectado Desconectado

Mensajes: 4



Ver Perfil
Re: Ayuda con virtualización
« Respuesta #1 en: 7 Mayo 2016, 20:58 pm »

En KVM los núcleos no se "reparten". Puedes tener un servidor con 4 cores y un número indeterminado de máquinas con 1 core cada uno sin problemas. El principal limitante suele ser la memoria RAM.

Cada máquina KVM es un proceso en el anfitrión el cual crea más o menos hilos en función del uso que tenga. Es el anfitrión quien se encarga de distribuir los hilos por todos los núcleos que disponga.

El motivo por el cual KVM te permite asignar más de un núcleo tiene que ver más con la naturaleza de las aplicaciones que tendrá la máquina virtual.

Hay herramientas que están optimizadas para trabajar mejor si detectan que el equipo tiene más de un núcleo.

Pero por regla general asignar más de un núcleo a una máquina KVM suele degradar su rendimiento ya que incrementas la complejidad de la virtualización. KVM tendría que crear y no exponer  más núcleos para la máquina virtualizada.

Respecto a la gestión de la memoria RAM siempre puedes tirar de VirtIO balloning [1] para hacer overbooking de la misma y controlarla de forma dinámica. Aunque personalmente yo prefiero definir unos límites fijos.

Además no te olvides que si tus máquinas son parecidas es probable que te ahorres unos cuantos GB con KSM.

Por otro lado Openvz se basa en la paravirtualización, es decir, en vez de crear núcleos virtuales si expone los físicos del anfitrión. Pero aún así se sigue pudiendo limitar los recursos que recibirá una máquina.

En cualquier caso Openvz está "muerto". Upstream (virtuozo) lo fusionó con su producto de pago y ahora sirve de base con funcionalidades básicas.

La mejor alternativa a Openvz es o Xen o LXC. El primero está mucho más maduro que el segundo pero LXC es mucho más flexible y ofrece más rendimiento.

Yo lo que te recomiendo es Proxmox. Una solución basada en Debian que integra KVM + LXC y una interfaz web bastante decente. De este modo puedes probar ambas tecnologías y decidir cual es la que más te conviene.

Una última cosa... si priorizas la seguridad frente al rendimiento la mejor solución es KVM dado que no dependes del kernel del anfitrión. Además KVM + VirtIO + VT se acerca bastante al rendimiento que ofrece Xen  y quizás también LXC...

[1] http://www.linux-kvm.org/page/Projects/auto-ballooning
[2] https://www.proxmox.com/


« Última modificación: 7 Mayo 2016, 21:16 pm por lemi » En línea

Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: Ayuda con virtualización
« Respuesta #2 en: 9 Mayo 2016, 19:06 pm »

vSphere te ahorrará dolores de cabeza y hace lo que pides. Puedes definir límites y reservas de memoria o CPU de forma individual, si una máquina tiene una reserva de X MHZ, siempre podrá acceder a ellos pero si no están en uso otras vms en la misma pool pueden disponer de ellos. De la misma forma puedes establecer shares para el acceso a los cores reales, de forma tal que en caso de que 2 vms estén turnándose por el acceso a un core la que tiene el share mas elevado tiene preferencia sobre la otra. De hecho lo que comentas es algo básico de cualquier sistema de virtualización, normalmente puedes incluso crear un cluster de servidores y que las vms compartan el acceso a los recursos de los mismos de forma dinámica.

La única pega es que si no tienes vCenter olvídate de administrar el servidor desde Linux.
« Última modificación: 9 Mayo 2016, 19:22 pm por Slava_TZD » En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Ayuda con virtualización
« Respuesta #3 en: 9 Mayo 2016, 20:18 pm »

Muchas gracias por las opiniones, haré algunas pruebas para aver de que manera funciona mejor y nos conviene.

Saludos.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Ayuda con virtualización
« Respuesta #4 en: 9 Mayo 2016, 21:36 pm »

¿No es un poco excesivo tener una maquina virtual por servicio? Me parece redundante tener n sistemas operativos diferentes para tener todos tus n servicios separados. Yo creo que tu mejor opción son contenedores, LXC o Docker por ejemplo.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Ayuda con virtualización
« Respuesta #5 en: 10 Mayo 2016, 19:35 pm »

Pues en este caso no porque los procesos entre otras cosas se comparten, se supone que hacer esta separación es para dar mayor seguridad y que los usuarios del proxy por ejemplo no puedan acceder al proceso del apache o del servidor de correos o acceder a http://localhost/ , pero en cambio desde una instancia virtual los puedo separar por completo y delegar permisos y accesos a cada servicio, por ejemplo a un grupo de usuarios llamados desarrollo puedo darles acceso a la maquina virtual de desarrollo y a los de ventas a la maquina virtual de documentación y los de ventas ya no podrán tocar nada relacionado con la administración del mismo servidor o hacer un sniff si llegan a hackear el sistema y ser root.

El problema principal es seguridad vs rendimiento, claramente usar lxd o lxc y docker es mucho mas conveniente en cuanto a la portabilidad y rendimiento de los softwares pero no me dan la seguridad que necesito la cual es separar los permisos y accesos a cada cosa.

Por ahora estoy mirando con buenos ojos a kvm y xen. Gracias de todas maneras.
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Ayuda con virtualización
« Respuesta #6 en: 10 Mayo 2016, 20:14 pm »

Pues en este caso no porque los procesos entre otras cosas se comparten, se supone que hacer esta separación es para dar mayor seguridad y que los usuarios del proxy por ejemplo no puedan acceder al proceso del apache o del servidor de correos o acceder a http://localhost/ , pero en cambio desde una instancia virtual los puedo separar por completo y delegar permisos y accesos a cada servicio, por ejemplo a un grupo de usuarios llamados desarrollo puedo darles acceso a la maquina virtual de desarrollo y a los de ventas a la maquina virtual de documentación y los de ventas ya no podrán tocar nada relacionado con la administración del mismo servidor o hacer un sniff si llegan a hackear el sistema y ser root.

El problema principal es seguridad vs rendimiento, claramente usar lxd o lxc y docker es mucho mas conveniente en cuanto a la portabilidad y rendimiento de los softwares pero no me dan la seguridad que necesito la cual es separar los permisos y accesos a cada cosa.

Por ahora estoy mirando con buenos ojos a kvm y xen. Gracias de todas maneras.

Los procesos no se comparten a menos que tu quieras, puedes perfectamente tener 5 contenedores y cada uno de estos procesos están aislados entre ellos. Lo único que tienen que compartir es el mismo kernel. Si te llegan a "hackear" un proceso van a entrar a esta instancia del contenedor y de ahí quizás puedan llegar a vulnerar el kernel y encontrar acceso a tus otros contenedores. Es posible sí. En el caso de las otras tecnologías que usan un Hypervisor, la cosa está un poco más complicada. Tienes una capa extra en medio que es mucho más difícil de vulnerar, pero aún así puede pasar (no es tan común). Sin embargo, ahora estás virtualizando n kernels diferentes que consumen recursos solamente para correr n procesos. Yo creo que está de más y estás bastante limitado en cuanto a recursos.

No es tan sencillo vulnerar el kernel de los contenedores (por lo general las vulnerabilidades son parchadas rapidamente), pero no es tan dificil como ponerle un cuatro al hypervisor.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Virtualizacion
Redes
alzehimer_cerebral 5 5,453 Último mensaje 10 Mayo 2010, 14:09 pm
por Novlucker
virtualizacion en linux
GNU/Linux
pedraxito 1 2,421 Último mensaje 12 Junio 2010, 17:24 pm
por xexio
Virtualizacion
GNU/Linux
gil13 4 5,150 Último mensaje 18 Diciembre 2010, 16:10 pm
por [u]nsigned
Virtualizacion
Software
javier234- 2 1,536 Último mensaje 21 Noviembre 2011, 17:07 pm
por javier234-
Activar tecnología de virtualización en mi portatil (ayuda)
Hardware
raul323232 1 2,919 Último mensaje 1 Mayo 2015, 16:04 pm
por Machacador
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines