Proxmox VE 3.x

Allikas: Kuutõrvaja
Redaktsioon seisuga 14. veebruar 2013, kell 17:36 kasutajalt Jj (arutelu | kaastöö) (Install)

Sissejuhatus

TODO

Võrreldes varasema versiooniga on kasutajaliides põhjalikult ümber kirjutatud-disainitud.

  • Kõik clustri noded on VÕRDSED. Pole enam master-slave tüüpi clustrit.
  • Backup-restore haldusliidesest lihtsam
  • haila-vaila (HA), ehk kui üks masin jukerdab starditakse virtuaalmasinat automaatselt teisel.
  • kasutajate haldus, võimalik luua erinevate ligipääsuõigustega kasutajaid
  • rrdtooliga genereeritud koormusgraafikud iga virtuaalmasina kohta
  • Proxmoxi API virtuaalmasinate loomiseks

Screen-Add-HA-managed VM-CT.png

# pveperf
CPU BOGOMIPS:      127992.00
REGEX/SECOND:      1026892
HD SIZE:           9.17 GB (/dev/sda5)
BUFFERED READS:    106.64 MB/sec
AVERAGE SEEK TIME: 6.47 ms
FSYNCS/SECOND:     2806.00
DNS EXT:           64.95 ms
DNS INT:           0.96 ms (eenet.ee)

Install

sources.list

deb http://http.at.debian.org/debian squeeze main contrib

# PVE packages provided by proxmox.com
deb http://download.proxmox.com/debian squeeze pve

# security updates
deb http://security.debian.org/ squeeze/updates main contrib

Add the Proxmox VE repository key:

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

Paigaldame proxmoxi

aptitude install pve-firmware
aptitude install pve-kernel-2.6.32-16-pve
aptitude install proxmox-ve-2.6.32

Configure pve-redirect for apache2:

a2ensite pve-redirect.conf
aptitude install ntp ssh lvm2 postfix ksm-control-daemon vzprocps

Vajadusel sertifikaadi paigaldamine

cp server.key /etc/pve/pve-www.pem
cp server.key /etc/pve/local/pve-ssl.key
cp server.pem /etc/pve/local/pve-ssl.pem
cp ca.crt     /etc/pve/pve-root-ca.pem
      

Installist pikemalt:

http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze

iSCSI kasutamine

iSCSI kasutamiseks tuleb installida pakett open-iscsi

# apt-get install open-iscsi

Ja seejärel tuleb teenused taaskäivitada

# /etc/init.d/pvedaemon restart
# /etc/init.d/apache2 restart

Iscsi targeteid saab edaspidi külge haakida juba otse veebiliidesest.

Kui iSCSI server mingil põhjusel enam ei suhtle siis veebiliidese kaudu iscsi kettaid lahti haakida pole võimalik. Sellisel juhul tuleb logida käsureale ja kustutada need manuaalselt failist /etc/pve/storage.cfg

Masina initatori nime näeb failist /etc/iscsi/initiatorname.iscsi

Võrgu seadistus

Probleem, meil on serveril üks võrgukaart ning tahame omistada sellele avaliku IP aadressi (192.168.0.1), lisaks aga ka teha üle selle virtuaalsete serveriteni bridge (silla) millekaudu pääsevad võrku ka kõik serveris resideeruvad virtuaalmasinad.

Võrgu ehitust iseloomustab järgmine skeem

Vmb.jpg

(pildil viga, peaks olema KVM)

Sellejaoks avame faili /etc/network/interfaces

auto vmbr0
iface vmbr0 inet static
        address  192.168.0.1
        netmask  255.255.255.0
        gateway  192.168.0.254
        bridge_ports eth0 
        bridge_stp off
        bridge_fd 0

Ja ongi valmis. Server on ligipääsetav ip aadressilt 192.168.0.1 ning KVM virtuaalmasinate network kaardid võib siduda vmbr0 sillaga. Virtuaalmasinate sees võib tekkinud võrguseadmele omistada koheselt sama võrgu ip aadresse või DHCP teenuse olemasolu korral küsida IP aadresse.

Soovides teha vmbr1 täiendavalt ilma igasuguse IP aadressita tuleb kirjutada see järgnevalt (kasutades võtit manual):

auto vmbr1
iface vmbr1 inet manual
        bridge_ports eth1
        bridge_stp off 
        bridge_fd 0

Käsureal näeb jaotust

# brctl show
bridge name     bridge id               STP enabled     interfaces
vmbr0           8000.0026b93dea0b       no              eth1
                                                        vmtab102i0
                                                        vmtab103i0
                                                        vmtab104i0
                                                        vmtab105i0
vmbr1           8000.0026b93dea0a       no              eth0
                                                        vmtab102i1
                                                        vmtab103i1
                                                        vmtab104i1
                                                        vmtab105i1
                                                        vmtab106i1

Tähele tasub panna, et vmbr0 tuleb külge linuxitele esimese võrguseadme, ehk eth0ina, vmbr1 järgnevalt eth1na jne..

Peale võrguseadistuse muutmist tuleb teha kas restart või käivitada käsk:

/etc/init.d/network restart

Tulemüüri ehitamisel tuleb silmas pidada, et vaja on proxmoxi kasutamiseks hoida lahti järgnevad pordid.

  1. Veebiliidese kasutamiseks: 443
  2. VNC veebikonsoolile: 5900-5999
  3. SSH ligipääsuks: 22

Cluster

Meil on kaks masinat 10.40.0.6 ja 10.40.0.7 ning tahame nad panna koos tööle. PS: Manual soovitab veidra käitumise vältimiseks kasutada vähemalt 3me nodet, kuid on võimalik panna tööle ka 2 masinat clustris. Lähemalt http://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster

NB! Proxmox Ve 2.x kasutab clustrisiseseks komunikatsiooniks corosync cluster engine nimelist tarkvara ja sqlite tarkvara andmebaasi pidamiseks. Nodede vahel jagatud failisüsteem ühendatakse üle fuse /etc/pve harusse.

Logime üle SSH esimesse clustri nodesse (10.0.0.6) ja anname käsu

# pvecm create YOUR-CLUSTER-NAME

To check the state of cluster:

# pvecm status

Seejärel logime teise clustri nodesse (10.40.0.7) ja anname seal käsu

# pvecm add 10.0.0.6
copy corosync auth key
stopping pve-cluster service
Stopping pve cluster filesystem: pve-cluster.
backup old database
Starting pve cluster filesystem : pve-cluster.
Starting cluster:
   Checking if cluster has been disabled at boot... [  OK  ]
   Checking Network Manager... [  OK  ]
   Global setup... [  OK  ]
   Loading kernel modules... [  OK  ]
   Mounting configfs... [  OK  ]
   Starting cman... [  OK  ]
   Waiting for quorum... [  OK  ]
   Starting fenced... [  OK  ]
   Starting dlm_controld... [  OK  ]
   Unfencing self... [  OK  ]
waiting for quorum...OK
generating node certificates
merge known_hosts file
restart services
Restarting PVE Daemon: pvedaemon.
Restarting web server: apache2 ... waiting .
successfully added node 'jagaja' to cluster.

Konfiguratsioon /etc/pve/cluster.conf

<?xml version="1.0"?>
<cluster config_version="3" name="hailavaila">
  <cman keyfile="/var/lib/pve-cluster/corosync.authkey"/>
  <clusternodes>
    <clusternode name="koguja" nodeid="1" votes="1"/>
    <clusternode name="jagaja" nodeid="2" votes="1"/>
  </clusternodes>
</cluster>

To be able to create and manage a two-node cluster, edit the cman configuration part to include this:

<cman two_node="1" expected_votes="1"> </cman>

Now, add the available fencing devices to the config files by adding this lines (it is ok right after </clusternodes>):

<fencedevices>
        <fencedevice agent="fence_ilo" hostname="nodeA.your.domain" login="hpilologin"  name="fenceNodeA" passwd="hpilopword"/>
        <fencedevice agent="fence_ilo" hostname="nodeB.your.domain" login="hpilologin"  name="fenceNodeB" passwd="hpilologin"/>
</fencedevices>

Näiteks sedamoodi

<?xml version="1.0"?>
<cluster config_version="4" name="hailavaila">
  <cman keyfile="/var/lib/pve-cluster/corosync.authkey" two_node="1" expected_votes="1"/>

  <clusternodes>
    <clusternode name="koguja" nodeid="1" votes="1"/>
    <clusternode name="jagaja" nodeid="2" votes="1"/>
  </clusternodes>
  <rm>
    <pvevm autostart="1" vmid="104"/>
  </rm>

<fencedevices>
        <fencedevice agent="fence_ilo" hostname="10.0.1.6" login="admin"  name="jagaja"  passwd="parool"/>
        <fencedevice agent="fence_ilo" hostname="10.0.1.7" login="admin"  name="koguja"  passwd="parool"/>
</fencedevices>

</cluster>

order to get fencing active, you also need to join each node to the fencing domain. To the following on all your cluster nodes. Enable fencing in /etc/default/redhat-cluster-pve (Just uncomment the last line, see below):

/etc/default/redhat-cluster-pve

# CLUSTERNAME=""
# NODENAME=""
# USE_CCS="yes"
# CLUSTER_JOIN_TIMEOUT=300
# CLUSTER_JOIN_OPTIONS=""
# CLUSTER_SHUTDOWN_TIMEOUT=60
# RGMGR_OPTIONS=""
FENCE_JOIN="yes"

Lisaks tuleb mõlemas nodes käivitada käsk:

# fence_tool join

Staatust saab vaadata:

# fence_tool ls
fence domain
member count  2
victim count  0
victim now    0
master nodeid 2
wait state    none
members       1 2 

Be sure to increase the number "config_version" each time you plan to apply new configurations as this is the internal mechanism used by the cluster configuration tools to detect new changes.

Clustri node hooldus

If you need to reboot a node, e.g. because of a kernel update you need to stop rgmanager. By doing this, all resources are stopped and moved to other nodes. All KVM guests will get a ACPI shutdown request (if this does not work due to VM internal setting just a 'stop'). You can stop the rgmanager service via GUI or just run:

#/etc/init.d/rgmanager stop

Kui midagi läs ikkagi viltu siis saab kõigi nodede konfiguratsiooni nullida ära järgmiste käskudega

service cman stop
service pve-cluster stop
rm /etc/cluster/cluster.conf
rm /var/lib/pve-cluster/*
service pve-cluster start
service cman start

ASIDE: If you mess up your Proxmox config, there is no obvious nor documented way of resetting the cluster config back to default on 2.0 like there was on 1.x. Here's how you do it:

Probleemide korral kontrollida kas /etc/hosts failis on mõlemas masinas info korrektne, on proxmoxi versioon identne ning kellaajad süngis.

  • permission denied - invalid ticket (401)
# pvecm updatecerts --force

I guess you need to restart pvedaemon and apache2 (or simply reboot).

Päris bugivaba see uus proxmox pole. HA optsiooni lisamisega läks miskipärast katki võimalus migreerida omatahtmist mööda virtuaalmasinaid

Executing HA migrate for VM 109 to node jagaja
Trying to migrate pvevm:109 to jagaja...Target node dead / nonexistent
TASK ERROR: command 'clusvcadm -M pvevm:109 -m jagaja' failed: exit code 244

Paistab teistelgi sarnaseid jamasid

Kui migreerimine annab veidraid veateateid ja logis teated:

Feb  5 12:43:45 koguja corosync[3329]:   [TOTEM ] Received message has invalid digest... ignoring.
Feb  5 12:43:45 koguja corosync[3329]:   [TOTEM ] Invalid packet data

Siis võib oletada, et võrgus on mingi clustri node, mis pole seotud clustriga kuid, mis saadab multicast aadressile "halbu signaale" Peale node cman teenuse peatamist veidrad veateated kadusid.

Clustri arhidektuur

Proxmox Cluster file system (pmxcfs) on mõeldud konfiguratsioonifailide salvestamiseks ja replikeerimiseks masinate vahel kasutades Corosynci.

Corosync koosneb mitmetest teenustest

  • cpg - Closed Process Group
  • sam - Simple Availability Manager
  • confdb - Configuration and Statistics database
  • quorum - Provides notifications of gain or loss of quorum

failid on mounditud kausta /etc/pve

Olulisimaks failiks cluster.conf mis sisaldab corosync/cman seadistusi

nodes/${NAME}/pve-ssl.pem                 => public ssl key fo apache
nodes/${NAME}/priv/pve-ssl.key            => private ssl key
nodes/${NAME}/qemu-server/${VMID}.conf    => VM configuration data for KVM VMs
nodes/${NAME}/openvz/${VMID}.conf         => VM configuratin data for OpenVZ containers

pmxcfs andmebaasifail asub /var/lib/pve-cluster/config.db

Probleemide korral mõne nodega võib selle kopeerida töötavast masinast ümber probleemsesse hosti.

CMAN is a symmetric, general-purpose, kernel-based cluster manager. It has two parts. Connection Manager (cnxman) handles membership, messaging, quorum, event notification and transitions. Service Manager (sm) handles "service groups" which are a general way of representing and managing instances of external systems that require cluster management. The CMAN cluster manager is the foundational system upon which DLM, GFS, CLVM, and Fence all depend. The CMAN API in the kernel and userspace is general and available for other programs to use.

Kui corosync on kasutatud cmani keskkonnas siis corosync.conf faili ei kasutata.

http://linux.die.net/man/5/cman

Kui switch ei toeta multicasti

Selline olukord poleks sugugi ebatavaline, mida siis teha? Vaja on clustri konfis teha muudatus

<cman keyfile="/var/lib/pve-cluster/corosync.authkey" transport="udpu">

Ja unustada ei tohiks ka real:

<cluster name="clustername" config_version="2">

Muuta config_version parameetrit.

http://pve.proxmox.com/wiki/Multicast_notes

Ubuntus java paikaseadmine

How to switch Firefox Java plugin to Sun Java on Ubuntu Linux

Open Synaptic and go to Settings -> Repositories -> Other Software and activate the Canonical partner repo. Now close Synaptic, fire up a terminal and run the following commands in order, selecting Sun Java (java-6-sun) where appropriate:

sudo apt-get update
sudo apt-get install sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-plugin
sudo update-alternatives --config java

The tricky part is: even when you have Sun's Java runtime installed, Firefox will still default to the open source IcedTea plugin, unless you tell it not to. Run the following command and select Sun's Java web browser plugin:

sudo update-alternatives --config mozilla-javaplugin.so