[Résolu]LVM sur MDAM : ext4 existant

Tags: #<Tag:0x00007f63f5f62a88>

Bonjour à tous,

Je prends contact avec vous parce que je suis un tout petit peu perdu…
Je dispose d’un serveur sous Debian 8.5 avec 8 disques configurés en RAID6 via mdadm. Le volume RAID est /dev/md1, celui-ci est formaté intégralement en EXT4. Mon idée est la suivante :

  1. Réduire la partition en EXT4
  2. Créer une partition LVM (et tout ce qu’il faut)
  3. Déplacer mes données de la partition EXT4 vers un ou plusieurs volume(s) logique(s)
  4. Recommencer jusqu’à avoir que du LVM

Est-ce réalisable sans perte/copie des données ? Si oui, quels sont les commandes associées ?

En vous remerciant d’avance de vos conseils et éventuellement de votre aide.

ok. Si par la suite vous achetez un nouveau serveur avec 8 disques, prévoyez un modèle avec contrôleur RAID intégré. C’est plus cher, cela fait plus pro, une couche logicielle en moins :slight_smile:

Comme d’habitude on se précipite sur le formatage, et on oublie de réfléchir, de préparer l’avenir (en laissant des espaces disques libres pour des besoins futurs ).

Je comprend votre désir de passer en LVM. Pour pouvoir vous conseiller utilement, il serait bon d’avoir des données chiffrées, par exemple les retours de

uptime
free -m
lsblk
df -hT --local | fgrep -v tmpfs
sudo du -sh /var /srv /opt /home

Autrement dit, évaluer l’existant avant d’établir une stratégie de migration.
Combien d’utilisateurs ? Existe-t-il des espaces du genre scratch, … ? Quelle est la politique de sauvegarde ?

Le paramètre essentiel qui détermine le temps de cette réorganisation vers LVM est : utilisez-vous plus de 49% de l’espace total disponible ?

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة

F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français
Il vaut mieux avoir vécu vingt-cinq jours comme un tigre qu’un millénaire comme un mouton.
Proverbe tibétain

Il n’y a pas de partition en ext4. C’est un ensemble RAID formaté intégralement en ext4, donc non partitionné. Partitionner l’ensemble RAID détruirait le système de fichiers ext4.

Mon conseil : sauvegarde des données, transformation en LVM et restauration des données.

En quoi cette information est-elle pertinente ?

Très intéressant.

Pour confirmation

sudo blkid
sudo fdisk -l /dev/md*

parce que je commence à être perdu :confused:

Ubuntu
An operating system that claims that it’s easy to use, but in reality requires a PHD in Computer Science.

Je peux me tromper, il arrive qu’on dise qu’un disque est formaté intégralement en ext4/FAT/NTFS/autre alors qu’en fait il est partitionné, avec une unique partition occupant tout l’espace disponible et formatée en ext4/FAT/NTFS/autre.

Mais à ma connaissance les ensembles RAID logiciels partitionnés sont rares car cette possibilité a été introduite assez tardivement. L’usage qui s’est établi et qui perdure lorsqu’on a besoin de plusieurs volumes consiste donc à créer plusieurs ensembles RAID (en créant plusieurs partitions RAID sur chaque disque, ce qui permet d’utiliser des niveaux de RAID différents pour chaque ensemble) ou utiliser LVM par dessus un ensemble RAID (ce qui apporte la souplesse de création et dimensionnement des volumes logiques).

Avec tes commandes de confirmation, on saura à quoi s’en tenir.

[quote=“littlejohn75, post:2, topic:70953”]
ok. Si par la suite vous achetez un nouveau serveur avec 8 disques, prévoyez un modèle avec contrôleur RAID intégré. C’est plus cher, cela fait plus pro, une couche logicielle en moins :slight_smile:[/quote]
L’idée était de recycler un serveur disposant de trois disques à la base pour faire un espace de stockage “mort”.

[quote=“littlejohn75, post:2, topic:70953”]
Comme d’habitude on se précipite sur le formatage, et on oublie de réfléchir, de préparer l’avenir (en laissant des espaces disques libres pour des besoins futurs ).[/quote]
Je n’avais pas suffisamment de compétences dans le domaine du stockage pour voit l’intérêt du LVM à l’époque. De plus, les disques ont été ajoutés petit à petit au fur et à mesure du renouvellement du parc.

[quote=“PascalHambourg, post:3, topic:70953”]
Il n’y a pas de partition en ext4. C’est un ensemble RAID formaté intégralement en ext4, donc non partitionné. Partitionner l’ensemble RAID détruirait le système de fichiers ext4.

Mon conseil : sauvegarde des données, transformation en LVM et restauration des données.[/quote]
C’est un peut ce que je souhaiterais éviter.

[quote=“littlejohn75, post:4, topic:70953”]
parce que je commence à être perdu :confused:[/quote]
C’est mon cas d’où le fait que j’ai posté ici.

Pour le résultat des commandes: https://framabin.org/?1948f517a5f4671c#keyTkMZ1NdwKdwlcDIJ5oAmdswsrFTqoSZaveDh7xO4=

root@scar:~# df -hT --local | fgrep -v tmpfs
Sys. de fichiers Type     Taille Utilisé Dispo Uti% Monté sur
/dev/sdf2        ext4       7,3G    2,2G  4,7G  32% /
/dev/sdf3        ext4        46G    1,1G   43G   3% /home
/dev/md1         ext4        11T    8,0T  2,9T  74% /mnt/disk
root@scar:~#
root@scar:~# fdisk -l /dev/md*
fdisk: impossible d'ouvrir /dev/md: est un dossier

Disque /dev/md1 : 10,9 TiB, 12001581465600 octets, 23440588800 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 65536 octets / 393216 octets
```
De toute évidence le périphérique bloc /dev/md1 ( 12 000 milliards d'octets utiles ) ne comporte pas de table de partitions et n'est pas un volume physique (pv) de LVM car son type est 'EXT4' et non pas "LVM2_member" dans lla sortie de blkid
```
/dev/md1: UUID="faa78bd2-4ca2-4367-927a-2e5ec1d64377" TYPE="ext4"
```
alors que par exemple suite à un `pvcreate /dev/sdc` on peut avoir
```
/dev/sdc: UUID="1MciNU-xXg7-GBFa-a6BD-PCv1-coTh-KCdkqO" TYPE="LVM2_member"
```

Pour paraphraser une publicité, je dirais « On est mal ! » :confused:
Dans le sous-système disque, on a des opérations qui se font sur des périphériques bloc comme par exemple dans votre système

* le partitionnement de disques physiques ( une table de partitions avec 1 seule entrée pour 8 disques, + 3 entrées pour le disque système )

* la construction d'un RAID, ici un ensemble RAID6 logiciel sur 8 disques

* Les opérations LVM  sont la plupart des manipulations sur des périphériques bloc.

(il y a aussi `nbd` ou `drbd` pour des `block device` réseau , par exemple)

On peut combiner ces opérations au niveau bloc. Par contre, la création d'un système de fichiers par formatage  `/sbin/mkfs`  est une opération unique, et donc par définition la _dernière étape_ du processus.

A mon avis, j'ai bien peur qu'il va falloir se résoudre à suivre les conseils avisés de Patrick Hambourg. Vu le volume conséquent, vous aurez le temps pendant la sauvegarde d'établir la liste des volumes logiques (nommage, taille, type de système de fichiers) et au final  des espaces harmonieusement remplis et sans fragmentation :sweat_smile:

Naturellement vous pouvez envisager un montage automatiques `autofs`  des (nombreux) systèmes de fichiers ainsi créés.

Bon courage.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع  تحياتي الخالصة
---
F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
    Proverbe français

« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. »  (R. Devos)

C’est du texte simple, pourquoi ne pas l’avoir collé directement ici ?
En tout cas cela confirme que l’ensemble RAID n’est pas partitionné.

Je peux indiquer une méthode pour convertir en LVM sans passer par une sauvegarde, mais elle est tellement risquée que personne tenant un minimum à ses données ne devrait l’utiliser et le résultat sera moche.

  • Démonter le système de fichiers contenu dans /dev/md0.
  • Réduire le système de fichiers de /dev/md0 à sa taille minimum, aux alentours de 8 Tio. Noter soigneusement la taille exacte.
  • Sauvegarder le contenu des (au moins) 34 premiers secteurs de /dev/md0.
  • Créer une table de partition au format GPT sur /dev/md0 (indispensable puisque la taille de l’ensemble est supérieure à 2 Tio), ce qui va écraser les 34 premiers secteurs.
  • Créer une partition commençant après la position de fin du système de fichiers (réduit, environ 8 Tio) jusqu’à la fin de l’espace disponible, de type LVM. Sa taille devrait être environ 2,9 Tio.
  • Créer un PV et un VG LVM dans la partition /dev/md0p1.
  • Créer un ou plusieurs LV dans le VG, les formater en ext4 et les monter.
  • Faire une sauvegarde de la table de partition GPT (les 34 premiers secteurs) de /dev/md0.
  • Restaurer les 34 premiers secteurs du système de fichiers ext4 dans /dev/md0, ce qui va écraser la table de partition (mais elle a déjà été lue par le noyau donc on n’en a plus besoin pour le moment).
  • Monter /dev/md0.
  • Transférer des fichiers de /dev/md0 vers les LV.
  • Démonter /dev/md0.
  • Réduire le système de fichiers de /dev/md0 à sa taille minimum, aux alentours de 8 Tio. Noter soigneusement la taille exacte.
  • Sauvegarder le contenu des (au moins) 34 premiers secteurs du système de fichiers ext4 de /dev/md0.
  • Restaurer la table de partition.
  • Créer une partition commençant après la position de fin du système de fichiers jusqu’à la fin de l’espace disponible, de type LVM.
  • Créer un PV dans la nouvelle partition et étendre le VG avec.
  • Agrandir ou créer un ou plusieurs LV et les monter.
  • Faire une sauvegarde de la table de partition GPT (les 34 premiers secteurs) de /dev/md0.
  • Restaurer les 34 premiers secteurs du système de fichiers ext4 dans /dev/md0.
  • Monter /dev/md0.
  • Transférer des fichiers de /dev/md0 vers les LV.
  • Démonter /dev/md0.
    Et ainsi de suite…

Bon au moins comme ça, c’est clair, merci :slight_smile:
Je vais attendre la recyclage d’un autre serveur du coup.

Simplement parce que je n’aime pas encombrer du texte avec du code/script/bash :slight_smile: