苹果文件系统(APFS)
64位inode,原子事务,以纳秒为单位的时间戳,目录克隆,内置加密
在昨天的WWDC 2016演讲中,Apple展示了macOS(Sierra)10.12,iOS 10,tvOS 10,watchOS 3操作系统,用于教孩子编程的Swift Playgrounds应用程序和新表情符号的新版本。似乎没什么意思。但是,苹果仍然推出了一些基本的东西。演讲中提到的最重要的发展是macOS(Sierra)10.12操作系统中的新一代文件系统Apple File System(APFS)。发表的演讲后不久,对开发者的网站文件与主特征和文件系统,重复某些功能强大的免费的ZFS文件系统的描述。苹果计算机现在使用HFS +文件系统,这是HFS(分层文件系统,创建于30年前)的扩展版本。与其前身一样,HFS +使用称为B *树的树结构来存储大多数元数据。因此,名称为“分层文件系统”。HFS +和MacOS 8.1一起于1998年1月19日正式推出。自2002年以来,该系统已实施日记功能以提高信息存储的可靠性。从OS X 10.3开始,默认情况下启用了日志记录,现在可以在区分大小写的模式下工作。在OS X 10.7之前,开发人员一直在文件系统级别上完善HFS +并为OS X实现新功能,但事实仍然是:HFS最初是在软盘和旋转硬盘驱动器上开发的,当时文件大小以千字节或兆字节为单位。如今,许多驱动器都使用SSD驱动器,该驱动器存储了数百万个文件-千兆字节或TB级的数据。文件系统具有完全不同的要求。苹果最终没有最终确定旧代码,而是决定从头开始编写新的文件系统。下一代APFS文件系统仍在开发人员预览中也就是说,不打算在不久的将来大规模使用该产品。您目前无法将APFS卷用作启动磁盘,也不能在Time Machine备份系统,Fusion Drive中或通过File Vault加密使用。但是有可能使用常规的非引导卷。仍然需要进行长期的完善和测试,但是只有到那时,APFS才能成为苹果未来几十年的主要文件系统。与HFS +不同,APFS最初会区分文件和文件夹名称中的字符大小写,并且不能禁用此功能。任何决定使用APFS的人都应该记住这一点。原则上,Apple建议首先在不存储任何重要内容的外部驱动器上试用APFS。为此,建议使用该实用程序hdiutil。主要特点
官方文档列出了与HFS +相比APFS文件系统的一般特征。容器和体积
容器是在APFS中存储数据的主要对象。容器通常与GUID分区表(GPT)条目完全相同;它们具有自己的崩溃保护和磁盘空间分配方案。每个容器包含一个或多个卷或文件系统,每个卷或文件系统都有其自己的名称空间,即一组文件和目录。APFS不直接支持软件RAID,但可以与Apple RAID卷一起使用,以支持条带化(RAID 0),镜像(RAID 1)和串联(JBOD)。64位索引节点
与HFS +中的32位标识符相比,64位inode显着增加了名称空间。64位APFS文件系统在每个卷上支持超过9亿个文件。正如比尔·盖茨(Bill Gates)所说,这对每个人都足够。纳秒级时间戳
APFS大大提高了时间戳记的准确性。APFS支持精确到纳秒级的时间戳。为了进行比较,在HFS +中将时间戳设置为最接近的秒。纳秒级的时间戳在现代文件系统中非常重要,因为它们有助于实现原子性和原子事务-事务系统(例如,DBMS)的主要ACID要求之一。原子性确保没有事务部分提交给系统。她的所有子操作都将完成,或者单个操作都不会完成。防撞保护
APFS实施了一种创新的写时复制元数据方案,Apple将其称为“崩溃保护”。如果在录制过程中发生了某些事情,例如断电,它可以确保对文件系统和日志记录的更改保持同步。
ZFS写入时复制模式稀疏文件
具有“稀疏”属性的文件采用零字节块的内容,该内容未存储在驱动器上,但暗含。HFS +没有稀疏文件支持。扩展属性
APFS内置了对扩展文件属性的支持,在HFS +中,扩展属性是通过Attributes文件(即B树)实现的。加密方式
苹果声称加密是APFS在文件系统级别内置的一项基本属性。对于APFS容器中的每个卷,将安装以下一种加密模型:不加密,使用一个密钥加密,使用多个密钥加密。在后一种情况下,单个密钥用于加密文件和元数据。根据硬件,APFS使用AES-XTS或AES-CBC加密模式。克隆文件和目录
克隆-几乎是即时复制文件或目录,不需要额外的空间来存储数据。修改克隆后,文件系统仅记录数据更改。因此,新文件系统可以存储大文件的许多版本,占用更少的磁盘空间。快照
快照-卷中文件系统的只读“快照”。操作系统可以使用快照来实现更有效的备份过程。也就是说,最终,Time Machine将正常运行(快速)。
当然,APFS在功能上明显不如Linux,FreeBSD和其他免费OS支持的128位ZFS文件系统,但是对于苹果公司而言,这是朝正确方向迈出的一步。奇怪的是,初步文档没有提及HFS +支持的压缩功能。苹果很长时间以来一直在尝试将ZFS移植到OS X,在ZFS邮件列表上进行了积极的讨论,为下一版OS X发布了初步快照。后来,OpenZFS在OS X(O3X)和MacZFX上实现了。ZFS文件系统是开源的,Apple可以借鉴一些有关APFS文件系统的想法。APFS的开源实现尚未准备就绪,Apple计划在2017年发布记录并发布APFS格式。第一届正式会议将于今晚在WWDC举行,开发人员将在此详细了解APFS的新功能。Source: https://habr.com/ru/post/zh-CN395253/
All Articles