2 votes

La bonne façon de remapper une partition sur un nouveau disque ?

Je fais actuellement tourner un serveur web sous Debian. J'ai un disque de 1 Go avec une seule partition ext4 mappée à / et un disque de 8 Go avec une seule partition ext4 mappée à /var/www .

Le disque de 1 Go est à 70% de sa capacité sans base de données installée. Une fois que j'ai installé psql, mon /var va probablement remplir le disque de 1 Go.

Ce que je veux faire, c'est redimensionner la partition ext4 sur le disque de 8 Go à 4 Go et créer une autre partition en utilisant l'espace libre.

Maintenant, dans mon esprit, j'ai trouvé la série d'étapes suivantes :

  1. umount et utiliser resize2fs (ou parted ) pour redimensionner la partition sur le disque de 8 Go.
  2. parted pour créer une nouvelle partition de 4 Go sur l'espace libre.
  3. mount la nouvelle parition à dire /media/new
  4. cp -a pour copier mon /var de la partition de 1 Go à la nouvelle partition de 4 Go. (ou devrais-je utiliser tar pour cela ?)
  5. ajouter une entrée pour la nouvelle partition dans fstab
  6. supprimer les trucs redondants comme /var de mon disque de 1 Go et /var/www pour la nouvelle partition.

Je n'ai jamais fait quelque chose comme ça avant, donc quelqu'un pourrait-il vérifier mes étapes et voir si j'ai manqué quelque chose ?

PS. J'ai fait un du --max-depth=1 et il semble qu'à part les 200MB pris par /var il y a également 300MB alloués à /usr et 200MB à /lib . Dois-je les déplacer aussi ?

4voto

cyberx86 Points 20450

Pour ce faire, il n'est pas nécessaire de repartitionner votre disque. Une autre solution consiste à utiliser mount -o bind .

  1. Arrêtez tous les services fonctionnant sur le serveur, et confirmez qu'il n'y a pas de handles ouverts sur /var avec lsof | grep /var - s'il y en a, tuer les processus qui les détiennent.
  2. Démontez votre disque de 8 Go (/var/www) et montez-le ailleurs (par exemple /mnt).
  3. Sur votre disque de 8 Go, déplacez l'ensemble du contenu dans un seul dossier, que nous appellerons "www".
  4. Déplacez /var/ sur votre disque de 8 Go (vous pouvez copier et renommer l'original pour plus de sécurité) (Ainsi, vous avez maintenant deux dossiers /mnt/www et /mnt/var).
    • (Puisque /var/www se trouve dans var, il est plus simple de l'y déplacer à ce stade (c.-à-d. mv /mnt/www /mnt/var/ mais vous devriez être en mesure de configurer des montages imbriqués.)
  5. Monter la liaison /var : mount -o bind /mnt/var /var
  6. Ajouter à fstab :

    /mnt/var  /var    bind     defaults,noatime,bind        0   0
  7. Vérifiez que tout fonctionne et reprenez vos activités normales.

Cette approche devrait offrir la même fonctionnalité, avec un peu moins de risques (pas de repartitionnement/redimensionnement des systèmes de fichiers) et plus de flexibilité - si vous voulez ajouter deux ou trois dossiers supplémentaires, vous n'avez pas besoin de créer sans cesse de nouvelles partitions.

Pour l'anecdote, déplacer la totalité de /var sur un second disque ne serait pas mon premier choix, je privilégierais le déplacement des répertoires qui stockent des données plutôt que ceux qui stockent des programmes, comme les suivants : (vous trouverez probablement que /var/log et /var/lib utilisent la majorité de l'espace dans /var de toute façon).

  • /var/log
  • /var/lib/pgsql
  • /var/spool/mail (et/ou /var/vmail)
  • /var/www (que vous avez déjà déplacé)

La même procédure peut être appliquée à la plupart des répertoires (à l'exception de quelque chose comme /boot). De plus, vous pouvez envisager d'utiliser rsync au lieu de cp, si certains fichiers sont verrouillés, etc. et que vous devez l'exécuter une seconde fois, il peut être plus indulgent.

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