“单”模式下磁盘故障后 BTRFS 能否恢复/继续?

LVL*_*ron 5 btrfs

第一次测试btrfs,看看是否可以将其用于特定项目。

我在虚拟机中工作。

  1. 使用这 3 个大小随机的小型磁盘创建了一个卷。

    mkfs.btrfs -d single /dev/sdb /dev/sdc /dev/sdd
    mount /dev/sdb /mnt/data
    
    Run Code Online (Sandbox Code Playgroud)
  2. 添加另一个设备只是为了测试

    btrfs device add /dev/sde /mnt/data 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建一堆 1GB 文件来填满磁盘

    dd if=/dev/urandom of=1GB_07.bin bs=64M count=16 iflag=fullblock
    
    Run Code Online (Sandbox Code Playgroud)
  4. 我从虚拟机中删除了其中一个磁盘并重新启动

  5. 我能够以只读模式强制安装

    mount -ro degraded /dev/sdb /mnt/data
    
    Run Code Online (Sandbox Code Playgroud)

我可以看到所有文件。我尝试将它们同步到另一个目录,但无法复制我创建的 1G 文件之一。有道理,它在丢失的磁盘上!

从这里开始,有没有一种方法可以“废弃”丢失的磁盘及其上的文件,并使事物再次以读/写模式运行?我只是想将一个盒子与一堆随机大小的磁盘拼凑在一起。冗余对我来说并不重要,而且我不希望在这个盒子上镜像数据的开销。

如果我丢失了包含一些数据的驱动器,我只想替换/删除它并从源重新同步以获取 BTRFS 计算机上丢失文件的新副本。

那有意义吗?这可能吗?

Tom*_*ale -1

要将故障设备替换为工作设备,请使用btrfs replace,例如

btrfs replace start -r /dev/failed-dev /dev/new-dev /mountpoint
Run Code Online (Sandbox Code Playgroud)

监视

btrfs replace status /mountpoint
Run Code Online (Sandbox Code Playgroud)