Calculate Linux (Spécificités de la distribution)

Installer Calculate Linux Server Scratch en RAID1 logiciel

Table des matières

raid_1





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




Si les disques ne sont pas de la même taille, laisser un peu de marge à la fin de disque aussi, ou commencer par le disque qui est plus petit à quelques octets près.



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%.



Plutôt que de taper la commande

Code BASH :
cat /proc/mdstat


de manière régulière, on peut utiliser la commande watch qui va rafraichir le résultat toutes les 2 secondes :

Code BASH :
watch cat /proc/mdstat




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




Si un message indique une partition non valide, on peut initialiser tout md0 comme un volume ext4 puis relancer la création des partitions :

Code BASH :
mkfs.ext4 /dev/md0
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 :magic:





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




Ne pas oublier de réinstaller GRUB sur sda avec les modules raid et lvm :

Code BASH :
grub-install --modules="lvm mdraid09" /dev/sda




Se reporter à l'article mdadm pour gérer le RAID1 convenablement par la suite ou en cas de soucis de disque ;)
Cette page a été vue 12269 fois