Une petite digression: ce l \ r est synthétique.
Certaines des tâches décrites ici peuvent être effectuées beaucoup plus facilement, mais comme la tâche de l / r est de se familiariser avec la fonctionnalité raid, lvm, certaines opérations sont artificiellement compliquées.
Exigences pour les outils à exécuter l \ r:
- Outils de virtualisation comme Virtualbox
- Image d'installation Linux comme Debian9
- Disponibilité Internet pour télécharger plusieurs packages
- Connexion via ssh à la VM installée (facultatif)
ATTENTION
Ce travail de laboratoire est associé à une question aussi délicate que la sécurité des données - c'est un domaine qui vous permet de perdre toutes vos données en raison de la plus petite erreur - une lettre ou un chiffre supplémentaire.
Puisque vous effectuez des travaux de laboratoire, vous n'ĂŞtes pas en danger, sauf si vous devez recommencer.
Dans la vraie vie, tout est beaucoup plus sérieux, vous devez donc saisir très soigneusement les noms des disques, en comprenant exactement ce que vous exécutez avec la commande actuelle et avec quels disques vous travaillez.
Le deuxième point important est la dénomination des disques et des partitions: selon la situation, les numéros de disque peuvent différer des valeurs présentées dans les commandes du laboratoire.
Ainsi, par exemple, si vous supprimez le lecteur sda de la matrice, puis ajoutez un nouveau lecteur, le nouveau lecteur sera affiché sur le système avec le nom sda. Si vous redémarrez avant d'ajouter un nouveau disque, le nouveau disque sera nommé sdb et l'ancien sera nommé sda
Les travaux de laboratoire doivent être effectués sous superutilisateur (root) car la plupart des commandes nécessitent des privilèges élevés et il n'est pas logique d'élever constamment les privilèges via sudo.
Matériel d'étude
- RAID
- LVM
- Nommage de disque 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 grub
Utilitaires utilisés
- Afficher les informations sur le disque:
- lsblk -o NOM, TAILLE, FSTYPE, TYPE, MOUNTPOINT
- fdisk -l
- Afficher des informations et travailler avec LVM
- pvs
- pvextend
- pvcreate
- pvresize
- vgs
- vgreduce
- lvs
- lvextend
- Affichez les informations et travaillez avec RAID:
- chat / proc / mdstat
- mdadm
- Points de montage:
- monter
- umount
- chat / etc / fstab
- chat / etc / mtab
- Re-partitionnement du disque:
- Copie des sections:
- jj si = / dev / xxx of = / dev / yyy
- Travailler avec la table de partition:
- Travailler avec le chargeur de démarrage:
- grub-install / dev / XXX
- update-grub
- divers
Le travail de laboratoire se compose de 3 parties:
- Configurer un système sain en utilisant lvm, raid.
- Émulation de la panne d'un des disques.
- Remplacement des disques à la volée, avec l'ajout de nouveaux disques et le transfert de partitions.
Tâche 1 (installation du système d'exploitation et configuration de LVM, RAID)
Créez une nouvelle machine virtuelle avec les fonctionnalités suivantes:
- 1 Go de RAM
- 1 unité centrale
- 2 disques durs (nommez-les ssd1, ssd2 et attribuez une taille égale, cochez les cases hot swap et ssd)
- Contrôleur SATA configuré sur 4 ports:

Commencez à installer Linux et accédez au choix des disques durs, procédez comme suit:
- Méthode de partitionnement: manuel, après quoi vous devriez voir l'image suivante:

- Configuration d'une partition distincte sous / boot: Sélectionnez le premier disque et créez une nouvelle table de partition dessus:
- Taille de la partition: 512M
- Point de montage: / boot
- Répétez le réglage pour le deuxième disque, mais comme vous ne pouvez pas monter / démarrer 2 fois en même temps, sélectionnez le point de montage: aucun et obtenez finalement ce qui suit (image avec un montant, refaire la paresse):

- Configuration RAID:
- Sélectionnez l'espace libre sur le premier disque et configurez le volume physique pour RAID comme type de partition.
- Sélectionnez "Configuration de la partition terminée"
- Répétez exactement le même paramètre pour le deuxième disque, ce qui donne les résultats suivants:

- Sélectionnez "Configurer le RAID logiciel"
- Créer un appareil MD
- Type de périphérique RAID logiciel: sélectionnez une baie 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
- Terminer
- À la fin, vous devriez obtenir cette image:

- Configuration LVM: sélectionnez Configurer le gestionnaire de volumes logiques
- Conserver la disposition de partition actuelle 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: choisissez votre RAID créé
- Créer un volume logique
- nom du volume logique: racine
- taille du volume logique: 2 \ 5 de la taille de votre disque
- Créer un volume logique
- nom du volume logique: var
- taille du volume logique: 2 \ 5 de la taille de votre disque
- Créer un volume logique
- nom du volume logique: journal
- taille du volume logique: 1 \ 5 de la taille de votre disque
- En choisissant Afficher les détails de configuration, vous devriez obtenir l'image suivante:

- Après avoir terminé la configuration LVM, vous devriez voir ce qui suit:

- Partitionnement: à son tour, sélectionnez chaque volume créé dans LVM et partitionnez-les, par exemple, pour root comme ceci:
- Utiliser comme: ext4
- point de montage: /
- Le résultat du marquage de la partition racine doit être le suivant:

- Répétez l'opération de balisage pour var et log en sélectionnant les points de montage appropriés (/ var et / var / log entrez manuellement), obtenant le résultat suivant:

- Choisissez Terminer le partitionnement
- On vous posera quelques questions sur le fait que vous avez encore une partition non montée et que le swap n'est pas configuré. Les deux questions doivent recevoir une réponse négative.
- Le résultat final devrait ressembler à ceci:

Terminez l'installation du système d'exploitation en installant grub sur le premier périphérique (sda) et démarrez le système.
Copiez le contenu de la partition / boot du lecteur sda (ssd1) sur le lecteur sdb (ssd2)
dd if=/dev/sda1 of=/dev/sdb1
Installez grub sur le deuxième appareil:
Afficher les lecteurs dans le système:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
- Répertoriez tous les disques que la commande précédente vous a envoyés et décrivez le type de disque dont il s'agit.
Localisez le lecteur sur lequel grub n'a pas été installé et terminez cette installation:
grub-install /dev/sdb
- Visualisez le raid en cours avec cat / proc / mdstat et notez ce que vous avez vu.
- Regardez la sortie des commandes: pvs, vgs, lvs, montez 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 à la suite de la tâche terminée.
Après avoir terminé cette tâche, il est recommandé de sauvegarder le dossier avec la machine virtuelle ou de créer une zone vagabonde .
Résultat: une machine virtuelle avec des disques ssd1, ssd2.
Tâche 2 (émulation de la panne d'un des disques)
- Si vous avez coché la case de remplacement à chaud, vous pouvez supprimer les disques à la volée:
- Supprimez le lecteur ssd1 dans les propriétés de la machine.
- Recherchez le répertoire dans lequel les fichiers de votre machine virtuelle sont stockés et supprimez ssd1.vmdk.
- Assurez-vous que votre machine virtuelle est toujours en cours d'exécution.
- Redémarrez la machine virtuelle et assurez-vous qu'elle fonctionne toujours
- Vérifiez l'état de la matrice RAID:
cat /proc/mdstat
- Ajoutez un nouveau disque de la mĂŞme taille dans l'interface VM et nommez-le ssd3.
- Effectuer des opérations:
- Regardez le nouveau disque arrivant sur le système avec la
fdisk -l
- Copiez la table de partition de l'ancien disque vers le nouveau:
sfdisk -d /dev/XXXX | sfdisk /dev/YYY
sfdisk -d /dev/XXXX | sfdisk /dev/YYY
- Afficher le résultat avec
fdisk -l
- Ajoutez un nouveau disque Ă la matrice de raid:
mdadm --manage /dev/md0 --add /dev/YYY
- Voir le résultat:
cat /proc/mdstat
. Vous devriez voir que la synchronisation a commencé.
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
- Une fois la synchronisation terminée, installez grub sur le nouveau disque.
- Redémarrez la machine virtuelle pour vous assurer que tout fonctionne.
Décrivez dans vos propres mots ce que vous avez fait et quel résultat vous avez obtenu à la suite de la tâche terminée.
Résultat: supprimé le lecteur ssd1, enregistré le lecteur ssd2, ajouté le lecteur ssd3.
Tâche 3 (ajout de nouveaux disques et partitionnement)
Il s'agit de la tâche la plus difficile et la plus volumineuse présentée. Vérifiez soigneusement ce que vous faites et avec quels disques et partitions. Il est recommandé de prendre une copie avant de l'exécuter. Cette tâche, indépendamment de la tâche numéro 2, peut être effectuée après la tâche numéro 1, ajustée pour les noms de disque.
La deuxième partie de la mission de ce laboratoire devrait conduire exactement au même état qu'avant la fin de la première partie.
Afin de vous faciliter le travail, je vous recommande de ne pas supprimer physiquement les disques de la machine hôte, mais de les déconnecter uniquement dans les propriétés de la machine. Du point de vue du système d'exploitation dans la machine virtuelle, cela se ressemblera exactement, mais dans ce cas, vous pouvez reconnecter le lecteur et continuer à travailler en annulant quelques points au cas où vous auriez des problèmes. Par exemple, vous avez peut-être mal exécuté ou oublié de copier la partition / boot sur un nouveau disque. Je ne peux que vous conseiller de vérifier plusieurs fois avec quels disques et partitions vous travaillez, et mieux encore, d'écrire la correspondance des disques, des partitions et le numéro de disque "physique" sur un morceau de papier. La commande lsblk
dessine un arbre magnifique et compréhensible, utilisez-le aussi souvent que possible pour analyser ce que vous avez fait et ce qui doit être fait.
Ă€ l'histoire ...
Imaginez que votre serveur ait longtemps fonctionné sur 2 disques ssd, quand tout à coup ...
Simulez une panne de disque ssd2 en supprimant le disque des propriétés de la machine virtuelle et en redémarrant.
Affichez l'état actuel des disques et du RAID:
cat /proc/mdstat fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Vous avez de la chance - les autorités ont autorisé l'achat de plusieurs nouveaux disques:
2 grands volumes SATA pour la tâche attendue depuis longtemps de déplacer la section du journal vers un disque distinct. 2 SSD pour remplacer le défunt, ainsi que pour remplacer le fonctionnement encore.
Gardez Ă l'esprit que le panier du serveur prend en charge l'installation de seulement 4 lecteurs. en mĂŞme temps, vous ne pouvez donc pas ajouter tous les disques Ă la fois.
Le volume du disque dur Ă choisir 2 fois plus que le SSD.
Le volume du SSD choisit 1,25 fois la taille de l'ancien SSD.
Ajoutez un nouveau lecteur ssd, nommez-le ssd4, et après avoir ajouté vérifiez ce qui s'est passé:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Tout d'abord, vous devez prendre soin de la sécurité des données de l'ancien disque. Cette fois, nous transférerons des données à l'aide de 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 les disques corrects au lieu de x, y et déterminez 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 reste monté sur l'ancien lecteur, il doit être monté sur un lecteur actif:
mount | grep boot
Installez le chargeur de démarrage sur le nouveau lecteur ssd:
grub-install /dev/YYY
Pourquoi faisons-nous cette opération?
Créez un nouveau réseau RAID avec un seul nouveau lecteur SSD inclus:
mdadm --create --verbose /dev/md63 --level=1 --raid-devices=1 /dev/YYY
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é?
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 en y incluant la matrice RAID précédemment créée:
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é?
Augmentez la taille du système de groupe de volumes avec 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 sont LV var, log, root maintenant?
Déplacez les données de l'ancien lecteur vers le nouveau en remplaçant les noms de périphérique corrects.
pvmove -i 10 -n /dev/system/root /dev/md0 /dev/md63
Répétez l'opération pour tout le volume logique.
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
Changez notre VG en supprimant l'ancien 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 la beauté de l'image, remontez / démarrez sur le deuxième lecteur ssd (ssd4) et exécutez lsblk. Par conséquent, rien ne doit être monté sur le disque ssd3. Vérifiez soigneusement que la partition / boot n'est pas vide!
ls /boot
devrait afficher plusieurs fichiers et dossiers. Examinez ce qui est stocké dans cette section et notez quel fichier / répertoire est responsable de quoi.
Retirez le disque ssd3 et ajoutez ssd5, hdd1, hdd2 selon les savoirs traditionnels ci-dessus, pour finalement obtenir:
- ssd4 - premier nouveau ssd
- ssd5 - deuxième nouveau ssd
- hdd1 - le premier nouveau hdd
- hdd2 - deuxième nouveau hdd
Vérifiez ce qui s'est passé après l'ajout de disques:
fdisk -l lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Restaurons le tableau principal de 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 à partir de l'ancien disque, il s'est avéré que la nouvelle taille n'utilisait pas tout l'espace du disque dur. Par conséquent, nous devrons bientôt redimensionner cette section et étendre le raid. Voyez par vous-même en entrant la commande:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Copiez la partition de démarrage / boot de ssd4 vers ssd5:
dd if=/dev/XXX of=/dev/YYY
Installez grub sur le nouveau disque (ssd5).
Modifiez la taille de la deuxième partition du lecteur ssd5.
Relisez la table de partition et vérifiez le résultat:
partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Ajoutez un nouveau disque Ă la matrice de raid actuelle (n'oubliez pas de remplacer les bons disques):
mdadm --manage /dev/md63 --add /dev/sda2
Nous étendons le nombre de disques de notre baie à 2 pièces:
mdadm --grow /dev/md63 --raid-devices=2
Regardez le résultat: nous avons 2 tableaux marqués, mais les deux sections incluses dans ce tableau ont des tailles différentes:
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Augmentez la taille de la partition sur le disque ssd4
Nous relisons la table de partition et vérifions le résultat.
partx -u /dev/XXX lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Veuillez noter que maintenant les partitions sda2, sdc2 sont plus grandes que la taille du périphérique de raid.
À ce stade, la taille du raid peut maintenant être étendue:
mdadm --grow /dev/md63 --size=max lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Parcourez lsblk et notez ce qui a changé.
Cependant, même si nous avons modifié la taille du raid, les tailles de vg root, var, log elles-mêmes n'ont pas changé.
Regardez quelle est la taille du PV:
pvs
Augmentez la taille de notre PV:
pvresize /dev/md63
Regardez quelle est la taille du PV:
pvs
Ajoutez le nouvel endroit VG apparu, racine:
lvs
À ce stade, vous avez terminé la migration de la baie principale vers de nouveaux disques. travailler avec ssd1, ssd2 est terminé.
Notre prochaine tâche consiste à déplacer / var / log vers de nouveaux disques, pour cela nous allons créer un nouveau tableau et lvm sur les disques durs.
Voyons quels noms ont les nouveaux disques durs:
fdisk -l
Créez un tableau de raid:
mdadm --create /dev/md127 --level=1 --raid-devices=2 /dev/sdc /dev/sdd
Créez un nouveau PV dans le raid à partir de grands disques:
pvcreate data /dev/md127
Dans ce PV, créez un groupe appelé données:
vgcreate data /dev/md127
Créez un volume logique avec la taille de tout l'espace libre et appelez-le val_log:
lvcreate -l 100%FREE -n var_log data
Formatez la partition créée dans ext4:
mkfs.ext4 /dev/mapper/data-var_log
Voyons le résultat:
lsblk
Transférer les données du journal de l'ancienne section vers la nouvelle
Nous allons monter un nouveau stockage de journaux temporaire:
mount /dev/mapper/data-var_log /mnt
Synchronisons les sections:
apt install rsync rsync -avzr /var/log/ /mnt/
Découvrez quels processus sont en cours d'exécution avec / var / log maintenant:
apt install lsof lsof | grep '/var/log'
Nous arrĂŞtons ces processus:
systemctl stop rsyslog.service syslog.socket
Nous effectuerons la synchronisation finale des partitions (des données qui auraient pu être modifiées depuis la dernière synchronisation):
rsync -avzr /var/log/ /mnt/
Échangez les sections:
umount /mnt umount /var/log mount /dev/mapper/data-var_log /var/log
Vérifiez ce qui s'est passé:
lsblk
Modifier / etc / fstab
fstab - un fichier dans lequel les règles sont écrites en fonction des partitions qui seront montées au démarrage. Notre tâche consiste à trouver la ligne dans laquelle / var / log est monté et à fixer le périphérique de system-log
Ă data-var_log
.
La chose la plus importante à ce stade est de ne pas oublier de changer la table de partition (ext4, par exemple). Étant donné que peu importe la façon dont nous modifions toutes sortes de raid, lvm - jusqu'à ce que le système de fichiers de la partition soit averti que la taille de la partition a changé, nous ne pourrons pas utiliser le nouvel espace. Utilisez la commande resize2fs
pour modifier le FS.
Accord final
[FACULTATIF] Suivez les étapes
- Redémarrez en appuyant sur F12 pour indiquer différents disques lors du démarrage, afin de vous assurer que vous pouvez démarrer à partir de l'un des disques SSD, afin que nous n'ayons pas peur que l'un d'entre eux échoue.
Vous avez maintenant le journal LV inutile dans le système VG. Répartissez cet espace entre root ou var, mais au lieu d'utiliser la construction 100% FREE, spécifiez la taille avec vos mains en utilisant le commutateur -L:
-L 500M
- Corrigez le problème avec le fait que / boot se trouve sur deux partitions sans synchronisation, vous n'avez pas besoin de le faire de la bonne manière, ici il est ajouté à titre d'exemple. N'oubliez pas de copier le contenu de / boot quelque part.
- Créez un nouveau raid et incluez sda1, sda2 dedans.
- Incluez ces partitions dans votre raid existant et restaurez / démarrez essentiellement le raid, mais sans le monter plus.