MySQL as a Service: LXC Applicationcontainer



Ähnliche Dokumente
LinuX-Container. Erkan Yanar. 1. März Erkan Yanar () LinuX-Container 1. März / 27

Lightweight virtualization: LXC vs. OpenVZ

Linux Containers (LXC) inqbus

Brownbag Session Grundlagen Virtualisierung Von VM s und Containern

Isolierte Umgebungen für Python Anwendungen Teil 2. Christine Koppelt, Jürgen Schackmann, Stefan Seelmann

LinuXContainer. Nutzung unprivilegierter LinuXContainer als normaler Nutzer. Dirk Geschke. Linux User Group Erding. 28.

Linux-VServer. Sebastian Harl 19. Mai 2006

Linux Container (LXC) Ein Überblick Bernhard Wesely Trivadis Delphi GmbH Wien, Österreich Schlüsselworte Oracle Linux Container LXC Virtualisierung

OS-Virtualisierung mit Solaris Zonen in der Praxis

Von heiter bis wolkig Hosting am RRZE Physikalisch Virtuell in der Cloud Daniel Götz

WIE ERHÖHT MAN DIE EFFIZIENZ DES BESTEHENDEN RECHENZENTRUMS UM 75% AK Data Center - eco e.v. 1. Dezember 2009

Kernel Based Virtual Machine

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Virtuelle Maschinen. von Markus Köbele

Solaris Cluster. Dipl. Inform. Torsten Kasch Bielefeld.DE> 8. Januar 2008

HVS32 Datenbank Archivierungs Dienst

Private Nutzerumgebungen mit dynamisch zugeordneten Ressourcen in Linux-Containern

KASPERSKY SECURITY FOR VIRTUALIZATION 2015

Virtualisierung von SAP -Systemen

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Virtualisierung Linux-Kurs der Unix-AG

SPARC LDom Performance optimieren

Calogero Fontana Fachseminar WS09/10. Virtualisierung

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

XEN Virtualisierung und mehr

Workshop: Eigenes Image ohne VMware-Programme erstellen

Virtual Elastic Services

Virtualisierung im Rechenzentrum

Proxmox VE - mit OpenSource Virtualisierung leicht gemacht

Cloud Computing mit OpenStack

Open Source Virtualisation

WISSENSWERTES ÜBER WINDOWS SCALE-OUT FILE SERVER

Betriebssystemsicherheit am Beispiel UNIX

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

Fragen zur GridVis MSSQL-Server

check_mk - Nagios ganz einfach

Windows Server 2012 R2 Essentials & Hyper-V

Version Deutsch

Stefan Dahler. 1. Remote ISDN Einwahl. 1.1 Einleitung

Virtualisierung mit Solaris Detlef Drewanz

Hochverfügbare LDOMs mit Oracle Solaris Cluster

The linux container engine. Peter Daum

Installation Messerli MySQL auf Linux

Konfiguration Serverstart Server einrichten. MySQL 4, 5. Kapitel 03: Serverstart und -konfiguration. Marcel Noe

MySQL Replikation. Erkan Yanar linsenraum.de linsenraum.de

Proseminar Technische Informatik A survey of virtualization technologies

Dynamic Ressource Management

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Agenda. Einleitung Produkte vom VMware VMware Player VMware Server VMware ESX VMware Infrastrukture. Virtuelle Netzwerke

VMware vsphere Client

Unternehmen-IT sicher in der Public Cloud

... Einleitung Grundlagen der Virtualisierung Konzeption virtualisierter SAP-Systeme... 87

Die Linux Kernel Virtual Machine - Wo steht der Linux Hypervisor? 2. März 2008

Sicheres MultiSeat. Axel Schöner. 14. März 2014

Virtual Desktop Infrasstructure - VDI

Step by Step Webserver unter Windows Server von Christian Bartl

Dokumentation CMM Modular Server

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Achung! User müssen unter Linux schon erstellt sein!

Aufbau einer Testumgebung mit VMware Server

Was ist Amazon RDS? Datenbank Typen DB Instanzen Features. Live Demo Fazit. Amazon RDS - Till Ganzert

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

1. IPSec Verbindung zwischen 2 Gateways mit dynamischen IP Adressen

Serverkonsolidierung durch Einsatz von VMware Virtual Infrastructure 3 (VI3)

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe,

Virtuelle Maschinen. Serbest Hammade / Resh. Do, 13. Dezember 2012

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Docker und Virtualisierung Container Use Cases für eine isolierte, performante Zukunft

Verbinde die Welten. Von Oracle auf MySQL zugreifen

AnyOS Setupbeschreibung Installation und Konfiguration Bedienung Fazit. AnyOS. Axel Schöner. 25. August 2012

Installationsanleitung für die netzbasierte Variante Bis Version 3.5. KnoWau, Allgemeine Bedienhinweise Seite 1

Securepoint Security Systems

Virtualisierung. Zinching Dang. 12. August 2015

Servervirtualisierung mit Xen Möglichkeiten der Netzwerkkonfiguration

SaaS Exchange Handbuch

Diese Anleitung erläutert die Einrichtung des Active Directory Modus im DNS-343.

HBF IT-Systeme. BBU-BSK Übung 2 Stand:

Panda GateDefender Virtual eseries ERSTE SCHRITTE

Stefan Dahler. 2. Wireless LAN Client zum Access Point mit WPA-TKIP. 2.1 Einleitung

terra CLOUD IaaS Handbuch Stand: 02/2015

User Mode Linux. Sven Wölfel 15. April 2005

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics

Erhöhung der Serverauslastung IBM Corporation

Collax Web Application


Knottenwäldchen Software

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Installations-Dokumentation, YALG Team

Betriebssystem Windows - SSH Secure Shell Client

Betriebssystem-basierte Virtualisierung

Dateisystem 1, Suchpfad, Befehlstypen

» Hyper-V Best Practice Microsofts Virtualisierung professionell einsetzen

Dateisystem 1, Suchpfad, Befehlstypen

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Gruppe Grundlegende Konfiguration... 1 Übersicht Routerbefehle... 2 Schlussendliche Konfiguration... 2 TFTP-Server... 5 Gruppe 2...

Oracle VM Support und Lizensierung. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

HAFTUNGSAUSSCHLUSS URHEBERRECHT

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Transkript:

MySQL as a Service: LXC Applicationcontainer Erkan Yanar Infrastructure Design of Architecture & Standards 6. März 2012 Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 1 / 44

Einleitung Agenda Es geht um Virtualisierung! 1 MySQL as a Service mit MySQL Bordmitteln 2 Linux: Cgroups & LXC 3 MySQL as a Service mit LXC Applikationscontainer 4 Cgroups demystified 5 Application as a Service mit LXC Applikationscontainer Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 2 / 44

... as a Service Einleitung Die Welt von Alles-as-a-Service: Am Beispiel von MySQL wird eine SaaS/RDBaaS/DBoD Lösung vorgestellt. Die bekannteste MySQL SaaS/RDBaaS/DBoD Lösung ist wohl Amazon RDS. Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 3 / 44

... as a Service Einleitung Die Welt von Alles-as-a-Service: Am Beispiel von MySQL wird eine SaaS/RDBaaS/DBoD Lösung vorgestellt. Die bekannteste MySQL SaaS/RDBaaS/DBoD Lösung ist wohl Amazon RDS. Wofür? Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 3 / 44

... as a Service Einleitung Die Welt von Alles-as-a-Service: Am Beispiel von MySQL wird eine SaaS/RDBaaS/DBoD Lösung vorgestellt. Die bekannteste MySQL SaaS/RDBaaS/DBoD Lösung ist wohl Amazon RDS. Testumgebung Upgrades Prototyping Betrieb Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 3 / 44

... as a Service Einleitung Die Welt von Alles-as-a-Service: Am Beispiel von MySQL wird eine SaaS/RDBaaS/DBoD Lösung vorgestellt. Die bekannteste MySQL SaaS/RDBaaS/DBoD Lösung ist wohl Amazon RDS. Testumgebung Upgrades Prototyping Betrieb? Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 3 / 44

... as a Service Einleitung Agenda Erkan Yanar 1 RDBaaS mit MySQL Bordmitteln 2 Rettungsanker Virtualisierung? 3 RDBaas (DBoD) mit LXC Applikationscontainer Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 4 / 44

MySQL Bordmittel Multi-Schema Multi-Schema Aufgabe: Alle Datenbanken der Projekte werden von einer Instanz bedient Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 5 / 44

MySQL Bordmittel Multi-Schema Multi-Schema Aufgabe: Alle Datenbanken der Projekte werden von einer Instanz bedient Neuer Kunde: CREATE SCHEMA schema ; GRANT ALL ON schema.* TO kunde@host IDENTIFIED BY password ; Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 5 / 44

Übersicht MySQL Bordmittel Multi-Schema Multi Schema Easy of Use X Ressourcenzuweisung zwischen Schemata - Applikationssp. Conf - Verschiedene MySQL-Version - Sep. PITR, Upgrade - Serverauslastung - Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 6 / 44

MySQL Bordmittel Multi Instance Multi Instance Verwaltung separater Instanzen mysqld multi Sep. User pro Instanz Sep. Port pro Instanz my.cnf [mysqld multi] mysqld = /some/mysqld safe mysqladmin = /some/mysqladmin user = multi admin password = multipass [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /some/host.pid2 datadir = /some/var2 user = john [mysqld3] socket = /tmp/mysql.sock3 port = 3308 pid-file = /some/host.pid3... Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 7 / 44

MySQL Bordmittel... Übersicht Multi Schema Multi Instanz Easy of Use X - Ressourcenzuweisung zwischen Schemata - X Systemressourcen zwischen Instanzen (-) - Applikationssp. Conf - X Verschiedene MySQL-Version - (X) Sep. PITR, Upgrade - X Default Port X - Serverauslastung - X Overhead vieler Instanzen - X Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 8 / 44

MySQL Bordmittel... Agent Virtualisierung Wobei kann Virtualisierung helfen?! Zumindest bei: Ressourcenzuweisung Isolation Port... Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 9 / 44

MySQL Bordmittel... Übersicht Multi Schema Multi Instanz Virtualisiert Easy of Use X - (X) Ressourcenzuweisung zwischen Schemata - X X Systemressourcen zwischen Instanzen (-) - X Applikationssp. Conf - X X Versch. MySQL-Ver. - (X) X Sep. PITR, Upgrade - X X Default Port X - X Serverauslastung - X X Instanzen Overhead - X X Accounting - - X Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 10 / 44

Virtualisierung Übersicht Container aka OS-Virtualisierung und die Anderenunter Linux Möglichkeiten: LXC Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 11 / 44

Linux Virtualisierung Übersicht Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 12 / 44

KVM etc. Virtualisierung Übersicht Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 13 / 44

Container Virtualisierung Übersicht Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 14 / 44

Two Worlds Virtualisierung Übersicht Hardware Virtualisierung kann mehr! Hardware Virt. KVM, Xen, VMWare Betriebssystem Virt. LXC, OpenVZ Separates OS X - Seperater Kernel X - Andere Hardwarearchitekturen qemu - Server Auslastung - X Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 15 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel u bernimmt die Verwaltung Nur ein OS-Typ Du nne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. Ma rz 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel u bernimmt die Verwaltung Nur ein OS-Typ Du nne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. Ma rz 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Virtualisierung System-Container Container sind: Virtualisierung im OS Container / Verzeichnisse Hostkernel übernimmt die Verwaltung Nur ein OS-Typ Dünne Virtualisierungsschicht Prozessvirtualisierung Dynamische Zuweisung von Ressourcen CPU und I/O Scheduler Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 16 / 44

Überblick Einleitung Virtualisierung zwischen Emulatoren und chroot Look@Container ala LXC Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 17 / 44

Einleitung Virtualisierung zwischen Emulatoren und chroot Überblick Look@Container ala LXC 1 cgroups: Ressourcenmanagement 2 LXC: (Applikations)Container on top 3 OpenVZ vs. LXC kurzer Überblick Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 17 / 44

RessourcenVerwaltung mit Linux: cgroups Ressourcenmanagement mit cgroups Control Groups Gruppieren von Prozessen Gemeinsame Ressourcen Childs bleiben in der Gruppe Control Groups VFS Kernel 2.6.24 unabhängig von LXC mount: cgroup /cgroups cgroup defaults 0 0 Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 18 / 44

Subsysteme Subsysteme/Controlgroups cat /proc/cgroups #subsys name hierarchy num cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 4 1 devices 5 4 1 freezer 6 4 1 net cls 7 1 1 blkio 8 4 1 CPU Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 19 / 44

Subsysteme Subsysteme/Controlgroups cat /proc/cgroups #subsys name hierarchy num cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 4 1 devices 5 4 1 freezer 6 4 1 net cls 7 1 1 blkio 8 4 1 Speicher Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 19 / 44

Subsysteme Subsysteme/Controlgroups cat /proc/cgroups #subsys name hierarchy num cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 4 1 devices 5 4 1 freezer 6 4 1 net cls 7 1 1 blkio 8 4 1 mknod Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 19 / 44

Subsysteme Subsysteme/Controlgroups cat /proc/cgroups #subsys name hierarchy num cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 4 1 devices 5 4 1 freezer 6 4 1 net cls 7 1 1 blkio 8 4 1 FROZEN/THAWED Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 19 / 44

Subsysteme Subsysteme/Controlgroups cat /proc/cgroups #subsys name hierarchy num cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 4 1 devices 5 4 1 freezer 6 4 1 net cls 7 1 1 blkio 8 4 1 Markieren Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 19 / 44

Subsysteme Subsysteme/Controlgroups cat /proc/cgroups #subsys name hierarchy num cgroups enabled cpuset 1 4 1 cpu 2 4 1 cpuacct 3 4 1 memory 4 4 1 devices 5 4 1 freezer 6 4 1 net cls 7 1 1 blkio 8 4 1 CFQ Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 19 / 44

Subsysteme WOHL FÜR DEN TECHTALK WEGNEHMEN # ls /cgroups #2.6.38 (Auszug) --- To be deleted -- blkio.throttle.read_bps_device cpuset.memory_pressure blkio.throttle.read_iops_device cpuset.memory_pressure_enabled blkio.throttle.write_bps_device cpuset.mems blkio.throttle.write_iops_device cpuset.sched_load_balance blkio.weight cpuset.sched_relax_domain_level cgroup.clone_children cpu.shares cgroup.procs devices.allow cpuacct.stat memory.limit_in_bytes cpuacct.usage memory.memsw.limit_in_bytes cpuacct.usage_percpu memory.oom_control cpuset.cpu_exclusive memory.stat cpuset.cpus memory.swappiness cpuset.mem_exclusive memory.usage_in_bytes cpuset.mem_hardwall net_cls.classid cpuset.memory_migrate tasks Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 20 / 44

LXC: Kontainer im Kernel LXC Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 21 / 44

LXC: Kontainer im Kernel LXC LinuXContainer Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 21 / 44

LXC: Kontainer im Kernel LXC LinuXContainer Ein chroot macht auf virtuell Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 21 / 44

LXC: Kontainer im Kernel LXC LinuXContainer Grundprinzipien und Stolpersteine Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 21 / 44

LXC: Kontainer im Kernel LinuXContainer LXC: better cgroups? Spätestens seit 2.6.26 im Kernel (Network-Namespace) Erzeugt mit Hilfe von Namespaces Container. cgroups dienen zur Resourcenverwaltung. LXC übernimmt die Verwaltung der Prozessgruppen Modulares Design! Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 22 / 44

LXC: Kontainer im Kernel Namespaces Namespaces Die Seele der Virtualisierung utsname hostname Pid private PIDs User private UIDs Network privates Interface IPC privates IPC [Modular] [Automatisch] [Automatisch] [Modular] [Automatisch] Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 23 / 44

LXC: Kontainer im Kernel Namespaces LXC virtualisiert chroot() Umgebungen Konfiguration /var/lib/lxc/$container Konfigurationsverzeichnis des Containers /var/lib/lxc/$container/config Konfigurationsdatei des Containers Wo ist das chroot Verzeichnis? (lxc.)rootfs Filesystem des Containers LXC startet dieses System Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 24 / 44

LXC: Kontainer im Kernel Namespaces LXC-Tools Auszug lxc-create Erstellt einen Container lxc-destroy Löscht rootfs und das Configverzeichnis Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 25 / 44

LXC: Kontainer im Kernel Namespaces LXC-Tools Auszug lxc-create Erstellt einen Container lxc-destroy Löscht rootfs und das Configverzeichnis Unnötiges Commando? lxc-create -n name [-f config file] [-t template] Schreibe mit config file nach /var/lib/lxc/$name/config Nutze Template (Skript) zum Erstellen eines Containers Mehr zu Templates? Probleme? Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 25 / 44

LXC: Kontainer im Kernel Namespaces Container Filesystem Erstelle einen Container: debootstrap, febootstrap.. udevd ausschalten Daher für i.e. tty, null, zero etc. mknod nutzen hwclock entfernen.. lxc-debian /usr/sbin/update-rc.d -f checkroot.sh remove /usr/sbin/update-rc.d -f umountfs remove /usr/sbin/update-rc.d -f hwclock.sh remove /usr/sbin/update-rc.d -f hwclockfirst.sh remove /usr/sbin/update-rc.d -f module-init-tools remove /usr/lib/lxc/templates Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 26 / 44

LXC: Kontainer im Kernel Namespaces Container Filesystem Erstelle einen Container: debootstrap, febootstrap.. udevd ausschalten Daher für i.e. tty, null, zero etc. mknod nutzen hwclock entfernen.. lxc-debian /usr/sbin/update-rc.d -f checkroot.sh remove /usr/sbin/update-rc.d -f umountfs remove /usr/sbin/update-rc.d -f hwclock.sh remove /usr/sbin/update-rc.d -f hwclockfirst.sh remove /usr/sbin/update-rc.d -f module-init-tools remove /usr/lib/lxc/templates Container zeigen Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 26 / 44

LXC: Kontainer im Kernel Namespaces Man erstelle eine Konfigurationsdatei Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 27 / 44

LXC: Kontainer im Kernel Namespaces Konfiguration lxc.rootfs chroot lxc.mount.entry Ein Mountpunkt im fstab-format lxc.mount Pfad zu einem File mit Mountp. im fstab Format lxc.tty Virtuelle Consolen: lxc-console lxc.pts Pseudo ttys lxc.cap.drop man capabilities lxc.tty = 4 lxc.rootfs = /lxc/debian/rootfs lxc.mount = /lxc/debian/fstab Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 28 / 44

LXC: Kontainer im Kernel Namespaces Network lxc.network.type Kein Eintrag Interfaceeinstellungen des Hosts empty loopback veth Virtual Ethernet (bridge) macvlan MAC-Address based Vlan phys physisches Interface lxc.network.type = veth lxc.network.flags= up lxc.network.link = br0 lxc.network.ipv4 = 192.168.1.69/24 lxc.network.name = eth0 lxc.network.veth.pair = this-veth Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 29 / 44

LXC: Kontainer im Kernel Namespaces /var/lib/lxc/$container/config lxc.utsname = zeig lxc.tty = 4 lxc.pts = 1024 #Vom Host gemounted lxc.mount = /lxc/debian/fstab #rootfs lxc.rootfs = /lxc/debian/rootfs #Netzwerk: lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.network.hwaddr = 08:00:12:34:56:78 lxc.network.ipv4 = 192.168.1.69/24 lxc.network.name = eth0... Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 30 / 44

LXC: Kontainer im Kernel Namespaces LXC-Tools Auszug: lxc-ls Zeigt alle konfigurierten und laufenden Container lxc-start/stop Starten/Stoppen eines Containers lxc-ps Wrapper um ps mit Containername lxc-console Konsolenverbindung zum Container lxc-execute Startet einen Prozess im ContainerEnvironment Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 31 / 44

LXC: Kontainer im Kernel Namespaces LXC-Tools Auszug: lxc-ls Zeigt alle konfigurierten und laufenden Container lxc-start/stop Starten/Stoppen eines Containers lxc-ps Wrapper um ps mit Containername lxc-console Konsolenverbindung zum Container lxc-execute Startet einen Prozess im ContainerEnvironment Applikationscontainer Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 31 / 44

LXC: Kontainer im Kernel Namespaces Show me that stuff! Container start Host Zugriff Privater Prozessspace Applikationskontainer mit Ressourcemanagement Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 32 / 44

LXC: Kontainer im Kernel Namespaces Security Capabilities lxc.cap.drop module sys module mount sys admin remind the fstab root im Container zu mächtig echo b > /proc/sysrq-trigger SELinux Smack lxc.mount.entry=proc $lxc.rootfs/proc proc nodev,noexec,nosuid,ro 0 0 Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 33 / 44

LXC: Kontainer im Kernel Namespaces Applikationscontainer lxc-execute Schlüssel zum Applikationscontainer braucht kein lxc.rootfs Config kann mehrmals verwendet werden ( name, -f ) Modularität Ausnutzen Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 34 / 44

OpenVZ vs. LXC OvenVZ vs. LXC Topic LXC OpenVZ Kernelintegration X - Livemigration - X Host Konfigtools (vzctl) - X Sicheres Netz (venet) - X Sichere Container - X Applikationscontainer X - diskspace - X Cgroups X - Quota - X Distro-Support X - Produktionsreif (-) X libvirt-integration X (X) Modular X - Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 35 / 44

DBoD mit LXC DBoD Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 36 / 44

DBoD DBoD mit LXC Grundidee Out of the Box-Technik Zukunftstechnologie Keine Verschwendung von Rechnerressourcen Keine weiteren Lizenzkosten Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 36 / 44

DBoD Applikationscontainer mit lxc-execute lxc-execute Schlüssel zum Applikationscontainer braucht kein lxc.rootfs Config kann mehrmals verwendet werden ( name, -f ) Modularität Ausnutzen Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 37 / 44

Realisierung DBoD lxc-execute LVM Für alle veränderlichen Daten datadir tmpdir Errorlog Application specific Config Multi-Package Auswahl an MySQL-Versionen Schema dbod Datenbankmanagement Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 38 / 44

DBoD lxc.utsname = dbod 8012 #lxc.tty = 1 # Bind-Mounts lxc.mount.entry = /opt/app/dbod/mysql//5.5.13/conf/medium /opt/app/mysql/conf none bind 0 0 lxc.mount.entry = /opt/app/dbod/mysql//5.5.13/pkg/ /opt/app/mysql/product/mysql none bind 0 0 lxc.mount.entry = /data/dbod/dbod 8012 /data none bind 0 0 # Ressourcen lxc.cgroup.cpu.shares = 2046 lxc.cgroup.memory.limit in bytes = 1G lxc.cgroup.memory.memsw.limit in bytes = 1G Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 39 / 44

DBoD Tools dbod mysql create.pl dbod mysql list.pl dbod mysql start.pl dbod mysql stop.pl dbod mysql upgrade.pl Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 40 / 44

DBoD # dbod_mysql_create.pl --port 6005 --number 6005 --mysqlversion 5.5.20 -t small --gb 5 --database kunde OptionCheck is not finished!!! Logical volume "dbod_6005" created passwort for admin on dbod_6005 is yuzpgtrz92k/u # Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 41 / 44

DBoD # dbod_mysql_start.pl -n 6005 && dbod_mysql_list.pl Instance MySQL Port Status Memory cur. Mem max dbod_5101 5.1.58 5101 ------- - - dbod_5102 5.1.58 5102 ------- - - dbod_5103 5.1.58 5103 ------- - - dbod_5104 5.1.58 5104 ------- - - dbod_5301 Maria-5.3.0 5301 RUNNING 524288 156032 dbod_5305 Maria-5.3.0 5305 ------- - - dbod_5501 5.5.13 5501 RUNNING 1048576 462996 dbod_5503 5.5.13 5503 ------- - - dbod_6000 5.5.20 6000 ------- - - dbod_6001 5.5.20 6001 ------- - - dbod_6002 5.5.20 6002 ------- - - dbod_6003 5.5.20 6003 ------- - - dbod_6004 5.5.20 6004 ------- - - dbod_6005 5.5.20 6005 RUNNING 524288 461668 dbod_8000 Spider5.5.14 8000 ------- - - dbod_8001 Spider5.5.14 8001 RUNNING 1048576 468008 dbod_8010 5.5.13 8010 RUNNING 1048576 77184 dbod_8011 5.5.13 8011 RUNNING 1048576 464136 dbod_8012 5.5.13 8011 ------- - - dbod_8020 5.5.13 8020 RUNNING 1048576 467200 Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 42 / 44

DBoD Upcoming Schema dbod erweitern Replication Eigene IP HA Migration Btrfs Monitoring Integration in unsere Automatisierungsumgebung Integration in OpenStack/libvirt Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 43 / 44

Ende Gelände DBoD Erkan Yanar @ Infrastructure Design of Architecture & Standards... linsenraum.de/erkules www.xing.com/profile/erkan Yanar Erkan Yanar (Infrastructure Design) MySQL as a Service: LXC Applicationcontainer 6. März 2012 44 / 44