首页 > 代码库 > OSX: 逻辑卷管理系统Core Storage(1)

OSX: 逻辑卷管理系统Core Storage(1)

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一直是致力于个人市场。

技术分享
上图显示MBR和GPT的差别,来自于:http://technet.microsoft.com/en-us/library/cc739412(v=ws.10).aspx

其实,Windows在接受GPT方面与OS X不尽同样,Windows Vista/7/8安装到GPT分区上并启动(必须是基于64位的UEIF系统)还是有些麻烦。尽管理论上来说两者都是支持GPT的操作系统,理论上他们两个能够同一时候存在与基于EFI的硬件和GPT分区之上,但就眼下来说,基于Apple和PC的硬件环境的不同,OSX依赖于Apple硬件, Mac也没有BIOS, 不用BootCamp仅使用GPT同一时候安装OS X和Windows在Mac上,不管从最后的功能上(Windows不支持XP模式等等)还是实际安装操作上似乎都不现实,毕竟在安装驱动的时候Windows还是须要BootCamp的嘛。

在向前和广度兼容方面,微软做了相当大的努力,也正是由于这个兼容承诺,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相关,作为一个热爱自己从事技术项目的技术人员,我钦佩于他那份追求梦想的信念。


可是假设没有操作系统内置的支持,依旧不能算是一个终于解决方式,比方假设存储在ZFS的数据,在灾难恢复的时候相比較于OS X的时间机器(Time Machine)来说,系统和数据的恢复就比較麻烦。

于是我们迎接来了不完好但已经是相当稳定的操作系统内置的卷管理器,也就是Core Storage.

技术分享
本图大概解释了传统的与支持LVM的文件系统的差别

待续…...


參考:

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/


Logical volume management

Features new to Windows 8

Storage Spaces: FAQ

Windows 安装程序:使用 MBR 或 GPT 分区类型安装

演示样例:使用 Windows PE 和 DiskPart 配置基于 UEFI/GPT 的硬盘驱动器分区

启动到 UEFI 模式或传统 BIOS 模式

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)