我在 CentOS 5.5 上运行 Xen。我有一个很大的卷组,我使用 lvcreate 创建逻辑卷。今天我有一位客户取消了她的帐户,然后大约一个小时后改变了主意。不幸的是,我已经删除了她的 Xen 映像所在的 LVM。(仅使用标准 lvremove )。此后此磁盘上没有其他 LVM 活动(没有添加或删除其他任何内容)。是否可以“撤消”lvremove 或恢复逻辑卷?如果是这样,我将如何处理?
小智 18
“你能否更具体地从备份文件中找到 EFROM 和 ETO?所有 lv 在我的备份文件中都有一个从 0 开始的“start_extend”,所以我有点迷失了 :) 谢谢! – user186975 2013 年 8 月 24 日 17 点:06"
好的,我将非常具体......用最简单的方法来恢复逻辑卷。
例子:
1 - 我已经删除了我的逻辑卷!
$ sudo lvremove /dev/vg1/debian.root
Run Code Online (Sandbox Code Playgroud)
2 - 首先要做的是,在 /etc/lvm/archive/vg1_(xxxxx).vg 中查找存档文件。我可以做到这一点,只需查看我删除逻辑卷的日期!
$ sudo ls -l /etc/lvm/archive |more
Run Code Online (Sandbox Code Playgroud)
3-我找到了!
-rw------- 1 root root 16255 Mar 20 14:29 vg1_00223-235991429.vg
-rw------- 1 root root 16665 Mar 20 16:49 vg1_00224-748876387.vg
-rw------- 1 root root 17074 Mar 20 16:49 vg1_00225-931666169.vg
-rw------- 1 root root 17482 Mar 20 16:50 vg1_00226-1238302012.vg
-rw------- 1 root root 18081 **Mar 20 21:57 vg1_00227-2048533959.vg**
Run Code Online (Sandbox Code Playgroud)
我执行 lvremove 的日期!!!...这是几分钟前..
4 - 让我们看看文件!
$ sudo head /etc/lvm/archive/vg1_00227-2048533959.vg
*# Generated by LVM2 version 2.02.95(2) (2012-03-06): Thu Mar 20 21:57:58 2014
contents = "Text Format Volume Group"
version = 1
description = **"Created *before* executing 'lvremove /dev/vg1/debian.root'"**
creation_host = "server" # Linux server 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64
creation_time = 1395363478 # Thu Mar 20 21:57:58 2014*
Run Code Online (Sandbox Code Playgroud)
5 - 在恢复之前进行测试!
$ sudo vgcfgrestore vg1 --test -f /etc/lvm/archive/vg1_00227-2048533959.vg
Test mode: Metadata will NOT be updated and volumes will not be
(de)activated. **Restored volume group vg1**
Run Code Online (Sandbox Code Playgroud)
6 - 好的,现在重复命令行,没有 (--test)
$ sudo vgcfgrestore vg1 -f /etc/lvm/archive/vg1_00227-2048533959.vg
**Restored volume group vg1**
Run Code Online (Sandbox Code Playgroud)
7 - 检查它!
$ sudo lvscan |grep debian
ACTIVE '/dev/vg1/debian.root' [7,81 GiB] inherit
Run Code Online (Sandbox Code Playgroud)
8 - 如果逻辑不活跃,那就去做吧!
$ sudo lvchange -a y /dev/vg1/debian.root
Run Code Online (Sandbox Code Playgroud)
这就是全部
我希望这可以帮助正在寻找此解决方案的其他人!
3di*_*nce 14
LVM 确实将它的元数据备份到/etc/lvm/backup
和/etc/lvm/archive
。在每个文件的顶部,它会告诉您生成文件的时间/数据,因此您可能会拥有删除 LV 之前的旧元数据的副本。我相信只要元数据发生变化,备份就会自动进行。
以下可能是危险和破坏性的,所以要非常小心,如果可能的话,有一个完整的备份。
恢复这些卷组元数据备份的命令是vgcfgrestore
. 确保使用vgcfgbackup
带有 -f 标志的命令制作现有工作配置的当前副本,为输出指定不同的文件,这样就不会更改 /etc/lvm/backup 或 /etc 中的任何文件/lvm/archive 文件夹。确保将当前配置与要恢复的配置进行比较,以验证您将要应用的唯一更改是重新创建最近删除的 LV。对数据进行完整备份也可能不是一个坏主意。如果您签订了支持合同,您可能还需要考虑联系您的 Linux 供应商以获取支持/指导,然后再继续操作,因为我自己从来没有这样做过。
祝你好运。
小智 5
从 lvremove 恢复的最简单的方法(假设您没有写入 LV 所在的范围)是:
只需在 /etc/lvm/archive 中找到元数据的备份并找出
a) LV 驻留在 (EFROM, ETO) 的哪个范围内
b) 您的 LV 驻留在哪些 PV 以及它正在使用的 PV 上的哪些扩展(PFROM,PTO)
获得此信息后,您可以在完全相同的 PV 扩展上创建一个大小完全相同的新 LV,而无需擦除LV的前 8kB:
lvcreate --extents EFROM-ETO --zero n --name customer007 YOUR-VG-NAME /dev/yourpv:PFROM-PTO
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33529 次 |
最近记录: |