pvresize after extending RAID array
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 resizedDid 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 resizedIn 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
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 resizedThe 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 12695042048Quoted 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 resizedDid 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 resizedIn 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?
Exactly which version of LVM2 was this (e.g. output of 'lvm version')?
Quoted 2 lines
# cat /sys/block/sdb/size 12695042048
Use the 'blockdev' command - that gets the sizes the same way that lvm2 does.
Alasdair
Signature · 1 line
[email protected]
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 12695042048Use 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