Installation de Debian + RAID SSD
Cette page détaille l’installation de Debian sur les deux machines physiques chez Tetaneutral (TTNN).
Pour l’installation de Proxmox, des machines virtuelles ou de la configuration réseau, voir les pages concernées.
Elle peut servir de guide pour l’installation d’une troisième machine physique qui vise à héberger des machines virtuelles, à adapter en fonction de la configuration matérielle (interfaces réseau, disques…)
Préambule
Note:
Cette page fait appel à de nombreuses notions, qu’il n’est pas nécessaire de maîtriser entièrement, mais qu’il vaut mieux connaître un minimum, en particulier :
- BIOS/UEFI
- PXE
- Partitionnement
- LVM
- RAID
- Bootloader
Elle décrit l’installation des machines telle qu’elle a été faite en 2016 et présuppose certains choix sur lesquels on ne revient pas par la suite, et qui sont assez dépendants du matériel utilisé (et donc pas forcément adaptés à un autre matériel). En particulier, pour suivre les étapes ci-dessous :
- La carte mère doit supporter PXE, pour booter depuis une image sur le réseau - on peut très bien booter depuis une clé bootable autrement!
- L’installateur Debian doit être lancé en “mode BIOS”, et pas en “mode UEFI”. Si on utilise PXE, l’option
Launch PXE OpROM policy
ou équivalent doit être àLegacy First
. Si on utilise une clé bootable, elle doit avoir été flashée en “mode BIOS” et le firmware doit être configuré pour accepter ce genre de clé (option typeUSB Legacy Support
). En effet, l’installation d’un système d’exploitation en UEFI suppose la création d’une partition spéciale (dite ESP), qui contient des exécutables permettant d’amorcer le système d’exploitation (ou bootloaders), ce que ne couvre pas cette page. Pour comprendre en profondeur la différence entre BIOS et UEFI, voir cette page. Tout ce qu’il faut savoir, c’est que la majorité des cartes mères UEFI “comprennent” aussi les configurations BIOS, ce qui permet à l’installation de fonctionner. - On utilise un RAID software plutôt qu’un RAID hardware. Le RAID software est plus lent mais à l’avantage d’être géré par le noyau Linux, et pas par un contrôleur dédié dont la panne serait vraiment difficile à réparer.
Installation
L’installation de la machine passe par l'accès VNC, permettant d’obtenir un bureau à distance même sans système d’exploitation, et via PXE en utilisant netboot.xyz derrière. Cette fonctionnalité permet de démarrer à partir d’une image d’un système d’exploitation se trouvant sur le réseau, ce qui nous évite par exemple de devoir démarrer depuis une clé bootable. Elle est rendue possible par la carte mère, ce ne sera peut-être pas pour d’autres machines.
On installe un Debian “classique”. Lors de l’installation, choisir Debian (version stable), installeur mode graphique (en mode texte l’AMT finit par planter).
Pendant l’installation, la carte eth0
(I219LM) est celle qui a le DHCP qui donne accès à Internet temporairement.
Après l’installation, la carte eth1
(82572EI) est celle qui portera les IPv4/v6 publiques, eth0
sera “down”, réservée uniquement pour l’AMT et pas sur le net (IP privées).
Paramètres généraux
On configure le clavier en français et la langue en anglais.
Le nom de la machine sera par exemple alice
, et son domaine alice.picasoft.net
.
Attention:
Le mot de passe de l’utilisateur root
est à ajouter dans le pass (attention, l’installateur peut être en QWERTY).
Configuration des SSD
Toute la configuration de cette section se fait depuis l’installateur Debian. Pour un exemple (à adapter à la configuration donnée ci-dessus), on pourra se référer à ce tutoriel - on le résume et l’adapte ci-dessous.
Chaque machine possède deux HDD et deux SSD. On va partitionner les SSD lors de l’installation, et on verra pour les HDD quand l’installation sera terminée. L’idée pour les deux SSD est de :
- Partitionner chaque SSD avec deux partitions de même taille : une pour les fichiers nécessaires au boot, une pour tout le reste.
- Configurer ces partitions en RAID 1), i.e. en miroir, ceci afin de nous protéger si un disque venait à être endommagé.
Partitionnement
On choisit donc un partitionnement manuel. Créer une nouvelle table de partitions pour chaque SSD. Ensuite, créer des partitions primaires.
La configuration sera donc la suivante pour le premier SSD (sda
dans ce cas précis, à vérifier lors d’une installation ultérieure) :
sda1
: 200M, de typevolume physique pour RAID
- penser à mettre l’indicateur d’amorçage (bootable
) à présent.sda2
: 500G, de typevolume physique pour RAID
Idem pour le second SSD (sdb
dans ce cas précis, à vérifier lors d’une installation ultérieure) :
sdb1
: 200M, de typevolume physique pour RAID
- penser à mettre l’indicateur d’amorçage (bootable
) à présent.sdb2
: 500G, de typevolume physique pour RAID
Note:
On dit 500G
mais ça peut être plus en fonction de l’espace disponible. Attention, chaque paire de partition doit avoir exactement la même taille, à l’octet près!
Installation du RAID
Maintenant qu’on possède nos quatre partitions, l’idée est de former deux périphériques RAID 1.
- Le premier (
sda1
etsdb1
) est un RAID 1 sur les SSD de 200M, désigné par/dev/md0
- Le second (
sda2
etsdb2
) est un RAID 1 sur les SSD de 500G (ce chiffre peut varier en fonction de la taille du disque, on le garde pour la suite), désigné par/dev/md1
.
Depuis l’écran des partitionnement, on choisira de configurer le RAID logiciel. On choisit ensuite de créer un périphérique multidisque (i.e. RAID), et on choisit RAID 1. Le nombre de périphériques est 2 (on crée des paires de disques). Le nombre de périphérique de réserve est 0.
Dans l’écran qui suit, on sélectionne les partitions sda1
et sdb1
.
On répète la même opération pour les partitions sda2
et sdb2
.
À la fin de la création des périphériques multidisques, on devrait voir deux périphériques RAID 1 sur l’écran de partitionnement, en plus du partitionnement des disques en eux-même.
Configuration des périphériques RAID
Résumons : on a partitionné nos SSD et on a créé des périphériques RAID 1, qu’on peut maintenant utiliser comme des partitions classiques. Il est maintenant temps de formater ces partitions.
Le premier périphérique de 200M est à formater en ext2
et à monter sur /boot
: c’est sur ce périphérique qu’on bootera, et il contiendra les images disques permettant d’amorcer le système (initramfs
, initrd
ou autre…).
Note:
En théorie, il n’y a pas besoin d’avoir une partition séparée pour les fichiers de boot, mais comme les données des machines virtuelles seront stockées sur des partitions LVM, et que certains bootloaders on du mal avec ce genre de configurations, on préfère utiliser un système de fichier supportée universellement, simple et léger (comme ext2
), pour éviter tout problème.
Le deuxième périphérique est à configurer comme périphérique LVM.
Partitionnement LVM
Depuis l’écran de partitionnement, on choisira de configurer LVM (Logical Volume Manager). On choisit ensuite de créer un Volume Group (VG). Un VG est un agrégat de disques durs ou de partitions (PV, ou Physical Volumes), à partir duquel on pourra créer des partitions logiques (LV).
On l’appelle pve
, et on choisit le deuxième périphérique multidisque.
Ensuite, on va créer trois partitions logiques dans le VG pve
. Leur taille est arbitraire : on préférera laisser un peu d’espace non-utilisé par les LV pour pouvoir augmenter la taille de l’un d’entre eux plus tard, au besoin.
data
, formaté enext4
, et monté sur/var/lib/vz
. C’est le LV qui contiendra les images des machines virtuelles, et qui consommera la plus grande partie de l’espace (pour référence, 200G)root
, formaté enext4
et monté sur/
(pour référence, 90G)swap
, utilisé comme SWAP (pour référence, 8G).
Finalisation de l'installation
On continue l’installation de manière classique.
Au moment de rajouter des logiciels, on oublie pas de cocher :
SSH server
standard system utilities
Au moment d’installer GRUB, on choisit de l’installer sur /dev/sda
.
On termine l’installation, et on redémarre le système.
Post-installation
Toujours via VNC, on vérifie que le système a bien démarré et qu’on peut se connecter en tant que root
.
On installe alors Grub sur sdb
, afin de garantir que le système peut booter depuis les deux SSD indépendamment :
- snippet.bash
$ grub-install /dev/sdb
À ce stade, les machines font tourner un Debian avec redondance des disques (RAID 1) et souplesse du partitionnement (LVM), mais ne sont pas encore capables de créer des machines virtuelles et ne sont pas connectées au réseau. Voir les pages dédiées.