Erinevus lehekülje "Proxmox VE 3.x" redaktsioonide vahel
(→Sissejuhatus) |
(→Install) |
||
62. rida: | 62. rida: | ||
http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze | http://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Squeeze | ||
+ | |||
+ | Peale proxmoxi paigaldust võib testida enda süsteemi kiirust kaasapandud utiliidi abil pveperf | ||
+ | |||
+ | # 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) | ||
===iSCSI kasutamine=== | ===iSCSI kasutamine=== |
Redaktsioon: 21. veebruar 2013, kell 14:50
Toores. Ehk seda pala võib täiendada.
Sisukord
Sissejuhatus
Proxmox on firma mis arendab Debianil ja vabavaral baseeruvaid serverilahendusi. Proxmox VE on Debianile loodud KVM ja OpenVZ tehnikale baseeruvate virtuaalserverite haldusplatform ehk alusdistro. Proxmox kuulub GPL litsentsi alla.
Proxmox VEs sisalduvad võimalused:
- Virtuaalmasinate võrgu boodi tugi gPXE abil http://www.etherboot.org/wiki/pxechaining
- Lihtne kuid võimas veebiliides kus saab kõik põhilised seadistamised tehtud
- Klusterdamise tugi
- Virtuaalserverite mugav install ja kasutamine üle java konsooli
Võrreldes varasema 1.x 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/kasutajate loomiseks eemalt nt veebiliidesest.
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
Paigaldame veel mitmesugust vajalikku tarkvara
# 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
Peale proxmoxi paigaldust võib testida enda süsteemi kiirust kaasapandud utiliidi abil pveperf
# 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)
iSCSI kasutamine
iSCSI kasutamiseks tuleb installida pakett open-iscsi
# apt-get install open-iscsi
Ja seejärel tuleb teenused taaskäivitada
# /etc/init.d/open-iscsi start # /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
(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.
- Veebiliidese kasutamiseks: 443
- VNC veebikonsoolile: 5900-5999
- 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 killall -9 corosync cman dlm_controld fenced service pve-cluster stop rm /etc/cluster/cluster.conf rm -rf /var/lib/pve-cluster/* /var/lib/pve-cluster/.* rm /var/lib/cluster/*
reboot (sometimes cluster kernel modules remain hang on the connections so it is better to reboot, to be sure).
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.
Storage
- LVM grupid - pve arendajate poolt soovituslik
Using LVM groups provides the best manageability. Logical volumes can easily be created/deleted/moved between physical storage devices. If the base storage for the LVM group is accessible on all Proxmox VE nodes (e.g. an iSCSI LUN) or replicated (with DRBD) then all nodes have access to VM images, and live-migration is possible.
- iSCSI LUNide otsekasutus
Ehk siis haakida iSCSI LUNid proxmoxi haldusest külge ja jagada otse virtuaalmasinatele edasi. Ka võimalik aga arendajate poolt mitte soovitatud.
Note: Currently iSCSI LUN´s are not protected from the Proxmox VE management tools. This means if you use a iSCSI LUN directly it still shows up as available and if you use the same LUN a second time you will loose all data on the LUN.
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.
# ccs_tool lsnode Cluster name: hailavaila1, config_version: 3 Nodename Votes Nodeid Fencetype koguja 1 1 jagaja 1 2 rabaja 1 3
Kui corosync on kasutatud cmani keskkonnas siis corosync.conf faili ei kasutata.
http://linux.die.net/man/5/cman
http://linux-ha.org/wiki/Cluster_Concepts
Probleemid
Kui switch ei toeta multicasti
Selline olukord poleks sugugi ebatavaline, mida siis teha? tuleb lülitada cluster ümber unicastile. Selleks on vaja clustri konfis teha muudatus real
<cman keyfile="/var/lib/pve-cluster/corosync.authkey">
Muutes selle järgnevaks
<Cman keyfile = "/var/lib/pve-cluster/corosync.authkey" transport="udpu">
Ja unustada ei tohiks ka muuta real:
<cluster name="clustername" config_version="2">
config_version parameetrit.
http://pve.proxmox.com/wiki/Multicast_notes
NO QUORUM
Kui midagi läks valesti, nt teatatakse veateade "NO QUORUM" ja oleks vaja node read-onlyst kirjutatavaks teha (st tahame teha muudatusi /etc/pve/cluster.conf failis)
# pvecm e 1
(The read-only gets turned on in an orphaned cluster node for safety.)
Ubuntus java paikaseadmine
Java on vajalik selleks, et näha üle browseri virtuaalmasina konsoolipilti.
Juhul kui konsoolipilt ei taha ilmuda või hangub on võimalik, et kasutusel on vale java versioon.
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