Rails Summit Latin America

Continuando con la segunda parte de lo expresado con anterioridad aquí escribiré un poco acerca del proceso de instalación del sistema operativo base y del setup utilizado para Xen.

Hardware

El equipo que utilizamos no es nada fuera de lo común. El factor más importante que contemplamos fue que fuera soportado al 100% por Linux y que tuviera una buena cantidad de memoria. El presupuesto no era muy amplio, asi que optamos por un equipo bastante común provisto con 2 Gbytes de memoria Ram, un procesador 3.x ghz con soporte para Hyperthreading, y dos discos SATA de 80 Gbytes (más alguna cosita más) (ah, una sola NIC).

Software: el Debian de la gente

Como distribución elegimos Debian. Más que nada por su estabilidad y simpleza a la hora de su administración. No voy a describir como instalarlo en detalle, sino sólo algunos pasos importantes (al menos a mi criterio ;) ):

  • Sistema de archivos: Como primera experiencia optamos por ext3, aunque les voy a ser sincero, me quedé con las ganas de poner reiserfs, que tengo entendido que se desempeña muy rápido con archivos pequeños, tal cual es el caso de los .rb/rhtml. Si alguno tiene experiencia en producción con reiserfs, por favor, me encantaría escuchar comentarios.
  • Los filesystems base los armamos de la siguiente manera:
    • Una primera capa para el espejado de los volúmenes. La configuración fue muy simple a través de la interfase gráfica que proveyó Debian. Básicamente creamos dos grupos de dos particiones cada uno, y los agrupamos con las herramientas nativas que provee Linux para la creación de volúmenes RAID-0/1/5. Quedó algo así:
tyler:/etc# mdadm  /dev/md0
/dev/md0: 3.72GiB raid1 2 devices, 0 spares.
tyler:/etc# mdadm  /dev/md1
/dev/md1: 69.85GiB raid1 2 devices, 0 spares.
  • Fuera de toda esta distribución, al mismo nivel, crear una partición para el swap en cada disco.
  • La segunda etapa contemplo en principio la creación (sobre el primer RAID1, md0) de las particiones para Tyler (el OS base) y luego la creación un gran de un gran physical volumen (LVM) sobre el segundo (md1) para ir alocando el espacio necesario para cada Virtual Machine que menejemos con Xen.
tyler:/etc# pvdisplay
  --- Physical volume ---
  PV Name               /dev/md1
  VG Name               VG01
  PV Size               69.84 GB / not usable 0   
  Allocatable           yes 
  PE Size (KByte)       4096
  Total PE              17880
  Free PE               4440
  Allocated PE          13440
  PV UUID               0hK2g6-XhoS-F73q-ySkT-2kKd-kt5K-NgMYRh
  • Es importante destacar que no voy a hacer recomendaciones con respecto al tamaño de cada partición/volumen. En la web hay un montón para leer. Les recomiendo la guía de instalación de Gentoo

En fin, continuamos la instalación, elegimos un montón de paquetes (los mínimos necesarios) y reiniciamos. Hasta ahí todo bien, un simple linux sin ningún servicio (aún). Solamente podriamos decir que tiene un partition layout un poco más complejo de lo habitual, pero nada realmente sofisticado.

Mañana lo completo con la parte de XEN. Buenas noches.

Recursos

  • XEN
    • http://www.xensource.com/
  • LVM
    • http://tldp.org/HOWTO/LVM-HOWTO/
    • http://www.gagme.com/greg/linux/raid-lvm.php

2 Responses to “Hosting.new [:nginx, :mongrel_cluster, :mysql] - Parte 2a/4”

  1. Ruben Says:

    Muchas gracias por aportar este tutorial tan util, los estoy siguiendo todo el tiempo, de hecho tendre que cambiar el stack que tengo actualmente(apache + mod_proxy_balancer + mongrel) por nginx + mongrel_cluster.

    Una pregunta tal vez off-topic, tengo una cuantas aplicaciones en rails y php alojadas en un servidor que tiene instalado cpanel y web host manager, como el cpanel no trabaja con otro servidor web que no sea apache, estaba pensando quitar el balanceo de carga a apache y pasarselo a nginx, es decir, tendria: apache + nginx + mongrel_cluster, queria saber si esto mejoraria en algo el performance o no, ya que estoy agregando un proceso mas.

    Saludos y exitos. Ruben.

  2. Lucas Efe Says:

    Yo sólo agregaría al nginx porque es muy simple su configuración, pero no creo que se justifique demasiado. Al apache no lo podés sacar aun porque hasta donde yo se Nginx no soporta PHP como módulo, asi que su performance no debe la mejor. Habrá que esperar, pero mientras lee un poco por acá. Más data acá: http://wiki.codemongers.com/NginxFcgiExample

    Con probar no perdés nada. Contame que resolviste finalmente. Siempre se aprende algo…

    Saludos Lucas

Sorry, comments are closed for this article.