Politique de virtualisation

Salut,

Je reviens dans le coin avec l’espoir d’être un peu guidé dans mes tentatives de virtualisation, mes connaissances en la matière sont pour le moment assez maigres.
J’ai récemment acquis et monté une petite machine (ce processeur et 8Go de RAM) que je souhaite utiliser comme serveur à la maison.

Techno de virtualisation

J’y ai installé Proxmox 4. J’ai un peu joué avec les conteneurs et les VMs, et comme la solution «conteneur» n’avait pas fonctionné en premier lieu, je m’étais tourné vers les VMs.
Je ne suis même pas sûr de ce qui est utilisé pour gérer ces VMs, je pense que c’est un couple KVM/qemu mais je ne sais pas bien situer ces 2 technos.
Plus tard, on m’a suggéré LXC. Proxmox gère LXC mais j’ai l’impression que j’ai moins besoin de lui si je transite vers ça. Ai-je raison de vouloir me tourner vers du LXC à la dur (sans proxmox) ?

Remarque: étant donné que je n’ai qu’une seule adresse IP publique, que rendre accessible certains services allait impliquer des redirections de ports, que cette machine sera surtout administrée par moi-même (ce n’est pas ce que j’avais rêvé au départ), je me suis aussi rendu compte que je n’avais pas forcément besoin de virtualisation complète.

Isolation des services

Je voulais séparer les VMs en fonction de si elles étaient en contact avec internet, ou pas.
J’ai donc créé une VM rien que pour y mettre un serveur web (nginx+php, et rien d’autre).
Et j’ai mis tous mes autres services dans une autre VM, parfois en espérant que le pont entre les 2 VMs puisse se faire sans trop de peine.
Au final, je ne suis pas parvenu à faire passer d’une VM à l’autre un certain nombre de services écrits en Python et en C qui s’avèrent utiliser scgi (en plus, j’avoue avoir un peu de mal avec nginx). Mais dans le principe, c’est censé marcher, non ? (ma prochaine étape de dépatouillage aurait été d’installer nginx sur la même VM que celle qui héberge les services, et de tester d’abord si tout ça fonctionne sur une même VM).
Donc là ma question, c’est de savoir s’il y a des politiques de répartition des services que je devrais appliquer.
J’ai aussi peut-être mal jaugé en me disant que tout ce qui était public allait pouvoir passer par le serveur web. D’autant que là, la VM qui héberge tous les services non-web me paraît un peu chargée.
Certains services pourraient avoir double emploi (usage local et internet).
Je ne rechignerais pas à créer plusieurs VMs ou conteneurs si j’avais une politique d’isolation plus claire et pertinente. Un découpage plus fonctionnel peut-être ?

Chiffrement
J’ai aussi pour objectif de chiffrer les données, en particulier celles que je reçois d’internet. Je me suis questionné sur les questions spécifiques du chiffrement lié à la virtualisation, donc de savoir s’il était bien venu que tout le disque dur de l’hôte soit chiffré, ou si chaque VM pouvait mettre en place son chiffrement (solution actuelle).
Y a-t-il des choses à savoir là dessus ?

En bref, je suis prêt à revoir ma copie. J’aimerais juste m’assurer ne pas avoir à le refaire dans un mois :wink:
J’espère que ce fil n’est pas trop décousu, vos remarques sont les bienvenues.

Dans les grandes lignes il te faut avant tout savoir si tu cherche de la gestion de container, de la para-virtualisation ou de la virtualisation complète.

Actuellement Proxmox gère la para virtualisation et la virtualisation via KVM/Qemu et selon sa version la gestion de container avec OpenVZ ou LXC.

Au point de vue de tes ressources et de tes besoins je pense qu’apprendre à jouer avec Docker te serait profitable et facile à mettre en place.
La gestion de docker permet une grande souplesse et une isolation correcte des services que tu compte ‘dockerisé’.

Si tu cherche maintenant à monter de la grosse plateforme virtualisé avec plus tard des besoins de haute disponibilité (failover, load balancing, etc) il te faudra alors plus t’orienter vers de la virtualisation et encore que Docker permet de facilement gérer un cluster.

Disons que pour faire simple Proxmox pourrait bien être une solution agréable pour toi pour gérer l’un comme l’autre.

A quel moment à tu rencontré des problèmes lors de la création et la gestion des containers avec Proxmox ?

Je venais d’installer Proxmox en version beta, je n’avais pas encore changé les dépots pour ceux de la version communautaire, donc j’étais tombé sur un bug en lien avec les cgroups.

Possible que je me tourne vers docker en effet. Ca m’aidera à répondre aux points soulevés dans “Isolation des services” j’imagine, si chaque service a son conteneur.

Par contre proxmox, dans l’idée, ce truc me dérange, et je pense me retaper une installation complète du serveur… en profiter pour changer le système de fichiers (passage de ext4 vers btrfs).

Aussi, j’ai bof envie de perdre de l’espace (disque SSD inside), mais vous conseilleriez du RAID ? Sachant que je compte faire des backups de mes bidules sur disque dur externe.

:006

Je venais d’installer Proxmox en version beta, je n’avais pas encore changé les dépots pour ceux de la version communautaire, donc j’étais tombé sur un bug en lien avec les cgroups.

Possible que je me tourne vers docker en effet. Ca m’aidera à répondre aux points soulevés dans “Isolation des services” j’imagine, si chaque service a son conteneur.

Par contre proxmox, dans l’idée, ce truc me dérange, et je pense me retaper une installation complète du serveur… en profiter pour changer le système de fichiers (passage de ext4 vers btrfs).

Aussi, j’ai bof envie de perdre de l’espace (disque SSD inside), mais vous conseilleriez du RAID ? Sachant que je compte faire des backups de mes bidules sur disque dur externe.

:006[/quote]

Si tu compte t’orienter vers du BTRFS et utilisé du docker dans ce cas regarde du côté de CoreOS, cela te permet de déployer rapidement un docker complet et stable … si tu as le temps je tâcherai de te cherché une paire de lien utile nous avons un spécialiste de docker à la boîte qui pourra me filer ça :stuck_out_tongue:

Un raid 1 permet de rapidement mettre à l’abri tes donnée ne cas de défaillance de disque (reste à voir ce que tu as comme budget.

Personnellement si le budget est serré je partirai sur un raid 5 pour le stockage et maintenir un backup complet, différentiel + incrémental de ton système => un PRA (plan de reprise d’activité) à l’aide d’une restauration de type ‘baremetal’.

C’est d’après moi la solution la plus évolutive et la plus simple à maintenir.

Si le budget te le permet un raid 10 peux être très satisfaisant mais c’est tout de suite pas le même coût :frowning:

Quel solution de backup envisage tu de mettre en place ?

Ca va, je peux patienter avant de me re-lancer là dessus.

Je ne compte pas ré-investir dans du matériel. J’ai déjà :

  • (interne) un disque dur SSD
  • (interne) un disque dur classique dont la diagnostic SMART m’invite à ne pas le considérer comme fiable, sur lequel je compte ne rien mettre de sensible (comprendre: les données pourront être perdues)
  • des disques durs USB, plus volumineux que mon disque dur SSD.
    Je n’ai que 2 emplacements dans mon boitier, et 4 nappes SATA.

Je n’ai pas encore déterminé de solution de backup :wink: Hormis que je compte faire des copies du SSD sur les disques durs externes.

[quote=“Zbf”]Ca va, je peux patienter avant de me re-lancer là dessus.

Je ne compte pas ré-investir dans du matériel. J’ai déjà :

  • (interne) un disque dur SSD
  • (interne) un disque dur classique dont la diagnostic SMART m’invite à ne pas le considérer comme fiable, sur lequel je compte ne rien mettre de sensible (comprendre: les données pourront être perdues)
  • des disques durs USB, plus volumineux que mon disque dur SSD.
    Je n’ai que 2 emplacements dans mon boitier, et 4 nappes SATA.

Je n’ai pas encore déterminé de solution de backup :wink: Hormis que je compte faire des copies du SSD sur les disques durs externes.[/quote]

Actuellement utilisant un VPS avec un Debian Jessie à mon taff pour faire quelques tests, j’ai testé docker dessus.

Pour l’instant je doit avouer trouver ça très proche des jails de FreeBSD.

Si tu veux une première prise en main tu peux sans doute visiter ce BLOG

Tu pourra ensuite suivre la documentation officielle afin de parfaire tes connaissances, sachant que je te recommande avant tout de décomposer le docker file d’une image complexe afin de bien comprendre la construction d’une image de A à Z.

Il te sera possible de gérer les connexions de tes centenaires soit pour qu’il soit bindés sur une IP privé soit pour utiliser l’Ip de l’hôte (option expose), la gestion des commits est assez proche de GIT.

N’ayant pas encore une très grande maîtrise de cet outils je ne pourrais t’en dire plus sur les options exotiques,les montages et imbrications d’applications complexes ensembles ou encore la clusterisation mais je reste à ton écoute si t’a des questions précises.