请教一个问题,两块硬盘组成 lvm,假如一块硬盘损坏,另一块硬盘上的数据该如何读取/导出? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
yao990
V2EX    Linux

请教一个问题,两块硬盘组成 lvm,假如一块硬盘损坏,另一块硬盘上的数据该如何读取/导出?

  •  
  •   ya990 2018-07-12 22:41:25 +08:00 via Android 10103 次点击
    这是一个创建于 2667 天前的主题,其中的信息可能已经有所发展或是发生改变。
    26 条回复    2022-07-22 18:37:58 +08:00
    likuku
        1
    likuku  
       2018-07-12 22:55:27 +08:00
    LVM 缩放作的多,系统损毁以 LiveCD 挂载独立 LVM 也作过,

    可惜 PV 损毁这种没有实操过,建议可以 virtualBox 开个多虚拟硬盘的实例快速作个实验。
    msg7086
        2
    msg7086  
       2018-07-13 00:01:22 +08:00
    直接读啊,普通的 lvm 就是裸盘上面存数据再加点 meta data。
    你知道每个 LV 的位置的话直接 dd 出来就是分区。
    hellojinjie
        3
    hellojinjie  
       2018-07-13 00:17:19 +08:00 via Android
    lvm 有 strip 功能的吧,就是数据同时往两张盘写。和 raid0 一样, 一张盘坏了,估计数据就没了
    @msg7086
    msg7086
        4
    msg7086  
       2018-07-13 00:52:48 +08:00
    @hellojinjie 有,用了 md 条带的话没有办法的。所以我说 普通的 lvm 是可以的。
    yao990
        5
    yao990  
    OP
       2018-07-13 01:07:07 +08:00 via Android
    @likuku 等有机会吧,目前手头的机器暂时没条件让我试
    yao990
        6
    yao990  
    OP
       2018-07-13 01:08:29 +08:00 via Android
    @hellojinjie 这么恐怖?
    yao990
        7
    yao990  
    OP
       2018-07-13 01:09:12 +08:00 via Android
    @msg7086 那怎么区分普通 lvm 和用了 md 条带的 lvm ?
    msg7086
        8
    msg7086  
       2018-07-13 01:19:17 +08:00
    @yao990
    md 上的 lvm 直接看 lvm pv 所用的 md 设备类型即可。


    以及如果用 lvm 自带的 stripe 功能的话:

    https://sysadmincasts.com/episodes/27-lvm-linear-vs-striped-logical-volumes

    # lvs --segments
    LV VG Attr #Str Type SSize
    root vol_e27 -wi-a---- 8 striped 5.82t

    # lvdisplay -vm

    --- Segments ---
    Logical extent 0 to 1526183:
    Type striped
    Stripes 8
    Stripe size 256.00 KiB
    Stripe 0:
    Physical volume /dev/xvdb
    Physical extents 0 to 190772
    Stripe 1:


    #4 的回答有点问题。我原本记得 lvm 的条带用的是 md,似乎是记错了。他的条带应该是自己做的 mapper。
    likuku
        9
    likuku  
       2018-07-13 01:33:12 +08:00
    @yao990 家用虚拟机软件 virtualBox 快速装个 debian, 系统 8G 虚拟硬盘,1G 测试 pv x2,总计 10G 空间足以

    我自己手里电脑倒是真没条件测,硬盘只剩 5G 可用空间... Orz
    yao990
        10
    yao990  
    OP
       2018-07-13 01:35:16 +08:00 via Android
    @msg7086 我刚看了下我的机器,发现 type 是 linear,请问这是属于那种类型的?
    yao990
        11
    yao990  
    OP
       2018-07-13 01:37:08 +08:00 via Android
    @likuku,,,,,这个可以有,赶明试试
    msg7086
        12
    msg7086  
       2018-07-13 02:37:19 +08:00
    @yao990 普通。
    yao990
        13
    yao990  
    OP
       2018-07-13 09:04:49 +08:00 via Android
    @msg7086 那意思是不是说,就算其中一块盘不工作,直接挂上另一块,也能读取数据?
    msg7086
        14
    msg7086  
       2018-07-13 11:38:28 +08:00
    @yao990 只能挂载其中完整的分区。
    读取当然是可以的,但是如果文件系统不完整,就得扫描整块硬盘了。(类似分区被格式化后的样子)
    yao990
        15
    yao990  
    OP
       2018-07-13 14:50:03 +08:00 via Android
    @msg7086,,我这边的情况是,一个大分区占用了两个硬盘,换句话说,就是一旦有一块盘损坏,就需要扫描整块硬盘了?
    msg7086
        16
    msg7086  
       2018-07-13 15:24:41 +08:00
    @yao990 是的。原始数据是可以读出来的,但是因为少了一半的原始数据,你的文件系统报废了。如果丢了一半的文件系统,那就必须要找专业恢复公司花巨额资金做手工扫描恢复。
    yao990
        17
    yao990  
    OP
       2018-07-13 23:01:41 +08:00 via Android
    @msg7086 今天手贱,进行了一个操作,导致 xfs 文件系统损坏,先是用 lvreduce 命令将分区缩小至原来的一半,然后又用 lvextend 命令扩充至原来的大小,然后挂载,挂载可以正常挂载,当用 ls 列出文件时就提示无法打开目录,输入输出错误。
    yao990
        18
    yao990  
    OP
       2018-07-13 23:03:09 +08:00 via Android
    @msg7086 通过 df -h 可以看到,内部的数据都还在
    msg7086
        19
    msg7086  
       2018-07-13 23:27:37 +08:00
    @yao990 ermmm 没玩过这么高端的操作……
    df 只是读取元数据信息。
    数据应该都在,但是估计文件系统有错误。dd 备份完后做磁盘检查试试。
    yao990
        20
    yao990  
    OP
       2018-07-13 23:30:24 +08:00 via Android
    @msg7086 我尝试用 fsck,但提示要用 xfs_repair,然后使用 xfs_repair 时就提示设备忙。。。。已经确认卸载了,还提示忙。。
    msg7086
        21
    msg7086  
       2018-07-13 23:37:27 +08:00
    重启一下试试吧。另外如果是重要数据,切记先 dd 备份整块盘然后再操作。
    yao990
        22
    yao990  
    OP
       2018-07-13 23:43:26 +08:00 via Android
    @msg7086 不敢重启,因为主板和显示器不兼容,在没有进入系统前,显示器上会一直显示分辨率超出,一旦重启不能直接进入系统,那么就只能等有机会找到合适的显示器才能再进行下一步动作。另外,暂时没有能够存储所有数据的硬盘。。。。。。。。。这可真是尴尬。。。
    msg7086
        23
    msg7086  
       2018-07-14 00:36:00 +08:00
    ermmm 爱莫能助,祝你好运……
    yao990
        24
    yao990  
    OP
       2018-07-14 00:40:53 +08:00 via Android
    @msg7086 谢谢,我刚才尝试了 xfs_repair 等一系列命令,无一例外,都是输入输出错误,还不能重启,愁啊愁
    morningtzh
        25
    morningtzh  
       2022-05-24 23:18:32 +08:00
    本来打算把 nas 转成 lvm 的,第一步就是看看某磁盘损坏怎么办。楼主给了我答案。不知道最后解决了没
    aqidesign
        26
    aqidesign  
       2022-07-22 18:37:57 +08:00
    我的 nas 目前是采用最普通的办法,单个磁盘管理,再多地冷备份,单个盘坏了就坏了吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5180 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:30 PVG 15:30 LAX 00:30 JFK 03:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86