2 votes

CentOS & déplacement de /var sur un nouveau disque/partition

Système un peu plus ancien, environ 2 ans. Utilisation de CentOS

Je remarque que j'ai /var utilisant beaucoup d'espace, et ce sont toutes de bonnes choses... donc supprimer de l'espace n'est pas la solution.

Y a-t-il un moyen facile et sûr de déplacer /var sur un disque nouvellement monté sans griller le système d'exploitation ? Je sais comment ajouter des disques et les formater correctement, mais je n'ai jamais vraiment essayé de les déplacer. /var vers une nouvelle destination avant.

J'ai lu des articles sur Server Fault et d'autres sites Web, mais leurs réponses sont vagues quant à la manière exacte de procéder. Ils suggèrent généralement d'arrêter les processus, etc. Mais ils n'expliquent pas en détail comment le faire en toute sécurité, ni comment s'assurer que vous avez tout arrêté correctement avant de déplacer les données et de tout monter.

J'ai déjà vérifié celui-là :

Déplacer /var vers un nouveau jeu de disques

Je ne voulais pas faire quelque chose qui aurait gravement endommagé MySQL. Merci !

UPDATE :

Informations sur le système de fichiers :

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_centos6-centos6_root
                       47G   41G  4.0G  92% /
tmpfs                 3.9G  500K  3.9G   1% /dev/shm
/dev/vda1             276M  199M   64M  76% /boot
/dev/vdb1             197G  119G   68G  64% /home
/dev/vdd1             197G   95G   93G  51% /home2
/dev/vde1              99G  8.1G   86G   9% /home3
/usr/tmpDSK           2.0G   40M  1.8G   3% /tmp

Montages détaillés :

# cat /etc/fstab
/dev/vg_centos6/centos6_root /                  ext4    usrjquota=quota.user,jqfmt=vfsv0        1 1
/dev/vda1                  /boot                ext3    defaults        1 2
/dev/vdb1   /home   ext4    usrjquota=quota.user,jqfmt=vfsv0    0   0
/dev/vdd1       /home2   ext4    usrjquota=quota.user,jqfmt=vfsv0        0       0
/dev/vde1       /home3   ext4    usrjquota=quota.user,jqfmt=vfsv0        0       0
tmpfs                      /dev/shm             tmpfs   defaults        0 0
devpts                     /dev/pts             devpts  gid=5,mode=620  0 0
sysfs                      /sys                 sysfs   defaults        0 0
proc                       /proc                proc    defaults        0 0
/dev/mapper/vg_centos6-lv_swap swap swap defaults 0 0
/usr/tmpDSK             /tmp                    ext3    defaults,noauto        0 0

De ce que je peux voir, /var est définitivement sur la partition racine. J'espère pouvoir changer ça.

4voto

pdp Points 768

Une bonne chose est que votre système est probablement une VM comme on peut le savoir par les noms de nœuds des fichiers de périphériques (par ex. /dev/vdb ), ce qui simplifiera notre procédure en excluant la nécessité d'utiliser un outil spécialisé (par ex. iscsi-initiator-utils ) s'il provenait, par exemple, d'un stockage iSCSI.

CentOS offre un installation minimale un média qui comprend l'outil le plus important pour notre objectif, rsync . Si vous êtes sous CentOS 6 et utilisez un système 64 bits, vous pouvez télécharger l'image ISO du CD minimal en sélectionnant l'option miroir de votre choix, par exemple, ce . Ensuite, vous pouvez télécharger l'ISO minimal à partir de aquí dont la taille est inférieure à 400 Mo. Les directives concernant les étapes supplémentaires sont les suivantes :

  • Préparer le disque de secours . Attachez le nouveau disque à la VM et formatez-le comme d'habitude. Vous avez déjà écrit que vous savez comment faire.

  • Démarrer en mode de secours . Arrêtez la VM et démarrez l'ISO minimal. L'une des options d'installation proposées est Système installé de sauvetage . En le sélectionnant, nous pourrons démarrer à partir du CD sans qu'aucun processus n'écrive sur votre disque dur. /var répertoire. Nous disposerons ainsi d'un environnement sûr pour transférer les données de l'ancien disque vers le nouveau. Il y a quelques menus que vous devrez parcourir avant d'être projeté dans un Shell prompt. Les éléments entre parenthèses sont ceux qui ont le plus de sens pour moi. Veuillez choisir ceux qui vous conviennent.

    • Choisissez la langue. [anglais]
    • Type de clavier [us]
    • Voulez-vous démarrer les interfaces réseau sur ce système ? [Non.] Nous pouvons le faire car vous êtes sur une VM et le nouveau disque sera disponible sans connectivité réseau.
    • L'environnement de secours... [Skip]. Ce dialogue est long. Choisissez simplement "Skip".
    • Démarrer Shell
  • Transfert de données . Disons que le nœud de périphérique sur votre nouveau disque, qui stockera la nouvelle /var les données sont /dev/vdc1 et votre ancienne partition racine, en maintenant le bouton /var Le répertoire est /dev/vda2 . Créez des points de montage temporaires et copiez les données :

    mkdir /mnt/var /mnt/var_old
    mount /dev/vda2 /mnt/var_old
    mount /dev/vdc1 /mnt/var
    rsync -a /mnt/var_old/ /mnt/var/
  • Déplacer l'ancien /var . Déplacez l'ancien /var et créez un nouveau point de montage vide :

    mv /mnt/var_old/var /mnt/var_old/var.old
    mkdir /mnt/var_old/var
  • Modifier fstab . Configuration /etc/fstab pour que le système de fichiers sur le nouveau disque soit monté sur /var . Compte tenu des nœuds de périphériques ci-dessus, ajoutez une entrée telle que la suivante à l'adresse suivante /mnt/var_old/etc/fstab :

    /dev/vdc1 /var    ext4    defaults        1 2
  • Redémarrer . Type exit sur l'invite Shell et sélectionnez pour redémarrer la VM. Ensuite, démarrez dans votre installation régulière du système d'exploitation et non dans le CD minimal.

Si tout s'est bien passé, alors votre ancienne /var les données seraient présentes dans /var.old y /var contiendrait toutes ces données et serait prêt à être utilisé. Vous pourriez, si vous le souhaitez, supprimer /var.old après quelques jours de fonctionnement normal.

1voto

SomeDude Points 121

J'aime vraiment pdp La réponse de l'auteur, mais avec LVM sur Centos 7, j'aimerais ajouter ces étapes pour ceux d'entre nous qui ne savent pas :

Démarrez le support de secours. Accédez à Shell.

Recherche de groupes de volumes : lvm vgscan -v

Activez tous les groupes de volumes : lvm vgchange -a y

Lister les volumes logiques : lvm lvs –all

Avec ces informations, et les volumes activés, vous devriez être en mesure de monter les volumes : mount /dev/volumegroup/logicalvolume /mountpoint

Il s'agit d'une copie des instructions à http://jim-zimmerman.com/?p=587

Et méfiez-vous de la façon dont rsync crée ses répertoires cibles. La copie de /old/var vers /new/var a créé /new/var/var, ce qui m'a donné un bref mal de tête car j'ai dû restructurer ma nouvelle var pour que CentOS soit content :)

0voto

c4f4t0r Points 5014

Monter la nouvelle partition sous /mnt et après cela rsync --progress /var /mnt et quand cela est déjà fait, umount /mnt et modifiez votre /etc/fstab sur la nouvelle partition var et reboot

0voto

Richard T Points 1128

La réponse est OUI !

Ma motivation est différente de la vôtre, très probablement - je déplace les écritures de mes disques système du mieux que je peux pour prolonger la vie des SSD sur lesquels ils vivent.

Pour ce faire, je prépare simplement l'environnement en créant la structure du disque sur n'importe quel autre disque - qu'il s'agisse d'un disque dur ou d'un autre disque SSD - et en déplaçant les données, puis en démarrant en mode de récupération / mode de secours - selon ce que votre version vous demande - et en utilisant ensuite rsync pour obtenir un espace disque égal, faites mv /var /var.old (juste pour être sûr) et ensuite faire un ln -s au nouvel emplacement, et démarrez. Et voilà, c'est fait !

S'il y a un problème, il est facile de le résoudre et d'essayer à nouveau...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X