Jimmy Goffaux @amto_res Hébergement Cloud - TechDay
Sommaire Besoin Chiffres Stockage : Ceph et local ACL et Permissions Hooks DNS Contextualisation Conclusion
Besoin Besoin interne : - Industrialisation des déploiements de VMs - Industrialisation des services (avec implémentation Puppet en parallèle) - Avec solution rapidement opérationnelle Besoin clients : - Self-service - Centralisation Solution : - Short-list : OVirt, OpenNebula, OpenStack (+ fail récent sur CloudStack) - Choix OpenNebula pour : - Couverture des besoins - Simplicité de déploiement - Documentation Durée du projet : 4 mois
Chiffres Noeuds KVM Utilisation OpenVSwitch Stockage: 32 To SATA Ceph (RadosGW et RBD) 48 To Flash SSD RAM: 2To DDR4 384 threads Xeon
Stockage Ceph : - Images - VMs Configuration Core (onedatastore) Local : - Images - VMs - Contextualisation Configuration Core (onedatastore) CEPH_HOST="10.4.0.1:6789 10.4.0.3:6789 10.4.0.4:6789" CEPH_SECRET="xxxxxxxxxxxxx" CEPH_USER="opennebula" Configuration Node (virsh+librbd) DATASTORE TEMPLATE BASE_PATH="/var/lib/one//datastores/" SHARED="NO" TM_MAD="ssh" TYPE="SYSTEM_DS" <secret ephemeral='no' private='no'> <uuid>aaaaaaaaa-00000-sdds-fdsfds-ddsqsdq</uuid> <usage type='ceph'> <name>client.opennebula secret</name> </usage> </secret>
ACL, Permissions VDC Client A Client SelfService Groupe Client Serveur de Production Groupe Client Prod
ACL, Permissions VDC Client A Client SelfService Groupe Client Image Ubuntu Serveur de Production Groupe Client Prod
ACL, Permissions VDC Client A Client SelfService Groupe Client Image Ubuntu Serveur de Production Groupe Client Prod Modèle : Ubuntu SelfService
ACL, Permissions VDC Client A Client SelfService Groupe Client Image Ubuntu Serveur de Production Groupe Client Prod Modèle : Ubuntu SelfService Modèle : Ubuntu IH Other : ---
ACL, Permissions VDC Client A Client SelfService Groupe Client Image Ubuntu Serveur de Production Groupe Client Prod ID USER RES_VHNIUTGDCOZ RID OPE_UMAC ZONE 96 @104 V----------- * ---c #0 Modèle : Ubuntu SelfService Modèle : Ubuntu IH Other : ---
ACL, Permissions VDC Client A Client SelfService Groupe Client Image Ubuntu Serveur de Production Groupe Client Prod ID USER RES_VHNIUTGDCOZ RID OPE_UMAC ZONE 96 @104 V---------- * ---c #0 Modèle : Ubuntu SelfService 115 @106 V------------- * ---c #0 116 @106 ----T--------- * u--- #0 Modèle : Ubuntu IH Other : ---
Hooks DNS /var/lib/one/remotes/hooks/ih_dns_hooks_sh [...] HOSTNAME=`onevm show $1 grep ^HOSTNAME awk -F'"' '{print $2}'` /etc/one/oned.conf [...] cat<<eof /usr/bin/nsupdate -k ~/.key_dns/kone.ippon-hosting.net.+157+18282.private -v server ns1.one.ippon-hosting.net zone one.ippon-hosting.net update delete $HOSTNAME-$1.one.ippon-hosting.net A update add $HOSTNAME-$1.one.ippon-hosting.net 60 A $ip show send VM_HOOK = [ name = "IPPONHOSTING_HOOK", on = "CREATE", command = "ih_dns_hooks_sh", arguments = "$ID" ] cat<<eof /usr/bin/nsupdate -k ~/.key_dns/kone.ippon-hosting.net.+157+18282.private -v server ns1.one.ippon-hosting.net zone one.ippon-hosting.net update delete one-$1.one.ippon-hosting.net A update add one-$1.one.ippon-hosting.net 60 A $ip show send EOF [...]
Contextualisation Debian : opennebula-context - Montage d une ISO dans /mnt - Script init.sh distrib=`cat /etc/issue awk '{print $3}'` if [ $distrib -eq '7' ] ; then name_distrib="wheezy" elif [ $distrib -eq '8' ] ; then name_distrib="jessie" fi cd /tmp wget https://apt.puppetlabs.com/puppetlabs-release-$name_distrib.deb dpkg -i puppetlabs-release-$name_distrib.deb apt-get update apt-get install -y puppet [...] Ubuntu : cloud-init #cloud-config chpasswd: { expire: False } password: test fqdn: $HOSTNAME-$VMID.one.ippon-hosting.net runcmd: - [ usermod, -l, atomes, ubuntu ] - [ groupmod, -n, atomes, ubuntu ] - [ usermod, -d, /home/atomes, -m, atomes ] - [ perl, -pi, -e, 's/ubuntu/atomes/g;', /etc/sudoers.d/90-cloudimg-ubuntu ] apt_update: true apt_sources: - source: 'deb http://apt.puppetlabs.com precise dependencies' - source: 'deb http://apt.puppetlabs.com precise main' [...]
Roadmap Cloud 2016 Multi DC Virtualisation FW PRA as a Service
Conclusion - + Identification d un disque dans une VM (UUID) pas de facturation à la consommation Pas d isolation PVLAN (Openvswitch) Interface intuitive pour les non-experts Documentation Système de VDC : permissions et héritages quotas et sous-quotas Production dans un contexte multi tenants en 4 mois Sécurité (Antispoofing) Facilité d Upgrade 3 minutes pour créer une VM de production Coming next: Migration de tous nos serveurs des infras legacy! KVM, Xen Server, et bare metal Many to just!
ippon.fr @ippontech blog.ippon.fr ippon-hosting.com contact@ippon.fr