Componentes principales de OpenStack ("core")
- Keystone
- Glance
- Nova
- Cinder
- Swift
- Neutron
Características generales
- Escritos en Python
- Utilización de AMQP
- Interacción a través de APIs RESTful
- Base de datos independiente
- Autenticación y autorización mediante keystone
- CLI independiente
Keystone (Identity Service)
- Proyectos, usuarios, roles, etc.
- Implementa RBAC (Role Based Access Control)
- Autenticación por tokens
- Gestión de los Endpoints
- Autenticación básica: SQL o LDAP
- Otras opciones de autenticación: SAML, OpenID, Mecanismo externo (vía WSGI)
- No hay roles por defecto. Habitualmente "admin" y "_member_"
- Autorización mediante políticas (policy.json)
Glance (Image Service)
- Gestión de imágenes e instantáneas
- Formato qcow2 ← KVM
- Otros formatos: raw, vhd, vmdk, vdi, ... [1]
- Se pueden almacenar como objetos en Swift las imágenes e instantáneas
- En este curso utilizaremos /var/lib/glance/
Nova (Compute Service)
- Gestión de las instancias
- Varios subcomponentes: nova-api, nova-conductor, nova-console,
nova-scheduler, nova-compute
- La configuración de nova-compute depende del hipervisor
- nova-api puede utilizar la API de Amazon EC2
- Importante: Definir CPU y RAM allocation-ratio
- Importante: Con KVM es conveniente configurar KSM
- nova-console: VNC o SPICE
Cinder (Block Storage Service)
- Gestión de los volúmenes
- Múltiples "backends"
- Varios componentes: cinder-api, cinder-scheduler y cinder-volume
Swift
- Almacenamiento de objetos
- Almacenamiento distribuido y en alta disponibilidad
- Independiente del resto de componentes
- Utilización muy sencilla
- Implementación y administración más compleja
Neutron (Networking Service)
- Encargado de las redes, subredes, routers, etc.
- Modular Layer 2 (ML2):
- Varios tipos: local,flat,vlan,gre,vxlan
- Varios mecanismos: Arista, Brocade, Cisco, Nexus, Hyper-V, midonet,
nuage, OVS, ...
- DHCP y routers definidos en el nodo de red (linux network namespaces)
- Servicio de metadatos a cada subred en modo proxy
- Puede proporcionar LBaaS, VPNaaS y FWaaS