Tham dự Tech Lounge

Tham dự Tech Lounge


Apple File System: tối ưu cho SSD, copy file không tốn thêm dung lượng, dùng cho iPhone, Mac, Watch

Duy Luân
26/1/2017 23:37Phản hồi: 111
Apple File System: tối ưu cho SSD, copy file không tốn thêm dung lượng, dùng cho iPhone, Mac, Watch
Apple File System (APFS) là một định dạng file system hoàn toàn mới của Apple, hiện đã có mặt trên iOS 10.3 Beta và sắp tới sẽ được áp dụng cho tất cả mọi sản phẩm của họ, từ đồng hồ, TV cho đến máy tính hay điện thoại. Bất kể ở đâu có lưu trữ thì APFS sẽ được dùng cho chỗ đó. APFS có nhiều lợi ích rõ ràng: tối ưu cho SSD nên chạy nhanh hơn, cho phép copy file mà không làm tốn thêm dung lượng, hỗ trợ tính năng snapshot lại phiên bản file rồi quay trở lại sau đó, hoặc tạo các phân vùng không cần liên tiếp. APFS cũng tăng tính linh hoạt để Apple có thể thêm chức năng mới bất kì khi nào họ muốn mà không phải chạy áp dụng lại cho tất cả các file đang có trong ổ.


HFS+ là gì, có hạn chế gì?

Hiện tại, các thiết bị của Apple chủ yếu dùng định dạng HFS+ hoặc HFS+J (Journal). Định dạng file system này đã tồn tại trên 30 năm và được phát minh trong thời đại của ổ đĩa mềm, ổ cứng. Theo thời gian, định dạng đó có nhiều hạn chế, ví dụ:
  • Cũ, không tối ưu cho ổ SSD
  • Khả năng bảo vệ dữ liệu không tốt khi có sự cố xảy ra lúc đang ghi dữ liệu
  • Không hỗ trợ nhiều luồng xử lý, tìm kiếm file
  • Cấu trúc dữ liệu cố định nên khó thêm chức năng mới, nếu thêm thì phải chạy lại cho tất cả file
Đây là động lực khiến Apple muốn "làm lại từ đầu" bằng APFS. Họ thiết kế ra một định dạng mới hoàn toàn và trong tương lai sẽ dùng cho tất cả mọi sản phẩm của mình.

APFS tối ưu cho SSD, tốc độ đọc ghi nhanh hơn


HDD truy xuất dữ liệu bằng đầu đọc, trong khi SSD truy xuất bằng điện. So với một thứ cơ học thì rõ ràng điện nhanh hơn nhiều, nhưng Apple không thể tận dụng hết sức mạnh của SSD bởi vì cách lưu trữ, cấu trúc file vẫn còn theo kiểu cũ. Giờ đây, APFS khắc phục nhược điểm đó và được tối ưu rất tốt cho SSD. Trong bối cảnh mà iMac, MacBook, Mac Pro, Apple Watch, iPhone, iPad đều sử dụng SSD thì lợi ích mà APFS mang đến cho hệ sinh thái Apple là rất to lớn. Hơi tiếc là hiện tại Apple chưa nói APFS nhanh hơn bao nhiêu so với HFS+, cái này chắc phải chờ thêm một thời gian nữa.

Apple cũng hứa hẹn AFPS sẽ có khả năng quản lý lỗi tốt hơn. Ví dụ, khi bạn đang ghi file mà lỡ cúp điện tắt máy tính cái bụp thì trong lần khởi động kế tiếp, một hệ thống quản lý mới sẽ theo dõi xem đó có thể ghi tiếp được hay không, nếu được thì tiếp tục, còn không thì hủy hoàn toàn việc ghi file để tránh việc file lỡ dỡ không xài được. Cái này giống như giao dịch ngân hàng: hoặc thành công, hoặc thất bại, chứ không có lỡ dỡ nửa đường.

SSD_APFS_multiple_os.jpg

Space Sharing: phân vùng không cần liên tiếp


Đây là chức năng thứ hai mà mình cảm thấy rất thích thú với APFS, và theo Apple thì hiện nay chưa có file system nào khác làm được chuyện tương tự. Hiện tại một ổ đĩa của bạn có thể được phân thành nhiều phân vùng, ví dụ A, B theo thứ tự, ngoài ra còn có một đoạn C trống chưa được dùng cho bất kì phân vùng nào. Sau khi đã phân xong, nếu bạn muốn tăng dung lượng phân vùng A thì không được vì B đã nằm ngay kế, các khối nhớ đã được phân chia xong. Chính vì vậy nên các công cụ format thường phải di chuyển B xuống C rồi mới nới A ra được. HFS+ cũng vậy.

Trong khi đó, APFS quản lý phân vùng theo cách khác. Ổ đĩa của bạn giờ đây có một cái container bao quanh, trong này chỉ có 1 phân vùng vật lý duy nhất. Phân vùng đó lại tiếp tục được chia thành nhiều volume nhỏ hơn, và những volume này đều được chia theo logic nên khi cần nới rộng A, APFS chỉ đơn giản là lấy phần C còn trống và gán nó cho A là xong. Như vậy bạn volume của bạn giờ sẽ là A - B - A. Tất nhiên, ở mức hệ điều hành thì nó vẫn thấy A như một khối thống nhất, rồi B là một khối khác, và volume cũng sẽ được nhìn như là một phân vùng ổ đĩa.

Space_Sharing_APFS.jpg

Lợi ích thực tế: khi bạn xài hết dung lượng của phân vùng A, bạn có thể nới rộng nó một cách đơn giản, miễn là ổ đĩa của bạn còn trống và chưa bị B chiếm hết. Mà ngay cả khi B chiếm hết thì bạn vẫn có thể thu nhỏ B rồi nới A vào khoảng trống mới được tạo mà không phải tốn thời gian ngồi chờ đợi di chuyển B, quá tuyệt. Trước đây chúng ta thường phải dành nhiều giờ với các công cụ chuyên nghiệp, đắt đỏ mới làm được trò này.

Clone: copy file không tốn dung lượng

Quảng cáo



Hiện tại, khi bạn ra lệnh copy file, file sẽ được đọc và ghi thành một khối mới, tức là chiếm không chỉ CPU, RAM mà còn chiếm cả dung lượng trên ổ. Ví dụ, bạn có một file 1GB thì khi copy ra, dung lượng chiếm dụng của 2 file sẽ là 2GB. APFS thì khác, khi bạn copy, nó sẽ tham chiếu file mới về lại file cũ nên không làm tăng thêm miếng dung lượng nào. 1GB vẫn là 1GB. macOS vẫn xem đây là hai file riêng biệt, nhưng về mặt lưu trữ vật lý thì nó chỉ là một mà thôi. Chỉ khi nào bạn bắt đầu chỉnh sửa lên 1 trong 2 file thì macOS mới tạo ra bản sao thật sự của file, và chỉ khi đó phần chiếm dụng trên ổ mới tăng lên.

Lợi ích thực tế: bạn có thể copy nhiều tài liệu ra lưu ở nhiều vị trí khác nhau, cho các ứng dụng khác nhau, mà không tốn thêm miếng data nào. Chẳng hạn, một file có thể được lưu trong cả thư mục "Công việc" và "Cá nhân"; hoặc một file nhạc có thể vừa nằm trong folder iTunes vừa nằm ở thư mục Dropbox để sao lưu.

SSD_APFS_clone_file.jpg

Snapshot và Reversion


Chức năng Clone nói trên dẫn đến chức năng Snapshot này. Các ứng dụng, kể cả app bên thứ ba, có thể tạo ra bản sao lưu của cả phân vùng ở chế độ read only. Khi người dùng lỡ tay xóa hay chỉnh sửa sai file, họ luôn có thể phục hồi lại (revision) bản trước đó bằng cách chui vào snapshot lấy file cũ ra là xong. Mac trước đây có chức năng Time Machine tương tự nhưng cách hoạt động hơi khác: nó theo dõi các thay đổi với file (journal) để quay trở lại phiên bản cũ khi cần, và chỉ theo dõi được trên từng file.

Các bản snapshot sẽ luôn tồn tại trên đĩa, vậy nên Apple nói các lập trình viên nhớ thường xuyên dọn snapshot sau một thời gian định kỳ để không chiếm quá nhiều đĩa của người dùng. Cơ chế dọn thì tùy lập trình viên chọn: có thể là tự xóa snapshot cũ và tạo snapshot mới sau mỗi 4 tháng, hoặc để người dùng tự tương tác cũng được.

Quảng cáo


Snapshot và revision sẽ rất hữu ích cho những ứng dụng giúp bạn sao lưu, phục hồi file hay bảo trì hệ thống.

APFS_file_system_snapshot.jpg

Độ trễ thấp


Trên sân khấu, Apple nói rằng họ thiết kế APFS để ưu tiên độ nhạy, phản hồi cho cả hệ thống, đồng thời giúp app chạy lên nhanh nhất có thể. Apple tin rằng điều này sẽ giúp trải nghiệm của người dùng tốt hơn, họ cảm thấy thoải mái hơn khi sử dụng lâu dài. Lợi ích thực tế của vụ này thì quá rõ ràng: bạn không phải ngồi chờ app chạy lên lâu như hiện tại nữa, bất kể đó là trên máy tính, iPhone, iPad hay watchOS.

Vẫn tương thích ngược với HFS và các app chạy trên HFS, không cần viết lại


Tất cả ứng dụng đang dùng với định dạng HFS có thể mang lên APFS chạy như thường, chẳng cần lập trình viên thay đổi gì cả. Chỉ một số chức năng riêng của HFS là không còn được hỗ trợ nhưng đa phần liên quan đến lập trình viên nhiều hơn. Điều này giúp tăng tính tương thích và giảm lỗi khi bản update chuyển từ HFS sang APFS được phát hành.

Bảo mật mạnh


APFS nhấn rất mạnh vào khả năng mã hóa. Nó có nhiều cấp độ mã hóa, ví dụ không mã hóa, mã hóa dùng 1 key cho mỗi phân vùng, mã hóa riêng cho từng file. Hiện iOS đang được áp dụng cấp mã hóa từng file, mỗi file có một chìa giải mã riêng biệt nên tính an toàn cao. Khi bạn bị lấy cắp máy tính hay điện thoại, hacker sẽ rất khó để lấy được nội dung gốc của những file này nhờ có APFS.

Hiện tại APFS chỉ mới áp dụng cho iOS 10.3, các hệ điều hành khác thì chưa. Apple đang tiếp tục hoàn thiện APFS và sẽ tung nó ra đâu đó trong năm nay hoặc năm sau.

Tham khảo: Apple
111 bình luận
Chia sẻ

Xu hướng

nguyen.phi66
ĐẠI BÀNG
7 năm
những gì Apple làm đó điều là công nghệ của tương lai
@nguyen.phi66 tôi thích cách suy nghĩ của bạn, phải đăng nhập vào like liền cho bạn
Thường thì copy thêm 1 file để chỉnh sửa ko ảnh hưởng file cũ. Cái này phù hợp file nhạc hoặc file chỉ xem ko chỉnh sửa.
Quá tuyệt...hy vọng áp dụng lên con watch để mở ứng dụng cho lẹ tí...iphone ipad hiện nay là nhanh quá rồi, còn bản cũ hơn thì chưa dùng ssd nên chắc cũng kg tối ưu nhiều...
ggunf
TÍCH CỰC
7 năm
Thế có đỡ tốn pin hơn không? 😔
Lỡ leo lên 10.x thấy tốn pin hơn 9.3 (ipad pro 9.7') :'(
@ggunf Chuẩn bác ơi ipad 9,7 của em xũng thế leo lên 10 h thấy cảnh lỗi chéo hèo, pin thìtuopjt như tuột quần :((
ggunf
TÍCH CỰC
7 năm
@xuanhung2007 Chắc máy bạn hàng limit của apple 😃
Người dùng thấy lỗi thỳ nói thôi.
ggunf
TÍCH CỰC
7 năm
@huyhoang02021991 Cảm giác nó k tốt như 9.3 hẳn :(
shockbumbum
ĐẠI BÀNG
7 năm
@ggunf Yeah. .... pin hao hơn hẳn
Ngon. Sức sáng tạo của Apple vẫn rất tuyệt vời😁
longakka
ĐẠI BÀNG
7 năm
Chưa hiểu vì sao một cái file system lại có thể tăng tốc cho SSD, ai giỏi kỹ thuật phân tích hộ cái
@longakka Không phải tăng tốc, mà là tối ưu cách lữu trữ + lấy dữ liệu nên bạn lấy được nhanh hơn. Kiểu như kệ sách mà bạn sắp theo chữ cái, đánh mục rõ ràng thì khi cần lấy sẽ nhanh hơn là phải scan hết cả kệ vậy đó
@longakka Không phải tăng tốc cho ssd mà là tận dụng tối đa sức mạnh của ssd. Điều mà hệ thống lưu trữ cũ chưa làm đc
Eldimio
CAO CẤP
7 năm
@longakka Bạn thử nghiệm ngay thế này nhé. Bạn có 1 file 1GB và 1 folder chứa 1 mớ files (khoảng 2000 cái lớn nhỏ khác nhau) nhưng dung lượng cũng là 1GB. Giờ bạn copy lần lượt 2 thứ trên vào cùng 1 ổ USB và so sánh thời gian. Để xem file system làm chậm tốc độ thật sự của ổ flash USB ra sao, khi lượng data tương đương nhưng quản lý 1000 files chậm hơn rất nhiều 1 file.
lockhomes
ĐẠI BÀNG
7 năm
@longakka Làm gì có chuyện tăng tốc cho SSD bác , nó chỉ tối ưu khi sử dụng SSD thôi . Tăng là tăng tốc độ truy cập hệ thống so với HFS/HFS+ thôi.
tạo tham chiếu cho tác vụ copy nghe thì hay, nhưng nó sẽ tạo ra nhiều rắc rối sau đó. Tất nhiên không tới lượt người dùng cuối lo. Apple và lập trình viên hẳn đã có các bộ quy chuẩn, giao thức để xử lý vấn đề này. tuy nhiên, mình vẫn quan ngại khơi khơi 😁
@hungbya mình đang nghĩ tới chuyện này. hoặc những chuyện như chép dữ liệu ra ổ rời. hoặc copy thì rất nhanh, đến lúc chỉnh sửa thì super lâu, gây ra hiểu lầm không cần thiết trong trải nghiệm người dùng. Nhưng như đã nói, mình tin Apple đã lường trước hết những kịch bản này. Họ sẽ lựa chọn giải quyết như thế nào thui (e.g. Họ có thể khiến việc backup dữ liệu bằng Time Machine thành một tác vụ essential của người dùng và khiến họ lệ thuộc hơn nữa vào hệ sinh thái Apple - điều này thì dám xảy ra, theo cách trước giờ Apple ràng buộc người dùng của mình).

nhưng nói chung, cách nào họ lựa chọn, trước giờ nói chung mình đánh giá cao chất lượng sản phẩm, dịch vụ của Apple.
@hungbya Vụ này thì đồng ý nhé, để coi Apple sẽ giải quyết như thế nào
noinghenah
TÍCH CỰC
7 năm
@hungbya Em cũng vừa nghĩ tới vụ này lúc đọc cái tham chiếu. Kiểu risk giống dùng raid 0 vậy. Hỏng một đầu là hỏng hết. Ko biết Apple có phương án nào vụ này ko.
ngoc1414
TÍCH CỰC
7 năm
@hungbya cái này mình khá chắc chắn là Apple đã nghĩ tới nên khi data bị lỗi, họ sẽ cung cấp dịch vụ recovery với mức giá cắt cổ vì chỉ Apple mới làm đc 😆
asukaa
ĐẠI BÀNG
7 năm
Giờ có 1 file tầm 100GB khi copy mất khoảng 30p , khi chỉnh sửa file copy trên 1 máy có tài nguyên hạn chế nếu sử dụng cơ chế của Apple thì lúc đó nó mới copy và mất 30p đơ ra =)) chắc cũng vui
ocaidet
ĐẠI BÀNG
7 năm
@asukaa Yên tâm là chỉ chạy lên mac mới nhất. Chạy đc mac mới nhất cũng phải là máy mac thế hệ hiện tại. Nên vụ chậm là ko bao giờ đâu 😆
asukaa
ĐẠI BÀNG
7 năm
@ocaidet Dù có mới đến mức nào nhanh tới mức nào thì vẫn sẽ tiêu tốn 1 lượng tài nguyên kha khá và cộng với việc các phân vùng là 1 phân vùng logic nó làm mất hoàn toàn tính chủ động khi quản lý tài nguyên của dùng cuối , cuối cùng sẽ có rất nhiều thứ phát sinh
hungbya
TÍCH CỰC
7 năm
Bài này mod viết không có sự so sánh với các FS đang sử dụng và phát triển hiện tại, ví dụ như NTFS, EXT4, ZFS. Với người dùng thông thường thì không có vấn đề gì, nhưng đối với những doanh nghiệp đặc biệt cần tới toàn vẹn dữ liệu thì APFS không hướng tới.
hayhayfe
ĐẠI BÀNG
7 năm
@vunh94 Mình thích thì mình dùng thôi 🆒🆒🆒 nhà nhìu tiền quá cũng khổ không có gì tiêu mua 3 4 cái mac về chơi thì được bảo fan cuồng :eek::eek::eek:
vunh94
CAO CẤP
7 năm
@Duy Luân dạ ý em ở đây là nếu mình tìm hiểu đam mê mua thì đc, chứ em thấy cũng cả đống đứa dùng apple mà có biết xài gì đâu. Chủ yếu mua khoe sang chãnh thôi ạ :D
@vunh94 Vấn đề là nó có tiền mua để khoe là nó ngon rồi, sao lại chửi nó.

Biết xài là khái niệm rất chung, thế nào là biết xài? Ví dụ bạn mua iPhone về để nghe gọi chụp hình, bạn không jailbreak, vậy là không biết xài? Tương tụ, bạn mua máy android về để lướt web nghe nhạc không roỏt, vậy là bạn không biết xài?

Miễn người ta thấy vui với cái máy là đã tuyệt vời lắm rồi, đừng suy nghĩ phức Tạp :D
vunh94
CAO CẤP
7 năm
@Duy Luân xài z cơ bản r ạ, con nít cũng biết, ý em là phải đi sâu vô chuyên môn đam mê mày mò nghiên cứu thì như vậy mới là xài ạ :D đối vs em định nghĩa xài là phải z. quan điểm em là z.
Các bác cho em hỏi là làm sao để chuyển dữ liệu zalo giữa iphone vs nhau ạ. Em thấy có imazing hình như làm dc. Nhưng mà phí đắt quá ạ. Các bác cho em hỏi còn cách nào ko ạ. Tks các bác. Chúc các bác năm ms mạnh khỏe
Tốc độ sau khi up lên vẫn chả thấy khác biệt gì (Ip7+ 256gb).
@gachiennuocmam Iphone 7 thì nhanh quá sao cảm nhận được =)) mà bản beta mới đổi fs
@bomduc Mình beta luôn rồi. Đã feedback mấy cái lỗi linh tinh mà từ mấy đời ios cũ tới giờ vẫn vậy. Nói chung không thấy khác thôi chứ không phải chê.
Các con dân công nghệ lại trổ tài hiểu biết của mình ra chê bai! Dám chắc trước khi có bài này, nhiều con dân còn chưa biết nó là cái gì!?!
hungbya
TÍCH CỰC
7 năm
@QLNN Đâu phải chỉ có Tinh Tế là trang công nghệ duy nhất đâu bạn, mod cũng chỉ tìm hiểu rồi dịch ra theo cách hiểu của mod thôi. Chẳng có ai chê bai bất kì FS nào cả, có điều mỗi cái cho những mục đích khác nhau, chỉ là nhiều bạn vô đây tâng quá trời tâng kiểu Apple đi trước mấy chục năm rồi sáng tạo quá mức các thứ làm người khác ngứa mắt thôi.
@QLNN Không nên đánh đồng, và cũng nên lịch sự khi comment 😁
Nghe có vẻ hấp dẫn. Chờ ios 10.3
Ruiz
CAO CẤP
7 năm
:rolleyes: Apple lại đi trước các hãng công nghệ khác cỡ 10 năm nữa rồi
@Ruiz Là sao 😁 không có gì cho thấy là đi trước nha
Tất yếu thôi, như MS ra ntfs, chắc cũng phải sớm phát triển thêm. Thấy cái clone của cái apple này hay đó. Trước giờ clone ntfs phải di chuyển data mất thời gian
@If you dont mind NTFS chắc cũng sắp được nâng cấp thôi, mấy vụ này là tủ của Microsoft mà
@Duy Luân Có ReFS đó thôi, nhưng vẫn đang test 😆
@Duy Luân MS ra FS mới năm ngoái rồi, gọi là ReFS (hiện tại đang là v2), nhưng chỉ mặc định áp dụng cho máy chủ thôi. Các máy tính windows 10 bình thường vẫn được trang bị nhưng bị disable đi.

The key features of ReFS are:
  • Integrity: ReFS stores data so that it is protected from many of the common errors that can cause data loss. File system metadata is always protected. Optionally, user data can be protected on a per-volume, per-directory, or per-file basis. If corruption occurs, ReFS can detect and, when configured with Storage Spaces, automatically correct the corruption. In the event of a system error, ReFS is designed to recover from that error rapidly, with no loss of user data.
  • Availability: ReFS is designed to prioritize the availability of data. With ReFS, if corruption occurs, and it cannot be repaired automatically, the online salvage process is localized to the area of corruption, requiring no volume down-time. In short, if corruption occurs, ReFS will stay online.
  • Scalability: ReFS is designed for the data set sizes of today and the data set sizes of tomorrow; it’s optimized for high scalability.
  • App Compatibility: To maximize AppCompat, ReFS supports a subset of NTFS features plus Win32 APIs that are widely adopted.
  • Proactive Error Identification: The integrity capabilities of ReFS are leveraged by a data integrity scanner (a “scrubber”) that periodically scans the volume, attempts to identify latent corruption, and then proactively triggers a repair of that corrupt data.
(source : website microsoft)
@Nguoi tinh nguyen Hay á, để mình nghiên cứu vụ này. Mới biết
Duyz
ĐẠI BÀNG
7 năm
lại mệt anh em hackintosh rồi
ChauStark
ĐẠI BÀNG
7 năm
@Duyz hackintosh vẫn bthg nhé vì 10.12 là có afs rồi, công nhận là thích hơn 10.11 thật quá mượt
Applenick
TÍCH CỰC
7 năm
Đã chưa...cám ơn Chú Táo, làm ơn ra nhanh cho em và nhớ phải ổn định nhoa !
Bình thường load app cho android hửi khói tám tủ kiếp

Giờ 10.3 nó lại thành con máy siêu quái vật à
File system bên Linux có nhiều loại lắm họ cải tiến để phù hợp với ssd lâu rồi Apple hơi cổ lỗ giữ để file system đến 30 năm. Ntfs của ma thì cùi nữa

Xu hướng

Bài mới









  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2024 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019