====== Proxmox ====== ===== Εγκατάσταση - Αρχικές Ρυθμίσεις ===== Κατά την εγκατάσταση μεγάλη προσοχή στην επιλογή hostname, καθώς η αλλαγή του μετά είναι δύσκολη. Επιλέξτε ένα όνομα π.χ. της μορφής hosta.company.local Αλλάζουμε το **/etc/apt/sources.list** deb http://ftp.gr.debian.org/debian jessie main contrib non-free # security updates deb http://security.debian.org jessie/updates main contrib non-free Θα εγκαταστήσουμε έναν πιο πρόσφατο πυρήνα. Εκτελούμε. apt-get update apt-get install linux-image-amd64 Προαιρετικά εγκαθιστούμε και firmware αν χρειάζεται το υλικό μας apt-get install firmware-linux firmware-linux-nonfree Εάν έχουμε κάρτες δικτύου realtek και δεν λειτουργούν σωστά δοκιμάζουμε να εγκαταστήσουμε apt-get install firmware-realtek και επανεκκινούμε Βάζουμε σε σχόλια στο **/etc/apt/sources.list.d/pve-enterprise.list** το subscription repository του proxmox και εισάγουμε αν θέλουμε το test repository #deb https://enterprise.proxmox.com/debian wheezy pve-enterprise # PVE pvetest repository provided by proxmox.com deb http://download.proxmox.com/debian wheezy pvetest Μπορούμε να εγκαταστήσουμε τον πυρήνα 3.10 που δίνει καλύτερες επιδόσεις στις εικονικές μηχανές και καλύτερη υποστήριξη στο υλικό αλλά δεν έχει ακόμα υποστήριξη στο openvz. apt-get update apt-get install pve-kernel-3.10.0-5-pve ===== Storage - usb disk ===== mkdir /mnt/usbstorage Βρίσκουμε το UUID του δίσκου με την εντολή blkid Ορίζουμε στο /etc/fstab την προσάρτηση του δίσκου. Π.χ. UUID=6bc62200-b7c4-4610-bd56-84f2c41715a3 /mnt/usbstorage ext4 defaults,nofail 0 2 Τέλος εκτελούμε mount -a και ελέγχουμε με df εάν έχει προσαρτηθεί ο εξωτερικός δίσκος Συνδεόμαστε στο proxmox και στο **Storage View** αριστερά επιλέγουμε **Datacenter**, την καρτέλα **Storage** και πατάμε **Add** * Δίνουμε ID **usbstorage** και εισάγουμε την διαδρομή του φακέλου στον εξωτερικό δίσκο, π.χ. /mnt/usbstorage/proxmox/ ===== serial port ===== Εάν θέλουμε να δούμε την σειριακή θύρα του ΗΥ μέσα από την εικονική μηχανή εκτελούμε qm set 100 -serial0 /dev/ttyS0 Προσοχή! Δεν θα έχουμε την δυνατότητα migration καθώς είναι σύνδεση με τοπική συσκευή ===== Μεταφορά από VirtualBox σε KVM ===== Εάν η εικονική μας μηχανή ήταν σε virtualbox θα πρέπει να μετατρέψουμε πρώτα το αρχείο vdi σε qcow2 με την παρακάτω εντολή qemu-img convert -f vdi -O qcow2 vm.vdi vm.qcow2 * Σημειώνουμε το μέγεθος του εικονικού δίσκου στο αρχείο vdi. * Σημειώνουμε τις mac address των καρτών δικτύου * Δημιουργούμε μια νέα εικονική μηχανή στο proxmox * **Hard disk** * **bus** : virtio * **size**: Ορίζουμε το μέγεθος του εικονικού δίσκου που θα μεταφέρουμε * **cpu** * Για 2 πυρήνες, **socket** : 2, **cores** : 1 * type : host * **network** * **model** : virtio Η εικονική μας μηχανή δημιουργήθηκε με ένα ID π.χ. 100. Θα αντιγράψουμε τώρα υπάρχον αρχείο qcow2 πάνω στο αρχείο qcow2 της εικονικής μηχανής. Π.χ. cp vm.qcow2 /mnt/usbstorage/proxmox/images/100/vm-100-disk-1.qcow2 Θα πρέπει οπωσδήποτε να ορίσουμε στις κάρτες δικτύου τις ίδιες mac address που είχε η εικονική μηχανή. Τέλος εκκινούμε την εικονική μηχανή και συνδεόμαστε με console/no-vnc για να δούμε εάν ξεκινήσει ==== Windows ==== βλ. [[el:linux:debian:server:proxmox?&#spice|Spice - Windows]] === SATA -> virtio === Εάν θέλουμε να αλλάξουμε **από SATA σε virtio** τον δίσκο κάνουμε τα εξής - Προσθέτουμε έναν νέο δίσκο virtio 1G στην εικονική μηχανή και εκκινούμε - Κατεβάζουμε το [[https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html|cd με τους spice drivers]] από την Redhat και το εισάγουμε στο cdrom της VM. Την εκκινούμε και εγκαθιστούμε τον driver για **virtio storage** (viostor) ως εξής : - Από την Διαχείριση Συσκευών βρίσκουμε τις συσκευές που δεν έχουν drivers (SCSI) - Επιλέγουμε Ενημέρωση προγράμματος οδήγησης - Εγκατάσταση από μια λίστα - Βρίσκουμε τον φάκελο viostor και τον υποφάκελο για το ΛΣ και την αρχιτεκτονική μας και κάνουμε την εγκατάσταση - Επανεκκινούμε την εικονική μηχανή. - Δεξί κλικ στο εικονίδιο του Υπολογιστή και επιλέγουμε **Διαχείριση** και στην συνέχεια **Διαχείριση Δίσκων**. Θα ξεκινήσει οδηγός για την διαμόρφωση (δεν επιλέγουμε δυναμικός) και τον ορισμό πρόσβασης π.χ. ως **E:** (ntfs με γρήγορη διαμόρφωση). Όταν ολοκληρωθεί τσεκάρουμε ότι μπορούμε να χρησιμοποιήσουμε τον νέο δίσκο. Εάν ναι οι drivers εγκαταστάθηκαν σωστά. - Τερματίζουμε την εικονική μηχανή. - Από το proxmox επιλέγουμε τον δίσκο εκκίνηση IDE/SATA και πατάμε **Remove**. Δεν θα τον αφαιρέσει θα τον τοποθετήσει στους **unused** - Ως unused μπορούμε να κάνουμε **Edit** και να αλλάξουμε το interface σε **virtio** - Στα **Options** ορίζουμε πάλι την σειρά εκκίνησης να περιέχει τον virtio δίσκο μας - Εκκινούμε την εικονική μηχανή. Εάν όλα πήγαν καλά θα πρέπει να ξεκινήσει κανονικά. - Μπορούμε πλέον από το proxmox να αφαιρέσουμε τον δοκιμαστικό δίσκο 1G που βάλαμε προσωρινά. Πατάμε **Remove** και μετά πάλι **Remove** από τους **unused** === Windows XP === Εάν στην εκκίνηση δούμε μπλε οθόνη με κωδικό 0x0000007B θα πρέπει να διορθώσουμε πρόβλημα με τον controller του δίσκου. * Εκκινούμε από **HIREN's boot cd** και διαλέγουμε **micro XP**. Αν δεν λειτουργεί το ποντίκι αναγκαστικά από πλήκτρολόγιο ξεκινώντας με το MS key για το start menu. * Στo μενού του **HBCD** πηγαίνουμε **Tools / Registry** και επιλέγουμε **Fix Hard disk controller** * Ορίζουμε target root : C:\Windows και κάνουμε update τον controller Για gigabit σύνδεση ακολουθούμε τις παρακάτω οδηγίες για **spice και paravirtualized drivers**. Εάν υπάρξει **πρόβλημα** με τον **default gpu driver της cirrus**, π.χ. να κολλάνε τα γραφικά στο login screen μετά από λίγο αλλάζουμε σε **standard vga**. ===== Spice ===== ==== windows ==== Είναι καλό να εγκαταστήσουμε τους spice drivers από την Redhat για paravirtualized συσκευές. Αυτό θα μας δώσει την δυνατότητα να χρησιμοποιήσουμε μεταξύ άλλων spice vga driver και σύνδεση spice από proxmox, network virtio για gigabit συνδέσεις κτλ. - Κατεβάζουμε το iso cd για x86 ή 64 από εδώ : https://fedoraproject.org/wiki/Windows_Virtio_Drivers - Το κάνουμε upload σε ένα storage του proxmox - Το φορτώνουμε στην εικονική μηχανή που εκτελεί windows - Από την Διαχείριση Συσκευών βρίσκουμε τις συσκευές που δεν έχουν drivers - Επιλέγουμε **Ενημέρωση προγράμματος οδήγησης** - Εγκατάσταση από μια λίστα.. - Τσεκάρουμε και το CDROM και αφήνουμε να βρει τους drivers - Προσοχή να βάλουμε την έκδοση για το λειτουργικό που έχουμε από την λίστα (π.χ. 5.1 για windows xp) ==== linux client ==== apt-get install virt-viewer spice-client-gtk browser-plugin-spice Ανοίγουμε το proxmox στο τοπικό δίκτυο μέσω firefox και επιλέγουμε spice αντί για console και άνοιγμα με /usr/bin/remote-viewer === italc === Το italc δουλεύει καλά μέσω spice αρκεί η οθόνη που θα το εκκινήσουμε να είναι **ίση ή μικρότερη** από την μικρότερη οθόνη των clients. Πρώτα κάνουμε full screen και μετά συνδεόμαστε και εκτελούμε το italc. === Sound === Για να ακούσουμε τον ήχο μέσα από την vm χρειαζόμαστε μια εικονική κάρτα ήχου και την χρήση spice * Προσθέτουμε audio device στην vm * proxmox 6 : από το μενού hardware/add προσθέτουμε **ich9-intel-hda** * proxmox 5 : Στο conf file της vm args: -device 'ich9-intel-hda,id=audiodev0,bus=pci.2,addr=0xc' -device 'hda-micro,id=audiodev0-codec0,bus=audiodev0.0,cad=0' -device 'hda-duplex,id=audiodev0-codec1,bus=audiodev0.0,cad=1' * Αλλάζουμε το display σε graphic card : spice * Εκκινούμε και από Console ανοίγουμε spice Εάν φαίνεται ότι παίζει αλλά δεν ακούγεται τοπικά, εκτελούμε στον ΗΥ μας **pulsemixer** και επιβεβαιώνουμε ότι είναι ανοιχτός ο ήχος στο remote viewer (mute/unmute με το πλήκτρο m) Σε ubuntu 18 ltsp client image στην εναλλαγή CTRL-ALT-F6 κρασάρει το client vm! Για να δοκιμάσουμε κάνουμε ένα αντίγραφο της εντολής 6 να εκτελείται στην κονσόλα 8 ώστε να γίνει αυτή που θα εμφανιστεί από την αρχή και να μην χρειαστούμε εναλλαγή. Η θύρα 3128 που ακούει ο spice proxy ίσως δεν είναι δυνατό να γίνει προώθηση. Για να την αλλάξουμε την τροποποιούμε τα παρακάτω αρχεία. /usr/share/perl5/PVE/Service/spiceproxy.pm: my $socket = $self->create_reusable_socket(3128, undef, $family); /usr/share/perl5/PVE/API2Tools.pm: my $port = $uri->port || 3128; /usr/share/perl5/PVE/APIServer/AnyEvent.pm: my $remport = $remip ? 3128 : $spiceport; /usr/share/perl5/PVE/AccessControl.pm: proxy => "http://$proxy:3128", /usr/share/perl5/AnyEvent/HTTP.pm: $PROXY = [$2, $3 || 3128, $1] O ltsp client θα πρέπει να εκτελείται σε 24bit graphics, οπότε στο lts.conf, ορίζουμε X_COLOR_DEPTH=24 ===== Cluster ===== Τροποποιούμε το αρχείο /etc/hosts στον 1ο κόμβο εισάγοντας τις ip διευθύνσεις όλων των κόμβων π.χ. 192.168.100.10 node1.mycompany.local node1 pvelocalhost 192.168.100.20 node2.mycompany.local node2 και αντίστοιχα στον 2ο κόμβο 192.168.100.20 node2.mycompany.local node2 pvelocalhost 192.168.100.10 node1.mycompany.local node1 Στον 1ο κόμβο εκτελούμε pvecm create myclustername Ελέγχουμε με pvecm status και pvecm nodes Στον 2ο κόμβο εκτελούμε pvecm add node1 Ελέγχουμε με pvecm status και pvecm nodes Προσοχή! Εάν θέλουμε να προσθέσουμε και **3ο κόμβο ή να κάνουμε ρυθμίσεις που αφορούν το cluster** (όπως προσθήκη backup schedule) θα πρέπει και οι 2 υπάρχοντες κόμβοι να είναι ανοιχτοί. Αλλιώς με προσοχή εκτελούμε pvecm expected 1 Θα πρέπει όμως να ξεκινήσουμε κάποια στιγμή και τον 2ο να συγχρονιστεί πριν κάνουμε αλλαγές σε αυτόν. Επίσης βασικές αλλαγές όπως τροποποίηση εικονικών μηχανών, αλλά ακόμα και **εκτέλεση προγραμματισμένων backup** δεν θα γίνονται εάν είναι ανοικτός μόνο ο ένας. Εάν είναι ανοικτός μόνιμα μόνο ο ένας κόμβος ας πούμε ο βασικός και ο 2ος είναι μόνο για ώρα ανάγκης (κάτι έξω από την λογική του clustering) τότε μπορούμε να κάνουμε τα εξής στον βασικό κόμβο. Προσθέτουμε στο **/etc/rc.local** pvecm expected 1 Επίσης δημιουργούμε το αρχείο **/etc/cron.hourly/expected** με περιεχόμενο #!/bin/bash pvecm expected 1 το ορίζουμε ως εκτελέσιμο και επανεκκινούμε το cron chmod +x /etc/cron.hourly/expected service cron restart === Backup server === Η παρακάτω διαδικασία δεν είναι η ενδεδειγμένη καθώς το proxmox στήνεται κανονικά με HA ρυθμίσεις και με ανάλογο hardware για fencing. Εάν θέλουμε μια απλή κατάσταση στην οποία εάν ο ένας από τους 2 hosts παρουσιάσει απότομο πρόβλημα (π.χ. χαλάσει μητρική) να μπορούμε χειροκίνητα σε λίγα λεπτά να ξεκινήσουμε την εικονική μηχανή στον άλλο host κάνουμε τα εξής. * Χρησιμοποιούμε **nfs storage** για τον δίσκο της εικονικής μηχανής, πιθανόν κάποιο NAS με raid. * Εκκινούμε και τους 2 hosts ώστε να δουλέψει το cluster * Βρίσκουμε το επόμενο διαθέσιμο vmid π.χ. 110 και εκτελούμε το παρακάτω για να αντιγράψουμε τις ρυθμίσεις της **εικονικής μηχανής 100** από τον **1ο host** ως **εικονική μηχανή 110** στον **2o host** scp /etc/pve/nodes/hosta/qemu-server/100.conf hostb:/etc/pve/nodes/hostb/qemu-server/110.conf service pve-cluster restart ΠΡΟΣΟΧΗ! ΠΟΤΕ δεν θα πρέπει να εκτελεστεί η εικονική μηχανή και στους 2 server ταυτόχρονα καθώς θα δημιουργηθεί σίγουρα corruption στον εικονικό δισκό. Όταν δημιουργηθεί το cluster σε περίπτωση που ο ένας host είναι εκτός δεν έχουμε δικαιώματα εγγραφής στις ρυθμίσεις για λόγους ασφαλείας ώστε να μην δημιουργηθεί ασυμβατότητα. Μπορούμε να παρακάμψουμε την ασφάλεια αυτή και να κάνουμε αλλαγές στον έναν από τους δύο host. Θα πρέπει να όμως να προσέχουμε όταν εκκινηθούν και οι 2 να ξεκινήσει πρώτος αυτός στον οποίο κάναμε τις αλλαγές. Με την παρακάτω εντολή ορίζουμε τα expected votes σε 1 μέχρι την επανεκκίνηση pvecm expected 1 ===== Επιδόσεις ===== ==== Dynamic Memory Allocation ==== Η χρήση **Δυναμικά Καταχωρούμενης Μνήμης** σε εικονική μηχανή Linux δεν συστήνεται καθώς ρίχνει αρκετά (ίσως και 50%) την ταχύτητα. Το ΛΣ Linux χρησιμοποιεί όλη την μνήμη που του παρέχεται και ο έλεγχος για απελευθέρωση μη αναγκαίας μνήμης έχει αρνητική επίδραση. Σε εικονική μηχανή Windows έχει μεγαλύτερο νόημα αρκεί να εγκατασταθούν [[https://pve.proxmox.com/wiki/Dynamic_Memory_Management|οι drivers και για την υπηρεσία]] ===== Backup ===== Δοκιμή backup εικονικής μηχανής με δίσκο 30GB, **8GB** ως qcow2, διάβασμα από ssd, εγγραφή σε nfs μέσω gigabit ^ συμπίεση ^ χρόνος ^ ταχύτητα ^ μέγεθος ^ ^ lzo | 236s | 181 MB/s | 4.2 GB | ^ gzip | 840s | 51 MB/s | 3.2.GB| Πιθανόν χρησιμοποιείται πιο γρήγορη συμπίεση και στα 2 formats (βλ. [[http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO |συγκριση Gzip vs Bzip2 vs LZMA vs XZ vs LZ4 vs LZO]]) Με [[http://forum.proxmox.com/archive/index.php/t-5967.html|wrapper script]] μπορεί να χρησιμοποιηθεί και το **pigz** που εκτελείται παράλληλα ===== Δίσκοι ===== Πολλές φορές δημιουργώντας μια εικονική μηχανή είμαστε **αρκετά γενναιόδωροι στο μέγεθος**, δεδομένου ότι ο δίσκος μεγαλώνει δυναμικά. Όμως μετά από αρκετό καιρό π.χ. ένα χρόνο εάν γίνονται συνεχώς εγγραφές και διαγραφές στον δίσκο, ο δυναμικός δίσκος qcow2 είναι πλέον πάνω από **80%** σε σχέση με το στατικό μέγεθος ακόμα και αν έχει μέσα του δεδομένα στο **40%** Αυτό δημιουργεί επιπλέον τεράστια backup καθώς αυτά συσχετίζονται με το αρχείο qcow2 κυρίως και λιγότερο με τα δεδομένα μέσα του ==== Αυξηση μεγέθους ==== Σε linux μπορεί να γίνει ακόμα και online αλλά καλύτερα να τερματίσουμε πρώτα την εικονική μηχανή, Εκτελούμε π.χ. qm resize 100 virtio5 +12G === online === Για ext4 online κάνουμε πρώτα τα εξής disk=/dev/vdf part=$disk""1 umount $part parted $disk parted> print parted> resizepart 1 100% parted> quit umount $part # just in case fdisk -l $disk | grep ^/dev umount $part # it was remounted here! e2fsck -f $part #or for s2 reiserfsck -f $part umount $part # just in case resize2fs $part mount $part ==== Μείωση μεγέθους ==== Αρχικά θα **πάρουμε οπωσδήποτε ένα backup** της εικονικής μηχανής, αφού την τερματίσουμε, διότι η παρακάτω διαδικασία είναι πάντα επίφοβη. Αν έχουμε lvm partitions τότε η διαδικασία είναι εντελώς διαφορετική (βλ. [[http://www.taitclarridge.com/techlog/2009/10/lvm-migration-to-smaller-disk.html|lvm - migration to smaller disk]]. (καλή τύχη!) ===Προετοιμασία - Linux=== Έστω ότι έχουμε πολλούς δίσκους στην εγκατάστασή μας. Αρχικά θέλουμε να μειώσουμε το μέγεθος σε έναν από αυτούς έστω /mnt/data. - **Έμμεσο defrag** (Προαιρετικό) - Δοκιμάζουμε να κάνουμε **unmount** τον δίσκο. umount /mnt/data. Λογικά θα αποτύχει - Εκτελούμε lsof /mnt/data για να δούμε τις υπηρεσίες που το χρησιμοποιούν. Τις τερματίζουμε και δοκιμάζουμε να κάνουμε πάλι **unmount**. - Αν πετύχει κάνουμε πάλι **mount** και εκτελούμε dd if=/dev/zero of=/mnt/data/tmpfile - Αυτό θα δημιουργησει ένα τεράστιο αρχείο, θα γεμίσει τον δίσκο και θα κάνει **αυτόματο defrag**. Διαγράφουμε στην συνέχεια το αρχείο rm /mnt/data/tmpfile και τερματίζουμε την εικονική μηχανή. - Εκκινούμε με ένα live cd με το gparted, π.χ. parted magic και **μειώνουμε** το μέγεθος του partition που υπάρχει στον δίσκο δημιουργώντας unallocated space στο τέλος του, αφήνωντας όσο επιπλέον χώρο από τον χώρο που έχουν τα δεδομένα θέλουμε. Έστω ότι έτσι έμειναν **19.5 GB unallocated space**. Τερματίζουμε την εικονική μηχανή. ===Προετοιμασία - Windows=== //Δοκιμάστηκε σε Windows XP, 7, 10// - Κάνουμε μια εκκαθάριση αρχείων όσο μπορούμε για να ελευθερώσουμε χώρο. Σε windows σημαντικά μεγάλα είναι τα αρχεία για swap και hibernate, το windows restore κτλ - Συνδεόμαστε ως διαχειριστής και ανοίγουμε την διαχείριση δίσκων. - **Ανασυγκρότηση - συρρίκνωση** - Επιλέγουμε τον δίσκο και απο τις **Ιδιότητες** βρίσκουμε την **Ανασυγκρότηση** και εφαρμόζουμε. - Επιλέγουμε τον δίσκο και επιλέγουμε **συρρίκνωση**. Θα μας ενημερώσει για το μέγιστο μέγεθος συρρίκνωσης το οποίο και επιλέγουμε. Εάν δεν μπορεί να γίνει συρρίκνωση ενώ φαίνεται ελεύθερος χώρος, θα δοκιμάσουμε να κάνουμε ανασυγκρότηση με ένα πιο εξελιγμένο εργαλείο όπως [[http://www.auslogics.com/disk-defrag/index.php|Auslogics Disk Defrag]]. Μετά θα δοκιμάσουμε πάλι συρρίκνωση. - Σε Windows XP δεν υπάρχει η δυνατότητα συρρίκνωσης μέσα από το ΛΣ. Εγκαθιστούμε την εφαρμογή [[http://www.wikihow.com/Shrink-a-Windows-XP-Partition|minitool partition wizard]]και κάνουμε resize μέσα από αυτή. - Έστω ότι δημιουργήσαμε ελεύθερο χώρο **19.5GB**. Τερματίζουμε την εικονική μηχανή. ===Μείωση μεγέθους=== - Από την κονσόλα του proxmox μπαίνουμε στον φάκελο που είναι αποθηκευμένος ο εικονικός δίσκος π.χ. /mnt/pve/nas, **παίρνουμε backup και μετατρέπουμε σε raw** τον δίσκο cd /mnt/pve/nas/images/100/ disk=vm-100-disk-2 mv $disk.qcow2 $disk.qcow2.bak qemu-img convert -p -O raw $disk.qcow2.bak $disk.raw - Μειώνουμε το μέγεθος κατά **18GB** (δηλαδή για λόγους ασφαλείας, **τουλάχιστον 1GB λιγότερο** από τον διαθέσιμο unallocated χώρο **(19.5GB)** που δώσαμε με το resize του partition) εκτελώντας decrease="-18G" qemu-img resize -f raw $disk.raw --shrink $decrease - Μετατρέπουμε πάλι τον δίσκο σε **qcow2** qemu-img convert -p -O qcow2 $disk.raw $disk.qcow2 - Παίρνουμε την πληροφορία για το τρέχον μέγεθος qemu-img info $disk.qcow2 και τροποποιούμε το αρχείο **/etc/pve/qemu-server/100.conf** ώστε να έχει το σωστό μέγεθος. - Εκκινούμε με ένα live cd με το gparted, π.χ. parted magic και μεγαλώνουμε το partition ώστε να πάρει και τον υπόλοιπο χώρο που είχαμε αφήσει για ασφάλεια στον δίσκο ή εναλλακτικά σε Windows 7/10 με παρόμοιο τρόπο όπως κάναμε συρρίκνωση, κάνουμε **επέκταση**. - Αφού δούμε ότι όλα λειτουργούν διαγράφουμε το .bak και το raw αρχείο rm $disk.raw $disk.qcow2.bak ==== Δίσκος ως usb στην VM ==== Βλ. και εδώ [[https://forum.proxmox.com/threads/setup-usb-disk-image-for-tailsguest.38824/|εδώ]] * Δημιουργούμε τον qcow2 δίσκο σε μια VM π.χ. 2GB και τον διαμορφώνουμε είτε από το ΛΣ είτε από ένα live cd μέσω gparted. * Τερματίζουμε την εικονική μηχανή και κάνουμε detach τον δισκο. * Εκκινούμε μια άλλη vm όχι την ίδια καθώς κόλλαγε την ώρα που εισάγαμε τον δίσκο Συνδεόμαστε qm monitor 803 Εκτελούμε qm>drive_add 0 if=none,id=usbdisk1,file=/mnt/pve/nas3251tb/images/804/vm-804-disk-0.qcow2,snapshot=on qm>device_add usb-storage,id=usbdisk1,drive=usbdisk1,removable=on Έάν κάνουμε unmount τον δίσκο μέσα από την vm για να ξαναγίνει mount εκτελούμε qm>device_del usbdisk1 και πάλι qm>drive_add 0 if=none,id=usbdisk1,file=/mnt/pve/nas3251tb/images/804/vm-804-disk-0.qcow2,snapshot=on qm>device_add usb-storage,id=usbdisk1,drive=usbdisk1,removable=on ===== Διάφορα ===== Για την αφαίρεση του μηνύματος συνδρομής κατά την σύνδεση : http://www.jamescoyle.net/how-to/614-remove-the-proxmox-no-subscription-message =====Αντιμετώπιση Προβλημάτων===== ==== Network interface changes ==== Εάν για κάποιο λόγο κάποια κάρτα δικτύου στον proxmox χρειαστεί να απενεργοποιηθεί και να ενεργοποιηθεί πάλι π·χ. με ifdown vmbr3 ifupvmbr3 όλες οι vms που την χρησιμοποιούν θα χάσουν την σύνδεση. Με την παρακάτω εντολή βλέπουμε τις υπάρχοντες bridge συνδέσεις από τις vms brctl show Για να επανασυνδέσουμε τις tap συνδέσεις που χαθήκαν εκτελούμε iface=vmbr3; grep -FH bridge= /etc/pve/nodes/*/qemu-server/*.conf | perl -nle 'print "tap$1i$2 master $3" if /\/(\d+).conf:net(\d+):.*?bridge=(vmbr\d+)/' | grep $iface | xargs -l1 echo ip link set Εάν δούμε σωστές εντολές π.χ. ip link set tap101i2 master vmbr3 τις εκτελούμε βγάζωντας το echo και επιβεβαιώνουμε με brctl show ==== Reset cluster ==== Εάν έχουμε κάποιο πρόβλημα με το cluster και θέλουμε να το φτιάξουμε από την αρχή ακολουθούμε τα παρακάτω βήματα για την διαγραφή του. Τερματίζουμε όλους τους κόμβους εκτός από έναν και συνδεόμαστε σε αυτόν. Εκτελούμε cp -a /etc/pve /root/pve_backup service pve-cluster stop umount /etc/pve service cman stop rm /etc/cluster/cluster.conf rm -rf /var/lib/pve-cluster/* και τερματίζουμε shutdown -h 0 Εκκινούμε τον 2ο κόμβο (ο 1ος παραμένει κλειστός), εκτελούμε τις ίδιες εντολές και τερματίζουμε. Δημιουργούμε από την αρχή το cluster. Επαναφέρουμε τις ρυθμίσεις για τις εικονικές μηχανές στον 1ο κόμβο από το backup : /root/pve_backup cp /root/pve_backup/storage.cfg /etc/pve/ cp /root/pve_backup/qemu-server/*.conf /etc/pve/qemu-server/ cp /root/pve_backup/openvz/* /etc/pve/openvz/ ==== gui vm and host status : offline ==== Εάν οι εικονικές μηχανές εκτελούνται αλλά από το web interface φαίνονται να είναι offline δοκιμάζουμε επανεκκίνηση τον **pvestatd** service pvestatd restart ==== Αποστολή συνδυασμού πλήκτρων ==== Εάν το vnc console δεν αποκρίνεται μπορούμε να δοκιμάσουμε να στείλουμε από το Monitor του web interface συνδυασμούς πλήκτρων. Π.χ. **''sendkey alt-sysrq-s''** .. (βλ.[[el:school:lessons:linux:theory:keyboard]]) ή **''sendkey alt-f3''** κτλ Εάν δεν έχουμε πρόσβαση στο γραφικό τότε από την κονσόλα του host βρίσκουμε το id της εικονικής μηχανής με qm list Π.χ. βρήκαμε ότι είναι το 110. Στέλνουμε τον συνδυασμό πλήκτρων με qm sendkey 110 alt-sysrq-s Ή εάν μετά από μη ομαλό τερματισμό έχει ξεκινήσει quota check για να μην περιμένουμε βλ.[[el:linux:debian:server:quota?&#quota_check_on_startup|διακοπή quota check σε εκκίνηση]] ==== Firefox touch events ==== Πρόβλημα με τον firefox >51 και proxmox webgui (βλ. bug https://bugzilla.proxmox.com/show_bug.cgi?id=1223) Ως προσωρινή λύση (βλ. post #7 https://forum.proxmox.com/threads/gui-issues-with-firefox-after-upgrade.32621/) ορίζουμε dom.w3c_touch_events.enabled σε 0 (από default 2) ===== Πηγές ===== * Manual * https://pve.proxmox.com/pve-docs/pve-admin-guide.html * Migration to proxmox * http://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VE * change hostname * http://forum.proxmox.com/threads/14327-Proxmox-node-name-change * reset cluster * http://undefinederror.org/how-to-reset-cluster-configuration-in-proxmox-2/ * https://pve.proxmox.com/wiki/Proxmox_VE_2.0_Cluster * HA * https://pve.proxmox.com/wiki/High_Availability_Cluster * https://pve.proxmox.com/wiki/Two-Node_High_Availability_Cluster * Storage * http://c-nergy.be/blog/?p=544 * http://pve.proxmox.com/wiki/Storage_Model * Resize vm disks * Resize disks : https://pve.proxmox.com/wiki/Resize_disks * shrink qcow2 : https://pve.proxmox.com/wiki/Shrink_Qcow2_Disk_Files * increase/decrease part I: http://c-nergy.be/blog/?p=1323 * increase/decrease part II: http://c-nergy.be/blog/?p=1338 * decrease qcow2 : https://linuxconfig.org/how-to-resize-a-qcow2-disk-image-on-linux * http://www.howtogeek.com/howto/windows-vista/working-around-windows-vistas-shrink-volume-inadequacy-problems/ * NAT * http://servernetworktech.com/2012/12/proxmox-and-using-nat-with-a-virtual-machine/ * Performance * http://www.brianlinkletter.com/kvm-performance-limits-for-virtual-cpu-cores/ * https://pve.proxmox.com/wiki/Dynamic_Memory_Management * Migrate vm * offline : http://comments.gmane.org/gmane.linux.pve.devel/594 * Backups * [[el:linux:debian:server:lvm|proxmox host backup]] * differential patch:http://ayufan.eu/projects/proxmox-ve-differential-backups/ * Upgrade * Νέα εγκατάσταση (προτιμότερο) : οδηγίες στο κάτω μέρος της σελίδας https://pve.proxmox.com/wiki/Upgrade_from_3.x_to_4.0 * Troubleshooting * https://pve.proxmox.com/wiki/Troubleshooting * winxp migration blue screen : http://slashsda.blogspot.gr/2012/03/migrate-from-virtualbox-to-kvm.html * vlan * http://c-nergy.be/blog/?p=1134 * sound * https://forum.proxmox.com/threads/sound-on-vm.34252/ * pci passthrough * https://pve.proxmox.com/wiki/Pci_passthrough * http://vfio.blogspot.gr/2014/08/vfiovga-faq.html * https://forum.proxmox.com/threads/pci-passthrough-cant-reset-pci-device.11811/ * http://spica-and-roid.blogspot.gr/2012/07/howto-kvm-passthrough.html * usb hotplug * https://pve.proxmox.com/wiki/USB_Devices_in_Virtual_Machines