1. 程式人生 > >記一次LVM修復過程

記一次LVM修復過程

frp lvg dom open free cati suspend .html lvextend

進行以下操作前好好搜搜資料,我提供的資料只是供參考理解。數據很重要!!!

寫在前面:創建lv的時候,建議在pv上留一些空間。

關鍵屬於:pv 物理卷,vg 卷組, lv邏輯卷。

也就是說:lvm把一堆硬盤組成一個硬盤組,然後再上面再進一步分邏輯卷。好處是擴展方便。壞處就是我遇到的壞處。

問題:擴展lv的時候執行了lvextend -l +100%FREE /dev/VolGroup00/lvData,也就是說把剩余空間全用了。但是關機重啟,磁盤容量丟了幾兆。導致lv大於pv了。然後dmsg報錯

device-mapper: table: 253:2: sdc1 too small for target: start=2048, len=10584064, dev_size=10474317

lvdisplay狀態變為suspended

--- Logical volume ---
LV Path /dev/vgdata/lvdata1
LV Name lvdata1
VG Name vgdata
LV UUID VV7z79-6d1K-cwQL-4ope-okCh-zehp-BTz9dz
LV Write Access read/write
LV Creation host, time localhost, 2017-10-20 23:51:17 +0800

LV Status suspended
# open 0
LV Size 5.05 GiB
Current LE 1292
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2

解決辦法:

參考這個裏面恢復

http://blog.sina.com.cn/s/blog_5f2e119b0102vxxo.html,不過如果物理空間真的不足了,就只能像下面那樣修改lv的大小,讓pv的大小大於lv的大小。但是會丟失lv縮小的空間的數據。如果說縮小的空間正好就是lv上還沒用的空間,那數據不會丟。否則的話數據就丟了。

慎重慎重!關鍵數據最好先備份出來。

修改/etc/lvm/backup/xxx

physical_volumes {

pv0 {
id = "NLI0CN-hDpT-ibnA-lBBb-wiIw-pw5J-r9xROX"
device = "/dev/sdb1" # Hint only

status = ["ALLOCATABLE"]
flags = []
dev_size = 2341987767 # 1.09057 Terabytes
pe_start = 2048
pe_count = 285886 # 1.09057 Terabytes
}

pv1 {
id = "MbGTeT-KDeK-GUkx-nwMI-AsRk-LvgP-RVfrPX"
device = "/dev/sda3" # Hint only

status = ["ALLOCATABLE"]
flags = []
dev_size = 1627551744 # 776.077 Gigabytes
pe_start = 2048
pe_count = 198675 # 776.074 Gigabytes
}
}

logical_volumes {

lvData {
id = "ib51Nb-UbL7-dnbZ-XQg2-MpPu-Anf7-PgQxjx"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
creation_host = "localhost.localdomain"
creation_time = 1442582041 # 2015-09-18 21:14:01 +0800
segment_count = 2

segment1 {
start_extent = 0
extent_count = 285886 # 1.09057 Terabytes

type = "striped"
stripe_count = 1 # linear

stripes = [
"pv0", 0
]
}

記一次LVM修復過程