使用btrfs组建RAID1
最近在折腾 syncthing
这个 P2P 的私人云盘,原本是在vps上搭建了一个,但是考虑到vps的数据也不安全,于是还是决定把数据
保存在本地。但是由于单块硬盘是不可靠的,因此需要组一个RAID。
对于个人来说,数据安全且划算的方案就是RAID1了。RAID1就是两块硬盘进行计算,因此需要两块硬盘,其中一块损毁,数据仍然安全, 如果想要提高数据安全程度,则可以加一个备份,不过对于我来说,两块硬盘已经够了,如果有这么背那只能认了(其实最好能有一个 异地备份,但还是算了吧)。
我的笔记本上共有三块硬盘,sda
, sdb
, sdc
。其中 sdb
是系统盘,文件系统是btrfs,sda
是一块 mSATA
接口的数据盘,
由于是一块非常老的SSD,容量也比较小,我用来存储虚拟机的镜像,因为相对来说,虚拟机没有那么重要,数据损坏了损失也不大,
sdc
是一块hdd。因此我决定使用 sdb
和 sdc
来组RAID1。
这是执行的命令:
$ sudo btrfs device add -f /dev/sdc / # 把sdc加入到 `/` 上。`sdb` 挂载的路径就是 `/`
$ sudo btrfs device usage / # 查看一下使用情况
$ sudo btrfs balance start -dconvert=raid1 -mconvert=raid1 / # 开始做raid1
其中第三步需要等待一段时间。不过做完之后发现磁盘写入速度被hdd拖慢了,因此下单买了一块ssd,等到货之后把 sdc
卸了,
重新组RAID1,这个过几天再记录一下。
2019.04.05更新:
$ sudo btrfs balance start -f -mconvert=single -dconvert=single / # 把/转换为单盘,如果有多块盘,则不需要执行这一步
$ sudo btrfs device delete /dev/sdb / # 把 /dev/sdb 从 / 删除
比较好的一点是,btrfs支持不同大小的磁盘组RAID1,并且能充分利用两块磁盘的大小,这一点我觉得非常好,不过数据超过最小的盘 之后如果数据损坏会怎样,这个目前还没有查到结论。
更多文章
本站热门
- socks5 协议详解
- zerotier简明教程
- 搞定面试中的系统设计题
- frp 源码阅读与分析(一):流程和概念
- 用peewee代替SQLAlchemy
- Golang(Go语言)中实现典型的fork调用
- DNSCrypt简明教程
- 一个Gunicorn worker数量引发的血案
- Golang validator使用教程
- Docker组件介绍(二):shim, docker-init和docker-proxy
- Docker组件介绍(一):runc和containerd
- 使用Go语言实现一个异步任务框架
- 协程(coroutine)简介 - 什么是协程?
- SQLAlchemy简明教程
- Go Module 简明教程