N种数据存储方案的资料收集(文件系统、RAID及其它)

硬盘白菜价的今天,搞个阵列似乎经济上并不是什么难事。但容量一大,存储方案的选择就让人头疼。之前在什么值得买上写的帖子,这方面争议也不少。干脆把我所知道的关于存储的资料全部整理一下。

一、文件系统

Windows:

FAT:16位,每个分区最大2G,所以就不用说了。

FAT32:32位,无配额,无权限,无日志,单文件最大4G,半淘汰(有的XP狂热份子还在用)。

exFAT:专供大容量U盘等使用闪存的移动设备用的格式,相当于FAT64。

NTFS:Win2000以上用的标准格式,有配额、有权限、日志系统,都有,支持动态磁盘。

ReFS:Win Server 2012以上支持的一种文件系统(Win8以上的非服务器windows支持存储,不支持引导),具体是什么个情况我也没搞太清楚,大致是在NTFS上继承和简化了一些功能,同时增加了COW模型(新的文件系统似乎都强调这个),增加了一些特性。

Linux:

Linux下面的文件系统多如牛毛。

ext:淘汰

ext2:半淘汰

ext3:主力快淘汰了

ext4:主力,不过经常被说成升级到btrfs前的过渡品

Btrfs:被认为是Linux上的ZFS,吹的神乎其神不过貌似还不是很成熟,支持COW

ReiserFs:ext2之后出现的一个文件系统,支持最大16T的分区,使用完全平衡树检索,B*Tree存储,性能相当地好,但在错误恢复方面性能比较差(写缓存的问题)。后续版本叫Reiser4,这方面有所提升。它的创始人是个有故事的人,2008年被判谋杀前妻,要坐25年牢,所以后面会怎么发展真不好说。

……

通过移植,还支持UFS XFS ZFS等等。

最常用的现在是ext4。

BSD UNIX:

UFS:老牌子,规格并不落后

ZFS:规格高,功能全,Sun留下的最大遗产之一,支持COW、RAID-Z等一大票高级功能。

 

二、RAID

RAID有几个级别。

JBOD:现在RAID卡基本都支持这个,但它其实不算RAID,因为根本没有冗余,跟LVM或windows的跨区卷并没有什么区别,还没有LVM、跨区卷灵活。我个人不懂为什么要用这个。

RAID0:即Strip、带区卷。在N个盘上交错存放数据。性能最好。但它其实严格说来也不算RAID,因为它也没有冗余,一块盘坏了就整个歇火。

RAID1:就是镜象,重要的数据存N份,安全最好,读性能跟RAID基本一样,写入就完了,比单盘写还稍慢一点点。安全性就是只要有一块盘是好的,数据就没问题。

RAID2、RAID3、RAID4:都是被淘汰的级别。RAID2用什么海明码校验,巨复杂巨浪费,根本没人用。RAID3和RAID4用了奇偶校验数据,但是校验数据存在一个单独的盘上,这块盘坏了,整个阵列就成了RAID0。

RAID5:使用奇偶校验,校验数据平均分布在各个磁盘上。是一种比较经济又比较靠谱的方案。缺点是只能支持到一块坏盘。两块盘坏就歇火。

RAID10:又叫RAID0+1,先0再1,说白了就是先搞个RAID0,再把它整个镜象一下。性能、安全性都是极好的,缺点也很明显:太浪费,而且扩展性不灵活。

RAID-Z:ZFS特有的软RAID方案,跟RAID5差不多,牛比的是创建的时候不用等待漫长的同步过程,同步是在写入时做的,另外还有一优点是它有几个级别,RAID-Z1、RAID-Z2、RAID-Z3之类的,区别就是容灾性,每提高一个级别,就能支持多一块坏盘,当然冗余数据也就越大,CPU占用也越高。缺点是与RAID5相比,扩展起来不容易。

Windows动态磁盘:Windows的软RAID方案,支持0、1、5、JBOD等,比较灵活,可以基于分区来创建,比如三块硬盘,你可以把其中三块分别划出一个分区,组一个RAID5,剩下的来个JBOD、RAID0、RAId1,或者干脆搞三个单盘分区。性能也并不差。

Windows存储空间:好像是Win8和server 2012搞出来的东西,有点像是加上了RAID支持的LVM,就是把一堆磁盘搞成一个存储池,再在里面划分空间。空间有三种:简单、镜象、奇偶校验。分配空间可以选择按需分配,就跟VM中的动态虚拟磁盘似的,比较灵活,但很多人说它的奇偶校验空间性能奇差。

三、其它

快照Snapshot

快照是在某个时点上保存数据,将来发生问题时可以回到这个时点。有很多技术都类似快照,比如Apple、Comodo的Time Machine,Windows的系统还原和文件历史。

有一个RAID3/4的变种形RAID,叫SnapRAID,就类似于快照,只不过它的快照记录的是奇偶校验信息。按需制作校验数据,特别适合家庭NAS这种数据动得很少的情况。

Leave a Reply

Your email address will not be published. Required fields are marked *