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
于是逻辑卷管理作为一种存储虚拟化被广泛地得到业界的接受,并已经应用与好多的系统,尽管他们眼下主要是在大型机器或者server上使用,只是普通用户相同能够得益于这个技术。
温故知新
众所周知的, 当代的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有着更强的面向企业的server方面的需求,而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的支持,它在server上使用的比較广,普通用户极少涉及,但是支持逻辑卷管理系统到10年后的10.7系统才算真正開始,而这之前,Apple经历了一段曲折的道路。
当初10.5的时候,OSX系统支持在命令行上对于ZFS的仅仅读功能,当时Apple员工说考虑将会引入128位的ZFS作为OS X的逻辑卷管理系统,后来Apple宣称会在10.6的server版本号中支持对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多年的资深软件project师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