Ta好神秘,什么都没有留下。
数码领域作者
注册7周年签到1天
IP属地:广东

芝麻信用评估

芝麻信用评分是合法独立的信用评估及信用管理机构,授权后得到分数越高,代表信用越好
花了两天时间终于摸清楚了群辉SHR阵列的实现原理。基于开源组件实现Raid和SSD缓存。
大名鼎鼎的群辉DMS系统和SHR对于每个玩NAS的不会陌生吧。之前我就知道了群辉的SHR是基于mdadm(Linux自带的阵列管理组件)+LVM实现的。端午节正好一个人在家,也没事干就开始着手分析SHR的智能阵列实现方式。首先说一下结论SHR的阵列功能是基于这几个开源组件实现的: mdadm(Linux自带的阵列管理组件) + LVM(Linux逻辑卷管理) + flashcache ( facebook的SSD缓存加速项目) + btrfs (群辉定制版)。SHR则是这几个开源组件+群辉自己开发的智能存储池控制程序构成的。阵列功能是没什么看点,就是一个普普通通的堆砌。熟悉Linux的用户也可以通过这些组件实现类似SHR阵列的效果。真正的亮点在于智能存储池控制程序,可以智能的将不同容量的物理硬盘组成阵列,最大化利用率,避免容量浪费,并能通过添加硬盘的方式扩大容量。这里我画了一张图,看看SHR是怎么实现。这样大家也能了解群辉的分区结构和存储逻辑,对恢复数据有一定的帮助。这里有3块硬盘500G+500G+160G。可以看到每一块硬盘前面的两个分区都固定占用10G。这是群辉DMS的系统分区和Swap分区,以Raid1模式存在。500G的硬盘后面还有两个分区150G的分区和340G的分区,160g的硬盘后面只有一个分区150分区。三个150G分区组成Raid5容量300G,两个340G分区组成raid1容量340G。在通过LVM逻辑卷管理将这两个MD组成一个容量640G的逻辑磁盘。为什么要搞的那么复杂了。因为Raid是取最小容量硬盘为基准的,无论是软的还是硬的。这样就会完成严重的容量浪费。mdadm不支持直接将硬盘租阵列,只能通过磁盘分区组阵列。那这样就能通过巧妙的分区配置榨干硬盘容量,比如像这里的建立两个阵列在通过LVM组成一个大容量逻辑盘,因为两个MD都是有冗余的,所以逻辑盘也有冗余。这个逻辑盘就是群辉中的存储池。然后在一个逻辑盘上划分分区,这就是群辉的存储空间,这个分区通过flashcach关联固态后具备缓存加速功能。
2024-06-11
社区达人榜 查看更多

关注数量超出限制,
请先删除部分内容再尝试