
我一直在經歷透過減少 lvmgroup 來減少 Centos 6.10 映像大小的過程。我現在已經能夠執行這個指令了:
pvresize -tv --setphysicalvolumesize 1600G /dev/md125p2
它給了我以下錯誤訊息:
/dev/md125p2: cannot resize to 409599 extents as later ones are allocated.
我試圖了解如何建立 pvmove 命令來消除錯誤,但我不太明白這個概念。
這是該命令的輸出 pvs -v --segments /dev/md125p
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 0 384000 lv_mysql 0 linear /dev/md125p2:0-383999
/dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 384000 81947 0 free
/dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 465947 12800 lv_root 0 linear /dev/md125p2:465947-478746
/dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 478747 1998 lv_swap 0 linear /dev/md125p2:478747-480744
/dev/md125p2 vg_centos6svr lvm2 a--u 1.86t 320.11g 480745 7500 lv_home 0 linear /dev/md125p2:480745-488244
我知道移動命令必須如下所示:
pvmove --alloc anywhere /dev/md125p2 vg_centos6svr:yyyy-end
我只是不清楚如何計算 yyyy-end 部分。我認為這意味著移動從 384000 開始的 81947(塊?),但是“yyyy”和“end”是什麼?
答案1
所以,我可以看到一切都在進行/dev/md125p2
,我們希望能減小這個 PV 的大小。
你的輸出顯示你在你的之後和之前pvs -v --segments /dev/md125p
有一個非常大的可用空間(SSize==81947
)。這足夠大,可以容納和lv_mysql
lv_root
lv_root
全部物理佈局中緊接著的 LV 的數量。
所以,我建議的第一組數字是:
***# pvmove --alloc anywhere /dev/md125p2:480745-488244 /dev/md125p2:384000+7499
也就是說,將 的整體移動lv_home
到緊接著 後的可用空間lv_mysql
。
然後重新運行pvs -v --segments /dev/md125p
以查看修改後的數字,並將下一個區塊移至剩餘的可用空間。
這將有效地整理您的 PV 碎片。
現在,pvmove
可能有方式比我正在使用的選項更多(也許指定 PV 而不是範圍?),但我感到滿意的只是明確使用塊,因此我所有的源和目標都採用/dev/<dev>:<Start>-<End>
or的形式/dev/<dev>:<Start>+<SSize-1>
。
我懷疑您的問題主要是缺少“源”規範的範圍。
我看過一些他們使用的例子-end
- 我不知道這是否是應該工作,但這會引出一個問題“結束什麼?+
加,並且需要比 SSize 減一。
額外的
好的,在源方面,您似乎可以-name lv_home /dev/md125p2
作為簡寫- 但還要注意,如果分成多個範圍,/dev/md125p2:480745-488244
這會變得更加複雜lh_home
沒有包括 LV 名稱,所以我不確定pvmove
從你給出的內容中可以理解什麼...
答案2
減少 PV 需要將範圍移至所需大小之前的可用空間。在您的情況下,範圍低於 409599。
首先,測試備份還原以確保必要時可以還原資料。
lvremove
您不需要的捲。
pvmove
允許透過 LV 名稱指定範圍,並使用 + 符號透過偏移量指定目標。提供目的地時,該目的地必須是 PV,而不是 VG。
將一個 LV 移動到可用空間中的第一個範圍。偏移量是被移動的段的大小。
pvmove --alloc anywhere -n lv_swap /dev/md125p2 /dev/md125p2:384000+1998
再次取得新的段佈局pvs -v --segments
。pvmove
使用不同的 LV 和新的可用空間起始範圍重複此操作。
就我個人而言,我更喜歡將資料 VG 與作業系統 VG 分開。但這是你的儲存空間,你可以隨意佈置。