descargar 0.9 Mb.
|
Clustering de Alta Disponibilidad bajo GNU/Linux Vicente José Aguilar Roselló <v.aguilar@terra.es>, <vjaguilar@renr.es> Septiembre 2001 Tutor: D. Manuel Marco Such Departamento de Lenguajes y Sistemas Informáticos Resumen: Este trabajo explora las distintas posibilidades que nos ofrece hoy en día el mundo del Software Libre para implantar servidores de alta disponibilidad en el terreno empresarial y orientados principalmente al servicio en Internet (servidores HTTP, SMTP, POP, etc), basados en la replicación de servidores (clustering) con arquitecturas PC Intel x86 y bajo el Sistema Operativo GNU/Linux. El presente documento se publica bajo los términos de la licencia FDL (Free Documentation License) de GNU y puede ser redistribuido o modificado según los mismos. Todos los programas, scripts o ficheros de configuración aquí expuestos se distribuyen bajo la licencia GPL (General Public License) de GNU, y se garantiza el derecho de redistribución y modificación bajo los términos de dicha licencia. El texto de ambas licencias se puede encontrar en la página web de GNU en http://www.gnu.org y en los enlaces de la bibliografía al final de este documento. Este trabajo ha sido desarrollado íntegramente utilizando software libre: la plataforma de desarrollo fue Debian GNU/Linux (http://www.debian.org) con el entorno de escritorio GNOME (http://www.gnome.org, http://www.ximian.com); para la edición del texto se utilizó AbiWord (http://www.abisource.com) y Open Office (http://www.openoffice.org); para los diagramas, figuras y esquemas, DIA (http://www.lysator.liu.se/~alla/dia/); para los gráficos de barras, el gnuplot (http://www.gnuplot.org); y para el retoque de gráficos, el GIMP (http://www.gimp.org); y para convertir el fichero PostScript generado por OpenOffice a PDF con el conversor ps2pdf del paquete GhostScript (http://www.ghostscript.com). 2001 ã Vicente José Aguilar Roselló <v.aguilar@terra.es>, <vjaguilar@renr.es>. Índice de contenidos 1.1. GNU/Linux y el Software Libre 2 1.2. Introducción al clustering de servidores 3 1.3. Consideraciones previas 5 2.1. Gestión avanzada de los discos 7 2.1.1. RAID 7 2.1.2. LVM 11 2.2. Sistemas de Ficheros 14 2.2.1. ext2 14 2.2.1.1. Estructura física 15 2.2.1.2. Los i-nodos 17 2.2.1.3. Uso 18 2.2.1.4. ext3 19 2.2.2. ReiserFS 19 2.2.2.1. Sistemas transaccionales 19 2.2.2.2. Características de ReiserFS 20 2.2.2.3. Árboles B* 21 2.2.2.4. Uso 24 2.2.3. xfs y jfs 25 3.1. Replicación de archivos 27 3.1.1. rsync 27 3.1.1.2. El algoritmo rsync 28 3.1.1.3. Resultados 29 3.1.1.4. Instalación y uso 30 3.2. Sistemas de ficheros distribuidos 32 3.2.1. NFS 32 3.2.1.1. Los protocolos detrás de NFS 32 3.2.1.2. El servidor 33 3.2.1.3. El cliente 35 3.2.1.4. Precauciones 36 3.2.2. Samba 37 3.2.2.1. Programas 38 3.2.2.2. Configuración 38 3.2.2.3. Accediendo a Windows desde Linux 40 3.2.3. CODA 41 3.2.3.1. Terminología CODA 42 3.2.3.2. Los servidores 44 3.2.3.3. Los clientes 48 3.2.3.4. Características avanzadas 49 3.2.4. GFS 49 3.2.4.1. Sistemas de discos compartidos 50 3.2.4.2. Características de GFS 51 3.2.4.2. Instalación de GFS sobre Canal de Fibra 52 3.2.4.3. Limitaciones de GFS 57 4.1. daemontools y ucspi-tcp 59 4.1.1. Configuración y uso 59 4.2. mon 61 4.3. heartbeat y fake 62 4.4. Failover de red con iANS de Intel 63 4.4.1. Configuración de iANS en modo AFT 64 4.4.2. Ejemplo de configuración manual 66 5.1. Linux Virtual Server 67 5.1.1. Visión general de LVS 67 5.1.2. Cómo distribuir la carga 69 5.1.3. Modos de balanceado de carga en LVS 71 5.1.3.1. Balanceado por NAT (VS-NAT) 71 5.1.3.2. Balanceado por encapsulado IP (VS-Tun) 75 5.1.3.3. Balanceado por enrutamiento directo (VS-DR) 79 5.1.3.4. Resumen de los métodos de balanceado 81 5.1.4. Planificación del balanceo de carga 82 5.1.4.1. Round Robin 82 5.1.4.2. Round Robin Ponderado 82 5.1.4.3. Servidor con menos conexiones activas 83 5.1.4.4. Servidor con menos conexiones activas (ponderado) 83 5.1.4.5. Menos conectado basado en servicio 84 5.1.4.6. Tablas hash por origen y destino 84 5.1.4.7. Conexiones persistentes 84 5.1.5. Alta disponibilidad en LVS 84 5.1.5.1. mon+heartbeat+fake+coda 85 5.1.5.2. ldirectord+heartbeat 88 5.1.6. El software 89 5.1.6.1. lvs-gui 90 5.1.6.2. LVSM 92 5.1.6.3. Módulo webmin para LVS 93 5.1.6.4. Ultra Monkey 93 5.1.6.5. Piranha 96 5.2. Super Sparrow 97 5.2.1. BGP 97 5.2.2. Funcionamiento de Super Sparrow 98 5.2.3. El software 99 5.2.4. Super Sparrow y Apache 102 6.1. Linux Utility for cluster Installation (LUI) 105 6.2. FAI 107 6.2.1. Funcionamiento 107 6.3. VA SystemInstaller 108 6.3.1. Requerimientos 110 6.3.2. Funcionamiento 110 6.4. webmin 112 7.1. Instalación de GNU/Linux en un equipo 117 7.2. RAID, LVM, ext2 y reiserfs 117 7.3. Instalación remota con VA System Imager 132 7.3.1. Instalación del software en el servidor 132 7.3.2. Instalación linux en el golden client 133 7.3.3. Instalación del software cliente en el golden client 134 7.3.4. Ejecutar getimage en el servidor 135 7.3.5. Creación del disco de arranque para instalar los clientes 142 7.4. CODA 144 7.4.1. El servidor CODA 145 7.4.2. El cliente CODA 152 7.4.3. Pruebas de rendimiento 155 7.5. mon 161 7.6. iANS 164 9.1. Documentación, HOWTOs y FAQs 173 9.2. RFCs 174 9.3. Licencias 175 Índice de imágenes Imagen 1. RAID: Situación 9 Imagen 2. LVM: Situación 11 Imagen 3. LVM: Asignación de espacio 12 Imagen 4. ext2: Estructura del disco 15 Imagen 5. ext2: Estructura de una partición 16 Imagen 6. ext2: i-nodos 18 Imagen 7. ReiserFS: Árboles B 22 Imagen 8. CODA: Árbol de directorios 42 Imagen 9. CODA: Árbol de directorios 43 Imagen 10. CODA: Organización de una celda 46 Imagen 11. GFS: Esquema general 52 Imagen 12. LVS: Esquema general 68 Imagen 13. LVS: VS-NAT 72 Imagen 14. LVS: VS-NAT, esquema físico 74 Imagen 15. LVS: Encapsulado IP 76 Imagen 16. LVS: VS-Tun 77 Imagen 17. LVS: VS-DR 80 Imagen 18. LVS: Alta disponibilidad 86 Imagen 19. LVS: lvs-gui 91 Imagen 20. LVS: Ultra Monkey, método 1 94 Imagen 21. LVS: Ultra Monkey, método 2 94 Imagen 22. LVS: Ultra Monkey, método 3 95 Imagen 23. LVS: Ultra Monkey, método 4 95 Imagen 24. Super Sparrow: Ejemplo BGP 98 Imagen 25. Super Sparrow: Ejemplo de funcionamiento 99 Imagen 26. Super Sparrow: Funcionamiento de mod_supersparrow 101 Imagen 27. Super Sparrow: Integración con Apache 102 Imagen 28. LUI: Interfaz gráfico 106 Imagen 29. VA SystemImager: Instalación, paso 1 111 Imagen 30. VA SystemImager: Instalación, paso 2 111 Imagen 31. VA SystemImager: Instalación, paso 3 111 Imagen 32. webmin: Menú principal 113 Imagen 33. webmin: Administración Cyrus IMAP 115 Imagen 34. Comparativa: ext2 vs. reiserfs (1/2) 118 Imagen 35. Comparativa: ext2 vs. reiserfs (2/2) 120 Imagen 36. Comparativa: RAID + LVM + ext2 (1/2) 121 Imagen 37. Comparativa: RAID + LVM + ext2 (2/2) 123 Imagen 38. Comparativa: RAID + LVM + reiserfs (1/2) 125 Imagen 39. Comparativa: RAID + LVM + reiserfs (2/2) 127 Imagen 40. Comparativa: RAID + ext2 vs. RAID + reiserfs 128 Imagen 41. Comparativa: RAID1 + reiserfs 130 Imagen 42. Comparativa: NFS vs. CODA 160 Imagen 43. Conclusión: Cluster sencillo 170 Índice de tablas Tabla 1. rsync: Rendimiento 29 Tabla 2. NFS: Demonios 33 Tabla 3. NFS: Servicios, puertos y protocolos 37 Tabla 4. CODA: Procesos servidores 45 Tabla 5. CODA: Particiones en el servidor 47 Tabla 6. LVS: Métodos de direccionamiento 82 Tabla 7. VA SystemImager: Distribuciones soportadas 109 Tabla 8. VA SystemImager: Otras distribuciones 109 |