Maison  >  Article  >  Opération et maintenance  >  Comment étendre la capacité de la partition sous Linux si la capacité de la partition est insuffisante ?

Comment étendre la capacité de la partition sous Linux si la capacité de la partition est insuffisante ?

齐天大圣
齐天大圣original
2020-11-19 14:28:593361parcourir

Dans le travail quotidien, nous rencontrons souvent le problème de la capacité restante insuffisante d'une certaine partition, nous devons donc savoir comment étendre la partition sous le serveur Linux. Pour l'extension de partition, il existe deux situations :

  • Extension de partition LVM

  • Extension de partition non LVM

Extension de partition LVM

De manière générale, nous recommandons d'utiliser LVM, qui facilite l'expansion élastique des partitions. Concernant l'introduction de LVM, je n'entrerai pas ici dans les détails sur les volumes physiques, les groupes logiques, les volumes logiques, etc. Vous pouvez lire mes deux autres articles sur LVM.

Scénario : Le répertoire /www est notre répertoire lié au site Web. La partition montée dans ce répertoire utilise LVM À l'origine, ce répertoire dispose de 1 Go d'espace, mais pendant le fonctionnement du système, l'espace restant est uniquement le téléchargement. est inférieur à 100M. La partition doit maintenant être étendue.

Préparation et mise en œuvre du scénario

# pvcreate /dev/sdb1
# vgcreate vgwww /dev/sdb1
# lvcreate -l 255 vgwww
# mkfs.ext4 /dev/vgwww/lvol0 
# mount /dev/vgwww/lvol0 /www
# dd if=/dev/zero of=/www/bigfile bs=1M count=900
# df -h
……
/dev/mapper/vgwww-lvol0  988M  903M   19M   98% /www

Extension de la partition

Tout d'abord, il faut voir s'il y a tout espace restant dans vgwww. Sinon, vous devez d'abord ajouter pv à vgwww.

# vgdisplay vgwww
 ……
  Free  PE / Size       0 / 0   <=== 没哟剩余空间了
  VG UUID               xdw96k-xZNv-tmVf-Pkcx-SX7T-C1tz-ZZq3HG

D'après les informations ci-dessus, nous pouvons savoir que le vg n'a plus d'espace restant. Ensuite, vous devez ajouter pv à ce vg. Voyons maintenant s'il y a des pvs inutilisés. Sinon, nous devons d'abord créer les pvs.

# pvscan
  PV /dev/sdb1   VG vgwww           lvm2 [1020.00 MiB / 0    free]
  Total: 1 [1020.00 MiB] / in use: 1 [1020.00 MiB] / in no VG: 0 [0   ]

Comme vous pouvez le constater, il n'y a pas de pv disponible. Ensuite, créez d'abord pv

# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.
# pvscan
  PV /dev/sdb1   VG vgwww           lvm2 [1020.00 MiB / 0    free]
  PV /dev/sdc1                      lvm2 [1023.00 MiB]
  Total: 2 [<2.00 GiB] / in use: 1 [1020.00 MiB] / in no VG: 1 [1023.00 MiB]

pv existe déjà, puis ajoutez le nouveau pv au groupe de volumes logiques vgwww.

# vgextend vgwww /dev/sdc1
  Volume group "vgwww" successfully extended
# vgdisplay vgwww
 ……
  Free  PE / Size       255 / 1020.00 MiB
  VG UUID               xdw96k-xZNv-tmVf-Pkcx-SX7T-C1tz-ZZq3HG

Maintenant, vg a 255 PE supplémentaires qui ne sont pas utilisés. L'étape suivante consiste à étendre le LV

# lvresize -l +255 /dev/vgwww/lvol0 
  Size of logical volume vgwww/lvol0 changed from 1020.00 MiB (255 extents) to 1.99 GiB (510 extents).
  Logical volume vgwww/lvol0 successfully resized.
  
# lvdisplay 
  --- Logical volume ---
  ……
  LV Size                1.99 GiB  <=== lv已经变为了1.99G了
  ……

À l'heure actuelle, bien que la taille du LV ait augmenté, le système de fichiers /dev/mapper/vgwww-lvol0 n'a pas augmenté.

# df -h
文件系统                 容量  已用  可用 已用% 挂载点
……
/dev/mapper/vgwww-lvol0  988M  903M   19M   98% /www

À ce stade, nous avons également besoin de xfs_growfs (pour le système de fichiers xfs) ou de resize2fs (pour le système de fichiers ext) pour le traiter.

# 该主机使用的是ext4文件系统
# resize2fs /dev/vgwww/lvol0 
# df -h
文件系统                 容量  已用  可用 已用% 挂载点
……
/dev/mapper/vgwww-lvol0  2.0G  904M  982M   48% /www

À ce stade, l'expansion du système de fichiers est terminée.

Extension de partitions non LVM

Récemment, j'ai rencontré cette situation. J'ai un ami dont la partition racine du serveur Alibaba Cloud est presque pleine. Le disque cloud d'origine 40G a ensuite été ajouté à 20G. Il est venu vers moi et m'a dit que j'avais déjà ajouté 20G, mais qu'il affichait toujours 40G. Il m'a demandé de l'aider à résoudre le problème.

Malheureusement, lvm n'est pas utilisé dans son répertoire racine, et je ne sais pas quoi faire pendant un moment. Plus tard, j'ai recherché des informations pertinentes et trouvé une solution. Cependant, cette solution a des limites, c'est-à-dire que pour la partition qui doit être étendue, cette partition doit être la dernière partition du disque.

Ce qui suit simule d'abord le scénario : le répertoire /bak est monté dans une partition séparée. La partition a été initialement divisée en 500 Mo, et maintenant elle doit être étendue

# df -h
文件系统                 容量  已用  可用 已用% 挂载点
……
/dev/sdd1                497M   26M  472M    6% /bak

Démarrez l'opération d'expansion.

# 首先卸载挂载点

# fdisk /dev/sdd
……
命令(输入 m 获取帮助):p
……
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdd1            2048     1026047      512000   83  Linux

#记住开始点,即2048。然后删除该分区,重新建立分区
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-2097151,默认为 2048):2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
将使用默认值 2097151
分区 1 已设置为 Linux 类型,大小设为 1023 MiB

命令(输入 m 获取帮助):w


# partprobe

À ce stade, vous pouvez vérifier que la taille de la partition est devenue plus grande via la commande lsblk, mais le résultat de df -h n'a pas changé. Vous devez utiliser la commande xfs_growfs pour la traiter.

 # xfs_growfs /dev/sdd1
 
 # df -h
文件系统                 容量  已用  可用 已用% 挂载点
……
/dev/sdd1               1020M   26M  995M    3% /bak

Autre point qui mérite une attention particulière : le système de fichiers ne doit pas être écrit sur la partition, sinon les données précédentes seront perdues

Pour plus d'articles techniques connexes, veuillez visiter la colonne Tutoriel du système Linux !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn