OVH Community, your new community space.

Clúster de servidores?


MarcosBL
28/10/2008, 14:41
Yo apoyo la soluciónm de JarFil, yo en mi caso lo tengo montado asi:

SERVER 1: Squid sólo como cache en el 80 + Servidor Apache en el 81
SERVER 2: Base de datos de la que se alimenta el Apache de SERVER 1

Si en el futuro quieres crecer, añades servidores de Web que pueden atacar a la misma BD o a varias sincronizadas, por ejemplo en la forma (exagerando bastante):

SERVER 1: Squid sólo como cache en el 80 pidiendo alternativamente páginas a SERVER 4, SERVER 5 y SERVER 6
SERVER 2: Base de datos MySQL Master
SERVER 3: Base de datos MySQL Slave sincronizada con SERVER 2
SERVER 4: Base de datos MySQL Slave sincronizada con SERVER 2
SERVER 5: Apache que se alimenta de la BD de MySQL de SERVER 2
SERVER 6: Apache que se alimenta de la BD de MySQL de SERVER 2
SERVER 7: Apache que se alimenta de la BD de MySQL de SERVER 3
SERVER 8: Apache que se alimenta de la BD de MySQL de SERVER 3
SERVER 9: Apache que se alimenta de la BD de MySQL de SERVER 4
SERVER 10: Apache que se alimenta de la BD de MySQL de SERVER 4
etc...

De todas formas, sólo con Squid sirviendo caché, y eliminando por tanto procesos PHP y consultas a la BD probablemente te bastase con un sólo server, aunque lo ideal para empezar sería el setup de Squid + Apache en 1 y BD en otro, sobre todo si es un foro, donde todas las páginas son "personalizadas" para el usuario que está autentificado, y por tanto no se pueden cachear, ahi Squid sólo ayudaría para servir páginas a Invitados y Bots (que tampoco es moco de pavo).

Te recomendaria también montar un media.tudominio.com apunatndo a un Lighttpd, que sirve contenido estático mucho más rápido aún que Squid o Apache, y servir desde ahi todos los js, css e imágenes, dejando Apache y Squid sólo para "la chicha pesada", que es servir PHP.

Como ejemplo, lighttpd me sirve contenido estático gif a razón de 15000 peticiones por segundo, Squid sobre 1200 y Apache alrededor de 6000.

Asi que para mi:

PHP + consultas a MySQL - Que se encargue Apache y lo cachee Squid cada, por ejemplo, 5 minutos.
Imágenes, CSS, JS: Lighttpd sirviendo sólo contenido estático.
Carga de la BD: Con Squid reduces muchísimo la carga. aún asi, para los usuarios "autentificados", que consumen muchas consultas debido a que no son páginas "cacheables", separar Apache en una máquina y MySQL en otra, otra PEPINO se entiende.

Tambien puedes mirarte como servidor Web/Cache nginx, el pequeño desconocido que es servidor web y squid todo en uno y que últimamente se está comiendo con patatas en todos los benchmarks a Apache, Lighttpd y Squid juntos.

Ahora que releo lo puesto... espero no haberte liado más que ayudado... :_(

BeeF
28/10/2008, 14:18
Hola,

No me funciona en el navegador aunque en el nslookup si que me funciona o almenos me va dando las ip alternadas.

Lo que he echo ha sido lo siguiente:

Modificar el archivo de mi zona a traves del webmin:

$ttl 86400
dominio.com. IN SOA dominio.com. postmaster.dominio.com. (
xxx
xxx
xxx
xxx
xxx)

IN A ***IP SERVER 1
www IN A ***IP SERVER 1
www IN A ***IP SERVER 2
mail IN A ***IP SERVER 1
smtp IN A ***IP SERVER 1
pop IN A ***IP SERVER 1
pop3 IN A ***IP SERVER 1
imap IN A ***IP SERVER 1
sql IN A ***IP SERVER 1
mysql IN A ***IP SERVER 1

No entiendo porque cone l nslookup me funciona y no con el navegador, tengo que hacer algo mas ?¿

Gracias

JarFil
28/10/2008, 14:03
BeeF: El navegador sólo resuelve una vez el dominio (si no, sería complicado seguir sesiones, por ejemplo). En este caso, el round robin funciona entre usuarios separados: la mitad resolverá a una IP, la otra a la otra.

Si quieres probarlo, tendrás que cerrar el navegador y volver a abrirlo para que vuelva a resolver el dominio.

BeeF
28/10/2008, 13:55
Hola JarFin,

Como se realizaria exactamente el round robin dns si tengo la release2 instalada?
He intentado añadir otra entrada www en el archivo de configuración de bind.
De echo cuando hago un nslookup de mi dominio me aparecen las dos ips separadas por comas, tambien van variando de orden.

Pero cuando lo hago desde el navegador, siempre me aparece la misma pagina (he colocado dos htmls diferentes para ver el correcto funcionamiento de la distribucion de carga).

JarFil
15/09/2008, 10:16
Si lo entiendo bien, necesitas más rendimiento, ¿has probado con squid?

Si con eso no basta, puedes conseguirlo fácilmente balanceo de carga añadiendo varias IPs al dominio de turno, con lo que normalmente se devolverán en round-robin y tendrás la mitad de usuarios en cada máquina. O los que sean; puedes añadir cuantas IPs quieras.

Lo que sí tendrás que tener cuidado es con la base de datos, que tendría que estar sincronizada o ser un servidor aparte. En todo caso separar servidores de datos estáticos vs. páginas dinámicas, y tal vez alguna máquina más dedicada para squid (según necesidades).

Por ejemplo para los servidores de procesado vienen muy bien los RPS, con imágenes de sistema idénticas replicadas en todos.

Shephard
14/09/2008, 23:51
Muchas gracias, dark_ata. Esa guía la miré, pero parece ser que toca bastantes aspectos de redes y ambos servidores se encuentran en producción, por lo que no me puedo permitir trastear con eso. No se puede tener todo en esta vida xD

Un saludo y gracias!

dark_ata
14/09/2008, 23:30
en españa tambiene esta pero apartir del eg, y si solo quieres alta diponbilidad mira el Heartbeat o linux ha. yo en breve lo voy a hacer, aunq creo q voy a hacer algo parecido pero a mano usando una api q tiene ovh para cambiar las ip failover, si veo q funciona y q no he perdido mucho tiempo integrandolo en el script en python q estoy haciendo. si lo q necesitas es q se repartan las visitas entre los servidores y no gastas mas de 100mbps en total puedes mirar el lvs-tun yo lo intente montar y jamas lo consegui, en http://guides.ovh.com/FedoraCluster tienes una guia en frances. suerte con eso

Shephard
14/09/2008, 12:25
Anda, pues puede ser interesante. A ver si OVH lo pone en marcha en la península!

Un saludete y gracias :-)

icenrg
14/09/2008, 12:04
En OVH Francia en la opción platinum ofrecen una ip para balanceo de carga, supongo que aquí acabará ofreciéndolo también. Quizás eso te podría servir.

Shephard
14/09/2008, 11:23
Vaya... igual, antes que montar todo ese follón, lo que puedo hacer es que la DB sea gestionada por un Quad de 8GB y el contenido mostrado por un Dual Core de 2GB. Hablo de unos 800 usuarios online, pero no sé si se aguantará con lo que comento, por eso saqué lo del clúster.

Gracias, Gonzalo.

Gonzalo
14/09/2008, 03:26
bueno, yo trabajo con distintos cluster de servidores, aunque no con linux, claro.

Lo que quieres no es factible, necesitas tal como lo expones, que la aplicacion a la que acceden los usuarios pueda elegir a quien manda la peticion, y no creo que la tengas preparada.

Si la aplicacion no lo puede hacer, hace falta una tercera maquina para encaminar las peticiones a uno o otro server. Esta maquina no es un servidor necesariamente, suelen ser elementos de red.

Lo tienes con cierto detalle en http://www.ovh.es/revendedor/productos/cluster.xml

Shephard
13/09/2008, 23:52
Holaa! :-P

Quería ver si alguien del foro sabe algo acerca de clústers de servidores (creo que ese es su nombre). El caso es que quiero tener dos servidores para una misma página, ya que con un solo servidor se satura y hay mayor riesgo de downtime que con doble redundancia.

¿Hay alguna forma de tener un mismo sitio web corriendo en dos servidores distintos y, por ejemplo, el UsuarioA accede a la web y es gestionado por el servidor1, mientras que el UsuarioB es gestionado por el servidor2?

Muchas gracias!

Un saludo