小丑的个人博客

记录精彩的学习过程

  menu
17 文章
0 浏览
ღゝ◡╹)ノ❤️

Ubuntu-软raid设置

前言

关于RAID可以参看维基百科, 简单来说, RAID把多个硬盘组合成为一个逻辑硬盘, 因此, 操作系统只会把它当作一个硬盘. RAID常被用在服务器计算机上, 并且常使用完全相同的硬盘作为组合. 由于硬盘价格的不断下降与RAID功能更加有效地与主板集成, 它也成为普通用户的一个选择, 特别是需要大容量存储空间的工作, 如: 视频与音频制作.

RAID等级最少硬盘数量最大容错可用容量读取效能写入效能安全性目的应用产业
单一硬盘 0111
JBOD10n11无(同RAID 0)增加容量个人(暂时)储存备份
020nnn一个硬碟异常, 全部硬盘都会异常追求最大容量、速度影片剪接快取用途
12n-11n1高, 一个正常即可追求最大安全性个人、企业备份
531n-1n-1n-1追求最大容量、最小预算个人、企业备份
642n-2n-2n-2安全性较RAID 5高同RAID 5, 但较安全个人、企业备份
104 n 综合RAID 0/1优点, 理论速度较快大型资料库、伺服器
506 提升资料安全
608 提升资料安全

1.n代表硬盘总数
2.JBOD(Just a Bunch Of Disks)指将数个物理硬盘, 在操作系统中合并成一个逻辑硬盘, 以直接增加容量
3.依不同RAID厂商实现算法对于性能表现会有不同, 性能公式仅供参考
4.RAID10、50、60 依实现 Parity 不同公式也不同

磁盘准备

root@oldwuzhou-6-95:~# lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
NAME    SIZE FSTYPE   TYPE MOUNTPOINT
loop0  55.4M squashfs loop /snap/core18/2128
loop1  70.3M squashfs loop /snap/lxd/21029
loop2  32.3M squashfs loop /snap/snapd/12704
loop3  32.3M squashfs loop /snap/snapd/13170
loop4  61.8M squashfs loop /snap/core20/1081
loop5  67.3M squashfs loop /snap/lxd/21545
loop6  61.9M squashfs loop /snap/core20/1169
sda     7.3T          disk 
├─sda1    1M          part 
├─sda2    1G ext4     part /boot
└─sda3  7.3T ext4     part /
sdb     7.3T          disk 
sdc     7.3T          disk 
sdd     7.3T          disk 

image-20211008175232506

创建RAID

raid 0阵列

RAID 0: striping条带模式 特点: 在读写的时候可以实现并发, 所以相对其读写性能最好, 每个磁盘都保存了完整数据的一部分, 读取也采用并行方式, 磁盘数量越多, 读取和写入速度越快. 因为没有冗余, 一个硬盘坏掉全部数据丢失. 至少两块硬盘才能组成Raid0阵列.
容量: 所有硬盘之和. 磁盘利用率为100%.

图片来自互联网

mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
# /dev/md0是磁盘名, --level=0指的是RAID 0, --raid-devices=3代表3个磁盘数, /dev/sdb /dev/sdc /dev/sdd是磁盘名:

raid 1阵列

您可以在 ZFS 中使用 mirror 关键字来实现 RAID1 功能。 RAID1 会创建一个一对一的驱动器副本。 这意味着您的数据一直在备份。 它也提高了性能。 当然,你将一半的存储空间用于了复制。

raid1

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# /dev/md0是磁盘名, --level=1指的是RAID 1, --raid-devices=2代表2个磁盘数, /dev/sdb /dev/sdc是磁盘名:


ZFS:
sudo zpool create your-pool mirror /dev/sdc /dev/sdd

raid 5阵列

要求: 至少3个存储设备

主要好处: 具有更多可用容量的冗余.

需要注意的事项: 在分配奇偶校验信息时, 一个磁盘的容量将用于奇偶校验. 在处于降级状态时, RAID 5可能会遭受非常差的性能.

ZFS 将 RAID5 功能实现为 RAIDZ1。 RAID5 要求驱动器至少是 3 个。并允许您通过将备份奇偶校验数据写入驱动器空间的 1/n(n 是驱动器数),留下的是可用的存储空间。 如果一个驱动器发生故障,阵列仍将保持联机状态,但应尽快更换发生故障的驱动器(LCTT 译注:与原文翻译略有不同,原文是驱动器的数目是三的倍数,根据 wiki, RAID5 至少需要 3 块驱动器,也可以从下面的命令中猜测)。


raid5

 mdadm -Cv /dev/md0 -a yes -n 5 -l 5 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1
 # /dev/md0是磁盘名, --level=5指的是RAID 5, --raid-devices=5代表3个磁盘数, /dev/sdb /dev/sdc /dev/sdd是磁盘名:
 # -Cv 同 --create --verbose 
 # -l 同 --level  # raid级别
 # -n 同 --raid-devices  # 指定阵列中成员盘个数.创建linear, multipath, raid0和raid1时,允许指定成员盘个数为1,但要使⽤--force参数。raid4与raid5不允许指定成员盘个数为1。成员盘个数可以通过--grow参数来修改,只有RAID1、RAID5 和RAID6阵列⽀持。
 # -a 同 --auto  {=no,yes,md,mdp,part,p}{NN}  # 通知mdadm是否创建设备文件,并分配一个未使用的次设备号
 # -x 同 --spare-devices # 指定阵列中热备盘的个数


ZFS:
sudo zpool create your-pool raidz1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Raid10阵列

raid10

mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
cat /proc/mdstat
# 查看构建情况, 只要没有进度条, 就是构建完成

mdadm -D /dev/md0
# 查看raid详细信息

image-20211008175944149

格式化RAID

mkfs.ext4  /dev/md0
# -F 第二次格式化需要用-F选项
或者
mkfs.xfs  /dev/md0
# -f 第二次格式化需要用-f选项

image-20211008180044119

保存RAID

这个保存是通用操作, 包括之后的RAID 1, RAID 5等等. 这样重启之后也会自动挂载. 注意名称上的对应,

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


update-initramfs -u
# 这一步及其重要
# 这一步就是要更新initramfs使mdadm的配置保存在启动配置过程中

测速:

hdparm -Tt /dev/md0

删除RAID

umount /dev/md0
mdadm --stop /dev/md0

删除RAID并重置:

mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd

update-initramfs -u

标题:Ubuntu-软raid设置
作者:harbor
地址:http://www.ipfshyys.com/articles/2022/10/16/1665910627718.html