Skip to contentSkip to conversation

pvresize after extending RAID array

linux-lvm Peter Daum 2 participants 4 messages Jun 18, 2007 – Jun 19, 2007

lore
Share & tools
lore

Peter Daum

author
#0 lore raw

I have a physical volume consisting of 1 hardware raid array (/dev/sdb). Now I added some disks to the raid array, extending its size from 4.5 to ~6 TB. The kernel (Linux 2.6.16.51) now correctly reports the new device size:

# cat /sys/block/sdb/size
12695042048

From reading the manuals I got the impression, that all that is needed to be able to use the additional space is "pvresize /dev/sdb". Unfortunately, it looks like pvresize insists on the old device size:

# pvresize -v  -d  /dev/sdb
File descriptor 3 left open
    Using physical volume(s) on command line
    Archiving volume group "raid6_12" metadata (seqno 19).
    No change to size of physical volume /dev/sdb.
    Resizing volume "/dev/sdb" to 9765416576 sectors.
    Updating physical volume "/dev/sdb"
    Creating volume group backup "/etc/lvm/backup/raid6_12" (seqno 20).
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Did I miss something? Is there anything to worry about or should I just go ahead and set the new device size manually:

# pvresize -v  -d --setphysicalvolumesize 6347521024k /dev/sdb
File descriptor 3 left open
    Using physical volume(s) on command line
    Archiving volume group "raid6_12" metadata (seqno 22).
  WARNING: /dev/sdb: Overriding real size. You could lose data.
    /dev/sdb: Pretending size is 12695042048 not 12695035904 sectors.
    No change to size of physical volume /dev/sdb.
    Resizing volume "/dev/sdb" to 12695041664 sectors.
    Updating physical volume "/dev/sdb"
    Creating volume group backup "/etc/lvm/backup/raid6_12" (seqno 23).
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

In this case, pvresize comes up with yet another size for the device (12695035904 sectors) - is this the actual size of the device minus the space needed for lvm's metadata? Should I manually set to this?

Any comments?

Regards,
Peter Daum

author
#1 lore raw

Little Addendum:
After a reboot (which of course defeats the purpose a little) lvm recognizes the new device size:

# pvresize -v  -d  /dev/sdb
    Using physical volume(s) on command line
    Archiving volume group "raid6_12" metadata (seqno 30).
    Resizing physical volume /dev/sdb from 1192067 to 1549687 extents.
    Resizing volume "/dev/sdb" to 12695041664 sectors.
    Updating physical volume "/dev/sdb"
    Creating volume group backup "/etc/lvm/backup/raid6_12" (seqno 31).
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

The figures reported by pvresize are the same as below (except without warnings this time) so I guess it generally would be o.k in such a case to just use the kernel's device size and set it manually with "--setphysicalvolumesize"?

Quoted 41 lines · Peter Daum

I have a physical volume consisting of 1 hardware raid array (/dev/sdb). Now I added some disks to the raid array, extending its size from 4.5 to ~6 TB. The kernel (Linux 2.6.16.51) now correctly reports the new device size:

# cat /sys/block/sdb/size
12695042048
Quoted 1 line

From reading the manuals I got the impression, that all that is needed

to be able to use the additional space is "pvresize /dev/sdb". Unfortunately, it looks like pvresize insists on the old device size:

# pvresize -v  -d  /dev/sdb
File descriptor 3 left open
    Using physical volume(s) on command line
    Archiving volume group "raid6_12" metadata (seqno 19).
    No change to size of physical volume /dev/sdb.
    Resizing volume "/dev/sdb" to 9765416576 sectors.
    Updating physical volume "/dev/sdb"
    Creating volume group backup "/etc/lvm/backup/raid6_12" (seqno 20).
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

Did I miss something? Is there anything to worry about or should I just go ahead and set the new device size manually:

# pvresize -v  -d --setphysicalvolumesize 6347521024k /dev/sdb
File descriptor 3 left open
    Using physical volume(s) on command line
    Archiving volume group "raid6_12" metadata (seqno 22).
  WARNING: /dev/sdb: Overriding real size. You could lose data.
    /dev/sdb: Pretending size is 12695042048 not 12695035904 sectors.
    No change to size of physical volume /dev/sdb.
    Resizing volume "/dev/sdb" to 12695041664 sectors.
    Updating physical volume "/dev/sdb"
    Creating volume group backup "/etc/lvm/backup/raid6_12" (seqno 23).
  Physical volume "/dev/sdb" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

In this case, pvresize comes up with yet another size for the device (12695035904 sectors) - is this the actual size of the device minus the space needed for lvm's metadata? Should I manually set to this?

author
#3 lore raw
Quoted 1 line · Alasdair G Kergon

Exactly which version of LVM2 was this (e.g. output of 'lvm version')?

# lvm version
  LVM version:     2.02.07 (2006-07-17)
  Library version: 1.02.08 (2006-07-17)
  Driver version:  4.5.0
Quoted 6 lines
Quoted 3 lines
# cat /sys/block/sdb/size
12695042048

Use the 'blockdev' command - that gets the sizes the same way that lvm2 does.

Hopefully not the same way as "blockdev --getsz" does it
(which silently fails on that disk; "blockdev --getsize64 /dev/sdb" reports the correct size in bytes)

Regards,
Peter Daum