Apple’s New File System (APFS) Explained
Back in June 2016 at WWDC, Apple announced a new file system called the Apple File System (APFS). APFS will be replacing the existing Mac OS Extended (HFS+) file system that Macs have been using for years. It’s currently in beta but interestingly Apple has announced that iOS 10.3, which has just been released as a beta, will automatically migrate your iOS device to APFS.
Apple has also announced it will be releasing tools to perform the same migration for Mac OS sometime this year. As it stands, macOS Sierra comes with a preview of APFS. It’s not yet fully functional and comes with some limitations, such as, it can’t yet be used as the boot device or with Time Machine.
Here’s an overview of the benefits of this new file system.
This content is sourced from developer.apple.com
Overview of APFS
HFS+ and its predecessor HFS are more than 30 years old. These file systems were developed in an era of floppy disks and spinning hard drives, when file sizes were calculated in kilobytes or megabytes.
Today, people commonly store hundreds of gigabytes and access millions of files on high-speed, low-latency flash drives.
Apple File System is a new, modern file system for iOS, macOS, tvOS, and watchOS. It is optimised for Flash/SSD storage and features strong encryption, copy-on-write metadata, space sharing, cloning for files and directories, snapshots, fast directory sizing, atomic safe-save primitives, and improved file system fundamentals.
Apple File System is a 64-bit file system supporting over 9 quintillion files on a single volume.
A clone is a nearly instantaneous copy of a file or directory that occupies no additional space for file data. Clones allow the operating system to make fast, power-efficient file copies on the same volume without occupying additional storage space.
Modifications to the data write the new data elsewhere and continue to share the unmodified blocks. Changes to a file are saved as deltas of the cloned file, reducing storage space required for document revisions and copies.
A volume snapshot is a point-in-time, read-only instance of the file system. The operating system uses snapshots to make backups work more efficiently and offer a way to revert changes to a given point in time.
Space Sharing allows multiple file systems to share the same underlying free space on a physical volume. Unlike rigid partitioning schemes that pre-allocate a fixed amount of space for each file system, APFS-formatted volumes can grow and shrink without volume repartitioning.Each volume in an APFS container reports the same available disk space, which is equal to the total available disk space of the container. For example, for an APFS container with a capacity of 100GB that contains volume A (which uses 10GB) and volume B (which uses 20GB), the free space reported for both volumes A and B is 70GB (100GB – 10GB – 20GB).
Apple File System implements strong full-disk encryption, encrypting files and all sensitive metadata.
Which encryption methods are available depends on hardware and operating system support, and can vary for Mac, iPhone, iPad, Apple TV, and Apple Watch.Apple File System supports the following encryption models for each volume in a container:
- No encryption
- Single-key encryption
- Multi-key encryption with per-file keys for file data and a separate key for sensitive metadata
Multi-key encryption ensures the integrity of user data. Even if someone were to compromise the physical security of the device and gain access to the device key, they still couldn’t decrypt the user’s files.
Apple File System uses AES-XTS or AES-CBC encryption modes, depending on hardware.
Apple File System uses a novel copy-on-write metadata scheme to ensure that updates to the file system are crash protected, without the write-twice overhead of journaling.
Apple File System supports sparse files, a more efficient way of representing empty blocks on disk. With sparse files storage is allocated only when actually needed.
Fast Directory Sizing
Fast Directory Sizing allows Apple File System to quickly compute the total space used by a directory hierarchy, and update it as the hierarchy evolves.
As you can see, APFS will offer a lot of benefits this year. Like everything, when Apple release it for macOS don’t dive in before testing. Certainly any deployment solutions will need to be tested etc.
But iOS 10.3 will be our first example of it being used in the wild.