标签:core storage lvm hfs+ gpt zfs
Mac高大上嘛?
Mac因为贵就高大上了?Mac因为没有这个哪个就不高大上了?本文没有结论,只是回归技术本源,是不是高大上还要大家自己评说。
大多数Mac用户可能并不在乎苹果的OS X操作系统缺少一个有效的逻辑卷管理(LVM)系统的事实,只要使用上没有妨碍就好。最早从10.7的狮子系统开始,OS X就带有一个叫做核心存储的功能,因为Apple并没有大力宣传,所以知道的人并不多,究其没有公开的原因,从后面的讲述来看,可能主要是因为它并不完善,或者从历史上看,Apple是不是还在犹豫如何处理,抑或是忙于iOS系统的开发完善了吧,毕竟那才是Apple得以生存发展和利润的增长来源,也是它的重点发展方向。
为什么?
随着计算机技术的发展,如何有效地管理/存储/备份和恢复越来越多的数据成为了一个瓶颈,随着各种技术的出现,其中逻辑卷管理的使用和发展,可以灵活管理巨量存储的强大功能,给管理越来越大的磁盘(们)带来了生机。
古老的磁盘管理技术已经不适应当前的技术发展。大家都熟悉,比如Windows使用MBR的方式,在磁盘的0扇区存储最多四个主分区,来把物理的一整块磁盘,分成多个分区供用户使用。在Windows中用户可以看到的C:, D:的。当初之所以要给磁盘分区,因为磁盘空间很大,而数据相对来说小,那么把磁盘分成区块把数据分区存储是一个自然的思路。一方面,旧有的技术无法有效管理越来越大的物理磁盘空间,比如你的Windows电脑可能不识别4TB的硬盘,只能使用2TB,需要别的技术来访问所有空间;另一方面,磁盘的物理空间的增长无法满足数据的暴增式增长,比如超大的数据库,比如象Yahoo和Google那样如何管理PB(1PB=1024TB)的数据;另外磁盘空间的管理不灵活,比如在不破坏数据的情况下扩展空间或者把两个分区合并为一个,而Windows下面的subst命令以及在类Unix中使用mount,将一个分区连接到一个子目录上的方式只是不得已的解决方式,无法根本解决灵活性的要求。所以多方面的因素迫使操作系统来解决这些发展的需求。
上图是解释MBR管理磁盘空间的图解,来源http://www.karbosguide.com/hardware/module6a6.htm
于是逻辑卷管理作为一种存储虚拟化被广泛地得到业界的接受,并已经应用与好多的系统,虽然他们目前主要是在大型机器或者服务器上使用,不过普通用户同样可以得益于这个技术。
温故知新
众所周知的, 当代的OSX系统使用Apple开发的HFS+作为系统默认文件系统,其实它早在OS X之前1998年的OS 8.1中就存在了,为什么有个+呢,因为它的前任叫HFS, 是1985年开始使用并替代MFS,MFS最终被苹果在OS 8.0是完全摒弃;HFS一直被支持到10.6开始不能写和创建HFS为止,HFS+完全取代了HFS,到了2002年日志功能(Journaling)才被添加到HFS+中,于是有了现在的JHFS+, 后来在10.3中支持了Unicode,10.4中支持了ACLs,以及10.6添加了压缩功能(不过应用很少),直到10.7系统,苹果终于引入了部分的逻辑卷管理功能。
另外一方面,Apple很早使用EFI固件并支持GPT(GUID分区表),这使得Apple系统可以更好地支持大硬盘空间以及分区表冗余,这方面Apple用户比PC世界中的要幸运,这个些方面苹果确实走在Windows系统前面的,虽然在逻辑卷管理方面落后,这可能是因为Windows有着更强的面向企业的服务器方面的需求,而Apple一直是致力于个人市场。
在向前和广度兼容方面,微软做了相当大的努力,也正是因为这个兼容承诺,Winodws在某些方面无法大踏步地前进,与用户同时付出了性能等方面的牺牲。在Apple来说,由于硬件和固件方面的私有性,在操作系统兼容性上要简单得多,基于Apple系统的支持列表上,随着新系统的发布,它正在稳步地淘汰更旧的Mac硬件。
核心存储(Core Storage)的由来:
这个东东有啥用处?举个实例,大家可能听说过Fusion Drive和FileVault v2吧,它们的核心技术就是Core Storage。
逻辑卷管理早已经被流行的操作系统所采用,无论是基于UNIX的IBM的AIX和HP的UX,Linux2.2的核心,Sun的SunOS和Solaris等等,比如在Windows世界里,最早2000年时在Windows 2000中引入了LDM,在Window 8和server 2012中又被更先进的Storage Spaces取代,而Storage Spaces是对于逻辑卷管理的更高一层的抽象。而Sun的ZFS是这些实现技术中的佼佼者,它被广泛地移植到了很多系统上,不仅因为提供的功能多强大,而且也开源,当时有一种把ZFS移植到所有系统中的热潮。
虽然说在很早前,大概2001年OS X 10.1的时候,就提供了对软件RAID0和1的支持,它在服务器上使用的比较广,普通用户极少涉及,可是支持逻辑卷管理系统到10年后的10.7系统才算真正开始,而这之前,Apple经历了一段曲折的道路。
当初10.5的时候,OSX系统支持在命令行上对于ZFS的只读功能,当时Apple员工说考虑将会引入128位的ZFS作为OS X的逻辑卷管理系统,后来Apple宣称会在10.6的服务器版本中支持对ZFS的读写(1)。2007年的时候,在Apple的Mac OS Forge上提供了没有安装程序的Mac版本的ZFS移植源码,但在2009年Apple宣布将会关闭ZFS项目,原来的关于ZFS的讨论也被删除。于是,在10.6的发布中ZFS没有出现在众多的特性列表中,Apple也没有给出官方的解释。后根据数据存储专家Robin Harris的叙述(2),是因为ZFS的东家Sun(当时Oracle还没有收购Sun)坚持使用CDDL协议(它准许使用开源和私有专利保护的软件,所以一般来说它和GPL不兼容,这也使商业使用和后续开发变得相对复杂),含有商标和专利保护,这促使Apple最终放弃了ZFS。从OpenZFS上来看,它们也不打算将CDDL授权协议转移到兼容GPL的框架下。双方来说这不是一个双赢的结局,对最终用户也是一个缺憾,不管怎么说这些都是5年前发生令人遗憾的事情。
当初Apple的那些代码被保留了下来,并作为开源项目运作中,目前来说,可用的OSX版本的ZFS有开源的openZFSonOSX,和MacZFS(ZFS-OSX)等。ZEVO是第一个商业化的ZFS for Mac软件,ZEVO是由原来工作在Apple20多年的资深软件工程师Don Brady组织的公司开发的,他是HFS+项目的团队领导和ZFS项目的发起和主要架构设计者。他的离开是和Apple最终决定放弃ZFS相关,作为一个热爱自己从事技术项目的技术人员,我钦佩于他那份追求梦想的信念。
参考:
1. http://www.macrumors.com/2008/08/08/zfs-and-snow-leopard-to-speed-up-solid-state-drive-performance/
2. http://www.macrumors.com/2009/09/01/lack-of-zfs-file-system-support-in-snow-leopard-due-to-licensing-issues/
Windows 安装程序:使用 MBR 或 GPT 分区类型安装
示例:使用 Windows PE 和 DiskPart 配置基于 UEFI/GPT 的硬盘驱动器分区
Mac OS X Lion Adds CoreStorage, a Volume Manager (Finally!)
Mac OS X, Mac OS X Server: How to Use Apple-Supplied RAID Software
ZFS on Wikipedia | MacZFS | OpenZFSonOSX | OpenZFS
What is ZFS, Oracle Solaris 11 ZFS Technology
Mac OS X 10.7 Lion: the Ars Technica review
ZFS Comes to OS X Courtesy of Apple‘s Former Chief ZFS Architect
OSX: 逻辑卷管理系统Core Storage(1),布布扣,bubuko.com
标签:core storage lvm hfs+ gpt zfs
原文地址:http://blog.csdn.net/cneducation/article/details/30561961