1 Reply
      Latest reply on Apr 17, 2017 7:01 AM by ubh
      rtrouton Level 1 Level 1 (0 points)

        Eric Tamura - Manager, Local File Systems

        Dominic Giampaolo - Senior Software Engineer, Storage / File Systems



        What is Apple File System (APFS)?






        • Next generation file system
        • Runs on all four platforms - watchOS, iOS, macOS, tvOS
        • Scales from Apple Watch to Mac Pro
        • Designed to take advantage of Flash/SSD
        • Engineered with encryption as a primary feature








        • Apple wants to phase out HFS+
        • Data structures in HFS+ are single-threaded
        • Data structures are rigid - adding new features means a lot of backwards-compatibility and forwards-compatibility issues







        Designed for Apple products and ecosystem

        Scale footprint from Apple Watch to Mac Pro



        Other considerations:


        Enhance security capabilities

        Add new features!





        Current File System Storage SW - watch video for overview.


        All technologies currently in use will be replaced by APFS

        This includes Core Storage. CS is being replaced by APFS <- Important for FileVault 2 encryption and Fusion drives



        New Features:


        Improved file system fundamentals

        • Flash / SSD-optimized
        • Crash-protected
        • Modern 64-bit native fields for inodes and metadata
        • Extensible design for data structure growth - addresses HFS+ rigid data structure issue by making sure that new features can be added without harming backwards compatibility. New fields can also be added.
        • Optimized for Apple software ecosystem
        • Low latency design, designed for fast responsiveness
        • Native encryption support - First class objects inside the file system



        HFS Compatibility:


        Support and replace HFS+ functionality


        Three things not supported:


        • Exchange data
        • Directory hard links for Time Machine
        • Missed third item (watch video)






        Watch video for multiple HFS+ partition space issue explanation



        APFS containers:


        Free space will dynamically resize as needed.

        You can add more drive volumes to a container, to add free space to the container.



        Cloning files and directories:


        Cloning copies references to the data, rather than making a separate copy of the data.

        When changes are made to the original, the changes are written elsewhere. This leaves the cloned copy alone with its existing references intact.



        File system snapshots:


        Makes read-only copy of the filesystem which stores the state of the filesystem at the time when the snapshot was taken.

        Snapshots will take up disk space, to store that filesystem state. Snapshot maintenance is recommended, else you'll eventually run out of disk space.


        Revert to snapshot - Filesystem will "rewind" to the state it was in when the snapshot was taken. Snapshot continues to exist and you can revert back as often as desired.



        Fast directory sizing


        How much space does a directory and its take up in the filesystem?

        Users would like to know quickly.



        Safely updating parent directory and included contents:

        APFS stores the size of the directory / directories elsewhere in the filesystem - rather than in the directory itself.



        Atomic Safe-Save (rename)


        renamex_np (np = Non-POSIX)

        Atomic-level saves to files and directories, rather than writing to temp files







        HFS+ relies on CoreStorage to provide Full Disk Encryption

        iOS relies on an HFS+ variant for encryption



        APFS supports multiple levels of encryption


        • No encryption - no data is encryted
        • One key per volume (metadata and data) - This is equivalent to CoreStorage encryption today
        • Multi-Key encryption
        • Metadata encryption
        • Per-File encryption
        • Per-Extant encryption



        Watch the video once available for more details on the encryption.



        • Command line tool - snapshotutil (available in Sierra Public Beta, not yet in Developer Previews)
        • Command line tool - mount_apfs - mounts APFS volumes





        New APIs:


        Foundation / File Manager (Swift)

        - Automatically adopts new cloning and snapshot behavior when dealing with APFS volumes





        CoreOS library for copying hierarchies - supports cloning

        Slightly above the POSIX layer

        More details available - watch video



        New file/directory cloning calls - watch video


        New functionality



        hdiutil - see new APFS functionality


        diskutil apfs createContainer
        diskutil apfs AddVolume



        APFS Limitations:



        Data volumes only


        What doesn't work:


        Time Machine backups with APFS

        FileVault / Fusion drive support




        APFS cannot be shared over AFP; SMB preferred

        OS X Yosemite or earlier can't recognize APFS volumes





        Upgrading to APFS:


        Apple will provide an in-place upgrade path from HFS+ to APFS

        • User data remains in place
        • Write the new APFS metadata into HFS+'s free space.
        • Will not be instantaneous; should be a reasonably quick conversion
        • Crash protection will be in place during the conversion process.



        Ships by default on all devices in 2017.


        More details in video.


        More information: https developer .apple. com/ wwdc /701


        Related sessions and labs:



        How iOS Security Really Works

        File Systems Lab


        See complete list of session and lab notes here: