清雨影的Blog
  • README
  • 机器学习
    • 一般话题
      • 再谈正则化项
      • 论文阅读:“快把卷积神经网络中的平移不变性带回来”
      • 半监督/无监督学习收集
      • 收藏夹
    • 推荐系统
      • Understanding LightGCN in a visualized way
      • Learning To Rank 之 RankNet
      • 随想: BPR Loss 与 Hinger Loss
      • 关于AA测试和AB测试的一些思考
      • 无采样的矩阵分解
      • 收藏夹
    • 强化学习
      • Re:从零开始的Multi-armed Bandit
  • 高级物理引擎实战指南笔记
    • 弹簧质点系统
    • 光滑粒子法
    • 专题:线性方程组求解
  • 有限单元法
    • 1. 引论
    • 2. 基于直接刚度法的杆系有限元方法
    • 3. 针对复杂几何形状变形体的力学描述(1)
  • Web开发相关技术
    • JWT简介
  • 技术杂文
    • React-Script转Vite时引用路径的问题
    • Let's encrypt -- 让我们一起愉快的使用HTTPS
    • 干掉吸血雷,重塑和谐P2P环境
    • 开源CAN总线信号可编程台架
    • Linux下利用mdadm设置软件 RAID
    • 互不联网时代的自给自足
    • 为什么我劝你不要使用云计算?
    • 科学的公司内网连接技术选型
    • 构建家用NAS过程中的碎碎念
    • 简易的Linux迁移指北
    • 记录一次rsync命令引起的异常
    • 为FFMPEG添加Intel QSV支持
    • 备忘录
    • 福冈外免切替(中国驾照换日本驾照)攻略
    • 记一个离谱的MySQL语句的性能问题
    • 拯救变砖的OpenWRT路由器
    • 使用FRP进行内网穿透
  • 政治不正确
    • 吃屎系列:资本家如何喂员工吃屎
      • 华为251事件记忆
    • 吃屎系列:资本家如何喂用户吃屎
      • 互不联网公司是如何强奸用户的(持续更新)
    • 吃屎系列:大学如何喂学生吃屎
    • 推荐系统如何让我们变得极端
    • 互联网政治圈观察日志
    • 中国网络防火长城简史
    • 《线性代数》(同济版)——教科书中的耻辱柱
    • 杂谈
      • 访谈:为什么毛泽东时代工人的积极性很高?
      • 90年代到21世纪初的商业环境
    • 为什么不应该用国产手机
    • “救救孩子”
  • 随园食单
    • ボロネーゼ
    • 甜酒酿的制作
    • 香草与香料
    • 皮塔饼
    • 韭菜鸡蛋饼
    • 牛肉蔬菜汤
由 GitBook 提供支持
在本页
  • 前言
  • 设置方式
  • 现实支持的分区特性和当前的MD设备
  • 对挂好的硬盘分区并且格式化
  • 设置RAID
  • 后续处理
  • 查看现在的状态
  • 灾后重建
  • 后记

这有帮助吗?

  1. 技术杂文

Linux下利用mdadm设置软件 RAID

前言

RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列),可以用多个小硬盘组成大硬盘,也可以用来容错。 由于机械硬盘的损坏存在相当大的不确定性,而两块硬盘一起损坏的概率不高,所以我们可以用MDADM做一个软件RAID。 手上正好有两块1T的硬盘和一块3T的硬盘(不过都是移动硬盘),全部连接到主机上!

决定给两块1T设置一个软件RAID1,存放一些重要资料,3T的硬盘放一些不是很重要的资料。 其实也可以将2块1T的硬盘设置为RAID0,记作分区A,随后在3T硬盘上分出一个2T的分区,记作分区B,将A和B再组装成RAID1。这样就是2T存放重要资料的空间和1T不重要资料的空间。 不过我手上不重要的视频,电影等等比较多,动漫又全部做了蓝光备份,所以重要资料就是一些数据集和书籍,1T足矣。

这里多说一句,不是很推荐RAID5,重建成功率太低了。

设置方式

现实支持的分区特性和当前的MD设备

(注:我这里是做好分区以后运行的,所以会有一个MD0的设备)

$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdd1[0] sdc1[1]
      976628736 blocks super 1.2 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

对挂好的硬盘分区并且格式化

以对设备sdc操作为例:

parted /dev/sdc --script 'print'
parted /dev/sdc --script 'mklabel gpt'
parted /dev/sdc --script 'mkpart primary 0% 100%'
/usr/sbin/mkfs.ext4 /dev/sdc1

做好以后使用lsblk查看一下分区情况,这里可以看到已经完美的分好了:

NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
...
sdc       8:32   0 931.5G  0 disk
└─sdc1    8:33   0 931.5G  0 part
sdd       8:48   0 931.5G  0 disk
└─sdd1    8:49   0 931.5G  0 part
...

设置RAID

设置很简单,我们就在sdc1和sdd1上设置了,直接一行命令搞定:

sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1

后续处理

首先挂载md0设备到你喜欢的文件夹。

mount /dev/md0 /media/md0

也要记得将设置写入配置并且更新信息。

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u

查看现在的状态

再运行lsblk,可以看到,设备已经

NAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
...
sdc       8:32   0 931.5G  0 disk
└─sdc1    8:33   0 931.5G  0 part
  └─md0   9:0    0 931.4G  0 raid1 /media/md0
sdd       8:48   0 931.5G  0 disk
└─sdd1    8:49   0 931.5G  0 part
  └─md0   9:0    0 931.4G  0 raid1 /media/md0
...

灾后重建

假设分区损坏了,我们需要恢复,方法记在下面,但是没有试过:

#(假设sdc1坏了)
# 设置损坏分区
mdadm /dev/md0 --set-faulty /dev/sdc1
# 移除故障分区
mdadm /dev/md0 --remove /dev/sdc1
# 重新准备一个好的SDC
# 添加分区以后应该自动回开始重建
mdadm /dev/md0 --add /dev/sdc1
# 可以通过如下命令查看重建进度
mdadm -D /dev/md0

后记

软件RAID的性能其实挺感人的,我的移动硬盘支持支持USB3.0,但是因为电脑旧了所以连接了USB2.0,就是这样以前单盘性能应该是40~50Mb/s左右,结果挂上RAID以后写入速度掉到了14Mb/s,稍稍有些过于感人,不过读取速度还行,但是也不能达到理论上单盘的两倍速度。

所以如果对性能有追求的去购买硬件RAID的设备比较好,或者有机箱的人可以考虑一下PCI接口的RAID卡。

从小到大我已经搞坏过好多硬盘了,所以千万记得数据备份,或者做RAID啊!

上一页开源CAN总线信号可编程台架下一页互不联网时代的自给自足

最后更新于2年前

这有帮助吗?