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

Installer Calculate Linux Server Scratch en RAID1 logiciel

Cet article a été mis à jour, vous consultez ici une archive de cet article!
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 80Go.



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 (10Mo c'est parfait) 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: 74.5 GiB, 80000000000 bytes, 156250000 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/sda1                194590 156249999 78027705  fd Linux raid autodetect
 
 
Disk /dev/sdb: 74.5 GiB, 80026361856 bytes, 156301488 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/sdb1                194590 156249999 78027705  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: 74.4 GiB, 79900246016 bytes, 156055168 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
 




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]
      78027584 blocks [2/2] [UU]
      [>....................]  resync =  1.5% (1170816/78027584) finish=24.0min speed=53218K/sec
 
unused devices: <none>
 




Il faut attendre que la barre soit à 100%.

Pour accélérer le processus, il est possible d'activer une vitesse minimale assez élevée :



Code BASH :
echo 50000 > /proc/sys/dev/raid/speed_limit_min




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]
      78027584 blocks [2/2] [UU]
 
unused devices: <none>




Le RAID1 est donc prêt à être utilisé.





Création du LVM sur le RAID1





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 ;)





Lancement de l'installation





Et bien, maintenant que les disques sont prêts on lance l'installation avec la commande cl-install :



Code BASH :
 cl-install -d /dev/systemvg/rootlv -d /dev/systemvg/swaplv:swap -d /dev/systemvg/homelv:/home




Encore une fois de plus, adaptez avec le partitionnement choisi.



Le récapitulatif montre bien ce qui va s'installer :

Caché :
Code TEXT :
Le mot de passe de l'utilisateur root 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 x86_64 20140904
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/systemvg/homelv|     /home      |       ext4        |  non   |40G   |
|/dev/systemvg/rootlv|       /        |       ext4        |  oui   |30G   |
|/dev/systemvg/swaplv|      swap      |       swap        |  non   |1024M |
+--------------------+----------------+-------------------+--------+------+
 * Chargeur d'amorçage: /dev/sda (ATA WDC WD800JD-75MS)
 * 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
 * Utilisateurs: 
 * Chiffrer les profils utilisateurs: non
Graphisme
 * Pilote vidéo: Détection automatique par le serveur X.Org
 * Résolution du framebuffer: 1024x768-32
 * Terminal Grub: gfxterm
Update
 * Automatically check updates: oui
 * Interval for the updates checking: every twenty hours
 
Lancer le processus ? (Yes/No): yes






Derniers réglages...





Dans mon cas, le GRUB ne s'est installé que sur /dev/sda. Si ce disque tombe en panne, les données sont sur SDB, mais l'amorçage est impossible.

J'ai donc après le premier redémarrage réinstallé GRUB sur sda et sdb via :



Code BASH :
grub-install /dev/sda
 
grub-install /dev/sdb




Et voila, Calculate est installée sur un RAID1 logiciel avec LVM :magic:



Se reporter à l'article mdadm pour gérer le RAID1 convenablement par la suite ou en cas de soucis de disque ;)