Outils pour utilisateurs

Outils du site


Installation du système

J'ai souhaité installer Proxmox (Proxmox_VE). Ca semble simple pour faire de la virtualisation chez soi sans trop s'enquiquiner, et c'est basé sur Debian, donc système familier.

Situation :

  • Je n'ai pas d'écran pour brancher la machine pendant l'installation.
  • La carte mère dispose d'UEFI.

Préparation de la clé USB

Sous Linux, on utilise le bon vieux dd.

dd if=/home/mply/proxmox-…-.iso of=/dev/cle/usb bs=4M ; sync

Attention à bien choisir le périphérique destination, pour ne pas écraser les données de l'un de vos disque durs par inadvertance !

Installation de proxmox

J'avais installé Proxmox 4 beta 2 en insérant le disque SSD sur mon ordi portable. Le hic, c'est que j'avais oublié le mot de passe root lors de l'installation :p En plus, mon ordi portable ne dispose pas d'UEFI… donc je ne sais pas si ça allait fonctionner une fois remis dans le boitier. En fait, j'ignorais d'où venait le problème d'absence d'accès à SSH. Il venait d'une part du fait que j'avais branché la RAM dans le mauvais slot, et d'autre part mais c'est moins sûr, de l'absence de gestion d'UEFI lors de cette 1ère installation.

J'ai réinstallé Proxmox, cette fois-ci en le branchant sur un écran quelque part. Là, ça semblait fonctionner.

Booter avec UEFI

Déjà, je me rend compte qu'il faut régler l'ordre de démarrage dans l'UEFI … et qu'il s'en fout complètement ! Il cherchait à démarrer via PXE bien que je mette USB en 1ère position.

Ensuite, on peut choisir directement ce sur quoi on veut démarrer en appuyant sur F11 au démarrage. Sauf que, les options étaient variables selon si je venais de brancher la clé USB, et selon si l'ordinateur avait été éteint éléctriquement ou juste redémarré (via CTRL+ALT+SUPPR par exemple).

Parfois, il proposait de booter sur l'USB, mais ne faisait pas référence à UEFI. D'autres fois, il proposait de booter sur l'USB via 2 options différentes, dont une réservée à UEFI.

La clé USB contient 2 partitions, dont une dédiée à UEFI. Cette dernière n'apparaissait donc pas tout le temps, mystère.

Lorsque, sur une machine UEFI, on installe Proxmox via la partition non-UEFI de la clé USB, les menus d'installation se comportent bizarrement, les flèches du clavier mettent des plombes à répondre pour sélectionner une entrée, bref, bizarre.

Lorsqu'on installe Proxmox via la partition UEFI, tout se passe bien, les menus sont sélectionnables et réactifs.

Suite

Je n'ai pas cherché à me compliquer la vie pour le reste de l'installation de Proxmox et j'ai donc pris les options proposées par défaut (sans risquer ZFS que je ne connais pas bien, notamment).

Lors de l'installation de proxmox, le seul point un peu important, étant donné que j'allais accéder à la machine via ssh par la suite, est que j'ai précisé manuellement une adresse IP non utilisée de mon réseau local. Il faut en effet que l'adresse IP de Proxmox soit située sur le même réseau que mon ordi portable. DHCP s'en charge, mais il voulait quand même utiliser une adresse IP statique. J'ai donc précisé manuellement l'IP statique qu'il fallait.

Configuration des dépots Proxmox

Se référer à la doc par ici : https://pve.proxmox.com/wiki/Package_repositories#Proxmox_VE_4.x

Pas question de payer pour les dépots “entreprise”, n'est-ce pas. Il suffit donc de le désactiver, et de le remplacer par celui indiqué.

Chiffrer l'hôte, ou chiffrer les VMs ?

On me fait remarquer que chiffrer l'hôte complet serait plus approprié, mais je n'ai pas vu l'option dans Proxmox. Des recherches internet disent que c'est faisable mais à coup de manipulations moyennement digestes.

Le fait que les machines virtuelles soient chiffrées tandis que l'hôte ne l'est pas soulève peut-être de nouveaux problèmes de sécurité.

Par exemple, sur cette page, on lit : «One important thing: YOU NEED TO BE ABLE TO TRUST THE HOST SYSTEM!!! If the host system is compromised, it might log the console input when you enter the Key for unlocking the cryptsetup device, thus learning the password whith which you encrypted all your data!!!». De toute façon, chiffré ou pas, aucune compromision du serveur hôte n'est souhaitable.

Le scénario dont on se prémunit en chiffrant nos VMs, c'est que si la machine est saisie (et donc éteinte, sans compromission préalable), alors il sera compliqué de retrouver les données situées dans les VMs.

Désactiver le message de "support"

(hélas il se remet après mise à jour du paquet, me semble)

Rendre les ports accessibles

Ce qui est compliqué avec l'internet d'aujourd'hui, c'est qu'on ne dispose que d'une seule adresse IP.

On ne peut donc pas, sauf à bidouiller, rendre accessible un service qui existerait en double au sein de notre réseau de machines virtuelles.

Typiquement, on aura plusieurs VMs, et sur chacune on aura un serveur web (apache, nginx…) qui tourne sur le port 80, car c'est le seul port qu'interroge nos navigateurs web, si on ne lui demande pas explicitement d'en interroger un autre.

(aborder les virtualhosts, et pound)

Pound

Note : actuellement, je n'utilise pas pound.

La doc : http://www.apsis.ch/pound/

Lire en particulier le paragraphe «VIRTUAL HOSTS (IN GENERAL)».

Il est possible de rediriger le traffic HTTP vers une machine (virtuelle ou pas) locale, en fonction de la requête HTTP envoyée. L'auteur de pound nous prévient que ce n'est pas vraiment le rôle de pound, mais plutôt le rôle des VirtualHosts.

J'ai juste suivi les pistes que je connaissais, je me doute que ça n'est pas recommandé, mais pour le moment j'ignore comment faire mieux (avoir un nginx quelque part qui ferait le même boulot ?).

L'idéal étant que chaque VM ait son IP publique, on pourra peut-être s'amuser avec IPv6 plus tard.

A creuser donc.

Accès aux disques durs

On parlera ici de rendre disponible un disque dur interne secondaire, et non pas un disque dur USB. A moins sans doute de mettre les bonnes options dans le fstab, on peut se retrouver bien embêté au démarrage des machines si l'un des disques durs se retrouve absent. Veiller donc à ne déclarer que des disques sûrs dans l'hôte.

D'abord, il semble opportun de rendre la partition accessible sur votre hôte. Edition du fstab, et effectuer le montage.

Une démarche possible est de laisser proxmox créer une image disque sur cette partition, dont l'hôte pourra ensuite gérer les accès. En effet il ne semble pas possible de directement manier les stockages en tant que périphériques blocs. Peut-être s'agit-il d'un moyen d'éviter que plusieurs VMs écrivent sur une même partition en même temps sans gestion concurrente.

Dans l'interface graphique de Proxmox, dans Datacenter > Stockage, il est possible de créer un nouveau stockage de type “répertoire” pour “images disque, etc”. On lui assignera une taille (apparemment on peut aller au delà de la taille du volume physique, évitons !) et un chemin. Cela aura pour effet de créer sur l'hôte un fichier image.qcow2 dans le chemin que l'on a indiqué.

Ensuite, dans la VM, onglet “Matériel”, il est possible d'ajouter un disque dur à la VM. On choisira le stockage que l'on a créé précédemment. Ce stockage apparaîtra alors en tant que /dev/sdX dans la VM, et l'on pourra effectuer le montage via fstab. Éventuellement, on devra formater la partition avec mkfs.ext4 avant de pouvoir faire ce montage.

Ancienne recette appliquée préalablement, non-recommandée :

En gros, si vous avez une partition /dev/sd* dans votre hôte, et que vous souhaitez la rendre accessible au sein d'une VM, il faut :

  • Stopper la VM
  • Editer /etc/pve/qemu-server/xyz.conf (où xyz est l'identifiant de la VM)
  • Y ajouter une ligne ideX: /dev/sdaY pour partager la partition. (où X est choisi arbitrairement mais ideX doit être une unique, et où Y désigne le numéro de partition à partager).
  • Redémarrer la VM, puis blkid pour ajouter l'UUID dans le /etc/fstab de la VM.

La partition sera disponible sous un /dev/sd*, sans numéro au bout car on a ici partagé une unique partition et pas un disque complet. /dev/sdZ pourra toutefois être monté comme une partition standard.

Attention, une même partition formatée en EXT3 ou EXT4 ne doit pas être accédée en écriture depuis plusieurs VMs en même temps. Risques que les écritures se chevauchent et que cela se passe mal. Si l'on souhaite disposer d'un espace de stockage partagé entre plusieurs VMs ou machine, on utilisera NFS (en installant un serveur NFS donc).

Je rajoute cette doc, à checker : http://www.sky-future.net/2016/01/18/lier-un-point-de-montage-lxc-sur-proxmox/

Partage des périphériques USB

Carte son USB

Je souhaite que ma carte son soit accessible à la VM 101.

Les instructions sont détaillées par ici : https://pve.proxmox.com/wiki/USB_Devices_in_Virtual_Machines

Malheureusement, la carte son ne semble pas poser de soucis sur l'hôte, mais déclenche une erreur sur la machine virtuelle.

Sur l'hôte :

# qm monitor 101
Entering Qemu Monitor for VM 101 - type 'help' for help
qm> info usbhost
  Bus 1, Addr 20, Port 4, Speed 12 Mb/s
    Class 00: USB device 0763:2012, FastTrack Pro

On ajoute le périphérique à la VM : (Attention ici on l'ajoute selon son emplacement physique, non recommandé)

# qm set 101 -usb0 host=1-4

(Ou mieux, selon l'identifiant USB … je pensais que ça coinçait mais en fait ça fonctionne)

qm set 101 -usb0 host=0763:2012

On vérifie qu'il est bien présent dans le fichier de config:

# cat /etc/pve/qemu-server/101.conf
usb0: host=1-4

(sera en PENDING si la VM n'a pas été redémarrée)

Sur la machine virtualisée :

$ dmesg
...
[   40.033471] usb 3-1: Fast Track Pro switching to config #2
[   40.033501] snd-usb-audio: probe of 3-1:1.0 failed with error -5
[   40.041369] usb 3-1: Fast Track Pro config OK
[   40.125418] usbcore: registered new interface driver snd-usb-audio

Oh beeeh, ça marche quand même…

Dans /etc/modprobe.d/fasttrack.conf, on ajoute une option d'index pour que la carte son soit celle par défaut.

alias snd-card-0 snd-usb-audio
options snd-usb-audio index=0

Et on vérifie qu'elle est bien présente :

# cat /proc/asound/cards
 0 [Pro            ]: USB-Audio - FastTrack Pro
                      M-Audio FastTrack Pro at usb-0000:00:1d.0-1, full speed

Montage des disques durs USB

On fait le choix de partager l'identifiant USB, de la même façon que la carte son. Les disques USBs ne seront donc accessibles qu'au sein d'une seule VM.


Sur l'un de mes disques durs externes (le plus vieux, mais pourtant du quasi même modèle qu'un autre qui fonctionne), j'ai une erreur qui m'empêche qu'il soit reconnu :

[ 1133.271362] usb 1-3: new high-speed USB device number 23 using xhci_hcd
[ 1133.383733] usb 1-3: device descriptor read/64, error -71

La reconnaissance du disque fonctionne bien sur mon ordi portable.

Des pistes :

Le kernel se plaint sur l'hôte

Jul 12 01:03:23 proxmox kernel: usb 2-1.4: new SuperSpeed USB device number 11 using xhci_hcd
Jul 12 01:03:23 proxmox kernel: usb 2-1.4: New USB device found, idVendor=0bc2, idProduct=3320
Jul 12 01:03:23 proxmox kernel: usb 2-1.4: New USB device strings: Mfr=2, Product=3, SerialNumber=1
Jul 12 01:03:23 proxmox kernel: usb 2-1.4: Product: Expansion Desk
Jul 12 01:03:23 proxmox kernel: usb 2-1.4: Manufacturer: Seagate
Jul 12 01:03:23 proxmox kernel: usb 2-1.4: SerialNumber: NA4K7Q9X
Jul 12 01:03:23 proxmox kernel: scsi host11: uas
Jul 12 01:03:23 proxmox kernel: scsi 11:0:0:0: Direct-Access     Seagate  Expansion Desk   0711 PQ: 0 ANSI: 6
Jul 12 01:03:23 proxmox kernel: sd 11:0:0:0: Attached scsi generic sg2 type 0
Jul 12 01:03:23 proxmox kernel: sd 11:0:0:0: [sdc] Spinning up disk...
Jul 12 01:03:24 proxmox kernel: .ready
Jul 12 01:03:24 proxmox kernel: sd 11:0:0:0: [sdc] Read Capacity(16) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
Jul 12 01:03:24 proxmox kernel: sd 11:0:0:0: [sdc] Sense not available.
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Read Capacity(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Sense not available.
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Write Protect is off
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Mode Sense: 2e 2e 2f 2e
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Asking for cache data failed
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Assuming drive cache: write through
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Read Capacity(16) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Sense not available.
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Read Capacity(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Sense not available.
Jul 12 01:03:25 proxmox kernel: sd 11:0:0:0: [sdc] Attached SCSI disk
Jul 12 01:03:25 proxmox systemd-udevd[16859]: inotify_add_watch(6, /dev/sdc, 10) failed: No such file or directory
Jul 12 01:03:27 proxmox kernel: usb 2-1.4: reset SuperSpeed USB device number 11 using xhci_hcd
Jul 12 01:03:29 proxmox kernel: usb 2-1.4: reset SuperSpeed USB device number 11 using xhci_hcd
Jul 12 01:03:32 proxmox kernel: usb 2-1.4: reset SuperSpeed USB device number 11 using xhci_hcd
article/linux/mplx/installation-proxmox.txt · Dernière modification: 2017/07/12 01:06 par bicarbonate