比raid5更快更大更安全在4块硬盘上同时实现raid1,raid0和Basic

360影视 动漫周边 2025-03-26 02:06 3

摘要:就在前几天找到了以前经常看的杂志《微型计算机》,里面有一篇文章引起了我的注意。文章主要内容是介绍了intel芯片组自带的矩阵raid,这个技术可以实现讲两块硬盘上实现两种不同的阵列类型。原理也很简单,将硬盘分为两个区域。一个区域实现raid1模式,服务于重要数

现在的机械硬盘容量越来越大,组具有冗余功能的raid类型时损失的容量也就越大。这对于预算有限,同时需要大容量又需要冗余功能的部分用户来说就非常难受了。

就在前几天找到了以前经常看的杂志《微型计算机》,里面有一篇文章引起了我的注意。文章主要内容是介绍了intel芯片组自带的矩阵raid,这个技术可以实现讲两块硬盘上实现两种不同的阵列类型。原理也很简单,将硬盘分为两个区域。一个区域实现raid1模式,服务于重要数据。一个区域实现RAID0模式,服务于高速读写的数据。

现在想要在Linux的软阵列上实现这个功能也非常简单。linux上一般通过mdadm这个组件建立阵列,mdadm可以直接物理硬盘组阵列,或者是使用物理硬盘上的分区建立阵列。群晖的shr就是依靠了这个特性实现不同容量硬盘组阵列。

因此可以通过在物理硬盘上划分出不同大小的分区,然后组建不同类型的阵列,最大限度利用硬盘资源。

假设有4块硬盘,一般的成品nas也就4个3.5寸硬盘位,容量都为14T。为了容量和冗余最大化选择raid5模式,将损失一块硬盘的容量最后存储池总容量42T。如果分区建立阵列,按数据重要程度选择存储池。4块盘中每块分出2t建立raid1分区,满足冗余需求,此时raid1存储池可用容量2t。4块盘中每块分出2t建立raid0分区,满足高速需求,此时raid0存储池可用容量8t。4块盘剩下的10t容量,直接格式化分区通过mergerfs合并为一个40t的存储池。此时有效容量为8+2+40=50t。比物理硬盘直接组raid5模式多了8t容量,而且安全性更好,raid1存储池允许挂掉3个硬盘,速度更快,4盘raid0没有raid5的xor检验消耗cpu更少,读写速度等于四盘叠加。

操作思路如下:

将4块14t硬盘,每个硬盘分为3个分区 ,容量分别为2t,2t,10t。4块盘的第一分区组raid1,第二个分区组为raid0,第三个分区不组riad直接格式化合适的文件系统在通过mergerfs组成存储池,这种存储池在硬盘掉线的情况下只会丢失掉线硬盘的数据。

raid1分区加入lvm,后格式化为btrfs这种可以动态扩容的文件系统,为以后更换大容量硬盘或者增加硬盘打好扩容基础。raid0分区也是如此操作加入另外一个lvm中。

这样子就有个应对3种不同类型数据的存储池,从而实现高效率压制硬盘容量。

实现命令可以参考下列命令,不要照抄!不要照抄!不要照抄!

#使用parted工具创建GPT分区表sudo parted /dev/sdX mklabel gpt# 创建三个分区(2T, 2T, 10T)sudo parted /dev/sdX mkpart primary 0% 2TBsudo parted /dev/sdX mkpart primary 2TB 4TBsudo parted /dev/sdX mkpart primary 4TB 14TB#创建raid1阵列sudo mdadm --create /dev/md0 --level=1 --raid-devices=4 /dev/sd[a-d]1#创建raid0阵列sudo mdadm --create /dev/md1 --level=0 --raid-devices=4 /dev/sd[a-d]2#lvm部分1. 创建物理卷(PV)sudo pvcreate /dev/md0 # RAID1 分区sudo pvcreate /dev/md1 # RAID0 分区2. 创建卷组(VG)sudo vgcreate vg_raid1 /dev/md0sudo vgcreate vg_raid0 /dev/md13. 创建逻辑卷(LV)# RAID1 逻辑卷(全容量)sudo lvcreate -l 100%FREE -n lv_raid1 vg_raid1# RAID0 逻辑卷(全容量)sudo lvcreate -l 100%FREE -n lv_raid0 vg_raid0#文件系统格式化sudo mkfs.btrfs /dev/vg_raid1/lv_raid1sudo mkfs.btrfs /dev/vg_raid0/lv_raid0#mergerfs部分# 格式化每个硬盘的第三分区为XFS(推荐大文件性能)sudo mkfs.xfs /dev/sd[a-d]3# 创建挂载点并挂载sudo mkdir -p /mnt/storage/{disk1,disk2,disk3,disk4}sudo mount /dev/sda3 /mnt/storage/disk1sudo mount /dev/sdb3 /mnt/storage/disk2sudo mount /dev/sdc3 /mnt/storage/disk3sudo mount /dev/sdd3 /mnt/storage/disk4# 使用MergerFS合并为存储池sudo mergerfs -o defaults,allow_other,category.create=epmfs /mnt/storage/disk*:/ /mnt/pool

来源:星亨聊科技

相关推荐