专栏名称: 给产品经理讲技术
为互联网产品经理普及技术基础知识
51好读  ›  专栏  ›  给产品经理讲技术

更新就能增大容量——APFS文件系统

给产品经理讲技术  · 公众号  · 产品  · 2017-04-05 07:46

正文

请到「今天看啥」查看全文


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(加密)

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+文件系统,包括原来大部分的开发特性。







请到「今天看啥」查看全文