Petite digression : ce LR est synthétique.
Certaines des tâches décrites ici peuvent être réalisées beaucoup plus simplement, mais comme la tâche de l/r est d'apprendre à connaître
avec les fonctionnalités raid et lvm, certaines opérations sont artificiellement compliquées.
Exigences relatives aux outils pour effectuer LR :
Outils de virtualisation tels que Virtualbox
Image d'installation Linux, par exemple Debian9
Disponibilité d'Internet pour télécharger plusieurs packages
Connectez-vous via ssh à la VM installée (facultatif)
ATTENTION
Ce travail de laboratoire est lié à un sujet aussi subtil que la sécurité des données - c'est un domaine où
ce qui vous permet de perdre toutes vos données à cause de la moindre erreur - une lettre ou un chiffre supplémentaire.
Puisque vous faites du travail en laboratoire, vous ne courez aucun danger, sauf que vous devrez tout recommencer.
Dans la vraie vie, tout est beaucoup plus sérieux, vous devez donc saisir les noms de disque très soigneusement, en comprenant
que faites-vous exactement avec la commande actuelle et avec quels disques travaillez-vous.
Le deuxième point important est la dénomination des disques et des partitions : selon les situations, les numéros de disques peuvent différer
à partir de ces valeurs qui sont présentées dans les commandes du travail de laboratoire.
Ainsi, par exemple, si vous supprimez le disque sda de la matrice puis ajoutez un nouveau disque, le nouveau disque sera affiché
sur un système nommé sda. Si vous redémarrez avant d'ajouter un nouveau disque, le nouveau
le disque s'appellera sdb, et l'ancien s'appellera sda
Le laboratoire doit être exécuté en tant que superutilisateur (root), comme l'exigent la plupart des commandes.
privilèges élevés et cela n'a pas de sens d'augmenter constamment les privilèges via sudo
Matériel d'études
RAID
LVM
Nommage du disque sous Linux
Qu'est-ce qu'une section
Qu’est-ce qu’une table de partition et où est-elle stockée ?
Qu'est-ce que la bouffe
Utilitaires utilisés
1) afficher les informations sur le disque
lsblk -o NOM, TAILLE, TYPEFS,TYPE,POINT DE MONTAGE
fdisk -l
2) afficher les informations et travailler avec LVM
pv
pveétendre
pvccréer
tailler
vg
réduire
lvs
vivreétendre
3) visualiser les informations et travailler avec RAID
chat /proc/mdstat
mddam
4) points de montage
monter
umount
chat / etc / fstab
chat /etc/mtab
5) répartition du disque
fdisk /dev/XXX
6) copier des partitions
jj si=/dev/xxx de=/dev/aaa
7) travailler avec la table de partition
partex
disque sf
mkfs.ext4
8) travailler avec le chargeur de démarrage
grub-install /dev/XXX
update-grub
9) divers
lsof
apte
rsync
Le travail de laboratoire comprend 3 parties :
mise en place d'un système fonctionnel en utilisant LVM, Raid
émulation d'une des pannes de disque
remplacement des disques à la volée, ajout de nouveaux disques et déplacement de partitions.
Tâche 1 (installation du système d'exploitation et configuration de LVM, RAID)
1) Créez une nouvelle machine virtuelle en lui donnant les caractéristiques suivantes :
1 ram gb
1 cpu
2 disques durs (nommez-les ssd1, ssd2 et attribuez-leur des tailles égales, cochez les cases hot swap et ssd)
Contrôleur SATA configuré pour 4 ports
2) Commencez à installer Linux et lorsque vous parvenez à sélectionner les disques durs, procédez comme suit :
Méthode de partitionnement : manuel, après quoi vous devriez voir cette image :
Configuration d'une partition distincte pour /boot : sélectionnez le premier disque et créez une nouvelle table de partition dessus
Taille des partitions : 512 M
Point de montage : /boot
Répétez les paramètres pour le deuxième disque, mais comme vous ne pouvez pas monter /boot deux fois en même temps, sélectionnez le point de montage : aucun, pour obtenir finalement ce qui suit (image avec un montant, trop paresseux pour le refaire) :
Configuration RAID :
Sélectionnez l'espace libre sur le premier disque et configurez le type de partition comme volume physique pour RAID
Sélectionnez "Terminé la configuration de la partition"
Répétez exactement les mêmes paramètres pour le deuxième disque, ce qui donne ce qui suit :
Sélectionnez "Configurer le RAID logiciel"
Créer un périphérique MD
Type de périphérique RAID logiciel : sélectionnez une matrice en miroir
Périphériques actifs pour la matrice RAID XXXX : sélectionnez les deux disques
Appareils de rechange : laissez 0 par défaut
Périphériques actifs pour la matrice RAID XX : sélectionnez les partitions que vous avez créées sous raid
Finition
En conséquence, vous devriez obtenir une image comme celle-ci :
Configuration de LVM : sélectionnez Configurer le gestionnaire de volumes logiques
Conserver la disposition actuelle des partitions et configurer LVM : Oui
Créer un groupe de volumes
Nom du groupe de volumes : système
Périphériques pour le nouveau groupe de volumes : sélectionnez votre RAID créé
Créer un volume logique
nom du volume logique : racine
taille du volume logique : 25 de la taille de votre disque
Créer un volume logique
nom du volume logique : var
taille du volume logique : 25 de la taille de votre disque
Créer un volume logique
nom du volume logique : journal
taille du volume logique : 15 de la taille de votre disque
En sélectionnant Afficher les détails de configuration, vous devriez obtenir l'image suivante :
Une fois que vous avez terminé la configuration de LVM, vous devriez voir ce qui suit :
Disposition des partitions : un par un, sélectionnez chaque volume créé dans LVM et disposez-les, par exemple, pour la racine comme ceci :
Utiliser comme : ext4
point de montage : /
Le résultat du marquage de la partition racine devrait ressembler à ceci :
répétez l'opération de partitionnement pour var et log, en sélectionnant les points de montage appropriés (/var et /var/log saisis manuellement), obtenant le résultat suivant :
Sélectionnez Terminer le partitionnement
Plusieurs questions vous seront posées sur le fait que vous avez toujours une partition non montée et que le swap n'est pas configuré. Il convient de répondre à ces deux questions par la négative.
Le résultat final devrait ressembler à ceci :
3) Terminez l'installation du système d'exploitation en installant grub sur le premier périphérique (sda) et démarrez le système.
4) Copiez le contenu de la partition /boot du lecteur sda (ssd1) vers le lecteur sdb (ssd2)
Répertoriez tous les disques que la commande précédente vous a donnés et décrivez de quel type de disque il s'agit.
Recherchez le lecteur sur lequel grub n'a pas été installé et effectuez cette installation : grub-install /dev/sdb
affichez les informations sur le raid en cours avec la commande cat /proc/mdstat et notez ce que vous voyez.
regardez le résultat des commandes : pvs, vgs, lvs, mount et notez exactement ce que vous avez vu
Décrivez dans vos propres mots ce que vous avez fait et quel résultat vous avez obtenu de cette tâche.
Après avoir terminé cette tâche, il est recommandé d'enregistrer une copie de sauvegarde du dossier de la machine virtuelle ou de créer
boîte de vagabond : https://t.me/bykvaadm/191
Résultat : Machine virtuelle avec disques ssd1, ssd2
Tâche 2 (émulation de la panne d'un des disques)
1) Si vous avez coché la case hot swap, vous pouvez alors supprimer des disques à la volée
Supprimer le disque SSD1 dans les propriétés de la machine
Recherchez le répertoire où sont stockés les fichiers de votre machine virtuelle et supprimez ssd1.vmdk
2) Assurez-vous que votre machine virtuelle est toujours en cours d'exécution
3) Redémarrez la machine virtuelle et assurez-vous qu'elle est toujours en cours d'exécution
4) vérifiez l'état de la matrice RAID : cat /proc/mdstat
5) ajoutez un nouveau disque de la même taille dans l'interface de la VM et nommez-le ssd3
6) effectuer les opérations :
voir que le nouveau disque est arrivé dans le système en utilisant fdisk -l
copiez la table de partition de l'ancien disque vers le nouveau : sfdisk -d /dev/XXXX | sfdisk /dev/YYY
regardez le résultat en utilisant fdisk -l
Ajoutez un nouveau disque à la matrice RAID : mdadm —manage /dev/md0 —add /dev/YYY
Regardez le résultat : cat /proc/mdstat. Vous devriez voir que la synchronisation a commencé
7) Vous devez maintenant synchroniser manuellement les partitions qui ne font pas partie du RAID.
Pour ce faire, nous utiliserons l'utilitaire dd, en copiant du disque « live » vers le nouveau que vous avez récemment installé
dd if=/dev/XXX of=/dev/YYY
8) Une fois la synchronisation terminée, installez grub sur le nouveau lecteur
9) Redémarrez la VM pour vous assurer que tout fonctionne
Décrivez dans vos propres mots ce que vous avez fait et quel résultat vous avez obtenu de cette tâche.
Résultat : le disque ssd1 a été supprimé, le disque ssd2 a été enregistré, le disque ssd3 a été ajouté.
Tâche 3 (Ajout de nouveaux disques et déplacement d'une partition)
Il s’agit de la tâche la plus complexe et la plus volumineuse de toutes celles présentées.
Vérifiez très attentivement ce que vous faites et avec quels disques et partitions.
Il est recommandé d'en faire une copie avant de l'exécuter.
Cette tâche est indépendante de la tâche n°2, elle peut être réalisée après la tâche n°1, ajustée aux noms de disques.
La deuxième partie de cette tâche de laboratoire devrait conduire exactement au même état qu’après avoir terminé la première partie.
Pour faciliter votre travail, je peux vous recommander de ne pas retirer physiquement les disques de la machine hôte, mais uniquement
déconnectez-les dans les propriétés de la machine. Du point de vue du système d'exploitation dans la VM, cela aura exactement la même apparence, mais vous pouvez
si quelque chose se produit, reconnectez le disque et continuez le travail en annulant quelques points, si
vous rencontrez des problèmes. Par exemple, vous l'avez peut-être mal fait ou avez oublié de copier la partition /boot sur le nouveau disque.
Je ne peux que vous conseiller de revérifier plusieurs fois les disques et partitions avec lesquels vous travaillez, voire mieux.
Notez sur une feuille de papier la correspondance entre les disques, les partitions et le numéro de disque « physique ». Arbre magnifique et clair
l'équipe tire au sort lsblk, utilisez-le le plus souvent possible pour analyser ce que vous avez fait et ce qui doit être fait.
À l'histoire...
Imaginez que votre serveur tourne depuis longtemps sur 2 disques SSD, quand soudain...
1) Simulez une panne de disque SSD2 en supprimant le disque des propriétés de la VM et en redémarrant
2) Afficher l'état actuel des disques et du RAID :
3) Vous avez de la chance, vos patrons vous ont permis d'acheter plusieurs nouveaux disques :
2 SATA de grande capacité pour la tâche attendue depuis longtemps consistant à déplacer la partition avec les journaux vers un disque séparé
2 SSD pour remplacer celui qui est mort, ainsi que pour remplacer celui qui fonctionne encore.
Veuillez noter que le panier du serveur ne prend en charge que l'installation de 4 disques à la fois,
par conséquent, vous ne pouvez pas ajouter tous les disques en même temps.
Sélectionnez une capacité du disque dur 2 fois supérieure à celle du SSD.
La capacité du SSD est 1,25 fois supérieure à celle de l'ancien SSD.
4) Ajoutez un nouveau disque SSD, en l'appelant ssd4, et après l'ajout, vérifiez ce qui s'est passé :
5) Tout d'abord, vous devez veiller à la sécurité des données sur l'ancien disque.
Cette fois, nous transférerons les données en utilisant LVM :
Tout d'abord, vous devez copier la table de fichiers de l'ancien disque vers le nouveau :
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Remplacez x, y par les disques corrects et découvrez ce que fait cette commande.
Exécutez lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT et comparez sa sortie avec l'appel précédent.
Qu'est ce qui a changé?
utilisez la commande dd pour copier les données /boot sur le nouveau disque
dd if=/dev/XXX of=/dev/YYY
si /boot est resté monté sur l'ancien disque, il doit être remonté sur le disque live :
mount | grep boot # смотрим куда смонтирован диск
lsblk # смотрим какие диски есть в системе и смотрим есть ли диск, полученный из предыдущего пункта
umount /boot # отмонтируем /boot
mount -a # выполним монтирование всех точек согласно /etc/fstab.
# Поскольку там указана точка монтирования /dev/sda, то будет выполнено корректное перемонтирование на живой диск
Installez le chargeur de démarrage sur le nouveau lecteur SSD
grub-install /dev/YYY
Pourquoi effectuons-nous cette opération ?
créez une nouvelle matrice RAID comprenant un seul nouveau disque SSD :
La commande ci-dessus ne fonctionnera pas sans spécifier une clé spéciale.
Lisez l'aide et ajoutez cette clé à la commande.
Utilisez la commande cat /proc/mdstat pour vérifier le résultat de votre opération. Qu'est ce qui a changé?
Exécutez lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT et comparez sa sortie avec l'appel précédent.
Qu'est ce qui a changé?
6) L'étape suivante consiste à configurer LVM
exécutez la commande pvs pour afficher des informations sur les volumes physiques actuels
créez un nouveau volume physique incluant la matrice RAID créée précédemment :
pvcreate /dev/md63
Exécutez lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT et comparez sa sortie avec l'appel précédent.
Qu'est ce qui a changé?
Exécutez à nouveau la commande pvs. Qu'est ce qui a changé?
Augmentons la taille du système Volume Group à l'aide de la commande suivante :
vgextend system /dev/md63
Exécutez les commandes et notez ce que vous avez vu et ce qui a changé.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
Sur quel disque physique se trouvent actuellement LV var,log,root ?
Déplacez les données de l'ancien disque vers le nouveau, en utilisant les noms de périphérique corrects.
Répétez l'opération pour tous les volumes logiques
Exécutez les commandes et notez ce que vous avez vu et ce qui a changé.
vgdisplay system -v
pvs
vgs
lvs -a -o+devices
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Changeons notre VG en supprimant l'ancien disque raid. Remplacez le nom de raid correct.
vgreduce system /dev/md0
Exécutez les commandes et notez ce que vous avez vu et ce qui a changé.
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
pvs
vgs
Pour rendre l'image plus belle, remontez /boot sur le deuxième disque SSD (ssd4) et exécutez lsblk. Par conséquent, le disque SSD3 ne
rien ne doit être monté. Vérifiez soigneusement que la partition /boot n'est pas vide ! ls /boot devrait montrer
plusieurs fichiers et dossiers. Étudiez ce qui est stocké dans cette section et notez quel répertoire de fichiers est responsable de quoi.
7) retirez le disque ssd3 et ajoutez ssd5, hdd1, hdd2 selon les spécifications techniques décrites ci-dessus, ce qui donne :
ssd4 - le premier nouveau SSD
ssd5 - deuxième nouveau SSD
hdd1 - premier nouveau disque dur
hdd2 - deuxième nouveau disque dur
8) Vérifiez ce qui s'est passé après l'ajout de disques :
9) Restaurons le fonctionnement du réseau principal du raid :
copiez la table de partition en remplaçant les disques appropriés :
sfdisk -d /dev/XXX | sfdisk /dev/YYY
Veuillez noter que lorsque nous avons copié la table de partition de l'ancien disque, il semblait que la nouvelle taille
n'utilise pas toute la capacité du disque dur.
Par conséquent, nous devrons bientôt redimensionner cette partition et étendre le raid.
Voyez par vous-même en exécutant la commande :
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
10) copiez la partition de démarrage /boot de ssd4 vers ssd5
dd if=/dev/XXX of=/dev/YYY
11) Installez grub sur le nouveau disque (ssd5)
12) redimensionner la deuxième partition du disque ssd5
exécutez l'utilitaire de partitionnement de disque :
fdisk /dev/XXX
entrez la touche d pour supprimer une partition existante (choisissez 2)
entrez la clé n pour créer une nouvelle partition
entrez la clé p pour indiquer que le type de partition est « primaire »
entrez la clé 2 pour que la nouvelle partition ait le deuxième numéro
Premier secteur : appuyez sur Entrée pour accepter la taille calculée automatiquement du début de la partition
Dernier secteur : appuyez sur Entrée pour accepter la taille calculée automatiquement de la fin de la partition
entrez la touche l pour voir une liste de tous les types de partitions possibles et y trouver Linux Raid Auto
entrez la touche t pour changer le type de partition créée (2) et entrez le numéro trouvé à l'étape précédente.
entrez la touche w pour écrire la modification sur le disque.
12) relisez la table de partition et vérifiez le résultat
ajoutez un nouveau disque à la matrice RAID actuelle (n'oubliez pas de remplacer les bons disques)
mdadm --manage /dev/md63 --add /dev/sda2
Augmentons le nombre de disques dans notre baie à 2 :
mdadm --grow /dev/md63 --raid-devices=2
Regardez le résultat : nous avons 2 tableaux balisés, mais les deux sections incluses dans ce tableau ont des tailles différentes
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
13) augmenter la taille de la partition sur le disque SSD4
exécutez l'utilitaire de partitionnement de disque :
fdisk /dev/XXX
entrez la touche d pour supprimer une partition existante (choisissez 2)
entrez la clé n pour créer une nouvelle partition
entrez la clé p pour indiquer que le type de partition est « primaire »
entrez la clé 2 pour que la nouvelle partition ait le deuxième numéro
Premier secteur : appuyez sur Entrée pour accepter la taille calculée automatiquement du début de la partition
Dernier secteur : appuyez sur Entrée pour accepter la taille calculée automatiquement de la fin de la partition
À la fin du balisage, sélectionnez Non pour laisser la signature de l'appartenance de la partition au tableau.
entrez la touche w pour écrire la modification sur le disque.
12) relisez la table de partition et vérifiez le résultat
Veuillez noter que désormais les partitions sda2, sdc2 ont une taille supérieure à la taille du périphérique raid.
13) à ce stade, la taille du raid peut maintenant être étendue
mdadm --grow /dev/md63 --size=max
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT # check result
Examinez lsblk et notez ce qui a changé
14) Cependant, bien que nous ayons modifié la taille du raid, les tailles de vg root, var, log elles-mêmes n'ont pas changé.
lvs # посмотрим сколько сейчас размечено
lvextend -l +50%FREE /dev/system/root
lvextend -l +100%FREE /dev/system/var
lvs # проверьте что получилось
À ce stade, vous avez terminé la migration de la baie principale vers les nouveaux disques. travailler avec ssd1, ssd2 est terminé
16) Notre prochaine tâche est de déplacer /var/log vers de nouveaux disques, pour cela nous allons créer un nouveau tableau et un nouveau LVM sur les disques durs.
voyons quels noms portent les nouveaux disques durs
créons un nouveau PV sur le raid à partir de gros disques
pvcreate data /dev/md127
Créons un groupe dans ce PV appelé data
vgcreate data /dev/md127
Créons un volume logique avec la taille de tout l'espace libre et appelons-le val_log
lvcreate -l 100%FREE -n var_log data # lvs # посмотрим результат
formater la partition créée en ext4
mkfs.ext4 /dev/mapper/data-var_log
voyons le résultat
lsblk
17) transférer les données du journal de l'ancienne partition vers la nouvelle
installer temporairement un nouveau stockage de journaux
mount /dev/mapper/data-var_log /mnt
synchronisons les partitions
apt install rsync
rsync -avzr /var/log/ /mnt/
Découvrons quels processus sont actuellement en cours d'exécution dans /var/log
apt install lsof
lsof | grep '/var/log'
arrêter ces processus
systemctl stop rsyslog.service syslog.socket
effectuer la synchronisation finale des partitions (données ayant pu changer depuis la dernière synchronisation)
rsync -avzr /var/log/ /mnt/
échanger les sections
umount /mnt
umount /var/log
mount /dev/mapper/data-var_log /var/log
vérifions ce qui s'est passé
lsblk
18) Modifier /etc/fstab
fstab - un fichier qui enregistre les règles selon lesquelles les partitions seront montées au démarrage
notre tâche est de trouver la ligne où /var/log est monté et de réparer le périphérique system-log sur data-var_log
19) Le plus important à ce stade est de ne pas oublier de changer la table radela (ext4 par exemple). Parce que peu importe la façon dont nous modifions un raid, lvm, jusqu'à ce que le FS sur la partition soit informé que la taille de la partition a maintenant changé, nous ne pourrons pas utiliser le nouvel espace. Utilisez la commande resize2fs pour changer le FS.
20) Accord final
Redémarrons. Si vous avez tout fait correctement, vous serez redirigé vers votre OS (cela est nécessaire pour s'assurer que tout fonctionne. Cette étape n'a d'autre sens que l'autotest)
vérifier que tout ce que nous voulions faire a été réellement fait :
pvs
lvs
vgs
lsblk
cat /proc/mdstat
21) [OPTIONNEL] Suivez les étapes
redémarrez en appuyant sur F12 pour spécifier différents lecteurs lors du démarrage afin de vous assurer que vous pouvez démarrer
de l'un des disques SSD, afin que nous n'ayons pas peur de la panne de l'un d'entre eux
vous avez maintenant un journal LV inutile dans le système VG. Allouez cet espace entre root ou var, mais au lieu d'utiliser
dessins 100% GRATUITS précisez la taille à la main à l'aide de la touche -L :
-L 500M
résoudre le problème selon lequel /boot se trouve sur deux partitions sans synchronisation, il n'est pas nécessaire de le faire correctement,
il est ajouté ici à titre d'exemple. N'oubliez pas de copier d'abord le contenu de /boot quelque part.
créer un nouveau raid et y inclure sda1, sda2
incluez ces partitions dans le raid existant et restaurez /boot sur le raid principal, mais sans le monter.