HPE Community read-only access December 15, 2018
This is a maintenance upgrade. You will be able to read articles and posts, but not post or reply.
Hours:
Dec 15, 4:00 am to 10:00 am UTC
Dec 14, 10:00 pm CST to Dec 15, 4:00 am CST
Dec 14, 8:00 pm PST to Dec 15, 2:00 am PST
cancel
Showing results for 
Search instead for 
Did you mean: 

pvmove: not enough space

 
dpb
Occasional Advisor

pvmove: not enough space

Hi --

I'm needing to remove a physical volume from a VG, and am using pvmove. If I just move to only one PV, it's working, but if I try to relocate to multiple PVs (since the source PV is too big to fit on one destination PV), it fails with the following error:

pvmove: Couldn't relocate physical extent:
Not enough space

I attached output of vgdisplay on the VG as well as the command I ran with the disk names.

I actually have tried this across multiple disks, and thought I would simplify the problem a bit. Am I misunderstanding the use of the pvmove command?
10 REPLIES
dpb
Occasional Advisor

Re: pvmove: not enough space

My first paragraph is a bit misleading. I'm wanting to remove a PV, but first of course I need to move the extents, which is what I'm having problems with.

Thanks.
Jayakrishnan G Naik
Trusted Contributor

Re: pvmove: not enough space

Hi dpb,

To do a pvmove, the destination pv size should be larger or of the same size....
The error clearly states that the source PV and destination PV sizes not equal and the destination PV is of smaller size. Use a PV with same size and attempt the pvmove which will succeed.

Thanks & Regards
Jayakrishnan G Naik

dpb
Occasional Advisor

Re: pvmove: not enough space

Thanks for the reply Jayakrishnan. Either I don't understand the purpose of the command I ran, or you didn't read my attachment.

i'm trying to move the PV onto two devices ("striped" across those devices, if you will).

When I run the same command in preview mode, it seems to succeed, the first 3486 PE go to disk113, the remaining PE go to disk114 (preview mode shows where each physical extent will end up).

However, when running it for real, it fails. I know that disk113 doesn't have enough PE, but between the two disks there is plenty.

I haven't tried out the auto-balance operational modes yet to see if they will work, but I guess I'm just wondering why this doesn't work.

FYI, here is the example I'm working off from the manpage:

Move physical extents from /dev/dsk/c1t0d0 to /dev/dsk/c2t0d0 and
/dev/dsk/c3t0d0:

pvmove /dev/dsk/c1t0d0 /dev/dsk/c2t0d0 /dev/dsk/c3t0d0

Jayakrishnan G Naik
Trusted Contributor

Re: pvmove: not enough space

Hi DPB,

Please go through the description on pvmove command which will help you. Please see the second last paragraph that clarifies " Why your pvmove can't succeed"

The pvmove command moves allocated physical extents and the data they contain from a source physical volume, source_pv_path, to one or more other physical volumes in the same volume group.

If a destination physical volume or physical volume group is not specified, all physical volumes in the volume group are available as destination volumes for the transfer. pvmove selects the proper physical volumes to be used in order to preserve the allocation policies of the logical volume involved.

To limit the transfer to specific physical volumes, specify the name of each physical volume directly with a dest_pv_path argument.Optionally, if physical volume groups are defined for the volume group, specify the physical volumes indirectly with one or more dest_pvg_name arguments.

source_pv_path must not appear as a dest_pv_path.

If source_pv_path is a member of a dest_pv_path, it is automatically excluded from being a destination physical volume.

pvmove succeeds only if there is enough space on the destination physical volumes to hold all the allocated extents of the source physical volume.

If you have installed HP MirrorDisk/UX on your system and source_pv_path is an "active spare" physical volume within a mirrored logical volume, once all of the data has been moved to dest_pv_path, the source_pv_path physical volume will be returned to a "stand-by" spare physical volume. This is how to "unspare" data once the original failed physical volume has been repaired and is available to receive data.

Thanks & Regards
Jayakrishnan G Naik
Jayakrishnan G Naik
Trusted Contributor

Re: pvmove: not enough space

Hi dpb

Can you tell me which pv you are trying to move?

disk87 or disk 10?

Regards
Jayakrishnan G Naik
dpb
Occasional Advisor

Re: pvmove: not enough space

You said:

"pvmove succeeds only if there is enough space on the destination physical volumes to hold all the allocated extents of the source physical volume."

I'm trying to move

/dev/disk/disk87 (55999 total - 24514 free = 31485 allocated)

To:

/dev/disk/disk113 (3486 free)
/dev/disk/disk114 (39999 free)

This should work, right? What am I not understanding?

Thanks again for the reply...
dpb
Occasional Advisor

Re: pvmove: not enough space

FYI, look at the attachment on my post. It mentions the command line I used at the top. I tried this a number of different ways, and I got the same result each time.

I tried the one argument form:

pvmove /dev/disk/disk87 (which says it will put the PEs in any free PE on the VG)

and also tried putting it on all other disks explicitly.

The only thing I didn't try are any of the -a forms of the commands, since I'm not really interested in auto-balancing (my storage does that for me already).
P Arumugavel
Respected Contributor

Re: pvmove: not enough space

hi,

You could try with below:

Move the fist 3486 PE's to disk113
#pvmove /dev/disk/disk87:0-3486 /dev/disk/disk113

Them move the rest PE's to disk114
#pvmove /dev/disk/disk87:3487-55999 /dev/disk/disk114

Regs...
dpb
Occasional Advisor

Re: pvmove: not enough space

Thanks I could try to manually specify. I'm pretty sure that would work.

Can you just validate that my understanding of the operation is correct.

In other words: My command *should* have worked, given the input I provided, right?
P Arumugavel
Respected Contributor

Re: pvmove: not enough space

>>In other words: My command *should* have worked, given the input I provided, right?
#pvmove /dev/disk/disk87 /dev/disk/disk113 /dev/disk/disk114

Hi,

This is my abstract understanding as I never got chance to perform pvmove.

From the above command line, it tries to relocate all the physical extents from /dev/disk/disk87 to both physical volume(/dev/disk/disk113 & /dev/disk/disk114) individually, as you haven't mentioned that the range of physical extents to be moved to both physical volumes repectively.

Rgds...