CloudStack

Ziel war es eine Virtualisierungs-Lösung zu finden, mit der ich meine Serverfarm in weitere kleinere Server unterteilen kann.

Nachdem ich einige Software ausprobiert und getestet hatte, entschied ich mich für eine 'Infrastructure as a Service'-Lösung namens Cloudstack. (Installationsanleitung weiter unten)

Getestet hatte ich u.a.:

  • VMware Workstation
  • VirtualBox
  • Hyper-V
  • ESXi
  • XenServer
  • KVM
  • Proxmox VE
  • OpenStack
  • Eucalyptus
  • CloudStack

Relativ schnell konnte ich einige Programme aussieben da ich z.B. zwingend ein Webinterface haben wollte zur Verwaltung von unterwegs. Die Software selbst sollte auch möglichst wenig Ram verwenden, damit viel Speicher für die virtuellen Server zur Verfügung steht. Somit suchte ich schnell im Bereich der BareMetal Plattformen (Typ1 Hypervisoren) aber auch nach KVM alternativen. Ich brauchte eine stabile Grundlage mit ausgereiftem Webinterface (möglichst schön anzuschauen aber auch Funktional!) und hoher Performance.

Somit blieben mir persönlich nur OpenStack und CloudStack.
Schon bei der installation von OpenStack zeigte sich die komplexität der Software. Viele kleine eigenständige Komponenten mussten installiert und eingerichtet werden. Für die einen ein Fluch, für andere ein Segen, für mich ein wenig zu viel des Guten für mein Vorhaben.

CloudStack ist eine Open-Source-Plattform für das Cloud Computing programmiert in Java. Ursprünglich von Cloud.com entwickelt wurde CloudStack 2011 von Citrix Systems übernommen und 2012 als Open-Source-Software unter der GNU general Public License 3.0 veröffentlicht.

Unterstützt werden derzeit viele Hypervisoren: z.B. VMware, Oracle VM, KVM, XenServer, XCP.

CloudStack inst einfach zu installieren, hat ein ansprechendes und ausgereiftes Webinterface und kann produktiv eingesetzt werden.

Hier nun eine Installationsanleitung von CloudStack 4.4 auf 'CentOS 6.5 x86_64 minimal' mit externem NFS-Datei-Server. Eine All-in-One Installationsanleitung findet Ihr hier: http://cloudstack-installation.readthedocs.org/en/latest/qig.html


Voraussetzungen:

1. CloudStack-Server

  • installiertes minimal CentOS auf einem Server/Rechner (Hardwarevirtualisierung aktiviert)
  • mind. 8 GB Ram
  • mind. 250 GB HDD
  • statische IP-Adresse (kein DHCP, am besten separates /24 netzwerk)
  • die IP-Adresse muss via DNS-Server oder host-Datei von einem Hostnamen aufgelöst werden können.
  • installiertes nano paket (yum install -y nano) es kann aber auch vi genutzt werden

2. NFS-Datei-Server (NAS)

  • installierte NAS Software z.B. OpenMediaVault
  • Freigegebene NFS Ordner namens: "Primary" und "Secondary"
  • eingestellte Optionen der Freigaben: rw,async,root_squash,no_subtree_check

Installation:

Grundsystem

Starten des Netzwerks chkconfig network on service network startAbfragen des Hostnamen hostname --fqdnEs sollte etwas wie 'localhost' ausgegeben werden. Bei einem qualifizierten Hostnamen wie test.domain.de kann der nächste schritt übersprungen werden.

Einstellen des Hostnamens in der network-Datei /etc/sysconfig/network

Ändere

HOSTNAME=myserver.domain.com

Einstellen des Hostnamens in der hosts-Datei /etc/hosts

Einfügen als erste Zeile

127.0.0.1 myserver.domain.com

Netzwerk neu starten

service network restart

SELinux

SELinux umstellen

setenforce 0

Ändern der Datei /etc/selinux/config

# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=permissive # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted

NTP

Installieren von NTP um die Uhrzeit syncronisieren zu können

yum -y install ntp chkconfig ntpd on service ntpd start

CloudStack Paket repository konfigurieren

Erstelle eine Datei /etc/yum.repos.d/cloudstack.repo

Einfügen von folgendem code

[cloudstack] name=cloudstack baseurl=http://cloudstack.apt-get.eu/rhel/4.4/ enabled=1 gpgcheck=0

NFS

NFS zubehör installieren

yum -y install nfs-utils

Erstellen eines Ordners um das Secondary NFS Laufwerk einzubinden (mounten)

mkdir /secondary

In der Datei /etc/sysconfig/nfs folgende Zeilen unkommentieren

LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769 MOUNTD_PORT=892 RQUOTAD_PORT=875 STATD_PORT=662 STATD_OUTGOING_PORT=2020

Nun verschiedene Ports in der Firewall /etc/sysconfig/iptables öffen

-A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 32803 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT -A INPUT -s 172.16.10.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT

iptables neustarten und nfs service starten

service iptables restart service rpcbind start service nfs start chkconfig rpcbind on chkconfig nfs on

Mount OpenMediaVault NFS-Freigabe /Secondary

mount 192.168.2.xxx:/export/Secondary /secondary

Management Server Installation

MySQL-Datenbank installieren und konfigurierenyum -y install mysql-serverBearbeiten von /etc/my.cnf Einfügen in den [mysqld] Bereich innodb_rollback_on_timeout=1 innodb_lock_wait_timeout=600 max_connections=350 log-bin=mysql-bin binlog-format = 'ROW'MySQL starten service mysqld start chkconfig mysqld onInstallation des Management-Serversyum -y install cloudstack-management cloudstack-setup-databases cloud:password@localhost --deploy-as=root cloudstack-setup-managementHerunterladen des CloudStack System Templates auf die NFS-Freigane /Secondary /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /secondary -u http://cloudstack.apt-get.eu/systemvm/4.5/systemvm64template-4.5-kvm.qcow2.bz2 -h kvm -F

KVM Installation

yum -y install cloudstack-agentKVM konfiguration

Ändern der Datei /etc/libvirt/qemu.conf

vnc_listen=0.0.0.0

Ändern der Datei /etc/libvirt/libvirtd.conf

listen_tls = 0 listen_tcp = 1 tcp_port = "16059" auth_tcp = "none" mdns_adv = 0

Ändern der Datei /etc/sysconfig/libvirtd
Unkommentieren folgender Zeile:

LIBVIRTD_ARGS="--listen"

libvirt neu starten

service libvirtd restart

Testen ob KVM läuft

lsmod | grep kvm

Folgendes sollte ausgegeben werden:

kvm_intel              55496  0 kvm                      337772  1 kvm_intel

Konfiguration

In einem Browser unter der statischen IPadresse des Servers (http://192.168.2.xxx:8080/client) kann CloudStack nun eingerichtet werden.

Die ersten Logindaten sind: Benutzername 'admin' und Passwort 'password'.

Viel Vergnügen mit CloudStack!