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!