Hands on Openstack : Introduction Tags : openstack cloud Alban Crommer 2013 Octopuce
Connaître Openstack Niveau 0 : Connaissance des composants
Connaître Openstack Niveau 1 : Utilisation des services et des commandes de base
Connaître Openstack Niveau 2 : Compréhension du fonctionnement interne
Connaître Openstack Niveau 3 : Compréhension des échanges bas niveau et des configurations multiples
Scope / Prérequis Formation de niveau 0-1 pour découvrir openstack et apprendre à utiliser la ligne de commande et le dashboard. Le prérequis est d'avoir une installation Openstack prête.
Cloud?
«Cloud»
Openstack : Cluster avec coeur et noeuds périphériques [Node] --- --- [Node] \ [Node] --- [Core] / [Node] --- / Le coeur centralise les services de contrôle du cluster et d'administration et distribue les commandes. --- [Node] \ --- [Node] Les nodes périphériques fournissent des services en panache : certains peuvent fournir plusieurs services, d'autres un seul. Les ressources des Machines Virtuelles lancées par le Coeur utilisent les ressources fournies par les nodes.
Cluster? Somehow.
Pourquoi Openstack? Système ouvert. L'ensemble du code est disponible. Capable de dialoguer avec les systèmes fermés (Amazon). Basé sur Linux & Python. Système reconnu. Une majorité d'acteurs clefs du secteur IT privés et publics ( NASA, CERN, AMD, Intel, Canonical, SUSE Linux, Red Hat, Cisco, Dell, HP, IBM, VMware, Yahoo!) Système adaptable. Permet de partir d'un parc hétérogène existant, de choisir un système de virtualisation parmi de nombreux choix (KVM, QEMU, LXC,...). Système modulaire. Permet d'intégrer une portion des briques disponibles.
Production ready?
Les composants Openstack NOVA Cluster thingy Composant de coeur, responsable de la gestion des serveurs et de la distribution des ressources. HORIZON L'hôtesse d'accueil Interface web de gestion des services Openstack
Openstack is easy. Like DNS.
Les composants Openstack SWIFT Stockage à la Dropbox Composant de gestion d'un système de fichier distribué / redondé s'assurant de la disponibilité d'objets CINDER La baie de disques Composant de gestion des stockages disques au niveau bloc : créer, attacher et détacher des volumes
Openstack = Work in progress
Les composants Openstack KEYSTONE Le vigile Composant de gestion des identités : authentification des services entre modules, avec d'autres services (amazon) QUANTUM L'admin réseau Composant de gestion des réseaux via une API 'Networking as a Service' : création des réseaux, distribution des IPs et des règles
Security?
Les composants Openstack GLANCE Distributeur d'os Composant de gestion des images virtuelles : recherche, téléchargement, mise à disposition
And now
HORIZON Horizon est basé sur un module django nommé django-openstack. Ce module et une installation de référence d'une installation Django fonctionnelle sont intégrés au coeur du projet Openstack pour servir d'interface web aux instances déployées. Horizon fournit une interface graphique pour accéder, provisionner et automatiser des ressources du cluster. Sont concernées les VMs (novacompute), le stockage (nova-storage) et le réseau (nova-quantum). Horizon gère les utilisateurs et les projets ainsi que les quotas qu'on peut leur attribuer. Il est accessible aux utilisateurs non administrateurs pour gérer leurs propres ressources. Optionnellement, on peut brancher des plugins et/ou rebrander le django. Par définition, Horizon n'offre pas de lignes de commande.
QUANTUM Quantum fournit une API qui permet de délivrer des réseaux et des adresses IP aux VMs du Cluster à la demande des utilisateurs. Quantum permet de choisir entre plusieurs solutions techniques selon les besoins du cluster: - Flat, Flat DHCP ou VLAN pour les connexions entre VMs - IP statiques / DHCP / IP (publiques) flottantes Les utilisatseurs peuvent créer et administrer leurs propres réseaux. Il existe de nombreux plugins / options permettant d'utiliser des équipements ou des logiciels réseaux spécifiques, qu'il s'agisse de dimensionner, balancer, sécuriser, etc. Les lignes de commande pour quantum sont par exemple $ nova-manage floating create <ip_range> [--pool <pool>] [--interface <interface>] $ nova-manage network create private 192.168.0.0/24 1 25
SWIFT Swift fournit un service de stockage de fichiers ou d'objets qui gère automatiquement la redondance. Il est adapté pour stocker des images disques, des archives, des images, des emails, etc. Il suffit d'ajouter des noeuds swift pour augmenter la capacité et la redondance. A l'inverse si un noeud fait défaut, Swift duplique ses données sur d'autres machines. Les lignes de commande pour quantum sont par exemple $ swift -A https://auth.api.rackspacecloud.com/v1.0 -U user -K key stat $ swift list $ swift upload $ swift post $ swift download $ swift delete
CINDER Cinder fournit un service de stockage par block devices qui peuvent être attachés aux VMs pour servir de disques pour leurs systèmes de fichiers. Les utilisateurs peuvent générer eux-mêmes des disques et les attribuer à leurs VMs. Cinder supporte un mécanisme de snapshot pour sauvegarder les données des block devices, puis les restaurer ou s'en servir de base pour un nouveau block device. Les lignes de commande de Cinder sont par exemple $ nova volume-create $ nova volume-attach
GLANCE Glance fournit une gestion des images disques permettant de démarrer les serveurs à de nombreux formats (Raw, AMI, qcow2, OVF, etc.) Glance permet aux utilisateurs de générer leurs propres images, y compris en faisant un snapshot d'un système. En ligne de commande : $ glance add $ glance update $ glance delete $ glance details $ glance show
NOVA Au coeur d'openstack, Nova fournit toutes les fonctionnalités essentielles à la gestion d'un service "Infrastructure As A Service". Gestion des VMs. Gestion des clients / quotas. Gestion des machines "bare metal" Les utilisateurs peuvent booter de nouvelles machines, lister les images, etc. Les lignes de commandes sont $ nova $ nova help boot & nova actions $ nova boot $ nova list $ nova rename
What Now? Monter un NAS / filer avancé? Migrer une infrastructure existante? Monter un service de stockage en ligne (dropbox)? Monter un service de machines cloud? Monter un service pour les développeurs (heroku)?
Hands on!