我正在尝试确定文件系统,想知道是否可以在不停机的情况下替换btrfs RAID中的故障驱动器。
假设我使用以下命令创建一个新的btrfs文件系统
mkfs.btrfs -d raid1 /dev/sdb /dev/sdc
现在假设有一天
/dev/sdc
失败了。有两种可能性:它可能会逐渐失败,显示SMART错误-在这种情况下,我可以使用添加新设备,btrfs device add /dev/sde /mnt; btrfs filesystem balance /mnt
然后使用删除旧设备btrfs device delete /dev/sdc /mnt
。但是,如果突然失败,变得无法读取...在这种情况下,Web搜索表明我必须首先卸载文件系统,以降级模式安装,添加新设备,然后删除丢失的设备。
umount /mnt mount -o degraded /dev/sdb /mnt btrfs device add /dev/sdf /mnt btrfs device delete missing /mnt
卸载显然是破坏性的操作,因此将导致停机-使用文件系统的任何应用程序都将遇到I / O错误。但是考虑到btrfs正在大量开发中,关于btrfs的这类“教程”看起来已经过时了。
问题是:考虑到btrfs的当前状态,是否可以在线进行此操作,即无需卸载?
如果没有,那么有一个仅软件的解决方案可以满足这一需求吗?
1
如果一个驱动器着火,则系统的其余部分也可能着火
—
Journeyman Geek
@JourneymanGeek逗你玩.. :)我只是想非常清楚地表明我的意思是灾难性,突发性和不可预测的故障-驱动器完全停止工作。这是很不常见的,硬盘通常会逐渐失效,并且通过有效的监视,我可以在此之前更换它们,但是,如果...
—
NothingsImpossible
在Linux 3.8
—
布莱恩(Brian)
btrfs replace mountpoint old_disk new_disk
中添加了。
@Brian woow ...那就是答案。我用Google搜索“ btrfs replace”,结果显示了lwn.net/Articles/524589。这是_exactly_什么,我一直在寻找。请发布它作为答案,以便我接受。
—
NothingsImpossible