openqrm
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
| openqrm [2013-11-06 16:55:23] – manfred | openqrm [2016-04-12 22:49:58] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== openQRM ====== | ||
| + | |||
| + | OpenQRM ist eine Data-Center Management Plattform, die auch als Cluster Manager eingesetzt | ||
| + | werden kann. | ||
| + | Um ein modernes Data-Center effektiv zu verwalten benötigt man eine robuste und flexible | ||
| + | Management Plattform die alle Aspekte der IT-Infrastruktur berücksichtigt und Administration | ||
| + | mittels einer zentralen Management Console erlaubt. Mithilfe der modularen Architektur | ||
| + | erlaubt openQRM Anpassungen an beliebige vorhandene Umgebungen und konsolidiert | ||
| + | Monitoring und Administration sowohl der physikalischen Systeme als auch der virtuellen | ||
| + | Maschinen. | ||
| + | |||
| + | * {{http:// | ||
| + | * [[http:// | ||
| + | |||
| + | * [[openQRM - installieren]] | ||
| + | * [[openQRM - einrichten einer KVM-VM]] | ||
| + | |||
| + | * [[openQRM - Client installiert beim Start fehlende Pakete]] | ||
| + | * [[openQRM - Client per Upstart starten]] | ||
| + | * [[openQRM - Cloud]] | ||
| + | * [[openQRM - Cloud/VM per Skript stoppen]] | ||
| + | * [[openQRM - Cluster]] | ||
| + | * [[openQRM - Grundinstallation Management]] | ||
| + | * [[openQRM - Grundinstallation Storage]] | ||
| + | * [[openQRM - Grundinstallation KVM-Host]] | ||
| + | * [[openQRM - HardWare-Info' | ||
| + | * [[openQRM - InitRD]] | ||
| + | * [[openQRM - KVM]] | ||
| + | * [[openQRM - LXC]] | ||
| + | * [[openQRM - Maschine duplizieren]] | ||
| + | * [[openQRM - Nagios]] | ||
| + | * [[openQRM - Plugins]] | ||
| + | * [[openQRM - PXE-Kernel]] | ||
| + | * [[openQRM - Tabellen für weitere IP-Gruppen]] | ||
| + | * [[openQRM - User einrichten]] | ||
| + | * [[openQRM - Z-IP' | ||
| + | * [[Einrichtung einer Ressource für den Boot als local-server]] | ||
| + | * [[Änderungen gegen den Source code abgleichen und nach bedarf übernehmen]] | ||
| + | * [[VM's laden ihre HW-Infos beim Start in die DB]] | ||
| + | * [[MTU size abhängig von der Hostanbindung setzen]] | ||
| + | * [[Host-Kernel mit aktiviertem vhost_net um das Gastnetzwerk zu beschleunigen]] | ||
| + | * [[manuelles Einbinden eines AOE Volumes]] | ||
| + | * [[openQRM - DHCPD]] | ||
| + | * [[openQRM - DNS]] | ||
| + | * [[openqrm-linuxrc]] | ||
| + | |||
| + | | ||
| + | |||
| + | |||
| + | ===== wissenswertes ==== | ||
| + | |||
| + | |||
| + | ==== Namenskonventionen ==== | ||
| + | |||
| + | - um Fehler in PHP-Dateien von openQRM zu suchen, muss " | ||
| + | - openQRM / Base / Components / Storage: **es dürfen im Namen //keine// '' | ||
| + | - openQRM / Base / Components / Images: **es dürfen im Namen //keine// '' | ||
| + | - openQRM / Base / Appliances: **es dürfen im Namen //keine// '' | ||
| + | |||
| + | |||
| + | ==== DropBear Schlüsselpaar ==== | ||
| + | |||
| + | Dieses Schlüsselpaar wird bei der Installation generiert bzw. beim Update neu generiert! | ||
| + | |||
| + | |||
| + | === privater Schlüssel === | ||
| + | |||
| + | / | ||
| + | |||
| + | |||
| + | === öffentlicher Schlüssel === | ||
| + | |||
| + | Damit openQRM Befehle auf der eigenen Maschine absetzen kann, muss der öffentlichen DropBear-Schlüssel auch in der / | ||
| + | cat / | ||
| + | |||
| + | |||
| + | === die Schlüssel müssen im Cluster-Verbund gleich sein === | ||
| + | |||
| + | betreibt man aus Sicherheitsgründen zwei openQRM-Rechner, | ||
| + | dann müssen diese Schlüssel identisch sein: | ||
| + | root@openqrm01: | ||
| + | root@openqrm01: | ||
| + | |||
| + | |||
| + | ==== Standardinstallation zum KVM-Host machen ==== | ||
| + | |||
| + | Es ist gegen die openQRM-Philosophie, | ||
| + | Deswegen müssen wir das machen, bevor wir das Plugin auf der Maschine nutzen können. | ||
| + | |||
| + | # aptitude install kvm procmail | ||
| + | |||
| + | |||
| + | ==== KVM-VM ==== | ||
| + | |||
| + | In der Datei **/ | ||
| + | |||
| + | Die // | ||
| + | |||
| + | In der alle Werte aus der MySQL-DB zur VM drin stehen. | ||
| + | |||
| + | Die nötigen Zugangsdaten zur openQRM-DB stehen in der Datei **/ | ||
| + | |||
| + | #!/bin/sh | ||
| + | | ||
| + | . / | ||
| + | | ||
| + | echo " | ||
| + | | ||
| + | echo " | ||
| + | |||
| + | |||
| + | === dropbear/ | ||
| + | |||
| + | / | ||
| + | |||
| + | |||
| + | === vBlade === | ||
| + | |||
| + | / | ||
| + | / | ||
| + | |||
| + | |||
| + | === openQRM-Resource auf lokales booten umstellen === | ||
| + | |||
| + | web/ | ||
| + | web/ | ||
| + | web/ | ||
| + | |||
| + | |||
| + | === Standard-Limit in den Listen-Ansichten === | ||
| + | |||
| + | Voreinstellung ist " | ||
| + | vi / | ||
| + | ... | ||
| + | var $limit = 50; | ||
| + | ... | ||
| + | |||
| + | Das kann man dann nach eigenen Vorstellungen verändern. | ||
| + | |||
| + | |||
| + | ==== Bootvorgang der VMs beeinflussen ==== | ||
| + | |||
| + | === notwendige Änderungen für Ubuntu 10.04 === | ||
| + | |||
| + | vi / | ||
| + | |||
| + | # diff / | ||
| + | 127, | ||
| + | < echo " | ||
| + | < echo " | ||
| + | < echo "/ | ||
| + | --- | ||
| + | > echo " | ||
| + | > echo " | ||
| + | > echo " | ||
| + | > echo "/ | ||
| + | 231a233,234 | ||
| + | > # load usb drivers for keybord an mouse | ||
| + | > modprobe hid 2>/mplog | ||
| + | 232a236 | ||
| + | > # | ||
| + | 416a421,428 | ||
| + | > | ||
| + | > # suchen und ersetzen | ||
| + | > sed -i " | ||
| + | > echo " | ||
| + | > echo " | ||
| + | > echo " | ||
| + | > | ||
| + | > | ||
| + | 438a451,456 | ||
| + | > # disable plymouth | ||
| + | > if [ -e / | ||
| + | > echo " | ||
| + | > mv / | ||
| + | > fi | ||
| + | |||
| + | |||
| + | ==== ein weiteres LV auf dem DRBD einrichten ==== | ||
| + | |||
| + | Erstmal legen wir hier ein normales //LV// an und mounten es: | ||
| + | |||
| + | # lvcreate -L 50M -n binary data | ||
| + | # mkfs -t jfs -L binary / | ||
| + | # mkdir /opt/bin | ||
| + | # mount LABEL=binary /opt/bin | ||
| + | |||
| + | Das kritische ist jetzt, da es sich nicht um ein selbständiges Standard-Gerät handelt, | ||
| + | dass dieses Volumen nicht per /// | ||
| + | |||
| + | Dazu müssen die nötigen Einträge in der folgenden Art und Weise gemacht werden: | ||
| + | |||
| + | # vi / | ||
| + | .... | ||
| + | fsck_jfs::/ | ||
| + | .... | ||
| + | Filesystem::/ | ||
| + | .... | ||
| + | |||
| + | Jetzt muß diese CFG-Datei noch auf den anderen DRBD-Cluster-Knoten kopiert werden: | ||
| + | |||
| + | # scp / | ||
| + | |||
| + | |||
| + | ==== MEHFACH vergebene Ressourcen ermitteln ==== | ||
| + | |||
| + | Leider ist es möglich, dass man in openQRM eine VM in mehreren Appliances einbindet. | ||
| + | Um das zu verhindern, habe ich dieses Script geschrieben: | ||
| + | |||
| + | #!/bin/bash | ||
| + | | ||
| + | . / | ||
| + | | ||
| + | echo " | ||
| + | | ||
| + | echo " | ||
| + | echo " | ||
| + | echo | ||
| + | |||
| + | |||
| + | ==== FREIE Ressourcen ermitteln ==== | ||
| + | |||
| + | . / | ||
| + | | ||
| + | echo "FREIE Ressourcen:" | ||
| + | echo " | ||
| + | |||
| + | |||
| + | ===== Cloud-Portal ===== | ||
| + | |||
| + | - URL zum Cloud-Portal: | ||
| + | - Folder " | ||
| + | - // | ||
| + | - Folder "Cloud Request" | ||
| + | - Laufzeit der Cloud festlegen: | ||
| + | * "Start time" | ||
| + | * "Stop time" | ||
| + | - Rechts unten auf " | ||
| + | - Jetzt dauert es 2-5 Minuten, dann ist die Cloud hochgefahren und erreichbar. | ||
| + | - Folder "Cloud Appliances" | ||
| + | - Hier kann man seine Clouds sehen. In der Spalte " | ||
| + | - Es sollte ein sprechender " | ||
| + | - Auf der Cloud einloggen und arbeiten. Evtl. sind bei individuellen Bedürfnissen auch noch Packete nachzuinstallieren. | ||
| + | - Der SVN Checkout: | ||
| + | * svn --username << | ||
| + | |||
| + | # svn --username fritz --password geheim co " | ||
| + | |||
| + | |||
| + | ===== Probleme ===== | ||
| + | |||
| + | ==== iSCSI steigt aus ==== | ||
| + | |||
| + | Im Log sind dann folgende Einträge zu finden: | ||
| + | |||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.546222] device-mapper: | ||
| + | Apr 6 07:43:36 iqserv02 apache2: openQRM resource-monitor: | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550077] printk: 98 messages suppressed. | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550082] Buffer I/O error on device dm-55, logical block 2006532 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550114] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550126] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550168] Buffer I/O error on device dm-55, logical block 2004634 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550198] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.550202] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 apache2: openQRM resource-monitor: | ||
| + | Apr 6 07:43:36 iqserv02 apache2: openQRM resource-monitor: | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.569742] Buffer I/O error on device dm-55, logical block 2006532 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.569777] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.569781] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.570168] Buffer I/O error on device dm-55, logical block 2004634 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.570198] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.570202] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.571850] Buffer I/O error on device dm-55, logical block 2006532 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.571878] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.571880] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.572390] Buffer I/O error on device dm-55, logical block 2004634 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.572432] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.572435] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.572904] Buffer I/O error on device dm-55, logical block 2006532 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.572940] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.572947] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573222] Buffer I/O error on device dm-55, logical block 2004634 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573251] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573254] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573637] Buffer I/O error on device dm-55, logical block 2006532 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573666] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573669] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.573993] Buffer I/O error on device dm-55, logical block 2004634 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.574022] lost page write due to I/O error on dm-55 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.574025] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.574472] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 kernel: [3095381.574845] iscsi_trgt: fileio_sync(92) I/O error: syncing pages failed: -5 | ||
| + | Apr 6 07:43:36 iqserv02 apache2: openQRM resource-monitor: | ||
| + | Apr 6 07:43:36 iqserv02 apache2: openQRM resource-monitor: | ||
| + | |||
| + | |||
| + | === Bug-Report === | ||
| + | |||
| + | Hier steht wie man das Problem reproduzieren kann: [[https:// | ||
| + | |||
| + | Siehe ganzen Report: [[https:// | ||
| + | |||
| + | |||
| + | === Diagnose === | ||
| + | |||
| + | Hier wird die Diagnose gestellt, dass der Snapshot zu klein gewählt wurde: [[https:// | ||
| + | |||
| + | |||
| + | === Diagnose wird bestätigt === | ||
| + | |||
| + | Hier wird bestätigt, dass das Problem ausbleibt, wenn der snapshot-Space größer gewählt wird: [[https:// | ||
| + | |||
| + | |||
| + | ==== Füllstand des SnapShots ==== | ||
| + | |||
| + | Damit soetwas nicht wieder passiert, sollte man den Füllstand im Auge behalten: | ||
| + | |||
| + | # lvs | ||
| + | LV | ||
| + | 4.cloud_5_1_ | ||
| + | 4.cloud_7_1_ | ||
| + | VirtualMachines2 | ||
| + | clone1_suse64_iscsi | ||
| + | clone2_suse64_iscsi | ||
| + | fedora_nfs | ||
| + | golden_ubuntu_web | ||
| + | iddc03_sanboot | ||
| + | lamp_suse64_nfs | ||
| + | lamp_ubuntu64_nfs | ||
| + | |||
| + | # lvs / | ||
| + | LV | ||
| + | 4.cloud_7_1_ data swi-ao 7,81G golden_ubuntu_web | ||
| + | |||
| + | # lvs -o snap_percent / | ||
| + | Snap% | ||
| + | 21,64 | ||
| + | |||
| + | # lvs -o lv_name, | ||
| + | LV | ||
| + | 4.cloud_5_1_ | ||
| + | 4.cloud_7_1_ | ||
| + | VirtualMachines2 | ||
| + | clone1_suse64_iscsi | ||
| + | clone2_suse64_iscsi | ||
| + | fedora_nfs | ||
| + | golden_ubuntu_web | ||
| + | iddc03_sanboot | ||
| + | lamp_suse64_nfs | ||
| + | lamp_ubuntu64_nfs | ||
| + | mini_suse64_iscsi | ||
| + | |||
| + | In diesem Beispiel ist // | ||
| + | |||
| + | Aber bei // | ||
| + | |||
| + | # lvextend -L 4000M data/ | ||
| + | Extending logical volume clone1_suse64_iscsi to 3,91 GB | ||
| + | Logical volume clone1_suse64_iscsi successfully resized | ||
| + | |||
| + | # lvs -o lv_name, | ||
| + | LV LSize Origin | ||
| + | clone1_suse64_iscsi 3,91G mini_suse64_iscsi | ||
