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在基本的文件系统设计上就远比HFS+先进,HFS+为32位文件ID,而APFS支持64位索引节点,时间戳间距从HFS+的1秒降低至1纳秒,适应回现代处理器和SSD远低于1秒的文件操作时间,具备低延迟的特性,APFS还原生支持SSD的FTL和Trim,所以性能理论上会更强、空间利用率更高,另外与HFS+固定形式的文件系统结构不同,APFS是个具有扩展性的文件系统,可以在未来增加更多新特性、API。
APFS与HFS+对比
APFS文件系统上新增的Clone、Snapshot、Crash Protection等多个功能,这得益于Copy-On-Write(写时复制、简称COW),该技术主要作用为文件在进行修改操作时, 会先复制一份新文件,用户修改的实际是在这份新文件上,原来文件不会作修改,而等修改完成后新文件再替换掉原文件,这能充分发挥存储的读写性能和保持文件的完整性 ,而在修改过程中就算出现意外,也能保证原文件不掉失。
Clone(克隆)
Clone指的是APFS在执行复制文件操作时,实际只是创建了一个类似快捷方式的副本,文件本身并没有增加多一份出来、占多一份空间,而当文件作了修改后,也只会保存修改的部分,这对于苹果系统采取的沙盒运行APP机制相当有用,可以节省APP的占用空间。
Clone演示
Snapshot(快照)
在APFS文件系统中作了分区快照后,无论原分区内的文件作了增加还是删除操作,快照分区内的文件都不会发生变化,这提高了文件备份效率,还可以实现撤销操作,这有利iTunes、Time Machine等备份功能。
Snapshot演示
Space Sharing(空间共享)
Space Sharing为解决在单个磁盘上分区固定位置、固定大小的限制,允许在不用重新分区的情况下,动态调整分区的大小,APFS格式的磁盘实际为单个容器(container),多个分区共享容器的空余容量。
支持动态调整容量
比如在一个100GB的APFS格式磁盘上,有一个10GB的A分区和一个20GB的B分区,那么A和B分区都可以任意用到剩下的70GB,这样在A分区中,即使存储一个超过10GB的文件也没问题,最大可以去到80GB。
Encryption(加密)