====== 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