Voici un test avec le CT de mon blog (sur du SSD):

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0       49G  4.8G   42G  11% /

mount
/var/lib/vz/images/101/vm-101-disk-0.raw on / type ext4 (rw,relatime,data=ordered)

time sh -c "dd if=/dev/zero of=/test.tmp bs=4k count=200000 && sync"  
200000+0 records in
200000+0 records out
819200000 bytes (819 MB) copied, 0.540632 s, 1.5 GB/s

real	0m2.505s
user	0m0.120s
sys	0m0.426s

Je ne suis pas en ssd, cela vient certainement de là...

@Merrick

Sur CT Proxmox, veuillez modifier la configuration de votre CT depuis votre host Proxmox pour vous amuser sur docker.

nano /etc/pve/lxc/XXX.conf

--> Rajouter à la fin :

lxc.autodev: 1
lxc.hook.autodev: sh -c "mknod -m 0666 ${LXC_ROOTFS_MOUNT}/dev/fuse c 10 229"
lxc.cgroup.devices.allow: c 10:200 rwm
lxc.apparmor.profile: unconfined

Redemarrer le CT ...

De mon coté, j'ai les memes resultats qu'@Aerya du test de vitesse sur un LXC sur SSD.

cd /tmp

time sh -c "dd if=/dev/zero of=/test.tmp bs=4k count=200000 && sync"

200000+0 enregistrements lus
200000+0 enregistrements écrits
819200000 bytes (819 MB, 781 MiB) copied, 0,580235 s, 1,4 GB/s

real    0m1,739s
user    0m0,033s
sys     0m0,555s

Un hetzner en auction :

CPUIntel Core i7-2600
HDD2x HDD SATA 3,0 TB
RAM4x RAM 4096 MB DDR3

C'est une bonne machine ça 😉 Les HDD entreprise donnent de meilleurs performances chez Hetzner.

Je suis en HDD aussi et voici l'hôte :

time sh -c "dd if=/dev/zero of=/test.tmp bs=4k count=200000 && sync"
200000+0 records in
200000+0 records out
819200000 bytes (819 MB, 781 MiB) copied, 0.602086 s, 1.4 GB/s

real    0m5.505s
user    0m0.055s
sys     0m0.555s

Un CT :

time sh -c "dd if=/dev/zero of=/test.tmp bs=4k count=200000 && sync" 
200000+0 records in
200000+0 records out
819200000 bytes (819 MB, 781 MiB) copied, 0.762989 s, 1.1 GB/s

real    0m4.989s
user    0m0.077s
sys     0m0.753s

Le serveur testé est un xeon E3 1220 avec deux hdd de 4to en raid1 et 32go de ram.

Bonsoir tout le monde 🙂

Mes premiers tests sont plutôt concluants maintenant je me demande si j'ai fais les bons choix, je m'explique.

Tout d'abord je suis donc, suite à vos différents retours, parti sur des conteneurs. Maintenant que j'ai testé et que j'ai pu faire quelques comparaisons entre les CT et les VM de mon côté, je suis rassuré par les CT, ça fonctionne plutôt pas mal.

Niveau pare-feu je n'utilise pas PFSENSE qui semble être installé par défaut mais UFW que j'ai déjà utilisé et que je sais un peu utiliser. Peut être que c'est une erreur mais ne connaissant pas PFSENSE je verrai ça plus tard. J'ai donc bloqué tous les ports en entrée sauf ceux dont j'ai besoin bien évidemment ^^

En ce qui concerne les CT je les ai mis sur un réseau local en 192.x.x.x/24 et j'arrive bien à les atteindre (ping), que ce soit via l'hôte ou entre eux (excepté par hostname mais bon là faut que je me documente un peu plus).

J'ai monté un CT qui gère la partie base de données (sous mariadb) et un CT contenant un premier site (type e-commerce) sous nginx.

C'est là par contre que je doute : Pour faire en sorte que le premier nom de domaine pointe bien sur le CT e-commerce, j'ai mis nginx sur l'hôte et je lui fais faire du reverse-proxy. J'ai un gros doute sur le fait de donner ce rôle à l'hôte. Des avis ?

Globalement ça fonctionne vraiment bien, nettement mieux que sur la kimsufi (qui était aussi moins perf que le serveur que j'ai pris). Reste le doute concernant l'hôte et la partie sécurité de cet ensemble, je me demande si ça tient la route.

Voilà si jamais vous avez eu le courage de me lire et que vous avez des avis/suggestions je suis tout ouïe !! Merci par avance.

Je n'installe rien sur l'hôte à part quelques règles IPtables. Le principe étant de pouvoir changer d'hôte à la volée justement du fait de l'utilisation de containers. Mon proxy est sous Docker, tu pourrais le mettre sous LXC.

    Aerya c'est très juste, merci pour ce retour 😁

    10 jours plus tard

    Salut tout le monde, du coup j'ai suivi vos conseils (merci @Aerya et @Merrick) et je pense que j'ai quelque chose qui tient la route dorénavant. J'ai donc un hôte sans aucun service particulier d'installé, qui sert uniquement de "passerelle" pour donner l'accès internet aux conteneurs via des règles iptables.

    J'ai mis en place des conteneurs qui ont tous un rôle précis (un pour proxy nginx, un pour mariadb, etc..) et des conteneurs "web" sur lesquels je mets soit apache soit nginx et les fichiers des sites hébergés.

    Ca tourne plutôt pas mal et je pense que le gain en mobilité est assez énorme grâce à ce système de conteneurs. J'ai testé un même site sur une VM et je dois dire que les CT sont plus pratiques. En terme de performance je n'ai pas tellement vu de différence sur les quelques tests effectués hormis sur la consommation de RAM plus importante côté VM.

    Cela dit il me reste une interrogation concernant la copie de fichier sur ces conteneurs "web". En effet, actuellement je n'ai trouvé d'autres solutions que de mettre un port ssh (SFTP) spécifique pour mes conteneurs concernés et de m'y connecter en root. Pourquoi ? Tout simplement parce que dès lors que je veux m'y connecter avec un utilisateur autre que root je me fais jeter. Je n'arrive d'ailleurs pas, depuis un conteneur (connecté directement en ssh) à me connecter via un autre utilisateur que root (celui du conteneur, pas celui de l'hôte bien entendu).

    Mes conteneurs sont de type "unprivileged" et je me dis que ça pourrait venir de ça, des avis ?

    Si l'un d'entre vous connait une bonne pratique je suis preneur. Mon but ultime serait de, comme je fais sur l'hôte, pouvoir connecter un compte utilisateur spécifique et le chrooter dans son répertoire d'accueil.

    Encore merci pour vos retours !

    Hello, du coup en cherchant j'ai réussi à me débloquer. Erreur de débutant .. quand on chroot dans un répertoire il faut que ce répertoire appartienne à root en mode 755.. voilà tout ^^
    Du coup ça fonctionne.

    Pour ceux qui galèrent sous proxmox le forum https://forum.proxmox.com/ est pas mal du tout 🙂

    Répondre…