Projet : Passer l’infra de la maison en Docker

Même si de jour je suis qu’un simple analyste support, la nuit je suis l’ingé système/application/hardware de mon infra à la maison. Pour rendre tout cela wife-compliant (c), il n’est pas possible d’installer ce genre de gros ESXI de datacenter (j’ai bien une cave, mais parcourir 4 étages, tirer des câbles chez les voisins, et apporter une alimentation électrique (y’a même pas la lumière dans ce boui-boui) est techniquement impossible.
Actuellement, en terme de hardware, on est sur un PC tour en serveur principal (un celeron bi-patte, 8 gigots de RAM, et 2To exploitable en RAID10 4x1To), servant de media-center, et 4 Raspberry Pi 3 (foutus en mode rack pour faire comme au boulot) qui font serveur DHCP/DNS+Antipub avec Pi-Hole, un autre s’occupe du Home Assistant, hub pour gérer les objets connectés (les bouledogues aiment bien les lumières tamisées pour ronfler, et comme je suis un geek, il a bien fallu que j’automatise ça), une DLBox pour gérer les téléchargements de vidéos et musiques de vacances, et un autre qui accueille un Kodi qui fait client pour le mediacenter (bah oui, les films et séries de vacances, c’est mieux sur le canap’ que sur une chaise de PC).

Qu’est ce qui m’a pris par la tête pour penser à tout chambouler ainsi? Les distros sur les desktop et laptop “bureau” sont stables (KDE Neon, que ton nom soit sanctifié et que ta volonté soit faite), le passthrough itou, au max de ses perfs. J’ai plus rien à bidouiller. Actuellement, tout est installé “en dur” sur des OS debian, avec le subtil équilibre des dépendances et cie qui peut péter à la tronche dès qu’un dev ou empaqueteur pète un plomb. Je compte aussi sur l’orchestrateur pour me simplifier quelques trucs. Le déclencheur a été une présentation au boulot. Si des entreprises s’intéressent à ce genre de techno, il pourrait être intéressant de se former dessus (tu l’sens le mec qui a les canines qui rayent le parquet?). J’ai déjà eu une introduction à la conteneurisation, avec la DLBox qui fait tourner 4 apps dockées.
Je risque de prendre ce site en bloc notes (le temps que je monte un wiki privé conteneurisé) et cela profitera à ceux qui veulent tenter en s’appuyant sur un cas concret.

Donc, trève d’introduction, il va y avoir une palanquée de doc à potasser et des machines à planter. A la prochaine

J'aime
error0

GPU Passthrough, Pour aller plus loin.

Comment solidifier les bases du mariage? En suivant deux ou trois indications.

Le passthrough, c’est super. Bien ficelé, c’est vraiment, moyennant le matos adéquat, un brisage de chaînes. Basiquement, passer d’un système à l’autre sans redémarrer ou réinitialiser quelque chose décuple les possibilités. Une p’tite partie d’Apex entre deux linuxeries? Pas de problème ! J’ai juste à pointer la souris à droite de mon écran de droite, changement de source vidéo sur l’écran, touche de verrouillage curseur, et paf, je peux me lancer dans des parties ou je surclasse tout le monde sans exception me fait éclater après 3 frags.

Cependant, il est possible de retoucher ça et là quelques trucs. Histoire d’effacer encore plus la frontière.

Piner son processeur (non ce n’est pas sale)

Ce petit tweak est destiné à ceux qui souffrent de quelques latences avec leur VM. Le but du jeu est de dire en gros “tel core virtuel, il va s’interfacer avec tel core réel”. Pour bien faire le boulot, il va aussi s’agir de piner les “faux” cores, pour les processeurs avec hyperthreading ou l’équivalent chez AMD. Par exemple, si comme moi vous êtes sur un I7 8700K, c’est un cpu 6 cores réels, qui avec l’hyperthreading, multiplie par 2 les cores vus par le système. Donc on en a 12. Et il faudra piner ces 12 (ou moins, suivant les cores attribués à la machine virtuelle), bon courage aux possesseurs de 10/20 cores pour piner tout ça 😀

Pour ce faire, il va falloir examiner un peu l’architecture de son chauffage d’appoint. Pas besoin ici comme Deus Ex Silicium de sortir l’acide, l’acétone et le chalumeau. Notre Linux National va pouvoir nous aider avec sa cli.

lscpu –extended

CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ    MINMHZ
0   0    0      0    0:0:0:0       oui    5000,0000 800,0000
1   0    0      1    1:1:1:0       oui    5000,0000 800,0000
2   0    0      2    2:2:2:0       oui    5000,0000 800,0000
3   0    0      3    3:3:3:0       oui    5000,0000 800,0000
4   0    0      4    4:4:4:0       oui    5000,0000 800,0000
5   0    0      5    5:5:5:0       oui    5000,0000 800,0000
6   0    0      0    0:0:0:0       oui    5000,0000 800,0000
7   0    0      1    1:1:1:0       oui    5000,0000 800,0000
8   0    0      2    2:2:2:0       oui    5000,0000 800,0000
9   0    0      3    3:3:3:0       oui    5000,0000 800,0000
10  0    0      4    4:4:4:0       oui    5000,0000 800,0000
11  0    0      5    5:5:5:0       oui    5000,0000 800,0000

Le but, ce sera d’associer les “cpu” aux cores qui possèdent le même chiffre, exemple : le cpu 0 et le 6 ensemble car ils sont sur le même core.

Ce qui donne après un virsh edit <nomdelavm>

<cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='6'/>
    <vcpupin vcpu='2' cpuset='1'/>
    <vcpupin vcpu='3' cpuset='7'/>
    <vcpupin vcpu='4' cpuset='2'/>
    <vcpupin vcpu='5' cpuset='8'/>
    <vcpupin vcpu='6' cpuset='3'/>
    <vcpupin vcpu='7' cpuset='9'/>
    <vcpupin vcpu='8' cpuset='4'/>
    <vcpupin vcpu='9' cpuset='10'/>
    <emulatorpin cpuset='0-1,8-9'/>
  </cputune>

Les CPU sur le même cores se suivent.

Si ça bug, freeze au bout de quelques heures, ou si il y a quelques saccades

Il y a quelques petits problèmes suivant la configuration matérielle. Pour cela, il y aura des trucs à rajouter

 <features>
...
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
...
</features>

Améliorer la gestion du son, ou les meilleurs 10 ou 20 balles dépensés de ta vie.

Résultat de recherche d'images pour "clé usb carte son"
Un petit dongle pour une grand soulagement

Pour éviter de se prendre le chou dans des configurations alambiquées, il suffit de sortir quelques euros de sa poche. L’acquisition fort inspirée d’un carte son sur clé USB évitera bien des maux de tête ou des calvities précoces. Il suffira pour faire fonctionner le bouzin de passthrough via virt-manager la clé une fois branchée. Windows s’occupera comme un grand (sauf si le passthrough concerne Windows 98) d’installer les bons drivers.

Pour les branchements, un câble mâle-mâle jack 3,5 sera le lien physique entre les 2 systèmes. Pour la clé, il faudra brancher un bout du câble à la prise out/casque/sortie de la clé, et l’autre bout à la prise Line in (ou micro, mais la qualité est moins bien) de la carte mère ou de la carte son sur linux. Pour les réglages, je me suis pas pris la tête : une musique lancée sur windows, et joujou avec le volume de la source Line in de linux jusqu’au bon réglage.

Quand ton son sort par ton 2.1, tu rends les Bulldogs sereins

J'aime
error0