pvresize, похоже, не меняет размер после увеличения размера базового блочного устройства

Я увеличил размер раздела, который я использую в качестве LVM PV, но запуск pvresize, похоже, не видит дополнительного пространства:

cuttle:~# fdisk -l /dev/vda

Disk /dev/vda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00027dbb

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1          31      248976   83  Linux
/dev/vda2              32        2610    20715817+  8e  Linux LVM

Который говорит, что vda2 составляет около 20 гигов

cuttle:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               debian
  PV Size               4.76 GiB / not usable 3.08 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1217
  Free PE               0
  Allocated PE          1217
  PV UUID               tehZic-5vfN-rsrm-B8lN-lpgc-yQT1-ioH1V0

Так что в настоящее время PV составляет около 4-5 концертов

cuttle:~# pvresize -v /dev/vda2
    Using physical volume(s) on command line
    Archiving volume group "debian" metadata (seqno 12).
    No change to size of physical volume /dev/vda2.
    Resizing volume "/dev/vda2" to 9975981 sectors.
    Updating physical volume "/dev/vda2"
    Creating volume group backup "/etc/lvm/backup/debian" (seqno 13).
  Physical volume "/dev/vda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

pvresize говорит: "Без изменения размера физического тома /dev/vda2"

cuttle:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/vda2
  VG Name               debian
  PV Size               4.76 GiB / not usable 3.08 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1217
  Free PE               0
  Allocated PE          1217
  PV UUID               tehZic-5vfN-rsrm-B8lN-lpgc-yQT1-ioH1V0

и размер PV не изменился.

Не уверен, что еще я мог бы сделать, чтобы использовать дополнительное пространство. Я полагаю, что могу изменить размер раздела до размера pv, а затем добавить второй раздел, но мне действительно кажется, что то, что я пытаюсь сделать здесь, должно работать.

6 ответов

В моем случае у меня был объем 60Гб, и я расширил его до 110Гб.

После изменения размера диска с консоли AWS, а затем при запускеdf -kh, система показывает новый размер диска, как и ожидалось:

      nvme3n1                         259:4    0  110G  0 disk
└─nvme3n1p1                     259:5    0   60G  0 part
  └─vg_user01-lv_user01 253:0    0   60G  0 lvm  /home/user01

В обычном случае следующим шагом будет расширение физического тома./dev/nvme3n1p1, но командаpvresizeне отразило новое дополнительное пространство, как ожидалось.

      sudo pvresize -v /dev/nvme3n1p1
    Archiving volume group "vg_user01" metadata (seqno 22).
    Resizing volume "/dev/nvme3n1p1" to 125827072 sectors.
    No change to size of physical volume /dev/nvme3n1p1.
    Updating physical volume "/dev/nvme3n1p1"
    Creating volume group backup "/etc/lvm/backup/vg_user01" (seqno 23).
  Physical volume "/dev/nvme3n1p1" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized

После изучения проблемы выяснилось, что это проблема ядра, и обычно новые ядра автоматически обнаруживают это дополнительное пространство. Я видел, что некоторые советуют перезагрузить инстанс, но это тоже не помогло.

Чтобы решить эту проблему, нам нужно запустить командуgrowpartв целевом разделе диска.

      [root@ec2-basic user01]# growpart /dev/nvme3n1 1
CHANGED: partition=1 start=2048 old: size=125827072 end=125829120 new: size=230684639 end=230686687

Затем мы можем увидеть отраженные изменения:

      [root@ec2-basic user01]# lsblk
NAME                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme3n1                         259:4    0  110G  0 disk
└─nvme3n1p1                     259:5    0  110G  0 part
  └─vg_user01-lv_user01 253:0    0   60G  0 lvm  /home/user01

Затем нам нужно проверить путь LVM:

      [root@ec2-basic user01]# sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_user01/lv_user01
....

Скажите LVM расширить логический том, чтобы использовать весь новый размер раздела:

      [root@ec2-basic user01]# lvextend -l +100%FREE /dev/vg_user01/lv_user01
  Size of logical volume vg_user01/lv_user01 changed from <60.00 GiB (15359 extents) to <110.00 GiB (28159 extents).
  Logical volume vg_user01/lv_user01 successfully resized.

Наконец, мы расширяем файловую систему:

      [root@ec2-basic user01]# resize2fs  /dev/vg_user01/lv_user01
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg_user01/lv_user01 is mounted on /home/user01; on-line resizing required
old_desc_blocks = 8, new_desc_blocks = 14
The filesystem on /dev/vg_user01/lv_user01 is now 28834816 blocks long.

[root@aws-test user01]# lsblk
NAME                            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme3n1                         259:4    0  110G  0 disk
└─nvme3n1p1                     259:5    0  110G  0 part
  └─vg_user01-lv_user01 253:0    0  110G  0 lvm  /home/user01

partprobe /dev/vda

человек зонд

NAME partprobe - информировать ОС об изменениях таблицы разделов

SYNOPSIS partprobe [-d] [-s] [устройства...]

Я столкнулся с этой проблемой в гостевой системе CentOS 7. В моем случае я увеличил размер ZFS ZVOL и не увидел никаких изменений в гостевой системе, и pvresize не изменит его. В итоге я загрузился в SystemRescueCD 4.4.0 и использовал "parted" с командой resizepart. В CentOS я расстался с 3.1, и эта команда была недоступна. Похоже, что parted 3.2 теперь в SysRescCD, который работал.

После загрузки в sysresc iso запустите parted /dev/ и используйте в качестве примера следующее:

resizepart 2 37.6G

Где 2 - номер раздела, а желаемый новый больший размер был 37,6G.

После этого, пока я был все еще в загрузочном iso, я запустил pvresize, и он работал правильно. Перезагрузитесь в виртуальную машину (или вашу систему), и все будет хорошо.:) Надеюсь, это поможет!

Сначала необходимо добавить пространство на уровне хранилища, а затем увеличить пространство на устройстве ISCSI, выполнив:

pvresize --setphysicalvolumesize 40G /dev/sda1..

Сначала вы должны увеличить размер разделов, используя fdisk или cfdisk. Только после этого он становится доступным для pvresize.

Я использовал эти команды для расширения раздела LVM. Руководство ниже написано для драйва, поэтому обратите на него внимание, не выполняйте команды вслепую.

К вашему сведению, я столкнулся с той же проблемой, что и ОП. Шаги 2,3 помогли мне сделать систему(lsblk) показать новый размер диска.

  1. Используйте, чтобы убедиться, что система видит полный размер вашего диска.
      NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT    FSTYPE      LABEL FSAVAIL FSUSE%    
sda                 8:0    0  110G  0 disk                                                
├─sda1              8:1    0    1G  0 part /boot         ext4               754,1M    16%         
└─sda2              8:2    0   59G  0 part               LVM2_member                              
  ├─ro_redos-root 253:0    0 35,6G  0 lvm  /             ext4                 5,4G    79% 
  ├─ro_redos-swap 253:1    0    6G  0 lvm  [SWAP]        swap                             
  └─ro_redos-home 253:2    0 17,4G  0 lvm  /home         ext4                  16G     0% 
sr0                11:0    1 1024M  0 rom                                                 

Кроме того, вы можете проверить неиспользуемое пространство с помощью .

  1. echo 1 > /sys/block/sda/device/rescan

  2. Развернуть диск (sdaв моем случае) с командойparted /dev/sda resizepart 2 100%

*На месте цифры "2" укажите номер раздела, на котором установленаlvmфлаг, который вы можете увидеть из ответаparted /dev/sda unit MB print free

  1. pvresize /dev/sda2

  2. lvscan

        ACTIVE            '/dev/ro_redos/swap' [5,98 GiB] inherit
  ACTIVE            '/dev/ro_redos/home' [17,39 GiB] inherit
  ACTIVE            '/dev/ro_redos/root' [35,62 GiB] inherit

Дополнительно вы можете проверить результатыpvdisplay.

  1. В следующей команде замените имя раздела из предыдущего шага:lvextend -l +100%FREE /dev/ro_redos/root -r
        Size of logical volume ro_redos/root changed from 35,62 GiB (9119 extents) to 85,62 GiB (21919 extents).
  Logical volume ro_redos/root successfully resized.
resize2fs 1.44.6 (5-Mar-2019)
Filesystem at /dev/mapper/ro_redos-root is mounted on /; on-line resizing required
old_desc_blocks = 5, new_desc_blocks = 11
The filesystem on /dev/mapper/ro_redos-root is now 22445056 (4k) blocks long.
  1. Проверьте результаты с помощьюlsblk -a -o +FSTYPE,LABEL,FSAVAIL,FSUSE%,STATE,UUID
      NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT    FSTYPE      LABEL FSAVAIL FSUSE%
sda                 8:0    0  110G  0 disk                                               
├─sda1              8:1    0    1G  0 part /boot         ext4               754,1M    16%
└─sda2              8:2    0  109G  0 part               LVM2_member                     
  ├─ro_redos-root 253:0    0 85,6G  0 lvm  /             ext4                52,7G    33%
  ├─ro_redos-swap 253:1    0    6G  0 lvm  [SWAP]        swap                            
  └─ro_redos-home 253:2    0 17,4G  0 lvm  /home         ext4                  16G     0%
sr0                11:0    1 1024M  0 rom                                                

Как видите, мойsda2вырос в РАЗМЕРЕ с 59 ГБ до 109 ГБ. Теперь командыdf -hиlvsпокажет новые размеры разделов.

Другие вопросы по тегам