首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vgcfgrestore获得:设备-mapper:重新加载ioctl on (254:19)失败:没有数据可用

vgcfgrestore获得:设备-mapper:重新加载ioctl on (254:19)失败:没有数据可用
EN

Server Fault用户
提问于 2020-01-29 16:10:17
回答 1查看 1.6K关注 0票数 1

服务器有几个卷的瘦LVM:

代码语言:javascript
复制
vm-130-disk-0 - was deleted and need to be restored.
vm-137-disk-0 - was NOT deleted.

尝试还原在删除之前创建的/etc/lvm/00336/pve_00336-2034680334.vg:

代码语言:javascript
复制
# vgcfgrestore --force --file /etc/lvm/archive/pve_00336-2034680334.vg pve
# vgimport pve
# lvchange -ay /dev/pve/vm-130-disk-0
      Thin pool pve-data-tpool (254:6) transaction_id is 324, while expected 311.
      ...

# lvs -a              
  LV              VG   Attr       LSize   Pool Origin Data%  Meta%
  data            pve  twi---tz--   1.57t      # NOT activated pool data
  [data_tdata]    pve  Twi-a-----   1.57t      # OK  a=Activated
  [data_tmeta]    pve  ewi-a-----  16.00g      # OK  a=Activated                                              
  root            pve  -wi-a-----  10.00g      # OK  a=Activated                                 
  vm-130-disk-0   pve  Vwi---tz--  32.00g data # NOT activated deleted volume
  vm-137-disk-0   pve  Vwi---tz--  22.00g data # NOT activated non-deleted volume
  ...

在这里,我们失败了,因为tmeta和tpool之间的事务不匹配。大多数在互联网上回答的人都有镜像情况: tpool=312和tmeta=324,看起来像.vg文件中的transaction_id修复帮助他们。让我们尝试修复.vg文件并激活:

代码语言:javascript
复制
Changed by hands transaction_id from 311 to 324 in /etc/lvm/archive/pve_00336-2034680334.vg ..

# vgcfgrestore --force --file /etc/lvm/archive/pve_00336-2034680334.vg pve
# vgimport pve
# lvchange -ay /dev/pve/vm-130-disk-0
   device-mapper: reload ioctl on (254:19) failed: No data available

In debug log appears: pve-vm--130--disk--0: Skipping NODE_DEL [trust_udev]

# lvs -a
  LV              VG   Attr       LSize   Pool Origin Data%  Meta%
  data           pve  twi-aotz--   1.57t             5.86   0.44  # OK
  [data_tdata]   pve  Twi-a-----   1.57t                          # OK                      
  [data_tmeta]   pve  ewi-a-----  16.00g                          # OK                      
  root           pve  -wi-a-----  10.00g                          # OK                      
  vm-130-disk-0  pve  Vwi---tz--  32.00g data                     # NOT activated deleted volume
  vm-137-disk-0  pve  Vwi-a-tz--  22.00g data        67.91        # OK activated non-deleted volume
  ...

删除卷的“无数据可用”。悲伤的。AFAIK有transaction_id=324,我需要将tpool回滚到312。不知道怎么做。

我能用什么来激活pve/vm-130-disk-0?

代码语言:javascript
复制
# lvm version
  LVM version:     2.02.168(2) (2016-11-30)
  Library version: 1.02.137 (2016-11-30)
  Driver version:  4.35.0

# uname -a
Linux adminslotlogicrestoreasap 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux

感谢您的阅读!如有任何建议,我将不胜感激。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-01-31 17:48:42

瘦LVM存档文件/etc/lvm/ files /*..vg在段中没有物理范围,但只有device_ids。存储在LVM元数据中的块设备上的device_ids和物理范围之间的映射,可以从非活动池中转储:

代码语言:javascript
复制
vgimport pve
lvchange --yes -ay pve/data_tmeta
thin_dump  /dev/mapper/pve-data_tmeta -o thin_dump_pve-data_tmeta.xml
lvchange       -an pve/data_tmeta

感谢lvremove,您可以看到没有被删除的device_ids。

因此,在描述的情况下,不可能进行微弱的恢复。

另见开发人员反馈(2014年年)

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1000936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档