Benutzer-Werkzeuge

Webseiten-Werkzeuge


manton:virtualisierung:proxmox

Proxmox VE Server

Die Installation erfolgte auf einem „alten“ Sun Fire X4440. Mittels der Service-Konsole konnte ein Optisches Laufwerk über das Netzwerk eingebunden werden (es musste jedoch ein altes Java verwendet werden)

Installationshinweise

  • Die Größenangaben bei der Auswahl von swapsize, maxroot usw werden in GB angegeben (wird leider aus der Graphik nicht ersichtlich)
  • es wird für die VM's ein LVM angelegt, welches später über die Shell angepasst werden kann
  • die Konfiguration erfolgt entweder graphisch über das PHP-Webfrontend (wird bei der Proxmoxinstallation gleich mitinstalliert) oder über die Konsole
  • Das PHP-Webfrontend liest die Konfigurationen aus den Dateien auf dem Server. Es wir soweit ich weis keine Datenbank verwendet. Manuelle Änderungen an den Dateien (z.B. Hinzufügen von virtuellen Audioausgaben, USB-Schnittstellen für SPICE) werden sofort erkannt, die VMs müssen nur neugestartet werden.

Hintergrundinformationen

  • Verwendete Virtualisierungstechnik: KVM-Virtualisierung
  • Setzt auf Debian Stable auf

Aufgetretene Probleme

  • bei Verwendung der Standard-VGA (cirrus) funktionierte Java nicht mehr ordnungsgemäß (Java-GUI's liesen sich nicht starten) – Abhilfe erfolgte mit der Umstellung des Graphiksystems in Proxmox → SPICE oder VMWare-Graphiks

Hinweise

  • Proxmox no subscription repo:
$ cat /etc/apt/sources.list.d/pve-enterprise.list
$ deb [arch=amd64] http://download.proxmox.com/debian jessie pve-no-subscription
  • proxmox remove subscription message:
$ cd /usr/share/pve-manager/ext4/

The code in question looks like this:

[...]
 1      checked_command: function(orig_cmd) {
 2          PVE.Utils.API2Request({
 3              url: '/nodes/localhost/subscription',
 4              method: 'GET',
 5              //waitMsgTarget: me,
 6              failure: function(response, opts) {
 7                  Ext.Msg.alert(gettext('Error'), response.htmlStatus);
 8              },
 9              success: function(response, opts) {
10                  var data = response.result.data;
11  
12                  if (data.status !== 'Active') {
13                      Ext.Msg.show({
14                          title: gettext('No valid subscription'),
15                          icon: Ext.Msg.WARNING,
16                          msg: PVE.Utils.noSubKeyHtml,
17                          buttons: Ext.Msg.OK,
18                          callback: function(btn) {
19                              if (btn !== 'ok') {
20                                  return;
21                              }
22                              orig_cmd();
23                          }
24                      });
25                  } else {
26                      orig_cmd();
27                  }
28              }
29          });
30      },
[...]

Change line 12 in the above example:1)

if (data.status !== 'Active') {

to

if (false) {

and things are fixed.2) Bei Aktualisierungen/Upgrades kann die Datei überschrieben werden!

  • Pfad der Konfigurationsdateien für die angelegten VM's: /etc/pve/qemu-server/
  • Pfad der VM-Dateien: /var/lib/vz/images/***
  • Pfad zu den ISO-Images: /var/lib/vz/template/iso

Zum Hochladen der Installations-ISO's empfehle ich wget oder curl zu benutzen. Das Webfrontend bietet zwar eine Möglichkeit lokale Dateien hochzuladen, jedoch muss hier die eigene Upload-Geschwindigkeit beachtet werden! Und das kann unter umständen Dauern ;-)

  • Zugriff auf die Virtuelle Festplatte einer VM vom Hostsystem:
$ modprobe nbd max_part=63
$ qemu-nbd -c /dev/nbd0 /var/lib/vz/images/101/vm-101-disk-1.qcow2 #connect device
$ mount /dev/nbd0p1 /mnt/
...
$ umount /mnt
$ qemu-nbd -d /dev/nbd0 # disconnect device !!!

NAT

Es wird ein internes/privates Netzwerk mit Internetzugang aufgebaut. Die VMs die diese Schnittstelle verwenden, können sich im Netzwerk sehen. Es können mehere private Netzwerke nebeneinander erzeugt werden.

Beispielhafte /etc/network/interfaces

# default-einstellungen
auto lo
iface lo inet loopback
 
iface eth0 inet manual
 
# Netzwerkbrücke zu eth0
auto vmbr0
iface vmbr0 inet static
        address  192.168.12.187
        netmask  255.255.255.0
        network  192.168.12.0
        broadcast 192.168.12.255
        gateway  192.168.12.1
 
        dns-nameservers 8.8.8.8
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
 
#Nat-einstellungen
# Es wird eine Netzwerk-brücke erzeugt, die allerdings mit keinem Interface direkt verbunden ist
# Die Verbindung zum Interface erfolgt mittels IP-Tables, zwecks Internetzugang
auto vmbr1
iface vmbr1 inet static
        address  192.168.0.254
        netmask  255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE

DHCP-Einrichtung

Zur Automatischen Zuteilung von Netzwerkadressen im Netzwerk

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.10 192.168.0.250;
  option routers 192.168.0.254; # stellt das Gateway dar
}
1)
In der Originaldatei, ist es in der Nähe von Zeile 519!
2)
Die Info wurde in folgendem Blog gefunden [1]
manton/virtualisierung/proxmox.txt · Zuletzt geändert: 2016/01/27 14:59 von manton