[LINUX] Rendre le serveur de calcul sans disque avec LTSP

introduction

Je gère un serveur de calcul pour les étudiants d'un certain laboratoire d'une certaine université. La maintenance n'a pas suivi le rythme de l'augmentation des serveurs informatiques, et les mises à jour logicielles sont également intenses. En premier lieu, la racine de tout mal est que le système d'exploitation est installé sur chaque serveur. Réduisez les coûts de gestion avec Preboot eXecution Environment (PXE) Boot, qui démarre le système d'exploitation à partir du LAN. Utilisez Linux Terminal Server Project (LTSP) pour gérer l'hôte.

Que pouvez-vous faire avec PXE / LTSP?

https://ltsp.org/ En gros, ce que vous pouvez faire

Il est très facile de faire une copie du serveur configuré.

est. Il n'est pas nécessaire d'installer le système d'exploitation de destination de la copie. Il n'est pas nécessaire de configurer SSH ou HDD en premier lieu.

0. Préparation

Choses à préparer

environnement

Les paramètres DHCP sont requis pour le démarrage PXE, mais cette fois, nous utiliserons une fonction appelée proxy DHCP. Le serveur DHCP fourni avec le routeur est utilisé tel quel et il n'y a pas de paramètres spéciaux.

Dans mon environnement, les comptes sont gérés par «NIS» et «NFS». Je vais expliquer pour qu'il puisse être utilisé même sans ces systèmes de gestion. Cependant, du point de vue de la disponibilité, nous vous recommandons d'utiliser NIS ou NFS pour la gestion des comptes et la redondance des données.

Dans cet article, nous allons vérifier le fonctionnement sur ʻUbuntu Server 18.04.3`. Hébergez un poste de travail raisonnablement bon. Les problèmes de dépendance sont gênants, je vais donc commencer par une installation propre.

Lors du déploiement d'un environnement GPU, branchez le GPU à la fois sur l'hôte et le client. En raison de la commodité du pilote GPU, il peut être nécessaire de désactiver le démarrage sécurisé du BIOS. Cela peut fonctionner sans GPU sur l'hôte, mais ce n'est pas confirmé.

Internet <--> Router(DHCP) <--(HUB)--> Host
                                |--> Client_1
                         NIS <--|--> Client_2
                         NFS <--|--> Client_n

1. Introduction de LTSP

Installation

Déployez LTSP sur la machine hôte. Suivez la page d'installation de LTSP (https://ltsp.org/docs/installation/).

$ sudo apt -y purge --auto-remove indicator-application mate-hud snapd
$ sudo apt -y install synaptic
$ sudo add-apt-repository -y ppa:ltsp
$ sudo apt update
$ sudo apt -y install --install-recommends ltsp ltsp-binaries dnsmasq nfs-kernel-server openssh-server squashfs-tools ethtool net-tools epoptes

Paramètres initiaux LTSP

Il existe de petites options, mais dans la plupart des environnements, les paramètres par défaut conviennent. Voir la page d'installation de LTSP (https://ltsp.org/docs/installation/) et la documentation (https://ltsp.org/man/) pour plus d'informations.

$ sudo ltsp dnsmasq
$ sudo install -m 0660 -g sudo /usr/share/ltsp/common/ltsp/ltsp.conf /etc/ltsp/ltsp.conf
$ sudo ltsp image /
$ sudo ltsp ipxe
$ sudo ltsp nfs
$ sudo ltsp initrd

À ce stade, vous êtes prêt à démarrer. Commençons par le client et vérifions si vous pouvez vous connecter. Activez le démarrage réseau (PXE BOOT) à partir des paramètres du BIOS et donnez la priorité au réseau local dans l'ordre de démarrage. Par défaut, / home est déjà monté avec NFS, donc cela peut être suffisant pour votre environnement.

2. Paramètres d'accès à distance SSH (option)

Le serveur de calcul doit être connecté via SSH. Activez SSH et définissez une adresse IP statique. Vous avez besoin de l'adresse MAC de chaque serveur.

Créer une clé d'hôte SSH pour le client

$ sudo mkdir -p /etc/ltsp/etc/ssh
$ sudo ssh-keygen -A -f /etc/ltsp
$ sudo mv /etc/ltsp/etc/ssh/ssh_host_* /etc/ltsp/ #Déplacer car la clé n'est pas générée là où vous vous attendiez
$ sudo rm -r /etc/ltsp/etc/

Ajouter des paramètres SSH

$ sudo vim /etc/ltsp/ltsp.conf
[clients]
KEEP_SYSTEM_SERVICES="ssh"
POST_INIT_CP_KEYS="mv /etc/ltsp/ssh_host_* /etc/ssh/"

Ajout de paramètres IP statiques pour chaque client

$ sudo vim /etc/ltsp/ltsp.conf
[00:11:22:33:44:55]
HOSTNAME="client1"
KERNEL_PARAMETERS="ip=192.168.0.10:\${srv}:\${gateway}:\${netmask}"

3. Paramètres GPU (option)

Si vous utilisez le GPU de Nvidia, installez nvidia-driver sur votre hôte. Installez également CUDA. Aucun ajout n'est requis pour les paramètres LTSP. Cependant, lorsque je connecte l'écran au GPU, l'écran dépasse. (enquête en cours)

$ wget https://developer.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.105_418.39_linux.run
$ sudo sh cuda_10.1.105_418.39_linux.run --silent --driver --toolkit

4. Paramètres NIS et NFS (option)

Veuillez configurer NIS sur l'hôte. Ne configurez pas NFS sur l'hôte. Afin d'activer NFS sur le client, vous devez ajouter une description de FSTAB. Cet article Mémo de configuration CentOS7 (nouveau serveur de laboratoire) peut être utile.

$ sudo vim /etc/ltsp/ltsp.conf
[clients]
FSTAB_HOME="file-server:/home /home nfs defaults"

5. Fonctionnement

Si vous modifiez l'environnement hôte ou les paramètres LTSP, vous devez effectuer les opérations suivantes: Ensuite, redémarrez le client et cela prendra effet.

$ sudo ltsp image /
$ sudo ltsp ipxe
$ sudo ltsp nfs
$ sudo ltsp initrd

à la fin

J'écrirai ici un mémorandum comme matière à remettre à mon successeur. Si vous avez des questions ou des erreurs, veuillez laisser un commentaire.

Recommended Posts

Rendre le serveur de calcul sans disque avec LTSP
Rendre le serveur de contrôle PLEN compatible avec ViVi PLEN2
Serveur TFTP avec Docker
Créer des couches Lambda avec Lambda
Créez un Yuma avec Discord.py
Comment créer un serveur HTTPS avec Go / Gin
Serveur proxy avec Docker
Créer des diapositives avec iPython
Serveur local avec python
Faisons Othello avec wxPython
Rendre avec la syntaxe facile
Créez Puyopuyo AI avec Python
Faites une loterie avec Python
Serveur HTTP facile avec Python
Gestion des serveurs avec import Jupyter (1)
Faire un feu avec kdeplot
Créer un chatbot Slack avec Errbot