最近一直想整一个磁盘阵列,然后看见角落里吃灰的树莓派,看着4个空空的USB口有点感慨,于是就突发奇想着在树莓派上用4个U盘来做磁盘阵列
这里我选用的是台电很便宜的64G U盘,淘宝上25块就能弄到一个,我买了4个(反正U盘坏了也可以保修)
磁盘阵列最大的好处就是某个设备坏了数据不会丢失,替换损坏的设备就可以继续正常使用
在多次测试后我最终选择了比较保守的RAID5,4个U盘组成磁盘阵列后实际可用大小是3个U盘容量的总和,就是176G,磁盘格式选择exfat,经过测试在这个U盘上exfat的实际速度会比其他格式高
开始搭建磁盘阵列
进入超级用户模式
这个不多说
sudo su
安装组件
首先我们来安装mdadm以及exfat所需要的组件
apt install mdadm exfat-utils exfat-fuse -y
确定需要组成阵列的磁盘
我们用lsblk
这条命令来确定需要组阵列所需要的磁盘
如上图,我要使用的4个U盘名字分别为sda、sdb、sdc、sdd
创建阵列
这里使用上面得到的名字来创建RAID5阵列,如果你想创建RAID0、RAID1、RAID6、RAID10,只需要修改level的值为0、1、6或10即可。
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd -c 512
当系统提示mdadm: array /dev/md0 started.
时,阵列就创建成功了,我们可以使用cat /proc/mdstat
命令查看结果
分区并格式化阵列
阵列组好了,接下来就是分区格式化和挂载等操作了,我们先来分区
fdisk /dev/md0
n
p
1
w
使用
lsblk
查看分区是否成功然后格式化,这里我们将分区格式化成exfat格式
mkfs.exfat /dev/md0p1
如果你的存储设备性能比较高,可以用下面命令格式化成f2fs,当然后面设置开机挂载的时候也需要做对应的修改
apt install f2fs-tools -y
mkfs.f2fs /dev/md0p1
测试挂载
我们新建一个文件夹/mnt/md0
用于挂载
mkdir -p /mnt/md0
mount /dev/md0p1 /mnt/md0
挂载后可以使用df -Th
查看挂载状态
保存阵列布局
不知道怎么解释…保存就对了
mdadm --detail --scan | tee -a /etc/mdadm/mdadm.conf
update-initramfs -u
开机自动挂载阵列
这里我们开机后将阵列挂载到/mnt/md0
目录,可以自行修改,重启后使用df -h
测试是否挂载成功
echo '/dev/md0p1 /mnt/md0 exfat defaults,nofail,discard 0 0' | tee -a /etc/fstab
到此,磁盘阵列搭建结束,我们可以使用samba挂载,samba的搭建可以参考我的笔记https://note.ito.fun/archives/20.html,不详细叙述
我将其挂载到了本地磁盘,美滋滋
删除或重建阵列
想重建阵列的时,先删除之前建立的分区
fdisk /dev/md0
d
w
使用
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
命令查看设备文件系统的状态,记下FSTYPE
为linux_raid_member
的设备的设备名,卸载md0,停止阵列,最后清除RAID数据我这里是四个盘,按下面命令清除
umount /dev/md0p1
mdadm --stop /dev/md0
mdadm --zero-superblock /dev/sda
mdadm --zero-superblock /dev/sdb
mdadm --zero-superblock /dev/sdc
mdadm --zero-superblock /dev/sdd
最后删除/etc/mdadm/mdadm.conf
和/etc/fstab
中对应本次删除阵列的相关信息,运行一下update-initramfs -u
,然后重新开始建立阵列即可
坏盘处理
将坏盘设为故障状态
当有一块硬盘损坏后,我们需要插入新盘并rebuild,假设出问题的盘为sda,我们先用下面命令将sda设为故障
mdadm /dev/md0 --set-faulty /dev/sda
移除故障盘
mdadm /dev/md0 --remove /dev/sda
添加新盘
mdadm /dev/md0 --add /dev/sda
新盘添加后阵列会自动rebuild,可以使用mdadm --detail /dev/md0
查看rebuild进度
后记
发热量有点大…最后还是加了个集线器,散热会好一点