在LVM中恢復已刪除的物理卷
導讀 | 本文中將詳細介紹如何從已刪除的物理卷或故障磁碟場景中恢復。 |
8
下面使用了
/dev/sd[a-c]
三塊磁碟,將他們劃入一個卷組,建立兩個邏輯卷:
# Create pv [root@localhost ~]# pvcreate /dev/sda [root@localhost ~]# pvcreate /dev/sdb [root@localhost ~]# pvcreate /dev/sdc # Create VG [root@localhost ~]# vgcreate vg_data /dev/sd[a-c] # Create LV [root@localhost ~]# lvcreate -L 25G -n lv_data vg_data [root@localhost ~]# lvcreate -L 25G -n lv_log vg_data
下面列出邏輯卷的分配使用資訊:
[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p2 cl lvm2 a-- <19.00g <2.00g /dev/sda vg_data lvm2 a-- <20.00g 0 /dev/sdb vg_data lvm2 a-- <20.00g <9.99g /dev/sdc vg_data lvm2 a-- <20.00g 0 [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <19.00g <2.00g vg_data 3 2 0 wz--n- <59.99g <9.99g [root@localhost ~]# lvs -a -o +devices LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices root cl -wi-ao---- 15.00g /dev/nvme0n1p2(512) swap cl -wi-ao---- 2.00g /dev/nvme0n1p2(0) lv_data vg_data -wi-a----- 25.00g /dev/sda(0) lv_data vg_data -wi-a----- 25.00g /dev/sdb(0) lv_log vg_data -wi-a----- 25.00g /dev/sdc(0) lv_log vg_data -wi-a----- 25.00g /dev/sdb(1281)
在根目錄建立兩個資料夾/data和/log,格式化邏輯卷,掛載邏輯卷,並存放一些資料:
[root@localhost ~]# mkdir /data /logs [root@localhost ~]# mkfs.xfs /dev/vg_data/lv_data [root@localhost ~]# mkfs.xfs /dev/vg_data/lv_log [root@localhost ~]# mount /dev/vg_data/lv_data /data [root@localhost ~]# mount /dev/vg_data/lv_log /data [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 880M 0 880M 0% /dev tmpfs 897M 0 897M 0% /dev/shm tmpfs 897M 8.7M 888M 1% /run tmpfs 897M 0 897M 0% /sys/fs/cgroup /dev/mapper/cl-root 15G 1.9G 14G 13% / /dev/nvme0n1p1 976M 183M 726M 21% /boot tmpfs 180M 0 180M 0% /run/user/0 /dev/mapper/vg_data-lv_log 25G 211M 25G 1% /data [root@localhost ~]# touch /data/file{1..10}.txt [root@localhost ~]# touch /logs/text{1..10}.log
這兩種情況是意外刪除的物理卷或發生故障的磁碟,透過執行pvremove 刪除了任何一個物理卷,或者從虛擬機器中移除某一塊物理磁碟。
下面從虛擬機器中移除一塊物理磁碟:
重啟系統之後,發現不能掛載lv_data和lv_log邏輯捲了,/dev目錄中找不到
vg_data
卷組。
如果該邏輯卷設定為開機自動啟動了,磁碟發生故障後,由於兩個邏輯卷無法掛載檔案系統,因此重新引導不能進入系統。只能透過進入單使用者模式,並註釋
fstab
配置檔案裡面和該邏輯卷相關的條目。
下面從虛擬機器中新增一個新的物理磁碟,新新增的磁碟會變成/dev/sdc
[root@localhost ~]# lsblk -S NAME HCTL TYPE VENDOR MODEL REV TRAN sda 6:0:0:0 disk VMware, VMware Virtual S 1.0 spi sdb 6:0:2:0 disk VMware, VMware Virtual S 1.0 spi sdc 6:0:3:0 disk VMware, VMware Virtual S 1.0 spi sr0 3:0:0:0 rom NECVMWar VMware SATA CD01 1.00 sata
現在讓我們開始為已刪除的物理卷恢復後設資料。當使用pvs,vgs,lvs
時,它將警告缺少xxxxx UUID的裝置之一。
只需複製UUID並使用grep檢視存檔和備份。在進行重新引導之前,報告的UUID指的是/dev/sdb裝置。
[root@localhost ~]# cat /etc/lvm/archive/vg_data_00002-1587647360.vg |grep -B 2 -A 9 "v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD" pv1 { id = "v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD" device = "/dev/sdb" # Hint only status = ["ALLOCATABLE"] flags = [] dev_size = 41943040 # 20 Gigabytes pe_start = 2048 pe_count = 5119 # 19.9961 Gigabytes } [root@localhost ~]# cat /etc/lvm/backup/vg_data |grep -B 2 -A 9 "v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD" pv1 { id = "v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD" device = "/dev/sdb" # Hint only status = ["ALLOCATABLE"] flags = [] dev_size = 41943040 # 20 Gigabytes pe_start = 2048 pe_count = 5119 # 19.9961 Gigabytes }
讓我們先使用
pvcreate --test
進行試執行:
[root@localhost ~]# pvcreate --test --uuid "v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD" --restorefile /etc/lvm/archive/vg_data_00002-1587647360.vg /dev/sdc TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated. Couldn't find device with uuid l5rSrt-SRfc-KQNw-Tm29-gx4D-ihBw-Xzum3L. Couldn't find device with uuid v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD. Couldn't find device with uuid UYyDyH-vc6D-XbQ7-ga1X-DKeM-ObLe-tdBLxR. Physical volume "/dev/sdc" successfully created.
- --test 試執行
- --uuid 用於指定新建立的物理卷的uuid值。如果沒有此選項,將生成隨機UUID。在本實驗中指定的uuid值是之前刪除物理卷的uuid值。
- --restorefile 讀取由vgcfgbackup生成的存檔檔案
去掉
--test
選項,正式建立物理卷:
[root@localhost ~]# pvcreate --uuid "v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD" --restorefile /etc/lvm/archive/vg_data_00002-1587647360.vg /dev/sdc Couldn't find device with uuid l5rSrt-SRfc-KQNw-Tm29-gx4D-ihBw-Xzum3L. Couldn't find device with uuid v6wYGZ-0dGA-8ecB-kec8-r2zv-gCJi-gulSAD. Couldn't find device with uuid UYyDyH-vc6D-XbQ7-ga1X-DKeM-ObLe-tdBLxR. Physical volume "/dev/sdc" successfully created. [root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p2 cl lvm2 a-- <19.00g <2.00g /dev/sda vg_data lvm2 a-- <20.00g 0 /dev/sdb vg_data lvm2 a-- <20.00g 0 /dev/sdc vg_data lvm2 a-- <20.00g <9.99g [root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree cl 1 2 0 wz--n- <19.00g <2.00g vg_data 3 2 0 wz--n- <59.99g <9.99g [root@localhost ~]# lvs -o +devices LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices root cl -wi-ao---- 15.00g /dev/nvme0n1p2(512) swap cl -wi-ao---- 2.00g /dev/nvme0n1p2(0) lv_data vg_data -wi-a----- 25.00g /dev/sda(0) lv_data vg_data -wi-a----- 25.00g /dev/sdc(0) lv_log vg_data -wi-a----- 25.00g /dev/sdb(0) lv_log vg_data -wi-a----- 25.00g /dev/sdc(1281)
然後使用lvm的備份還原卷組。首先加入
--test
試執行一下:
[root@localhost ~]# vgcfgrestore --test -f /etc/lvm/backup/vg_data vg_data TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated. Volume group vg_data has active volume: lv_log. Volume group vg_data has active volume: lv_data. WARNING: Found 2 active volume(s) in volume group "vg_data". Restoring VG with active LVs, may cause mismatch with its metadata. Do you really want to proceed with restore of volume group "vg_data", while 2 volume(s) are active? [y/n]: y Restored volume group vg_data.
下面正式執行一下,去掉
--test
選項:
[root@localhost ~]# vgcfgrestore -f /etc/lvm/backup/vg_data vg_data Volume group vg_data has active volume: lv_log. Volume group vg_data has active volume: lv_data. WARNING: Found 2 active volume(s) in volume group "vg_data". Restoring VG with active LVs, may cause mismatch with its metadata. Do you really want to proceed with restore of volume group "vg_data", while 2 volume(s) are active? [y/n]: y Restored volume group vg_data.
如果卷組和邏輯卷未啟用,請使用下面命令啟用:
# 掃描卷組 [root@localhost ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "cl" using metadata type lvm2 Found volume group "vg_data" using metadata type lvm2 # 啟用卷組vg_data [root@localhost ~]# vgchange -ay vg_data 2 logical volume(s) in volume group "vg_data" now active # 掃描邏輯卷 [root@localhost ~]# lvscan ACTIVE '/dev/cl/swap' [2.00 GiB] inherit ACTIVE '/dev/cl/root' [15.00 GiB] inherit ACTIVE '/dev/vg_data/lv_data' [25.00 GiB] inherit ACTIVE '/dev/vg_data/lv_log' [25.00 GiB] inherit
在lvm中,需要執行一些步驟來恢復已刪除的物理卷,方法是新增新磁碟並用現有UUID指向新磁碟。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2769919/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在LVM中恢復已刪除的邏輯卷LVM
- 介紹如何從LVM的卷組中刪除物理卷LVM
- 如何使用 testdisk 恢復已刪除的檔案
- hbase 恢復 誤刪除
- NTFS刪除及恢復
- linux snapper/lvm2卷 建立、備份與恢復LinuxAPPLVM
- 【伺服器資料恢復】伺服器誤刪除卷怎麼恢復資料伺服器資料恢復
- Git恢復被刪除的分支Git
- Git恢復刪除的檔案Git
- Win10系統怎麼恢復已刪除的遊戲Win10遊戲
- 刪除的微信聊天記錄怎麼恢復?(已解決)
- EMC UNITY 400儲存卷刪除資料恢復操作過程Unity資料恢復
- 伺服器誤刪除卷資料恢復成功率分析伺服器資料恢復
- 【伺服器資料恢復】AIX環境下誤刪除邏輯卷的資料恢復方案伺服器資料恢復AI
- 行動硬碟刪除的檔案能恢復嗎,怎麼恢復硬碟刪除的檔案硬碟
- LVM分割槽恢復LVM
- 磁碟誤刪卷資料恢復工具資料恢復
- sd卡中的資料夾刪除了怎麼恢復,SD卡刪除的檔案如何恢復SD卡
- 伺服器資料恢復—EMC儲存資料卷被誤刪除如何恢復資料?伺服器資料恢復
- oracle使用小記、刪除恢復Oracle
- 如何恢復被刪除的 GitLab 專案?Gitlab
- MySQL 如何重建/恢復刪除的 sys SchemaMySql
- Shift + Delete刪除的檔案如何恢復?delete
- [20210803]刪除user$的恢復準備.txt
- [20210930]bbed恢復刪除的資料.txt
- sd卡刪除的檔案如何恢復SD卡
- [20190130]刪除tab$記錄的恢復.txt
- 在Linux中,如何使用LVM管理邏輯卷?LinuxLVM
- 華為暢享9怎麼找回刪除的相片?華為暢享9恢復已刪除照片的方法教程
- Oracle 檔案意外刪除恢復(Linux)OracleLinux
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- 相機sd卡刪除的照片如何恢復SD卡
- U盤的東西刪除了怎麼恢復,怎麼恢復U盤刪除的檔案
- 【NetApp資料恢復案例】針對NetApp誤刪除資料的恢復APP資料恢復
- linux 磁碟分割槽掛載-LVM-物理卷PV,卷組VG,邏輯卷LVLinuxLVM
- google書籤刪除了怎麼恢復?谷歌瀏覽器刪除的書籤怎麼恢復?Go谷歌瀏覽器
- 【儲存資料恢復】NetApp儲存誤刪除的資料恢復案例資料恢復APP
- iPhone刪除的照片能恢復嗎?蘋果手機照片怎麼恢復iPhone蘋果