Yunohost reste, le hardware change

La V2 du serveur a fait son temps. Comme dit dans l'article précédent, les perfs me suffisaient large.
Mais déjà quasi à moi seul, j'ai réussi à saturer l'espace de stockage.
Sur le Lenovo Tiny, la seule manière d'en rajouter, c'est de brancher du stockage en USB (ou de changer le SSD pour un plus gros).
Comme je souhaite accueillir de nouveaux utilisateurs, il est vraiment nécessaire de rajouter de l'espace disque. Et c'est plus simple de passer sur un PC full size pour ça, surtout que j'ai du matos en stock.

Hardware

  • Ryzen 5 3600
  • 48Go de ram
  • 1 SSD j'espère pouvoir prendre un petit 250-500Go en NVME
  • Carte mère ATX (GROS point positif, je peux agrandir l'espace de stockage bien plus facilement qu'avec le lenovo tiny et j'ai des ports d'extension autres que USB \o/)
  • 2 HDD 1To + 1 HDD de 2To
  • Nvidia GTX970

Alors, pourquoi coller une GTX970 dans une tour serveur ? Pour le Cuda et l'encodage décodage vidéo matériel ! (et parce que j'en ai une sous la main, aussi)

Pourquoi mettre un SSD ? Parce que ça booste les perfs des DB, des dépendances logicielles etc. (et, en l'occurence, parce que j'en ai un sous la main… oui, y a de l'écho)

 

Software

  • la liste précédente (ptet avec quelques modifs)
  • Jellyfin
  • ??? peut-être d'autres trucs, mais j'y réfléchirai après avoir monté le matos et migré le soft vers le nouveau hard

Rien que pour Jellyfin, la GTX970 est utile. Ce logiciel peut exploiter la carte graphique pour transcoder à la volée un flux vidéo. Peertube profite aussi du hardware pour décharger le CPU.

La CG permet aussi de boost les perfs de Recognize dans Nextcloud (plugin qui utilise le machine learning pour attribuer des étiquettes automatiquement aux photos, vidéo, fichiers audio stockés dans le serveur).

Nextcloud va aussi beaucoup profiter de l'espace de stockage qui va plus que quadrupler du coup. (sauf si je fais du mirroring/striping/autre  )

 

Utilisation

Y aurait moins d'une dizaine d'utilisateurs. Sachant que je compte limiter l'accès à certains services (déjà l'accès à jellyfin sera limité aux comptes “locaux”, moi, madame et éventuellement un compte “maison”). Et que tous les utilisateurs n'auront pas de l'intérêt pour tous les services. Je doute que beau-papa et belle-maman s'intéressent beaucoup au fédiverse - peertube mis à part - ou à matrix, par exemple.

Un de mes “grand projet” serait de tourner des tutos vidéos d'utilisation d'un PC sous windows pour les gens qui ont aucune confiance en eux. Ma belle-mère serait mon cobaye.
Du coup, j'aurais un peu de trafic (au moins de sa part) et de contenu original sur mon serveur Peertube.

Toujours sur Peertube, je voudrais tester de diffuser des live stream. Rien que pour voir si la connexion et le serveur tiennent le choc.

 

Migration

Va se dérouler en plusieurs temps :

 

Préparation Big

Big, c'est le surnom que j'utilise pour le nouveau serveur (parce qu'il est encombrant).

Montage

Donc, montage de tout le matos qui composant mon ancien PC dans la tour que mon père m'a filé. C'est pas l'étape la plus complexe.

Setup Yunohost

 
Partitionnement
partition format support(s)
/ BTRFS SSD NVME
/home/yunohost.app BTRFS Raid-1c3 les 3 HDD mécaniques (les 1To sont complètement utilisés, le 2To est scindé en plusieurs parties)
/home/yunohost.backup BTRFS HDD 2To
Swap SWAP HDD 2To
Installation

Après quelques péripéties qui ont retardé l'avancement du projet, yunohost est installé.

Le truc, c'est de ne pas faire la mise en route, s'arrêter avant la création du premier utilisateur. Comme ça, la restauration des comptes et des boites mails peut se dérouler proprement.

 

Bye bye Tiny

Après tout, c'est un Lenovo Tiny autant abréger. Puis Tiny & Big, ça se combine pas mal.

Backup

Le SSD est quasi complètement saturé (bien trop de photos ces dernières vacances). Du coup, il n'y a plus de place disponible pour créer un backup complet de mon système. Je suis donc passé par un hdd externe. HEUREUSEMENT, j'en avais acheté un de 5To il y a quelques années pour …. un truc, qui s'est avéré inutile suite à un changement de stratégie.

J'ai monté le HDD USB en tant que /home/yunohost.backup, comme ça le lancement des backup peut se faire depuis l'interface graphique. Avant d'effectuer les sauvegardes, j'ai désactivé les services ou mis les instances en mode maintenance. Pour plus de facilité, mes backup sont scindés en 3 :

  • les instances serveurs à l'exception de nextcloud
  • nextcloud (le fichier le plus lourd)
  • config système, comptes utilisateurs et boites mail

Extinction (pas du tout définitive)

Voilà, les données sont sauvées, Tiny va être réutiliser pour un autre usage dans un futur plus ou moins proche. Peut-être en tant que serveur dédié pour certains jeux, je ne sais pas encore.

En tous cas, il aura bien rempli sa tâche. Bien mieux que prévus, même.

 

Mise en route Big

 

Restauration backups

Après avoir branché et monté le HDD USB sur Big, j'ai copié les backup vers /home/yunohost.backup

Le backup à restaurer en priorité est celui contenant la config système et les comptes utilisateurs, ce que j'ai fait dans la foulée à partir du terminal. Une fois ces données restaurées, j'ai pu attaquer la suite via l'interface graphique (mais pas avant avoir modifié la config DHCP de la box internet pour attribuer l'ancienne IP LAN de Tiny à Big et reboot ce dernier). J'ai ensuite restauré l'archive contenant les diverses instances (parce que bien plus petite et donc plus rapide à mettre en route). C'était très marrant de voir les différents services apparaitre petit à petit. Et finalement, nextcloud. Le truc massif dont j'ai lancé la restauration avant d'aller au lit.

Tests après restauration

  • Passer la détection de problèmes de Yunohost.
    Quelques trucs à corriger niveau DNS et c'était reparti comme avant.
  • Réception de mail provenant d'un autre domaine.
    Mail bien reçu.
  • J'ai posté sur mastodon.
    La timeline s'actualise bien.
  • Refédérer mon instance peertube aux autres (je sais pas pourquoi je perds systématiquement mes fédérations) et regarder une vidéo “extérieure” et une “interne”.
  • Éditer une page du DokuWiki.
  • Me connecter à Nextcloud, envoyer un message à ma compagne via Talk, vérifier la sync des clients sur mes machines.
    Y avait juste un plugin mineur qui merdait, désinstallé/réinstaller et il est reparti.

Exploiter la CG

Il me reste encore à faire le nécessaire pour booster les perfs en transcodage vidéo et pour tout ce qui peut utiliser le CUDA. Genre les tensorflow machins qui analysent les photos pour identifier ce qu'elles représentent. Ce qui permet de leur attribuer des tags automatiquement. Voir même reconnaitre les visages des gens.

J'avais réussit pendant un temps à faire tourner la CG pour tensorflow et le transcodage pour jellyfin. Mais suite à une update, y a tout qu'a pété. La je suis en train de réfléchir à remplacer la gtx970 par une CG mieux supportée sous Linux. Genre une petite Intel ARC A380. Elle est pas trop chère, moins gourmande comparée à la gtx970, très efficace pour le transcodage et très simple à exploiter pour cet usage sous Linux.