Bốn tính năng thú vị nhất của Hệ thống tệp Apple mới. Hệ thống tệp Apple (APFS)

Hôm qua, Apple đã trình làng các phiên bản mới của hệ điều hành macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, ứng dụng dạy trẻ em lập trình Swift Playgrounds và biểu tượng cảm xúc mới.

Có vẻ như không có gì thú vị. Tuy nhiên, Apple vẫn tung ra một cái gì đó cơ bản. Sự phát triển quan trọng nhất trong số tất cả những gì được đề cập tại buổi thuyết trình là Hệ thống tệp Apple (APFS) thế hệ tiếp theo trong hệ điều hành macOS (Sierra) 10.12.

Tài liệu với các đặc điểm chính và mô tả của hệ thống tệp lặp lại các chức năng riêng lẻ của hệ thống tệp miễn phí mạnh mẽ ZFS, đã được xuất bản trên trang web dành cho các nhà phát triển ngay sau khi trình bày.

Hiện nay, máy tính Apple sử dụng hệ thống file HFS+, một phiên bản mở rộng của HFS (Hierarchical File System, hệ thống file phân cấp), được tạo ra cách đây hơn 30 năm. Giống như người tiền nhiệm của nó, HFS+ sử dụng cấu trúc cây gọi là cây B* để lưu trữ hầu hết siêu dữ liệu. Do đó có tên là “hệ thống tập tin phân cấp”.

Buổi giới thiệu chính thức của HFS+ diễn ra vào ngày 19 tháng 1 năm 1998, cùng với MacOS 8.1. Từ năm 2002, hệ thống đã triển khai ghi nhật ký để tăng độ tin cậy cho việc lưu trữ thông tin. Kể từ phiên bản OS X 10.3, tính năng ghi nhật ký được bật theo mặc định và giờ đây có thể hoạt động ở chế độ phân biệt chữ hoa chữ thường.

Cho đến OS X 10.7, các nhà phát triển vẫn tiếp tục tinh chỉnh HFS+ và triển khai các tính năng mới cho OS X ở cấp hệ thống tệp. Nhưng thực tế vẫn là: HFS ban đầu được phát triển vào thời của đĩa mềm và ổ cứng quay, khi kích thước tệp được đo bằng. kilobyte hoặc megabyte. Ngày nay, nhiều người làm việc với ổ SSD, nơi lưu trữ hàng triệu tệp - hàng gigabyte hoặc terabyte dữ liệu. Các yêu cầu hoàn toàn khác nhau được đưa ra cho hệ thống tập tin. Thay vì làm lại mã cũ, cuối cùng Apple quyết định viết một hệ thống tệp mới từ đầu.

Hệ thống tệp APFS thế hệ tiếp theo vẫn đang ở giai đoạn bản xem trước của nhà phát triển, tức là nó không có kế hoạch đưa vào sử dụng đại trà trong tương lai gần. Ổ đĩa APFS hiện không thể được sử dụng làm ổ đĩa khởi động cũng như không thể sử dụng ổ đĩa này với bản sao lưu Time Machine, Fusion Drive hoặc mã hóa File Vault. Nhưng có thể đối với một ổ đĩa không thể khởi động thông thường.

Vẫn còn rất nhiều bước phát triển và thử nghiệm phía trước, nhưng chỉ khi đó APFS mới trở thành hệ thống tệp chính của Apple trong nhiều thập kỷ tới.

APFS, không giống như HFS+, vốn phân biệt kiểu chữ trong tên tệp và thư mục và không thể tắt tính năng này. Bất kỳ ai quyết định sử dụng APFS nên ghi nhớ điều này.

Các đặc điểm chính

Tài liệu chính thức liệt kê các đặc điểm chung của hệ thống tệp APFS so với HFS+.

Thùng chứa và khối lượng

Thùng đựng hàng là đối tượng chính để lưu trữ dữ liệu trong APFS. Các vùng chứa thường giống hệt như các mục trong Bảng phân vùng GUID (GPT) và chúng có sơ đồ phân bổ không gian đĩa và bảo vệ lỗi riêng. Mỗi thùng chứa một hoặc nhiều tập hoặc hệ thống tập tin, mỗi hệ thống có cái riêng của nó không gian tên, tức là một tập hợp các tập tin và thư mục.

APFS không hỗ trợ trực tiếp RAID phần mềm nhưng có thể được sử dụng với ổ đĩa Apple RAID để hỗ trợ Striping (RAID 0), Mirroring (RAID 1) và Concatenation (JBOD).

Inode 64-bit

Các nút 64 bit tăng đáng kể không gian tên so với các nút 32 bit trong HFS+. Hệ thống tệp APFS 64 bit hỗ trợ hơn 9 triệu tỷ tệp trên mỗi tập. Như Bill Gates đã nói, điều này là đủ cho tất cả mọi người.

Dấu thời gian nano giây

APFS đã tăng đáng kể độ chính xác của dấu thời gian. APFS hỗ trợ đánh dấu thời gian với độ chính xác nano giây. Để so sánh, trong HFS+, dấu thời gian được đặt với độ chính xác lên đến một giây.

Dấu thời gian nano giây rất quan trọng trong các hệ thống tệp hiện đại vì chúng giúp thực hiện các giao dịch nguyên tử và nguyên tử - một trong những yêu cầu ACID chính cho hệ thống giao dịch (ví dụ: DBMS). Tính nguyên tử đảm bảo rằng không có giao dịch nào được cam kết một phần với hệ thống. Hoặc tất cả các hoạt động phụ của nó sẽ được thực hiện hoặc không có hoạt động nào được thực hiện.

Bảo vệ lỗi

APFS triển khai sơ đồ siêu dữ liệu sao chép khi ghi sáng tạo mà Apple gọi là “Bảo vệ sự cố”. Nó đảm bảo rằng các thay đổi của hệ thống tệp và ghi nhật ký vẫn được đồng bộ hóa nếu có điều gì đó xảy ra trong khi quá trình ghi đang diễn ra, chẳng hạn như mất điện.

Sơ đồ sao chép khi ghi trong ZFS

Tập tin thưa thớt

Một tệp có thuộc tính "thưa thớt" giả định rằng nó chứa các khối 0 byte không được lưu trữ trên ổ đĩa mà được ngụ ý. HFS+ không hỗ trợ các tệp thưa thớt.

Thuộc tính mở rộng

APFS có hỗ trợ tích hợp cho các thuộc tính tệp mở rộng, trong HFS + được triển khai thông qua tệp Thuộc tính, nghĩa là thông qua cây B.

Mã hóa

Apple cho biết mã hóa là thuộc tính cơ bản được tích hợp vào APFS ở cấp hệ thống tệp. Đối với mỗi ổ đĩa trong vùng chứa APFS, một trong các mô hình mã hóa được đặt: không mã hóa, mã hóa một khóa hoặc mã hóa nhiều khóa. Trong trường hợp sau, các khóa riêng biệt được sử dụng để mã hóa tệp và siêu dữ liệu. Tùy thuộc vào phần cứng, APFS sử dụng chế độ mã hóa AES-XTS hoặc AES-CBC.

Nhân bản tập tin và thư mục

Nhân bản là sao chép gần như tức thời một tệp hoặc thư mục, không yêu cầu thêm dung lượng lưu trữ dữ liệu. Khi một bản sao được sửa đổi, hệ thống tệp chỉ ghi lại sự thay đổi dữ liệu. Bằng cách này, hệ thống tệp mới có thể lưu trữ nhiều phiên bản của tệp lớn trong khi chiếm ít dung lượng đĩa hơn.

Ảnh chụp nhanh

Ảnh chụp nhanh là ảnh chụp nhanh chỉ đọc của hệ thống tệp trên một ổ đĩa. Hệ điều hành có thể sử dụng ảnh chụp nhanh để có quy trình sao lưu hiệu quả hơn. Tức là cuối cùng Time Machine sẽ hoạt động bình thường (nhanh).

Tất nhiên, APFS kém hơn đáng kể về khả năng so với hệ thống tệp 128 bit ZFS, được hỗ trợ bởi Linux, FreeBSD và các hệ điều hành miễn phí khác, nhưng về phía Apple, đây là một bước đi đúng hướng.

Điều kỳ lạ là tài liệu sơ bộ không đề cập đến chức năng nén mà HFS+ hỗ trợ.

Apple đã cố gắng chuyển ZFS sang hệ thống OS X trong một thời gian dài, đã có một cuộc thảo luận tích cực về vấn đề này trên danh sách gửi thư của ZFS, các ảnh chụp nhanh sơ bộ đã được xuất bản cho phiên bản tiếp theo của OS X. Sau đó, việc triển khai OpenZFS đã được thực hiện dành cho OS X (O3X) và MacZFX.

Hệ thống tệp ZFS là nguồn mở và Apple có thể đã mượn một số ý tưởng từ hệ thống tệp APFS. Việc triển khai nguồn mở cho APFS vẫn chưa sẵn sàng; Apple có kế hoạch ghi lại và xuất bản định dạng APFS vào năm 2017.

Phiên họp chính thức đầu tiên sẽ diễn ra tại WWDC vào tối nay, nơi các khả năng APFS mới sẽ được trình diễn chi tiết hơn cho các nhà phát triển.

Tin tức tốt nhất thường nằm ở hậu trường trong các buổi thuyết trình của Apple. Lý do là một số trong số chúng chủ yếu phù hợp với các nhà phát triển, trong khi những người khác đơn giản là không có đủ thời gian - không có gì lạ với những thông báo quy mô lớn như vậy về iOS 10! Sự xuất hiện của một hệ thống tập tin mới của Apple có tên APFS (Hệ thống tệp Apple) trôi qua không có tiếng ồn và bụi bặm, nhưng rò rỉ đã rò rỉ trên Internet và bây giờ không có gì ngăn cản bạn nghiên cứu kỹ nó.

APFS là hệ thống tệp thế hệ tiếp theo có thể chạy trên mọi thứ từ Apple Watch đến Mac Pro. Apple File System được tối ưu hóa cho ổ SSD/Flash, tức là không còn chú trọng vào ổ cứng mà ưu tiên cao nhất là mã hóa. Ngày nay, một phiên bản phát triển cũ hơn của Cupertino, HFS+, được sử dụng rộng rãi và APFS đáng được so sánh. Nhưng trước tiên, thật kỳ lạ, hãy mô tả danh sách các hạn chế của APFS:

  • Các phân vùng được định dạng APFS không thể được sử dụng làm ổ đĩa khởi động.
  • APFS nhạy cảm với chữ hoa và chữ thường trong tên tệp.
  • Bản sao lưu Time Machine không được hỗ trợ trên APFS.
  • Các phân vùng được định dạng trong APFS không phù hợp để mã hóa qua FileVault.
  • Thiết kế Fusion Drive vượt qua APFS.

Ngoài ra, APFS hiện không phải là một dự án nguồn mở và bản thân Apple cũng khó có thể có kế hoạch tương tự cho nó. Hơn nữa, nhóm Cupertino sẽ chỉ công bố công khai hệ thống tệp thế hệ mới của họ vào năm tới.

Sau khi đã mô tả những thiếu sót có thể khiến người dùng bình thường sợ hãi, cần xác định Ưu điểm của APFS:

  • Tất nhiên, công việc hiệu quả với ổ đĩa thể rắn.
  • Việc sử dụng cái gọi là hộp đựng như các ô lưu trữ được bảo vệ nhiều hơn khỏi các lỗi. Ngoài ra, mỗi vùng chứa có thể xuất một hoặc nhiều phân vùng hoặc hệ thống tệp với tên, tệp và thư mục riêng. Xin lưu ý, ban đầu không có hỗ trợ RAID trực tiếp nào được nêu, tuy nhiên APFS có thể được kết hợp với phân vùng Apple RAID để cho phép RAID 0, RAID 1 và JBOD hoạt động. Mảng RAID có thể cắm cũng sẽ có thể kết bạn với APFS.
  • APFS hỗ trợ các nút 64 bit, trong khi các nút tệp HFS+ tập trung vào 32 bit. APFS có khả năng lưu trữ hàng tỷ tệp trên một phân vùng. Hãy tin tôi, điều này là rất nhiều :)
  • Khoảng thời gian trong APFS được chia thành nano giây, thay vì giây như trong HFS+.
  • APFS hỗ trợ các cấu trúc tệp thưa thớt giúp tiết kiệm dung lượng ổ đĩa.
  • Bộ cấp phát khối được thiết kế theo cách thông minh hơn: trong APFS, nó xác định kích thước của ổ lưu trữ, trong khi ở HFS+, nó luôn được gắn vào một khung cứng.
  • APFS có khả năng bảo vệ mạnh mẽ chống mất dữ liệu do lỗi.
  • APFS hỗ trợ các thuộc tính tệp mở rộng.
  • TRIM trong hệ thống tệp APFS hoạt động không đồng bộ khi loại bỏ và phân bổ không gian trống, do đó siêu dữ liệu chỉ được thay đổi một lần và đảm bảo độ ổn định hệ thống cao
  • Mã hóa là thành phần cuối cùng và quan trọng của Hệ thống tệp Apple. Hệ thống tệp sử dụng mã hóa AES-XTS hoặc AES-CBC đầy đủ (tùy thuộc vào phần cứng), kết hợp các nguyên tắc được đặt ra kể từ OS X 10.7 Lion và iOS 4, đồng thời hoạt động với nhiều khóa.

Bài báo này nên được tóm tắt với thông tin về khả năng tương thích, vì chỉ OS X Yosemite, El Capitan và Sierra mới có thể hoạt động với APFS - các phiên bản cũ hơn đơn giản là không nhận ra nó. Các phân vùng được định dạng trong APFS có thể được mở thông qua SMB, nhưng giao thức AFP sẽ không thể truy cập được. Và cuối cùng, các nhà phát triển bên thứ ba sẽ phải thực hiện những cập nhật lớn cho sản phẩm của họ để hỗ trợ hệ thống tệp thế hệ tiếp theo của Apple.

Tại WWDC vừa qua, Apple đã giới thiệu một hệ thống tệp mới – Apple File System hay APFS. Mặc dù HFS+ được sử dụng trên tất cả các sản phẩm của Apple (và sẽ được sử dụng trong ít nhất một năm nữa, APFS dự kiến ​​phát hành vào năm 2017), HFS+ không đáp ứng được yêu cầu của các hệ thống tệp hiện đại. Nó đã hơn 30 năm tuổi và được tạo ra vào thời điểm đĩa mềm và ổ cứng được coi là công nghệ mới nhất. Để sử dụng HFS+ trên iOS, tvOS và watchOS, Apple phải bổ sung thêm chức năng hoàn toàn của bên thứ ba không được hỗ trợ trên macOS: ví dụ: mã hóa cho từng tệp riêng lẻ.

APFS mới đã bổ sung nhiều tính năng đến mức chóng mặt: tối ưu hóa cho Flash và SSD, bảo vệ chống mất dữ liệu khi gặp sự cố bằng cách tăng số lượng hoạt động nguyên tử, hỗ trợ tích hợp cho một số loại mã hóa, giảm đáng kể thời gian phản hồi, ước tính nhanh kích thước của tập tin và thư mục - danh sách vẫn tiếp tục. Trong bài viết này, chúng ta sẽ xem xét bốn tính năng mà chúng tôi cho là thú vị nhất của hệ thống tệp mới.

Sao chép khi ghi an toàn

Đầu tiên, chúng ta sẽ phải hiểu một số thuật ngữ chính. Hoạt động nguyên tử là các thao tác được thực hiện không thể tách rời trên hệ thống tệp hoặc cơ sở dữ liệu và không thể đơn giản hóa. Một hoạt động nguyên tử không thể chưa hoàn thành nếu nó bị gián đoạn. Một hoạt động như vậy được thực hiện hoàn toàn hoặc không hề thực hiện. Lưu trữ tệp nguyên tử an toàn tuân thủ POSIXđược thực hiện như sau - khi chúng tôi làm việc với một ứng dụng và lưu tệp, dữ liệu từ bộ nhớ sẽ được tải xuống tệp tạm thời trên đĩa. Khi ứng dụng chắc chắn rằng dữ liệu đã được tải xuống hoàn toàn và không có lỗi, ứng dụng sẽ truy vấn hệ thống tệp về đổi tên. Hoạt động đổi tên là nguyên tử; nó sẽ được hoàn thành hoàn toàn hoặc hoàn toàn không. Khi đổi tên, điều xảy ra là hệ thống tệp sẽ di chuyển tệp tạm thời đến vị trí lưu (chẳng hạn từ /var/tmp/Batcave_shopping.pages đến ~fedor/Documents/Batcave_shopping.pages) rồi xóa tệp cũ.

Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta không lưu một tệp mà là một thư mục hoặc Gói (ví dụ: .rtfd hoặc .app, về bản chất, cũng là các thư mục)? Giả sử chúng ta đang làm việc với tài liệu ~fedor/Documents/AlfredHappyBirthday.rtfd. Đây là một Gói, nó chứa văn bản và một số hình ảnh. Khi chúng tôi thực hiện thay đổi và lưu chúng, ứng dụng sẽ ghi đè lên toàn bộ Gói chứ không chỉ văn bản hoặc hình ảnh đã thay đổi. Yêu cầu POSIX không cho phép bạn đổi tên thư mục ở nơi đã có sẵn dữ liệu, vì vậy bạn phải dùng đến các thủ thuật. Tài liệu được di chuyển từ ~fedor/Documents/ để giải phóng dung lượng, sau đó tệp tạm thời trong /var/tmp/AlfredHappyBirthday.rtfd được đổi tên thành khoảng trống. Hoạt động này là phi nguyên tử và không an toàn. Nếu xảy ra lỗi hệ thống hoặc máy tính mất nguồn trong quá trình hoạt động thì tài liệu sẽ bị mất.

Rõ ràng, giải pháp như vậy là không mong muốn. Do đó, APFS đã giới thiệu một thao tác lưu thư mục an toàn nguyên tử mới, không tương thích với POSIX. Khi một ứng dụng yêu cầu lưu một thư mục, các tệp tạm thời và vĩnh viễn sẽ được hoán đổi. Điều này được thực hiện bởi hệ thống tập tin và là một hoạt động nguyên tử.

Đây là tính năng Sao chép khi ghi an toàn - một trong những cải tiến quan trọng nhất trong APFS.

Nhân bản và ảnh chụp nhanh

Nếu bạn cần một bản sao của một tập tin hoặc thư mục, bạn nhấp chuột phải vào nó và chọn Sao chép. Trong HFS+, điều này có nghĩa là hệ thống tệp đọc tất cả dữ liệu và sau đó ghi nó vào không gian trống. Cách tiếp cận này là việc sử dụng không gian không hiệu quả và gây lãng phí tải đĩa và bộ xử lý. Trong APFS, khi bạn sao chép dữ liệu - thông qua Duplicate hoặc đơn giản là ⌘C, ⌘V - hệ thống tệp chỉ sao chép liên kết đến nó (được gọi là liên kết cứng) và nội dung không bị trùng lặp. Hoạt động này được gọi là nhân bản. Nhờ nhân bản, dữ liệu hoặc thư mục trùng lặp sẽ xuất hiện gần như ngay lập tức và chiếm một lượng không gian trống không đáng kể. Nếu bạn thực hiện các thay đổi đối với bản gốc hoặc bản sao, hệ thống tệp sẽ ghi lại các thay đổi và chuyển hướng liên kết tương ứng, giữ nguyên phần dữ liệu gốc. Trong APFS, hoạt động nhân bản là nguyên tử.

Ảnh chụp nhanh là ảnh chụp nhanh cụ thể của ổ lưu trữ thông tin về dữ liệu trên ổ đó tại một thời điểm cụ thể. Cách dễ nhất để hiểu cách thức hoạt động của nó là bằng một ví dụ. Giả sử chúng ta có một ổ đĩa (giả sử là ổ đĩa flash) có hai bản trình bày. Chúng tôi tạo một Ảnh chụp nhanh của ổ đĩa flash này, nó chứa hai tệp Joker.key và Riddler.key, các khối dữ liệu sau thuộc về các tệp. Bản thân Ảnh chụp nhanh không chứa dữ liệu từ ổ đĩa flash - chỉ những tệp có trên đó tại thời điểm ảnh chụp nhanh được tạo và chúng thuộc về khối nào. Điểm đặc biệt của Snapshot là các khối được ghi vào nó đều bị đóng. Chúng không thể bị xóa, di chuyển hoặc ghi đè. Do đó, ví dụ: nếu chúng tôi thực hiện các thay đổi đối với Joker.key và xóa Riddler.key hoàn toàn, các khối dữ liệu ban đầu sẽ vẫn còn nguyên. Mặc dù phương pháp này chiếm thêm không gian trống nhưng nó cho phép APFS gần như ngay lập tức trả lại âm lượng theo thời gian về thời điểm mà bất kỳ ảnh chụp nhanh nào được chụp.

Chia sẻ không gian

Chia sẻ không gian là một tính năng rất thú vị khác của APFS. Một lần nữa, cách dễ hiểu nhất là dùng một ví dụ. Giả sử bạn có một máy tính xách tay được cài đặt ổ SSD 256GB (rất có thể bạn thực sự có một ổ SSD) và bạn muốn cài đặt OS X El Capitan và macOS Sierra beta trên đó. Than ôi, Apple vẫn chưa cho phép bạn khởi động hệ điều hành từ ổ đĩa APFS (hoặc sử dụng nó cho Time Machine trong trường hợp đó), vì vậy bạn sẽ cần tạo hai phân vùng HFS+. Bạn khởi chạy Disk Utility và gặp phải một tình huống khó xử - bạn nên tạo phân vùng lớn đến mức nào? Bạn có thể chỉ cần chia ổ đĩa làm đôi, nhưng nếu bạn không có đủ dung lượng để chạy El Capitan một cách thoải mái thì sao? Hoặc ngược lại, bạn sẽ lạm dụng nó và các ứng dụng bạn cần sẽ không phù hợp với Sierra?

APFS giải quyết vấn đề này bằng tính năng Chia sẻ không gian. Trên đĩa có ổ đĩa APFS ở mức cao hơn, một vùng chứa được tạo chứa tất cả các ổ đĩa. Chúng có thể phát triển hoặc thu nhỏ một cách tự do và linh hoạt trong một thùng chứa như vậy mà không yêu cầu người dùng chọn mức độ lớn của chúng. Hãy quay trở lại máy tính xách tay giả định của chúng tôi. Nếu APFS được sử dụng thay vì HFS+ cho cả hai ổ đĩa thì cả hai hệ điều hành sẽ báo cáo rằng có 256 GB dung lượng trống cho mỗi ổ đĩa. Trong trường hợp này, không gian bị chiếm bởi các tệp trên một hệ thống sẽ không thể truy cập được vào hệ thống khác. Giải pháp này đơn giản hóa đáng kể công việc với nhiều tập và cho phép bạn nhận được lợi ích tối đa từ việc sử dụng chúng mà không gặp nhiều khó khăn.

Di chuyển từ HFS+

Cuối cùng, làm cách nào chúng tôi có thể di chuyển sang APFS? Quá trình chuyển sang hệ thống tập tin thường khó khăn, lâu dài và không phải lúc nào cũng an toàn. Bạn phải sao lưu dữ liệu của mình vào ổ đĩa ngoài, xóa ổ cứng máy tính, viết hệ thống tệp mới, cài đặt hệ điều hành, khôi phục dữ liệu từ bản sao và hy vọng rằng không có gì biến mất khỏi vị trí của nó.

May mắn thay, Apple đã quan tâm đến điều này. Các kỹ sư của công ty đã thực hiện rất nhiều công việc trong quá trình di chuyển. Quá trình này hầu như bao gồm hầu hết các hoạt động nguyên tử, nhưng điều chính là dữ liệu về hệ thống tệp mới chỉ được ghi vào vùng trống trên ổ HFS+. Điều này có nghĩa là ngay cả khi có sự cố xảy ra, nó sẽ không làm hỏng dữ liệu hoặc cấu trúc của hệ thống tệp hiện có của bạn. Và theo các kỹ sư của Apple, toàn bộ quá trình di chuyển chỉ mất vài phút.

Ở đây chúng ta đi đến kết thúc. Chúng ta chỉ nói về bốn chức năng nhưng còn có nhiều chức năng khác trong APFS. Nếu bạn muốn đi sâu vào chi tiết, tài liệu chính thức có tất cả các chi tiết. Hệ thống tệp mới, như chúng tôi đã đề cập ở trên, không thể được sử dụng cho Startup Disk hoặc Time Machine và sẽ không được hỗ trợ trên OS X Yosemite trở lên. Bản phát hành chính thức của APFS được lên kế hoạch vào năm 2017.

Tại buổi thuyết trình WWDC 2016 hôm qua, Apple đã trình làng các phiên bản mới của hệ điều hành macOS (Sierra) 10.12, iOS 10, tvOS 10, watchOS 3, ứng dụng dạy trẻ em lập trình Swift Playgrounds và các biểu tượng cảm xúc mới.

Có vẻ như không có gì thú vị. Tuy nhiên, Apple vẫn tung ra một cái gì đó cơ bản. Sự phát triển quan trọng nhất trong số tất cả những gì được đề cập tại buổi thuyết trình là Hệ thống tệp Apple (APFS) thế hệ tiếp theo trong hệ điều hành macOS (Sierra) 10.12.

Tài liệu với các đặc điểm chính và mô tả của hệ thống tệp lặp lại các chức năng riêng lẻ của hệ thống tệp miễn phí mạnh mẽ ZFS, đã được xuất bản trên trang web dành cho các nhà phát triển ngay sau khi trình bày.

Hiện nay, máy tính Apple sử dụng hệ thống file HFS+, một phiên bản mở rộng của HFS (Hierarchical File System, hệ thống file phân cấp), được tạo ra cách đây hơn 30 năm. Giống như người tiền nhiệm của nó, HFS+ sử dụng cấu trúc cây gọi là cây B* để lưu trữ hầu hết siêu dữ liệu. Do đó có tên là “hệ thống tập tin phân cấp”.

Buổi giới thiệu chính thức của HFS+ diễn ra vào ngày 19 tháng 1 năm 1998, cùng với MacOS 8.1. Từ năm 2002, hệ thống đã triển khai ghi nhật ký để tăng độ tin cậy cho việc lưu trữ thông tin. Kể từ phiên bản OS X 10.3, tính năng ghi nhật ký được bật theo mặc định và giờ đây có thể hoạt động ở chế độ phân biệt chữ hoa chữ thường.

Cho đến OS X 10.7, các nhà phát triển vẫn tiếp tục tinh chỉnh HFS+ và triển khai các tính năng mới cho OS X ở cấp hệ thống tệp. Nhưng thực tế vẫn là: HFS ban đầu được phát triển vào thời của đĩa mềm và ổ cứng quay, khi kích thước tệp được đo bằng. kilobyte hoặc megabyte. Ngày nay, nhiều người làm việc với ổ SSD, nơi lưu trữ hàng triệu tệp - hàng gigabyte hoặc terabyte dữ liệu. Các yêu cầu hoàn toàn khác nhau được đưa ra cho hệ thống tập tin. Thay vì làm lại mã cũ, cuối cùng Apple quyết định viết một hệ thống tệp mới từ đầu.

Hệ thống tệp APFS thế hệ tiếp theo vẫn đang ở giai đoạn bản xem trước của nhà phát triển, tức là nó không có kế hoạch đưa vào sử dụng đại trà trong tương lai gần. Ổ đĩa APFS hiện không thể được sử dụng làm ổ đĩa khởi động cũng như không thể sử dụng ổ đĩa này với bản sao lưu Time Machine, Fusion Drive hoặc mã hóa File Vault. Nhưng có thể đối với một ổ đĩa không thể khởi động thông thường.

Vẫn còn rất nhiều bước phát triển và thử nghiệm phía trước, nhưng chỉ khi đó APFS mới trở thành hệ thống tệp chính của Apple trong nhiều thập kỷ tới.

APFS, không giống như HFS+, vốn phân biệt kiểu chữ trong tên tệp và thư mục và không thể tắt tính năng này. Bất kỳ ai quyết định sử dụng APFS nên ghi nhớ điều này.

Các đặc điểm chính

Tài liệu chính thức liệt kê các đặc điểm chung của hệ thống tệp APFS so với HFS+.

Thùng chứa và khối lượng

Thùng đựng hàng là đối tượng chính để lưu trữ dữ liệu trong APFS. Các vùng chứa thường giống hệt như các mục trong Bảng phân vùng GUID (GPT) và chúng có sơ đồ phân bổ không gian đĩa và bảo vệ lỗi riêng. Mỗi thùng chứa một hoặc nhiều tập hoặc hệ thống tập tin, mỗi hệ thống có cái riêng của nó không gian tên, tức là một tập hợp các tập tin và thư mục.

APFS không hỗ trợ trực tiếp RAID phần mềm nhưng có thể được sử dụng với ổ đĩa Apple RAID để hỗ trợ Striping (RAID 0), Mirroring (RAID 1) và Concatenation (JBOD).

Inode 64-bit

Các nút 64 bit tăng đáng kể không gian tên so với các nút 32 bit trong HFS+. Hệ thống tệp APFS 64 bit hỗ trợ hơn 9 triệu tỷ tệp trên mỗi tập. Như Bill Gates đã nói, điều này là đủ cho tất cả mọi người.

Dấu thời gian nano giây

APFS đã tăng đáng kể độ chính xác của dấu thời gian. APFS hỗ trợ đánh dấu thời gian với độ chính xác nano giây. Để so sánh, trong HFS+, dấu thời gian được đặt với độ chính xác lên đến một giây.

Dấu thời gian nano giây rất quan trọng trong các hệ thống tệp hiện đại vì chúng giúp thực hiện các giao dịch nguyên tử và nguyên tử - một trong những yêu cầu ACID chính cho hệ thống giao dịch (ví dụ: DBMS). Tính nguyên tử đảm bảo rằng không có giao dịch nào được cam kết một phần với hệ thống. Hoặc tất cả các hoạt động phụ của nó sẽ được thực hiện hoặc không có hoạt động nào được thực hiện.

Bảo vệ lỗi

APFS triển khai sơ đồ siêu dữ liệu sao chép khi ghi sáng tạo mà Apple gọi là “Bảo vệ sự cố”. Nó đảm bảo rằng các thay đổi của hệ thống tệp và ghi nhật ký vẫn được đồng bộ hóa nếu có điều gì đó xảy ra trong khi quá trình ghi đang diễn ra, chẳng hạn như mất điện.

Sơ đồ sao chép khi ghi trong ZFS

Tập tin thưa thớt

Một tệp có thuộc tính "thưa thớt" giả định rằng nó chứa các khối 0 byte không được lưu trữ trên ổ đĩa mà được ngụ ý. HFS+ không hỗ trợ các tệp thưa thớt.

Thuộc tính mở rộng

APFS có hỗ trợ tích hợp cho các thuộc tính tệp mở rộng, trong HFS + được triển khai thông qua tệp Thuộc tính, nghĩa là thông qua cây B.

Mã hóa

Apple cho biết mã hóa là thuộc tính cơ bản được tích hợp vào APFS ở cấp hệ thống tệp. Đối với mỗi ổ đĩa trong vùng chứa APFS, một trong các mô hình mã hóa được đặt: không mã hóa, mã hóa một khóa hoặc mã hóa nhiều khóa. Trong trường hợp sau, các khóa riêng biệt được sử dụng để mã hóa tệp và siêu dữ liệu. Tùy thuộc vào phần cứng, APFS sử dụng chế độ mã hóa AES-XTS hoặc AES-CBC.

Nhân bản tập tin và thư mục

Nhân bản là sao chép gần như tức thời một tệp hoặc thư mục, không yêu cầu thêm dung lượng lưu trữ dữ liệu. Khi một bản sao được sửa đổi, hệ thống tệp chỉ ghi lại sự thay đổi dữ liệu. Bằng cách này, hệ thống tệp mới có thể lưu trữ nhiều phiên bản của tệp lớn trong khi chiếm ít dung lượng đĩa hơn.

Ảnh chụp nhanh

Ảnh chụp nhanh là ảnh chụp nhanh chỉ đọc của hệ thống tệp trên một ổ đĩa. Hệ điều hành có thể sử dụng ảnh chụp nhanh để có quy trình sao lưu hiệu quả hơn. Tức là cuối cùng Time Machine sẽ hoạt động bình thường (nhanh).

Tất nhiên, APFS kém hơn đáng kể về khả năng so với hệ thống tệp 128 bit ZFS, được hỗ trợ bởi Linux, FreeBSD và các hệ điều hành miễn phí khác, nhưng về phía Apple, đây là một bước đi đúng hướng.

Điều kỳ lạ là tài liệu sơ bộ không đề cập đến chức năng nén mà HFS+ hỗ trợ.

Apple đã cố gắng chuyển ZFS sang hệ thống OS X trong một thời gian dài, đã có một cuộc thảo luận tích cực về vấn đề này trên danh sách gửi thư của ZFS, các ảnh chụp nhanh sơ bộ đã được xuất bản cho phiên bản tiếp theo của OS X. Sau đó, việc triển khai OpenZFS đã được thực hiện dành cho OS X (O3X) và MacZFX.

Hệ thống tệp ZFS là nguồn mở và Apple có thể đã mượn một số ý tưởng từ hệ thống tệp APFS. Việc triển khai nguồn mở cho APFS vẫn chưa sẵn sàng; Apple có kế hoạch ghi lại và xuất bản định dạng APFS vào năm 2017.

Phiên họp chính thức đầu tiên sẽ diễn ra tại WWDC vào tối nay, nơi các khả năng APFS mới sẽ được trình diễn chi tiết hơn cho các nhà phát triển.

Vào năm 2014, Apple bắt đầu phát triển một hệ thống tệp mới, Apple File System (APFS), hệ thống này ba năm sau được công bố tại WWDC 16 và sẽ được sử dụng trong máy tính Mac, iPhone, iPad, Apple TV và các sản phẩm khác. Các thiết bị đầu tiên có APFS là máy tính chạy macOS Sierra - các nhà phát triển có thể sử dụng bản xem trước dành cho nhà phát triển của hệ thống tệp mới trên các đĩa không khởi động được. Và bắt đầu từ iOS 10.3, các thiết bị di động của Apple - iPhone và iPad - sẽ sử dụng APFS. Các nhà phát triển đã nhận được những bản cập nhật đầu tiên và vẫn chưa có ngày chính xác về bản phát hành cuối cùng của bản cập nhật hệ điều hành, nhưng chúng ta có thể cho rằng điều này sẽ xảy ra trong những tháng tới. Nhưng Apple File System là gì và việc chuyển đổi sang hệ thống tệp mới đối với công ty và người dùng thiết bị quan trọng như thế nào?

Bản thân tiêu chuẩn hệ thống tập tin khá bền và hiếm khi trải qua những thay đổi căn bản. Apple đã sử dụng hệ thống tệp phân cấp HFS trong máy tính của mình từ năm 1985 và chỉ đến năm 1998 mới thực hiện chuyển đổi sang phiên bản cập nhật của HFS+, phiên bản này được sử dụng cho đến năm 2016 và hiện sẽ dần nhường chỗ cho APFS. Một câu hỏi tự nhiên được đặt ra: nếu mọi thứ đã hoạt động hoàn hảo, thì việc chuyển sang một hệ thống tệp mới có thực sự cần thiết hay đó sẽ là một sự thay đổi vì mục đích thay đổi chính nó? Thực sự thực sự cần thiết. Không giống như các nhà phát triển, đối với người dùng bình thường, thông báo về APFS gần như không được chú ý, nhưng hệ thống tệp mới có thể được gọi là một bước ngoặt và thậm chí là một sự thay đổi mang tính cách mạng.

Vấn đề với HFS và HFS+ là các hệ thống tệp này được phát triển vào thời điểm bộ nhớ flash quá đắt đối với thị trường đại chúng. Ngày nay, ổ SSD rất phổ biến và giá cả phải chăng, nhưng sự hỗ trợ của chúng trong HFS+ được triển khai thông qua một mô-đun bổ sung ban đầu được tạo cho máy nghe nhạc iPod. Trên thực tế, trong quá trình phát triển, HFS+ đã thu thập quá nhiều mã bổ sung và “nạng nạng”, vì vậy thay vì hiện đại hóa nó, một bước hợp lý và đơn giản hơn nhiều là tạo một hệ thống tệp mới - một hệ thống ban đầu tương ứng với các tính năng của thiết bị hiện tại và sẽ có biên độ an toàn lớn cho tương lai và giải quyết được nhiều vấn đề của người tiền nhiệm.

Mã hóa

Apple coi việc bảo vệ dữ liệu người dùng là một trong những ưu tiên của mình nên mã hóa là tính năng cơ bản trong hệ thống tệp mới. Đối với mỗi ổ trong bộ chứa APFS, một trong các mô hình mã hóa được cài đặt: không mã hóa, mã hóa dữ liệu người dùng bằng một khóa, mã hóa siêu dữ liệu và dữ liệu người dùng bằng nhiều khóa. Tùy thuộc vào phần cứng, APFS sử dụng chế độ mã hóa AES-XTS hoặc AES-CBC.

Nhân bản tập tin và thư mục

APFS đã thay đổi cách hoạt động với các tệp trùng lặp. Nếu trong HFS+, hai tài liệu giống hệt nhau chiếm dung lượng ổ đĩa gấp đôi thì trong hệ thống tệp mới, chỉ một trong hai tệp sẽ chiếm dung lượng trên ổ đĩa. Và ngay cả khi bản sao được sửa đổi, APFS sẽ không sao chép tệp và sẽ chỉ ghi lại các thay đổi dữ liệu.

Các tệp thưa thớt và thuộc tính mở rộng

Tệp có thuộc tính "thưa thớt" giả định rằng nội dung của các khối byte 0 không được lưu trữ trên ổ đĩa mà dưới dạng thông tin về các chuỗi này trong siêu dữ liệu hệ thống tệp. Không giống như APFS, HFS+ không hỗ trợ các tệp thưa thớt. Đối với người dùng, điều này có nghĩa là tiết kiệm dung lượng ổ đĩa nhiều hơn, tăng hiệu suất do không còn thời gian ghi byte 0 và tăng tuổi thọ của ổ đĩa. Ngoài ra, APFS có hỗ trợ tích hợp cho các thuộc tính tệp mở rộng, được triển khai trong HFS+ thông qua tệp Thuộc tính bổ sung.

Bảo vệ lỗi

APFS có sơ đồ siêu dữ liệu sao chép khi ghi cải tiến để đảm bảo rằng các thay đổi đối với hệ thống tệp và các mục nhật ký tương ứng của chúng vẫn được đồng bộ hóa ngay cả trong trường hợp xảy ra sự kiện không mong muốn, chẳng hạn như mất điện. Ngoài ra, về cơ bản, APFS ghi dữ liệu theo một kiểu mẫu khác được ổ đĩa flash nhận dạng tốt hơn và hỗ trợ lệnh TRIM, lệnh này đảm bảo rằng hệ điều hành xử lý các tệp đã xóa và giải phóng dung lượng ổ đĩa một cách chính xác.

Dấu thời gian nano giây

APFS đã cải thiện đáng kể độ chính xác của dấu thời gian. Không giống như HFS+, nơi thời gian được đặt thành giây gần nhất, hệ thống tệp mới đặt nhãn biểu thị nano giây. Điều này giúp thực hiện cái gọi là nguyên tử và các hoạt động nguyên tử. Điều này đảm bảo rằng sẽ không có thao tác nào được cam kết một phần với hệ thống: hoặc tất cả các thao tác phụ của nó sẽ được thực thi hoặc không có thao tác nào được thực thi.

Inode 64-bit

Các nút 64 bit tăng đáng kể không gian tên so với các mã định danh 32 bit trong HFS+. APFS hỗ trợ hơn 9 triệu tệp trên mỗi tập.

Ảnh chụp nhanh và sao lưu

Ảnh chụp nhanh là ảnh chụp nhanh chỉ đọc của hệ thống tệp trên một ổ đĩa. Hệ điều hành có thể sử dụng chúng cho quy trình sao lưu hiệu quả hơn, vì APFS chỉ thêm các tệp hoặc phần đã thay đổi của tệp vào hình ảnh mà không sao chép cùng một dữ liệu trong các bản sao lưu khác nhau. Tuy nhiên, ở thời điểm hiện tại macOS Sierra, các ứng dụng của bên thứ ba và thậm chí cả Time Machine đều không hỗ trợ cơ chế sao lưu mới. Thông báo của nó trước hết là nền tảng cho tương lai.

Làm việc với các phân vùng không gian đĩa

Một tính năng thú vị của APFS liên quan đến hoạt động của các ổ đĩa được chia thành hai hoặc nhiều phân vùng. Khi sử dụng HFS+, người dùng chỉ có thể hoạt động với lượng bộ nhớ được chỉ định cho một phân vùng cụ thể, trong khi APFS cho phép bạn ghi dữ liệu vượt quá giới hạn với chi phí của một phân vùng khác. Hệ thống tệp mới không chia tổng dung lượng ổ đĩa thành các phần độc lập mà đặt ra các ranh giới có điều kiện, nếu cần, có thể được thay đổi một chút để đáp ứng các tác vụ của người dùng.