游客

苹果自我革命的APFS文件系统是什么?

游客 2017-02-23 20:51:14    201157 次浏览

本文经超能网授权转载,其它媒体转载请经超能网同意。

这年头智能手机的硬件水平都已达一定的高度,特别是旗舰级手机,各家的机皇都是有多强上多强,所搭载的SoC、存储性能都在伯仲之间、难分高下,所以便有厂商开始在软件方面着手配合硬件进行优化,比如我们在前几期超能课堂中,提到过华为Mate 9上使用的F2FS文件系统,而从今年二月初iOS 10.3开始,苹果也在iPhone上加入了对APFS文件系统的支持,这其实早在去年WWDC 2016上,苹果便已经公布这个全新的文件系统,那么APFS文件系统究竟有什么革新之处?

苹果自我革命的APFS文件系统是什么?

APFS是什么?

APFS的英文全称为Apple File System,这也就很简单地直译为“苹果文件系统”,为64位文件系统,单个分区支持9百亿亿文件,为取代苹果延用了30多年之久的HFS 文件系统而生,加入了很多现代文件系统应有的新功能特性。

作为新一代文件系统,苹果在去年的WWDC 2016开发者大会上表示,APFS通用于iOS、macOS、watchOS和tvOS这四个苹果主要的操作系统上,由于目前苹果大部分设备都采用闪存或SSD,所以APFS完全为这类存储作了优化设计(这点与F2FS文件系统的特性一样),并把加密性作为新文件系统最主要的功能改进。

APFS对苹果有多重要?

现有的HFS 实在太落后了

APFS文件系统对苹果有多重要,这就要提到苹果现有的文件系统HFS 。HFS 文件系统由苹果从HFS文件改进而来, 早在1998年就开始在苹果设备上使用(HFS在1984年),推出之时市面上仍以软盘和HDD作为主要存储设备,所以HFS 基本没有为现在流行的闪存和SSD作优化。HFS 在应付现代硬件和软件都已经力不从心,HFS 文件系统存在元数据以大字节序保存、单线程访问、不支持稀疏文件、写时复制等等一大堆缺点。

苹果现有设备的文件系统不统一

尽管苹果几乎所有设备和系统都是基于HFS文件系统,但实际上每个设备由于需要的特性不同(这其实也归咎于HFS的落后),导致采用的 文件系统却有多种,比如macOS上有HFS、HFS 和HFS J,而iPhone、Apple Watch有用到HFS 和HFS Per-File Crypto,存储管理又有Fusion Drive和CoreStorage等等,相当混乱,所以苹果希望功能更先进、更齐全的APFS能改变这个现状,成为苹果设备中统一的文件系统。

苹果自我革命的APFS文件系统是什么?
苹果现在的文件系统太混乱

APFS功能特性?

APFS在基本的文件系统设计上就远比HFS 先进,HFS 为32位文件ID,而APFS支持64位索引节点,时间戳间距从HFS 的1秒降低至1纳秒,适应回现代处理器和SSD远低于1秒的文件操作时间,具备低延迟的特性,APFS还原生支持SSD的FTL和Trim,所以性能理论上会更强、空间利用率更高,另外与HFS 固定形式的文件系统结构不同,APFS是个具有扩展性的文件系统,可以在未来增加更多新特性、API。

苹果自我革命的APFS文件系统是什么?
APFS与HFS 对比

APFS文件系统上新增的Clone、Snapshot、Crash Protection等多个功能,这得益于Copy-On-Write(写时复制、简称COW),该技术主要作用为文件在进行修改操作时, 会先复制一份新文件,用户修改的实际是在这份新文件上,原来文件不会作修改,而等修改完成后新文件再替换掉原文件,这能充分发挥存储的读写性能和保持文件的完整性 ,而在修改过程中就算出现意外,也能保证原文件不掉失。

Clone(克隆)

Clone指的是APFS在执行复制文件操作时,实际只是创建了一个类似快捷方式的副本,文件本身并没有增加多一份出来、占多一份空间,而当文件作了修改后,也只会保存修改的部分,这对于苹果系统采取的沙盒运行APP机制相当有用,可以节省APP的占用空间。

苹果自我革命的APFS文件系统是什么?
Clone演示

Snapshot(快照)

在APFS文件系统中作了分区快照后,无论原分区内的文件作了增加还是删除操作,快照分区内的文件都不会发生变化,这提高了文件备份效率,还可以实现撤销操作,这有利iTunes、Time Machine等备份功能。

苹果自我革命的APFS文件系统是什么?
Snapshot演示

Space Sharing(空间共享)

Space Sharing为解决在单个磁盘上分区固定位置、固定大小的限制,允许在不用重新分区的情况下,动态调整分区的大小,APFS格式的磁盘实际为单个容器(container),多个分区共享容器的空余容量。

苹果自我革命的APFS文件系统是什么?
支持动态调整容量

比如在一个100GB的APFS格式磁盘上,有一个10GB的A分区和一个20GB的B分区,那么A和B分区都可以任意用到剩下的70GB,这样在A分区中,即使存储一个超过10GB的文件也没问题,最大可以去到80GB。

Encryption(加密)

APFS可同时支持无加密、单密钥(Single-key)到多密钥(Multi-key)三种加密方式,单密钥即为普遍采用的全盘加密,而多密钥加密为APFS独有的加密方式,文件数据采用单个文件级别加密,而元数据采用独立密匙,这使得就算用户的硬件加密被破解,也无法在系统中获取用户的文件。

Crash Protection(防崩溃)

由于Copy-on-write的加入,现在APFS不再需要两次写入的日志式文件保护来确保元文件数据不会崩溃。

Sparse Files(稀疏文件)

稀疏文件为一种文件存储方式,在创建文件时就预留连续存储信息,但未实际占用存储空间,而到只有真正写入数据时,才会分配空间,现在APFS文件系统也加入支持。

Fast Directory(快速目录大小统计)

在以往的HFS 文件系统计一个目录的总大小需要花费较长的时间,但在APFS中,目录的大小信息文件为分开保存,并用原子操作(Atomic Operation)来更新这个信息文件,这部分额外占用的文件为小增量增长。

Atomic Safe-Save(原子级安全保存)

在一个集群或目录类文件中进行重命名等原子级文件操作时,如果无法完全完成,原文件数据不会被替换或删除,这也体现了APFS的绝对一致性,要求文件只有一定能够修改成功的情况下,文件才会被保存,否则不会进行操作。

HFS compatibility(向下兼容)

APFS依然向下兼容HFS、HFS 文件系统,包括原来大部分的开发特性。

APFS在什么设备上可以用到?

APFS将统一iOS、watchOS、macOS和tvOS上的文件系统,所以包括有支持iOS 10.3及以后系统的iPhone、iPad、iPod Touch,Apple Watch(系统版本未定),支持macOS Sierra 10.12.4及以后系统的MacBook、MacBook Air、MacBook Pro、Mac mini、iMac、Mac Pro和Apple TV(系统版本未定)等苹果设备都将用到这个新的文件系统。

苹果自我革命的APFS文件系统是什么?
苹果主流的设备都支持APFS

最新iOS 10.3 beta版上已经换成APFS系统、而macOS Sierra早已在底层支持APFS,但macOS 10.12.4 beta上才换用为主要文件系统。普通用户在即将到来iOS 10.3正式版和macOS Sierra 10.12.4正式版上,就能体验到APFS带来的新变化。

APFS实际表现初体验?

目前APFS文件尚未正式、完整地应用到苹果设备上,所以这里仅为简单的初体验。在macOS Sierra 10.12.3正式版系统中,使用hdiutli命令创建一个1GB的APFS文件系统分区后,与一个1GB的Mac OS扩展(即HFS J)文件系统分区对比,在占用空间上APFS确实会更小。

苹果自我革命的APFS文件系统是什么?
左为APFS,右为Mac OS扩展

iOS方面,这里选择把iPhone SE刷至iOS 10.3 beta3,用Passmark和Geekbench简单跑了一下测试,并对比回iOS 10.2正式版,在两个测试结果中,APFS的表现略差于原来的文件系统,但也不排除是这两个测试APP还没有对APFS文件系统作优化支持。

苹果自我革命的APFS文件系统是什么?
存储性能

苹果自我革命的APFS文件系统是什么?
GeekBench 4

这样来看,APFS文件系统在当前对于开发者的意义更大,很可能普通消费者还不会从中获得很大的体验改善,至少在所谓的节省空间、提升性能和加强安全性上,APFS还需要点时间来发挥出优势,但APFS是足够先进和优秀的文件系统,对于未来苹果设备有极其重要的意义,未来更成熟的表现值得我们期待。

内容加载中