Installer Calculate Linux Server Scratch en RAID1 logiciel
Table des matières
Le RAID1 n'est ni plus ni moins qu'un "mirroring". C'est deux disques ou plus qui ont les mêmes données en miroir.
La perte d'un disque est possible (panne) et l'espace maximal utilisable est celui du plus petit disque.
Il existe des contrôleurs RAID matériels qui coutent cher.
J'illustre ici la solution "du pauvre" qui consiste à installer Calculate Linux sur une solution logicielle de RAID (mdadm)
Première étape, s'assurer que deux disques durs sont présents dans la machine de destination.
Dans mon cas, il s'agit d'un serveur DELL avec deux disques de 160Go.
J'ai récupéré la version CD de CSS ici : http://www.calculate-linux.org/main/en/download
Je démarre sur le CD et je suis sur la console, prêt à installer.
Dans un premier temps, je charge les modules raid1 et dm-raid :
Je partitionne le premier disque avec cfdisk :
Je créé une partition de taille maximum, de type fd (Linux raid auto-détecté)
Je m'assure de garder un peu de place avant la partition, car le GRUB est un peu plus gros car il embarque les modules RAID et LVM.
Je copie ensuite la table de partition de sda sur sdb (si les disques sont identiques) :
Vérifier les partitions avec la commande :
On créé dans un premier temps le périphérique md0 :
Puis on créé notre RAID1 avec la commande mdadm :
La console nous confirme que ça fonctionne : mdadm: array /dev/md0 started.
On peut revérifier avec fdisk :
Maintenant, on attend que mdadm synchronise les deux disques. Pour voir la progression :
Une vue de ce type s'affiche :
Il faut attendre que la barre soit à 100%.
Une fois la synchronisation terminée, une vue similaire à celle-ci s'affiche :
Le RAID1 est donc prêt à être utilisé.
On créé notre "Physical Volume" (PV) sur /dev/md0 :
La console confirme le bon déroulement de la commande : Physical volume "/dev/md0" successfully created
Les curieux peuvent jeter un œil sur le pv précédemment créé :
On créé ensuite le "Volum Group" (VG) sur le PV précédent. Ici, je le nomme systemvg :
La console confirme le bon déroulement de la commande : Volume group "systemvg" successfully created
Les curieux peuvent jeter un œil sur le vg précédemment créé :
Et ensuite, on créé nos "Logical Volumes" (LV) dans le VG précédent :
Faites à votre guise
Les curieux peuvent encore voir leurs LV via la commande suivante :
Et on créé enfin les systèmes de fichiers sur ses LV :
Adaptez avec vos précédents LV créés
On partitione md0 comme un disque classique :
A la fin, md0 ressemble à ceci :
Et bien, maintenant que les disques sont prêts on lance l'installation avec la commande cl-install :
En LVM :
En partitions classiques :
Encore une fois de plus, adaptez avec le partitionnement choisi.
Le récapitulatif montre bien ce qui va s'installer :
On redémarre.
Et voila, Calculate est installée sur un RAID1 logiciel
Il peut arriver en effet qu'un disque vienne à défaillir mais la solution mise en place précédemment ne fera pas "planter" la machine.
Imaginons qu'il s'agisse de /dev/sda.
On met en défaut le disque dur sda :
Puis on le retire du raid :
On met le nouveau disque, de même taille au minimum (à chaud ou à froid, peu importe).
Si le disque est remis à chaud, lancer la commande suivante pour détecter le nouveau disque :
On repartitionne le disque ou on copie la table de partitions (avec un peu de place au début du disque comme lors de la création pour embarquer GRUB et ses modules) :
ou
Et ensuite on ajoute le disque au raid :
Se reporter à l'article mdadm pour gérer le RAID1 convenablement par la suite ou en cas de soucis de disque
Introduction
Le RAID1 n'est ni plus ni moins qu'un "mirroring". C'est deux disques ou plus qui ont les mêmes données en miroir.
La perte d'un disque est possible (panne) et l'espace maximal utilisable est celui du plus petit disque.
Il existe des contrôleurs RAID matériels qui coutent cher.
J'illustre ici la solution "du pauvre" qui consiste à installer Calculate Linux sur une solution logicielle de RAID (mdadm)
La préparation
Première étape, s'assurer que deux disques durs sont présents dans la machine de destination.
Dans mon cas, il s'agit d'un serveur DELL avec deux disques de 160Go.
J'ai récupéré la version CD de CSS ici : http://www.calculate-linux.org/main/en/download
Je démarre sur le CD et je suis sur la console, prêt à installer.
Préparation des disques
Dans un premier temps, je charge les modules raid1 et dm-raid :
Code BASH :
modprobe raid1 modprobe dm-raid
Je partitionne le premier disque avec cfdisk :
Code BASH :
cfdisk /dev/sda
Je créé une partition de taille maximum, de type fd (Linux raid auto-détecté)
Je m'assure de garder un peu de place avant la partition, car le GRUB est un peu plus gros car il embarque les modules RAID et LVM.
Je copie ensuite la table de partition de sda sur sdb (si les disques sont identiques) :
Code BASH :
sfdisk -d /dev/sda | sfdisk /dev/sdb
Vérifier les partitions avec la commande :
Code BASH :
fdisk -l
Caché :
Code TEXT :
Disk /dev/sda: 149.1 GiB, 160041885696 bytes, 312581808 sectors Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x4c12be3b Périphérique Amorçage Début Fin Blocs Id Système /dev/sda1 2048 312500000 156248976+ fd Linux raid autodetect Disk /dev/sdb: 149.1 GiB, 160041885696 bytes, 312581808 sectors Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x3c4f3c4e Périphérique Amorçage Début Fin Blocs Id Système /dev/sdb1 2048 312500000 156248976+ fd Linux raid autodetect
Mise en oeuvre du RAID1 logiciel avec mdadm
On créé dans un premier temps le périphérique md0 :
Code BASH :
mknod /dev/md0 b 9 0
Puis on créé notre RAID1 avec la commande mdadm :
Code BASH :
mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1
La console nous confirme que ça fonctionne : mdadm: array /dev/md0 started.
On peut revérifier avec fdisk :
Code BASH :
fdisk -l
Caché :
Code TEXT :
Disk /dev/md0: 149 GiB, 159998869504 bytes, 312497792 sectors Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x4d544f4f
Maintenant, on attend que mdadm synchronise les deux disques. Pour voir la progression :
Code BASH :
cat /proc/mdstat
Une vue de ce type s'affiche :
Code TEXT :
Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] md0 : active raid1 sdb1[1] sda1[0] 156248896 blocks [2/2] [UU] [==========>..........] resync = 53.2% (83150400/156248896) finish=14.6min speed=82875K/sec bitmap: 2/2 pages [8KB], 65536KB chunk unused devices: <none>
Il faut attendre que la barre soit à 100%.
Une fois la synchronisation terminée, une vue similaire à celle-ci s'affiche :
Code TEXT :
Personalities : [raid1] [raid10] [raid6] [raid5] [raid4] md0 : active raid1 sdb1[1] sda1[0] 156248896 blocks [2/2] [UU] bitmap: 0/2 pages [0KB], 65536KB chunk unused devices: <none>
Le RAID1 est donc prêt à être utilisé.
Création des systèmes de fichiers sur le RAID1
Option LVM
On créé notre "Physical Volume" (PV) sur /dev/md0 :
Code BASH :
pvcreate /dev/md0
La console confirme le bon déroulement de la commande : Physical volume "/dev/md0" successfully created
Les curieux peuvent jeter un œil sur le pv précédemment créé :
Caché :
Code BASH :
pvdisplay /dev/md0 "/dev/md0" is a new physical volume of "74.41 GiB" - - - NEW Physical volume - - - PV Name /dev/md0 VG Name PV Size 74.41 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID tFfeW2-mX5d-91mB-SqPz-GspF-tXeM-dN0h8m
On créé ensuite le "Volum Group" (VG) sur le PV précédent. Ici, je le nomme systemvg :
Code BASH :
vgcreate systemvg /dev/md0
La console confirme le bon déroulement de la commande : Volume group "systemvg" successfully created
Les curieux peuvent jeter un œil sur le vg précédemment créé :
Caché :
Code BASH :
vgdisplay - - - Volume group - - - VG Name system System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 74.41 GiB PE Size 4.00 MiB Total PE 19049 Alloc PE / Size 0 / 0 Free PE / Size 19049 / 74.41 GiB VG UUID FA1w2o-JqJa-G1Aa-Kdoq-rolA-9WkI-GR4WoF
Et ensuite, on créé nos "Logical Volumes" (LV) dans le VG précédent :
Code BASH :
lvcreate -n rootlv -L 30G systemvg lvcreate -n swaplv -L 1G systemvg lvcreate -n homelv -L 40G systemvg
Faites à votre guise
Les curieux peuvent encore voir leurs LV via la commande suivante :
Code BASH :
lvdisplay systemvg
Caché :
Code BASH :
- - - Logical volume - - - LV Path /dev/systemvg/rootlv LV Name rootlv VG Name systemvg LV UUID 6zgg13-rM45-xQRo-uiEQ-duja-0aKt-kSpkQl LV Write Access read/write LV Creation host, time calculate, 2015-01-14 17:09:15 +0100 LV Status available # open 0 LV Size 30.00 GiB Current LE 7680 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:0 - - - Logical volume - - - LV Path /dev/systemvg/swaplv LV Name swaplv VG Name systemvg LV UUID mVyzCQ-id9D-x2Hd-3DWv-vMcz-fAUd-Y4cWdD LV Write Access read/write LV Creation host, time calculate, 2015-01-14 17:09:26 +0100 LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1 - - - Logical volume - - - LV Path /dev/systemvg/homelv LV Name homelv VG Name systemvg LV UUID QIGXo2-SuoA-txX8-qJSK-Yxl5-yUqV-P7fNWY LV Write Access read/write LV Creation host, time calculate, 2015-01-14 17:11:01 +0100 LV Status available # open 0 LV Size 40.00 GiB Current LE 10240 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:2
Et on créé enfin les systèmes de fichiers sur ses LV :
Code BASH :
mkfs.ext4 /dev/systemvg/rootlv mkfs.ext4 /dev/systemvg/homelv mkswap /dev/systemvg/swaplv
Adaptez avec vos précédents LV créés
Option partitions classiques
On partitione md0 comme un disque classique :
Code BASH :
cfdisk /dev/md0
A la fin, md0 ressemble à ceci :
Code TEXT :
isk /dev/md0: 149 GiB, 159998869504 bytes, 312497792 sectors Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x00000000 Périphérique Amorçage Début Fin Blocs Id Système /dev/md0p1 * 4 58593751 29296874 83 Linux /dev/md0p2 58593752 66406255 3906252 82 Linux swap / Solaris /dev/md0p3 66406256 312497791 123045768 83 Linux
Lancement de l'installation
Et bien, maintenant que les disques sont prêts on lance l'installation avec la commande cl-install :
En LVM :
Code BASH :
cl-install -d /dev/systemvg/rootlv -d /dev/systemvg/swaplv:swap -d /dev/systemvg/homelv:/home --mbr=/dev/sda,/dev/sdb
En partitions classiques :
Code BASH :
cl-install -d /dev/md0p1 -d /dev/md0p2:swap -d /dev/md0p3:/home --mbr=/dev/sda,/dev/sdb
Encore une fois de plus, adaptez avec le partitionnement choisi.
Le récapitulatif montre bien ce qui va s'installer :
Caché :
Code TEXT :
cl-install -d /dev/md0p1 -d /dev/md0p2:swap -d /dev/md0p3:/home --mbr=/dev/sda,/dev/sdb -u adrien Le mot de passe de l'utilisateur root est absent Mot de passe : Réessayez : Le mot de passe de l'utilisateur adrien est absent Mot de passe : Réessayez : Langue et locale * Langue : Français * Fuseau horaire : Europe/Brussels (+01:00) Distribution * Image d'installation : Calculate Scratch Server 14.12.1 x86_64 20141230 Organiser l'espace disque * Partitions : Utiliser les partitions existantes Point de montage * Mise en page : +--------------------+----------------+-------------------+--------+------+ |Disque ou répertoire|Point de montage|Système de fichiers|Formater|Taille| +--------------------+----------------+-------------------+--------+------+ |/dev/md0p1 | / | ext4 | oui |27.9G | |/dev/md0p2 | swap | swap | oui |3.7G | |/dev/md0p3 | /home | ext4 | oui |117.3G| +--------------------+----------------+-------------------+--------+------+ * Chargeur d'amorçage : /dev/sda (ATA WDC WD1600AAJS-0),/dev/sdb (ATA WDC WD1600AAJS-0) * Amorçage UEFI : non * Utiliser UUID : oui * Type d'installation : Disque dur * Ordonnanceur d'E/S : CFQ Paramètres réseau * Gestionnaire de réseau : OpenRC * Adresses : +---------+----------+-------------+------------------+-----------------+ |Interface|Adresse IP| Masque | Nom |MAC | +---------+----------+-------------+------------------+-----------------+ |enp2s0 | DHCP |255.255.255.0|Broadcom NetXtreme|00:19:B9:10:24:19| +---------+----------+-------------+------------------+-----------------+ * Nom d'hôte : calculate.local * Serveur NTP : ntp0.zenon.net * Serveur de noms de domaine : Récupérer via DHCP * Domaines recherchés : Récupérer via DHCP Utilisateurs * On transfère les utilisateurs : +------------+----------------------------------------------+ |Utilisateurs|Groupes | +------------+----------------------------------------------+ |adrien |wheel,uucp,users,cdrw,video,lp,cdrom,audio,usb| +------------+----------------------------------------------+ * Auto-identification : Non utilisé * Chiffrer les profils utilisateurs : non Graphisme * Pilote vidéo : Détection automatique par le serveur X.Org * Résolution du framebuffer : 1280x1024 * Terminal Grub : gfxterm Mise à jour * Vérifier les mises à jour automatiquement : oui * Intervalle de vérification de mises à jour : toutes les douze heures * Supprimer les archives logicielles obsolètes : non * Actualiser les autres overlays : non Lancer le processus ? (Yes/No): yes
On redémarre.
Et voila, Calculate est installée sur un RAID1 logiciel
Réinstaller un nouveau disque en cas de défaillance
Il peut arriver en effet qu'un disque vienne à défaillir mais la solution mise en place précédemment ne fera pas "planter" la machine.
Imaginons qu'il s'agisse de /dev/sda.
On met en défaut le disque dur sda :
Code BASH :
mdadm --manage /dev/md0 --set-faulty /dev/sda1
Puis on le retire du raid :
Code BASH :
mdadm --manage /dev/md0 --remove /dev/sda
On met le nouveau disque, de même taille au minimum (à chaud ou à froid, peu importe).
Si le disque est remis à chaud, lancer la commande suivante pour détecter le nouveau disque :
Code BASH :
rescan-scsi-bus
On repartitionne le disque ou on copie la table de partitions (avec un peu de place au début du disque comme lors de la création pour embarquer GRUB et ses modules) :
Code BASH :
cfdisk /dev/sda
ou
Code BASH :
sfdisk -d /dev/sdb | /dev/sda
Et ensuite on ajoute le disque au raid :
Code BASH :
mdadm --manage /dev/md0 --add /dev/sda1
Se reporter à l'article mdadm pour gérer le RAID1 convenablement par la suite ou en cas de soucis de disque