2020/03/17

Review khá ngắn: NTFS trên macOS, chọn Tuxera hay NTFS-3G?


Cách đây 1 năm, khi mới chuyển từ Windows sang macOS thì đa số dữ liệu của mình vẫn còn nằm trên các phân vùng NTFS. Tuy nhiên anh bạn macOS chỉ cho phép đọc mà không cho phép ghi, giống như cho quay tay đến lúc xuất nhưng lại không được xuất vậy.



Tham khảo các trang như StackOverflow, Reddit thì có 2 giải pháp cho vấn đề:
- Sử dụng NTFS-3G miễn phí và nguồn mở
- Mua Tuxera NTFS for Mac

Quay trở lại đề bài của mình:
- Muốn dùng lâu dài: biết đâu sau này mình chán lại muốn quay về Windows?
- Không có tiền: máy mình hackintosh thôi chứ không phải real Mac T_T

Chấm điểm các giải pháp dựa trên đề bài thì:
- NTFS-3G: miễn phí nguồn mở +1, cộng đồng linux cũng dùng thì chắc là ổn định +1
- Tuxera: trả phí nhưng có dùng thử +0.5, là phiên bản thương mại của NTFS-3G +1

Vậy là cái nào điểm cao thì dùng thôi...
Tới thời điểm hiện tại, do sắp hết dữ liệu trên các phân vùng ssd chạy native format của macOS nên mình phải chuyển bớt 1 phần dữ liệu sang NTFS, vốn đang dùng để backup. Đến đây thì bắt đầu nảy sinh vấn đề là ntfs-3g mặc dù chỉ là thao tác ghi dữ liệu nhưng tốn rất nhiều tài nguyên CPU, đồng thời tốc độ ghi rất chậm. Tìm google thì có kha khá người cùng cảnh:
Theo 1 số lý giải thì do NTFS-3G là 1 module FUSE - Filesystem in Userspace. Mượn tạm cái hình từ Wikipedia để ở đây:


Các hệ điều hành/phần mềm ứng dụng sử dụng rất nhiều thao tác trên file. Để đạt tốc độ xử lý cao nhất thì thông thường các phương thức giao tiếp các loại file system sẽ được cài đặt trực tiếp trong nhân (kernel) của hệ điều hành.
Việc phát triển và tương tác với các loại file system khác nhau là một nhu cầu không thể chối bỏ, có thể đây là lần đầu tiên các bạn nghe đến WikipediaFS - một loại file system cho phép user sửa bài viết trên Wikipedia như một file text bình thường, hoặc đã mang máng nghe qua nếu bạn tìm hiểu về cách mount hệ thống file của 1 máy tính qua ssh thì chắc đã đọc đến SSHFS nhưng chưa hiểu tại sao nó hoạt động.
Theo mình hiểu ở đây FUSE là interface của kernel và NTFS-3G là một chương trình/thư viện cài đặt FUSE.
Đúng như ý nghĩa của chữ "Userspace", phần lớn thao tác biên dịch chương trình, mount đều thực hiện được dưới quyền user thường.
Đối với FUSE, quá trình dữ liệu đi lại từ userspace sang kernel và ngược lại từ tốn nhiều tài nguyên của hệ thống hơn bình thường dù đã chọn ngôn ngữ cài đặt tối ưu. Như ví dụ dưới đây là nghiên cứu cài đặt FUSE trên ngôn ngữ Java (theo nghiên cứu của https://dl.acm.org/doi/10.1145/1774088.1774130)


Như vậy NTFS-3G bị mất điểm ở phần hiệu năng rồi. Vậy còn Tuxera thì sao, liệu đây có phải là bản nâng cấp đáng giá hay không khi tốn 15 Euro để mua bản quyền dùng lâu dài?
Chỉ có thực tế mới trả lời được, tuy nhiên thì mình cũng tham khảo vài con số so sánh xem người ta làm gì:


Nguồn: https://forums.anandtech.com/threads/synology-nas-using-ntfs-on-external-drive.2257175/
Sự khác biệt thật sự giữa 2 phiên bản là gì thì mình không biết bởi mình không có kĩ năng để tìm hiểu sâu về chương trình này. Có thể sẽ là lúc khác hoặc never 😛 If it works, it works and don't upgrade.
Số tiền bỏ ra cho Tuxera mang lại giá trị đúng như kì vọng <3

Update 01 (2020/03/18): Tìm kiếm lại thì macOS cho phép ghi bằng cách chỉnh sửa 1 số option khi mount hoặc đơn giản hóa bằng app Mounty với giá $0 nhưng về hiệu năng thì mình không biết. Tương lai thay vì dùng NTFS có thể mình sẽ sử dụng exFAT vì khả năng tương thích đối với các hệ điều hành và hiện tại thì M$ đã opensource exFAT (https://cloudblogs.microsoft.com/opensource/2019/08/28/exfat-linux-kernel/) hoặc không
> To be clear, Microsoft isn’t open-sourcing exFAT — but it is making sure anyone building with Linux can use it. 'It’s important to us that the Linux community can make use of exFAT included in the Linux kernel with confidence.' (https://news.ycombinator.com/item?id=20823970)

No comments:

Post a Comment