Este artículo incluye una lista de referencias , lecturas relacionadas o enlaces externos , pero sus fuentes no están claras porque carece de citas en línea . ( Diciembre de 2022 ) |
Quattor es un conjunto de herramientas de código abierto genérico que se utiliza para instalar, configurar y administrar equipos. Quattor se desarrolló originalmente en el marco del proyecto europeo Data Grid (2001-2004). Desde su primera versión en 2003, Quattor ha sido mantenido y ampliado por una comunidad voluntaria de usuarios y desarrolladores, principalmente de la comunidad de administradores de sistemas de red. El conjunto de herramientas Quattor, al igual que otros sistemas de gestión de configuración, reduce el personal necesario para mantener un clúster y facilita la gestión de cambios fiable. Sin embargo, tres características únicas lo hacen especialmente atractivo para la gestión de recursos de red :
Estas características también son atractivas más allá del contexto de la red. Esto ha sido confirmado por la creciente adopción de Quattor, tanto por parte de grandes organizaciones comerciales [1] como de instituciones académicas, la mayoría de las cuales utilizan el conjunto de herramientas para gestionar de manera consistente sus sistemas de red y no red.
El desafío de estructurar y compartir componentes en un sistema colaborativo no es nuevo; a lo largo de los años, los diseñadores de lenguajes de programación han abordado este problema desde muchos ángulos. Si bien las tendencias cambian, los principios básicos se comprenden bien. Características como la encapsulación, la abstracción, la modularidad y la tipificación producen beneficios claros. Creemos que se aplican principios similares cuando se comparte información de configuración entre dominios administrativos.
El kit de herramientas de configuración Quattor deriva su arquitectura de LCFG , lo que lo mejora en varios aspectos. En el núcleo de Quattor se encuentra Pan, un lenguaje tipado de alto nivel con mecanismos de inclusión flexibles, una gama de estructuras de datos y características de validación familiares para los programadores modernos. Pan permite a los administradores colaborativos crear un conjunto complejo de plantillas de configuración que describen tipos de servicios, componentes de hardware, parámetros de configuración, usuarios, etc. El uso de un lenguaje de alto nivel facilita la reutilización de código de una manera que va más allá de cortar y pegar fragmentos de configuración.
Los principios incorporados en Quattor están en línea con los establecidos dentro de la comunidad de administración de sistemas. En particular, todos los nodos administrados recuperan sus configuraciones de un servidor de configuración respaldado por un sistema de control de código fuente (o sistemas en el caso de administración descentralizada). Esto permite recrear nodos individuales en caso de falla de hardware. Quattor maneja infraestructuras tanto distribuidas como tradicionales (de un solo sitio).
La gestión descentralizada incluye las siguientes características: coherencia en una infraestructura de varios sitios, múltiples puntos de gestión y la capacidad de adaptarse a las necesidades específicas de los sitios que la constituyen. No existe un único modelo "correcto" para una infraestructura descentralizada, por lo que se necesita una gran flexibilidad en la arquitectura del propio sistema de configuración. A veces, un conjunto de sitios altamente autónomos desea colaborar de forma flexible. En este caso, cada sitio albergará un conjunto bastante completo de servidores de configuración, con información de configuración común que se recupera de una base de datos compartida y se integra con la configuración local.
La distribución de la tarea de gestión puede suponer potencialmente nuevos costes. Por ejemplo, la transmisión de información de configuración a través de la WAN introduce problemas de latencia y seguridad. Quattor permite colocar servidores en lugares adecuados de la infraestructura para reducir la latencia, y el uso de herramientas y protocolos estándar permite aprovechar los sistemas de seguridad existentes (como una infraestructura de clave pública) para cifrar y autenticar las comunicaciones.
El sistema de gestión de configuración de Quattor se compone de una base de datos de configuración que almacena plantillas de configuración de alto nivel, el compilador Pan que valida las plantillas y las traduce a perfiles XML o JSON, y un repositorio de perfiles de máquina que sirve los perfiles a los nodos cliente. Solo el compilador Pan es estrictamente necesario en un sistema Quattor; los otros dos subsistemas pueden reemplazarse por cualquier servicio que proporcione una funcionalidad similar.
La gestión descentralizada en un entorno multidominio requiere que los usuarios estén autenticados y que sus operaciones estén autorizadas. Para la base de datos de configuración se pueden utilizar certificados X.509 por el soporte que ofrecen muchas herramientas estándar, y listas de control de acceso (ACL) porque permiten un control de grano fino (se puede adjuntar una ACL a cada plantilla). Cuando muchos usuarios interactúan con el sistema, pueden surgir conflictos y configuraciones erróneas que requieran un mecanismo de reversión; para ello, se implementó un mecanismo de transacciones concurrentes simple, basado en sistemas de control de versiones estándar.
La arquitectura modular de Quattor permite que los tres subsistemas de gestión de configuración se implementen de forma distribuida o centralizada. En el enfoque distribuido, la compilación de perfiles (en la etapa de desarrollo) se lleva a cabo en los sistemas cliente, luego las plantillas se verifican en una base de datos adecuada y, finalmente, se inicia la implementación invocando una operación independiente en el servidor. El enfoque centralizado proporciona un control estricto de los datos de configuración. La carga de la compilación recae en el servidor central y los usuarios solo pueden acceder y modificar las plantillas a través de una interfaz dedicada.
Dado que ambos paradigmas ofrecen básicamente la misma funcionalidad, la elección entre ellos depende de cuál se adapte mejor al modelo de gestión de una organización. Por ejemplo, el enfoque centralizado se adapta bien a los grandes centros informáticos debido a su flujo de trabajo estrictamente controlado, mientras que las organizaciones con múltiples sedes como GRIF prefieren el enfoque distribuido porque permite que las distintas partes de todo el conjunto de configuración se gestionen de forma autónoma.
El compilador de lenguaje Pan, panc, se encuentra en el núcleo del conjunto de herramientas de Quattor. Compila configuraciones de máquinas escritas en el lenguaje de configuración Pan por los administradores de sistemas y produce archivos XML o JSON (perfiles) que los clientes de Quattor pueden utilizar fácilmente. El lenguaje Pan en sí tiene una sintaxis declarativa simple que permite la definición simultánea de información de configuración y un esquema asociado. En esta sección, nos centramos únicamente en las características de Pan que son relevantes para la gestión descentralizada de sitios distribuidos: validación, reutilización de la configuración y modularización.
Validación . Las amplias funciones de validación del lenguaje Pan maximizan la probabilidad de encontrar problemas de configuración en el momento de la compilación, lo que minimiza las costosas tareas de limpieza de errores de configuración implementados. Pan permite a los administradores de sistemas definir tipos atómicos o compuestos con funciones de validación asociadas; cuando una parte del esquema de configuración está vinculada a un tipo, las restricciones declaradas se aplican automáticamente.
Reutilización de la configuración . Pan permite la identificación y reutilización de la información de configuración a través de “plantillas de estructura”. Estas identifican fragmentos pequeños y reutilizables de información de configuración a nivel de Pan que se pueden utilizar siempre que un administrador identifique un subárbol de configuración invariable (o casi invariable).
Modularización . Respecto al diseño original, se han desarrollado dos nuevas características para promover la modularización y la reutilización a gran escala de configuraciones: los mecanismos de espaciado de nombres y de rutas de carga.
Una configuración completa de un sitio normalmente consta de una gran cantidad de plantillas organizadas en directorios y subdirectorios. El espaciado de nombres de las plantillas Pan imita (y refuerza) esta organización de forma muy similar a como se hace en el lenguaje Java. La jerarquía de espacios de nombres es independiente del esquema de configuración. El esquema de configuración suele estar organizado por servicios de bajo nivel, como configuraciones de firewall para puertos, generación de cuentas, entradas de rotación de registros, entradas de cron y similares. Por el contrario, las plantillas Pan suelen estar organizadas en función de otros criterios, como servicios de alto nivel (servidor web, servidor de correo, etc.) o por persona o grupo responsable.
El espaciado de nombres permite separar e identificar varias partes de la configuración. Para modularizar eficazmente parte de la configuración para su reutilización, los administradores deben poder importar los módulos fácilmente a la configuración de un sitio y personalizarlos. Los usuarios del compilador Pan combinan una ruta de carga con el espaciado de nombres para lograr esto. El compilador usa la ruta de carga para buscar en varios directorios raíz plantillas específicas con nombre; la primera versión que se encuentra en la ruta de carga es la que usa el compilador. Esto permite mantener los módulos en un estado prístino y, al mismo tiempo, permitir que los sitios anulen cualquier plantilla en particular.
Además, los desarrolladores de módulos también pueden exponer variables globales para parametrizar el módulo, lo que permite a un administrador del sistema utilizar un módulo sin tener que comprender el funcionamiento interno de las plantillas del módulo.
Las plantillas del grupo de trabajo Quattor (QWG) se utilizan para configurar los servicios de middleware de la red . Las plantillas QWG utilizan todas las características de Pan para permitir que los sitios distribuidos compartan su experiencia en middleware de la red .
Una característica clave para administrar grandes infraestructuras distribuidas es la capacidad de instalar automáticamente máquinas, posiblemente desde una ubicación remota. Para este propósito, Quattor proporciona un marco modular llamado Infraestructura de instalación automatizada (AII). Este marco es responsable de traducir los parámetros de configuración incorporados en los perfiles de nodo en instrucciones de instalación adecuadas para su uso por parte de herramientas de instalación estándar. Los módulos AII actuales utilizan perfiles de nodo para configurar servidores DHCP, arranque PXE e instalaciones guiadas por Kickstart.
Normalmente, AII se configura con un servidor de instalación en cada sitio. Sin embargo, las tecnologías mencionadas anteriormente permiten la implementación transparente de instalaciones en varios sitios mediante la configuración de un servidor central y relés adecuados utilizando protocolos estándar.
En Quattor, los nodos administrados manejan su proceso de configuración de manera autónoma; todas las acciones se inician localmente, una vez que se ha recuperado el perfil de configuración del repositorio. Cada nodo tiene un conjunto de agentes de configuración (componentes) que están registrados con una parte particular del esquema de configuración. Por ejemplo, el componente que administra las cuentas de usuario está registrado con la ruta /software/components/accounts. Un programa despachador que se ejecuta en el nodo realiza un análisis de la configuración recién recuperada para detectar cambios en las secciones relevantes y activa los componentes apropiados. Las dependencias de tiempo de ejecución se pueden expresar en el perfil del nodo, de modo que se pueda aplicar un orden parcial en la ejecución del componente. Por ejemplo, es importante que el componente de cuentas de usuario se ejecute antes que el componente de creación de archivos, para garantizar que se pueda especificar correctamente la propiedad de los archivos.
Por diseño, no se proporciona ningún bucle de control para garantizar la correcta ejecución de los componentes de configuración. Los administradores de sitios suelen utilizar sistemas de monitorización estándar para detectar y responder a los fallos de configuración. Tanto Nagios como Lemon se utilizan en los sitios de Quattor para este fin. De hecho, Lemon se ha desarrollado en conjunto con Quattor y proporciona sensores para detectar fallos en la ejecución de los componentes de Quattor.
Si bien los nodos normalmente se actualizan automáticamente, los administradores pueden configurar el sistema para desactivar la implementación automática de cambios. Esto es crucial en un sistema descentralizado donde las responsabilidades de modificar e implementar la configuración pueden estar separadas, respectivamente. Un escenario típico es que los administradores de alto nivel administran la configuración compartida de varios sitios remotos y los administradores locales la aplican de acuerdo con sus políticas. Por ejemplo, las actualizaciones de software pueden programarse en diferentes momentos.