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 WikipediaMacZFS |
OpenZFSonOSX | OpenZFS

What is ZFSOracle
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)的更多相关文章

  1. Linux 系统 LVM(Logical Volume Manager)逻辑卷管理

    一.前言 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到 当前某个分区需要的容量,还要预见该分区以后可能需要 ...

  2. LVM(Logical Volume Manager)逻辑卷管理

    本文实验部分,完全由本人亲自动手实践得来 文章中有部分的内容是我个人通过实验测试出来的,虽以目前本人的能力还没发现不通之处,但错误难免,所以若各位朋友发现什么错误,或有疑惑.更好的建议等,盼请各位能在 ...

  3. LVM基础详细说明及动态扩容lvm逻辑卷的操作记录

    LVM概念:---------------------------------------------------------------------------------------------- ...

  4. 自学Linux Shell8.2-linux逻辑卷LVM管理

    点击返回 自学Linux命令行与Shell脚本之路 8.2-linux逻辑卷LVM管理 Linux逻辑卷管理器软件包用来通过将另外一个硬盘上的分区加入已有文件系统,动态地添加存储空间. 1. 逻辑卷L ...

  5. 【Linux】LVM 逻辑卷管理

    LVM - 逻辑卷管理 简介 LVM(Logical Volume Manager), 即逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 相关名词 PV(physical volume) ...

  6. 可软件定义的存储逻辑——Efficient and agile storage management in software defined environments

            note:写这个或许算是翻译,又或算是对这个论文[1]的理解,又或者仅仅是我的看法.         这篇论文和IOFlow相比較,更加注重软件定义存储的框架(利用已有的框架来创建新的 ...

  7. linux运维基础知识-系统分区及LVM逻辑卷的创建

    系统分区及LVM逻辑卷的创建 分区 创建逻辑卷 LVM简介:逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次,如图 ...

  8. 逻辑卷lvm创建、扩展、缩小

    系统环境:CentOS Linux release 7.3.1611 (Core) 3.10.0-514.el7.x86_64 CentOS6与7配置方法大同小异.通常是在系统安装的时候创建lvm,然 ...

  9. 《linux就该这么学》第九节课:第七章,RAID阵列和LVM逻辑卷技术

    笔记 (借鉴请改动) 7.1.RAID(独立冗余磁盘阵列) 常见的几种RAID:RAID0,RAID1,RAID5,RAID10   raid0  实现写入速度但安全性略低. raid1 实现了速度和 ...

随机推荐

  1. SQL SERVER 新增表、新增字段、修改字段 判断表是否存在

    // 新增之前判断表是否存在 IF NOT EXISTS (SELECT NAME FROM SYSOBJECTS WHERE ID = OBJECT_ID('tb_MessageHistory')) ...

  2. Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅

    通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个 ...

  3. SYSU 6356 Dispatching

    Dispatching Time Limit: 3000ms Memory Limit: 262144KB This problem will be judged on SYSU. Original ...

  4. vue.js 第一课:实例化vue

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Nginx+tomcat+ssl免费证书配置

    0.说明 本文说描写叙述的方式是用nginx的443重定向到tomcat的8443,nginx的80port重定到tomcat的8080: 乱入:个人标记:caicongyang 1.nginx安装 ...

  6. 机房收费系统——UML类图

    在对一个软件系统进行设计和建模的时候,一般是从构造系统的基本词汇開始,包含构造这些词汇的基本属性和行为. 系统分析师假设要对所设计的系统清晰认识.还有考虑这些基本词汇之间的关系.而假设把这些行为可视化 ...

  7. 整理一些PHP开发安全问题

    整理一些PHP开发安全问题 php给了开发人员极大的灵活性,可是这也为安全问题带来了潜在的隐患.最近须要总结一下以往的问题,在这里借翻译一篇文章同一时候加上自己开发的一些感触总结一下. 简单介绍 当开 ...

  8. Unity中uGUI的控件事件穿透逻辑

    1.正常来说Image和Text是会拦截点击事件的,假设加入EventTrigger的话,就能够响应相应的交互事件. 2.假设Image和Text是一个Button的子控件.那么尽管其会显示在Butt ...

  9. MyEclipse下怎么配置Maven

    这个很简单. 前期博客,请移步: Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) 截图示范:

  10. Android自定义组件系列【13】——Android自定义对话框如此简单

    在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按 ...