修復lvm的邏輯卷


一、背景
公司傳統的服務器不知道什么朝代的朝臣用lvm分區,1T的硬盤分了50G掛載到根目錄“/”里面有/var、/usr……,剩下的掛載到了“/home"目錄,邏輯卷組一點都不剩。后面用docker的時候容器鏡像一股腦兒到了/var/lib/docker。空間嚴重不足,在萬分緊急的情況下,我機智地削了home目錄的空間,在沒有卸載的情況下增加了根目錄的空間。因為當初是直接掛載到根目錄的,所以var目錄沒辦法分開。
我按照擴容的步驟來做,先卸載,umount,然后lvreduce,然后resize2fs。根目錄所在的邏輯卷只能在線擴容,不umount,直接lvextend,然后resize2fs。一切正常,但是home邏輯卷的數據不正確,其他正常使用,我就不管他了。
二、服務器正常啟動
后來,個別目錄執行失敗,我重啟服務器。很久ssh都連不上,估計服務器啟動失敗,我趕緊跑去機房在本機登錄,想改了fstab.conf文件,好讓服務器起碼正常啟動,然后我再ssh操作。但是沒權限。
1、重新掛載: mount -o remount,rw /
2、然后可以:vi /etc/fstab,不然fstab是制度文件。然后注釋掉home目錄的掛在信息。
三、恢復home的正常使用
我先嘗試掛載,看看有沒有什么錯誤再試試修復。
1、查看服務器上面的lv信息:lvscan
2、嘗試掛載: mount /dev/VolGroup/lv_home /home
報這個錯誤:
mount: wrong fs type, bad option, bad superblock on /dev/mapper/VolGroup-lv_home,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
3、確定錯誤類型: dmesg | tail
EXT4-fs (dm-2): bad geometry: block count 226699264 exceeds size of device (200484864 blocks)
錯誤類型是文件系統塊數超過設備塊數。
主要的錯誤來自於我再縮小邏輯卷空間的時候沒有事先縮小文件系統。這是個致命的錯誤。
4、構思
網上很多兄弟都說數據肯定沒了,特別是我這種邏輯卷組已經沒有空間給我還原之前的大小。后來綜合了網上的資料和同僚討論,拿一個移動硬盤去做成pv,加入vg。再按量分給home邏輯卷組,就掛上home盤,然后再按照正確的順序把移動硬盤騰出來。這里我在騰訊互移動硬盤的時候先把home掛載上去,主要是不知道后面的操作風險多大,先把資料備份出來。
5、恢復操作
a、插入移動硬盤,執行fdisk -l|tail查看磁盤信息。
可以看到sdb一有已經建好的分區,提供直接使用。
b、創建物理卷,pvcreate /dev/sdb1
c、加入邏輯卷組, vgextend VolGroup /dev/sdb1
d、查看信息。vgs
vg已經像計划中變大。
e、擴大home邏輯卷。lvextend -L +55G /dev/mapper/VolGroup-lv_home
實質上是恢復home原有的容量。
f、把home掛在起來。mount /dev/mapper/VolGroup-lv_home /home
資料全部都在,有些文件夾損壞。趕緊備份數據了,后面還有更高風險的操作。
四、移除移動硬盤
1、卸載home盤。umount /home
沒報錯。
2、查看pv的使用情況。pvscan
3、檢查修復損壞的邏輯卷。e2fsck -f -y /dev/mapper/VolGroup-lv_home
4、縮小文件系統。resize2fs -p /dev/mapper/VolGroup-lv_home 500G
壓縮成功。
5、縮小邏輯卷。lvreduce -L 500G /dev/mapper/VolGroup-lv_home
6、移除pv。vgreduce VolGroup /dev/sdb1
7、檢查有沒有移除成功了。vgs&&lvs&&pvs
以上看來,移除都操作全部順利
8、銷毀物理卷。pvremove /dev/sdb1
9、復檢物理卷。pvs
沒有/dev/sdb1,我就放心拔移動硬盤了。
10、測試自動掛載。mount -a
五、總結
其實就一個簡單的步驟,既然磁盤有問題,那就回復原來的狀態,沒什么問題。但是,我這里的情況是,reduce了空間,又extend了/root,然后只能借助外力了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM