VM non LVM vers LVM, quelles solutions s'offrent à moi?

Tags: #<Tag:0x00007fb987dda548>

Bonjour à toutes et à tous,

voilà j’ai un petit soucis au taff, en fait nous avons un serveur (virtuel, preprod) dont le disque est plein, mais n’étant pas en LVM, nous ne pouvons apparemment pas augmenter la taille de la partition.
Je précise tout de suite que je suis un très gros novice dans le monde Linux, et ne connais que la base de la base…

Bref, l’idée pour régler le problème était donc de créer une nouvelle VM, qui sera en LVM, et de « tout copier » à partir de l’ancienne.

J’ai réussi à installer Debian en LVM je suis sur la même version que l’ancien serveur, 8.11, c’est OK.
La question étant simple… Vers quelle solution je dois m’orienter pour copier tout ce qui est application / données de l’ancien serveur vers le serveur ?
Voir carrément copier toute la partition peut être ? Je ne sais pas si il est possible de copier une partition entière non LVM vers une LVM…
Ou peut être que je me complexifie la vie, est qu’il est possible de passer l’ancien serveur sur du LVM ?

J’espère avoir été relativement clair, malgré que je sois pas mal dans le brouillard !

Merci d’avance pour votre aide !

Quel est le système de virtualisation ?
N’est-il pas possible d’agrandir le disque virtuel ? Ou d’ajouter un disque virtuel et d’y déplacer une partie du contenu ?

Salut !
Alors c’est du VSphere.
Et je peux augmenter la taille du disque virtuel via VSphere, mais derrière il faut que j’augmente la taille de la partition.
En LVM pas de soucis, mais sans apparemment cette taille est immuable.

Pas forcément. Ça dépend du type de système de fichiers. Par exemple avec brtrfs, on peut agrandir le système de fichiers en lui ajoutant une partition, un peu comme LVM.
Sinon, qu’est-ce qui empêche d’agrandir la partition une fois le disque agrandi ? Il y a une partition derrière ? On peut voir la sortie de

fdisk -l
lsblk

Pour transférer des données entre deux VM, on peut passer par le réseau avec rsync ou équivalent.
Ou bien, si VSphere le permet, connecter le disque virtuel de la VM source à la VM destination pour copier les données.

Mais il me semble qu’il n’était pas nécessaire de créer une nouvelle VM. Il est possible d’ajouter un disque virtuel à la VM existante. A partir de là, trois approches possibles :

  1. Installer un nouveau système en LVM sur le nouveau disque ; y transférer les données de l’ancien disque ; supprimer l’ancien disque ou le reformater en LVM pour l’intégrer au groupe de volumes du nouveau disque.

  2. Préparer le nouveau disque pour LVM ; y transférer les données, en laissant le système sur le disque d’origine.

  3. Préparer le nouveau disque pour LVM ; y transférer le système et les données ; supprimer l’ancien disque ou le reformater en LVM pour l’intégrer au groupe de volumes du nouveau disque.

dldisk -l :

Disque /dev/sda : 40 GiB, 42949672960 octets, 83886080 secteurs
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 : 0xac160f6e

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 80383999 80381952 38,3G 83 Linux
/dev/sda2       80386046 83884031  3497986  1,7G  5 Extended
/dev/sda5       80386048 83884031  3497984  1,7G 82 Linux swap / Solaris

lsblk :

sda      8:0    0   40G  0 disk
├─sda1   8:1    0 38,3G  0 part /
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0  1,7G  0 part [SWAP]
sr0     11:0    1 1024M  0 rom

Pour le coup, avoir une nouvelle VM c’était aussi par praticité au niveau du boulot, ça permet de ne pas toucher à l’ancienne VM, qui continue de fonctionner comme si de rien n’était.
S’il est plus intéressant de modifier l’ancienne VM, alors je la dupliquerai sur VSphere, pour faire tous les changements sur le clone, et lorsque je serait sûr que tout marche bien, je la permuterai avec la machine originelle.

J’avoue La solution 3 me fait de l’œil ! Du coup, il faudrait que j’associe un deuxième disque virtuel à ma VM, ça c’est OK.
Après, le préparer pour LVM, ça se fait directement au niveau de debien je présume ?
Et pour y transférer le système et les données, comment est-ce que l’on peut s’y prendre ?
Venant du monde Windows, j’ai l’habitude de me dire que simplement copier les logiciels ou les drivers pose souvent des soucis, mais je crois que Linux est beaucoup plus efficace à ce niveau là, non ?

Merci beaucoup pour ton aide en tous cas !

Il n’y a que la partition logique de swap qui gêne l’agrandissement de la partition racine. Après avoir agrandi le disque virtuel, il suffit de la désactiver avec swapoff, la supprimer ainsi que la partition étendue et agrandir la partition racine avec parted, redimensionner le système de fichiers racine avec resize2fs (si ext4), puis recréer une partition de swap avec parted ou fdisk, la formater avec le même UUID avec mkswap et l’activer avec swapon. Tout cela est faisable à chaud sans arrêter le système (sauf l’agrandissement du disque, je suppose).

Si c’est un serveur de pré-prod, il n’a pas besoin d’être actif en permanence, non ?

C’est la méthode la plus complexe car il ne faudra pas seulement transférer le système, mais aussi adapter des fichiers système (notamment /etc/fstab et le chargeur d’amorçage) pour qu’il démarre sur LVM. C’est pourquoi j’ai proposé la 2 : laisser le système sur l’ancien disque ; il est virtuel, pourquoi s’embêter à le supprimer ?

Qu’entends-tu par « directement au niveau de Debian » ? Il faut installer le paquet lvm2, créer le ou les PV, les VG et les LV avec les commandes LVM correspondantes, formater les LV.

Avec cp -a ou rsync avec les options qui vont bien (que je ne connais pas par cœur), ou logiciel équivalent. Je déconseille le gestionnaire de fichiers graphique.

Par contre il y a un travail préparatoire à faire pour définir ce qui doit être déplacé de la racine et où.
Par exemple si des données sont dans /srv, il faut les déplacer dans un LV et monter celui-ci sur /srv. Idem s’il s’agit de bases de données dans /var/lib/mysql ou d’un site web dans /var/www. Si les données sont éparpillées dans beaucoup d’endroits, pour éviter de créer une multitude de LV on peut préférer remplacer les répertoires d’origine par des liens symboliques qui pointent vers les nouvelles localisations, par exemple :

  • LV monté sur /data
  • /srv pointe vers /data/srv
  • /var/www pointe vers /data/www
  • /var/lib/mysql pointe vers /data/mysql

Mais ça ne fonctionne pas avec tous les services.
Dans tous les cas, penser à remettre les propriétaires et permissions qui vont bien.

J’adore LVM mais à mon avis ici la solution la plus rapide et la plus simple à court terme est d’agrandir le disque virtuel et la partition racine. Les disques virtuels, c’est un peu comme du LVM externe.

1 J'aime

Disons que c’est un preprod à peu près constamment utilisé, donc c’est un peu compliqué de le mettre hors ligne.
N’ayant que très peu d’expérience dans le domaine, je vais forcément prendre beaucoup de temps et faire des conneries, et même si tout est bien sauvegardé, c’est, chez nous, beaucoup plus rapide de cloner une machine que de la restaurer.
Puis j’aime pas bosser sur les VM originelles, c’est un petit toc chez moi :face_with_hand_over_mouth:

Ooookay ! Alors si c’est faisable comme ça, ça m’intéresse ! En effet, une fois étendue on aura probablement pas besoin de réétendre la partition, c’est une solution qui me parait beaucoup plus intéressante, en effet !

Va falloir que j’étudie bien chaque partie, ça risque de prendre un peu de temps, mais c’est un beau petit défi pour un débutant total comme moi… Je reviendrais quand même très certainement vous demander un coup de main pour certaines étapes !

En tous cas merci beaucoup pour l’aide !
J’ai remarqué que la communauté Linux était particulièrement de qualité, j’en ai encore la preuve !

Bon weekend à toutes et à tous !

Un mot concernant la partition de swap. Est-elle vraiment utilisée ? Si non, alors pas besoin de la recréer. Si oui, il est possible de la recréer sur un disque séparé. Un disque virtuel ne coûte quasiment rien, et ainsi elle ne gênera pas un éventuel futur agrandissement de la partition racine.

En fait tu peux utiliser des disques virtuels comme des volumes logiques LVM, car ils peuvent tout autant être agrandis à volonté (mais pas à chaud, je suppose).

1 J'aime