Quảng cáo Bcachefs cho Linux Kernel

Kent Overstreet, tác giả của hệ thống bộ nhớ đệm thiết bị khối SSD BCache, là một phần của nhân Linux, đã tóm tắt kết quả của công việc thúc đẩy hệ thống tệp Bcachefs trong bài phát biểu của mình tại hội nghị LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit). vào thành phần chính của nhân Linux và nói về kế hoạch phát triển hơn nữa FS này. Vào tháng 10, một bộ bản vá được cập nhật với việc triển khai Bcachefs FS đã được đề xuất để xem xét và đưa vào thành phần chính của nhân Linux. FS Bcachefs đã phát triển được khoảng 2020 năm. Sự sẵn sàng để xem xét việc triển khai Bcachefs trước khi đưa vào lõi đã được công bố vào cuối năm XNUMX và phiên bản hiện tại của các bản vá có tính đến các nhận xét và thiếu sót được xác định trong quá trình xem xét trước đó.

Mục tiêu phát triển Bcachefs là đạt đến cấp độ XFS về hiệu suất, độ tin cậy và khả năng mở rộng, đồng thời cung cấp các tính năng bổ sung vốn có trong Btrfs và ZFS, chẳng hạn như bao gồm nhiều thiết bị trong một phân vùng, bố cục lưu trữ nhiều lớp, sao chép (RAID 1/10), bộ nhớ đệm, nén dữ liệu trong suốt (chế độ LZ4, gzip và ZSTD), lát cắt trạng thái (ảnh chụp nhanh), xác minh tính toàn vẹn bằng tổng kiểm tra, khả năng lưu trữ mã sửa lỗi Reed-Solomon (RAID 5/6), lưu trữ thông tin được mã hóa (ChaCha20 và Poly1305 được sử dụng). Về hiệu suất, Bcachefs dẫn trước Btrfs và các hệ thống tệp khác dựa trên cơ chế Copy-on-Write và thể hiện hiệu suất gần bằng Ext4 và XFS.

Trong số những thành tựu mới nhất trong quá trình phát triển Bcachefs, người ta ghi nhận sự ổn định của việc triển khai các ảnh chụp nhanh có sẵn để ghi. So với Btrfs, ảnh chụp nhanh trong Bcachefs hiện có khả năng mở rộng tốt hơn nhiều và không gặp phải các vấn đề cố hữu trong Btrfs. Trong thực tế, công việc của ảnh chụp nhanh đã được thử nghiệm khi tổ chức các bản sao lưu MySQL. Bcachefs cũng đã làm rất nhiều việc để cải thiện khả năng mở rộng - hệ thống tệp đã hoạt động tốt trong quá trình thử nghiệm trong bộ nhớ 100 TB và Bcachefs dự kiến ​​sẽ được triển khai trong bộ nhớ 1 PB trong tương lai gần. Một chế độ ngủ mới đã được thêm vào để vô hiệu hóa cơ chế "sao chép khi ghi" (nocow). Trong suốt mùa hè, họ có kế hoạch đưa việc triển khai mã sửa lỗi và RAIDZ về trạng thái ổn định, cũng như giải quyết các vấn đề về mức tiêu thụ bộ nhớ cao khi khôi phục và kiểm tra hệ thống tệp bằng tiện ích fsck.

Trong số các kế hoạch cho tương lai, mong muốn sử dụng ngôn ngữ Rust trong quá trình phát triển Bcachefs đã được đề cập. Theo tác giả của Bcachefs, anh ấy thích viết mã chứ không thích gỡ lỗi mã và bây giờ thật điên rồ khi viết mã bằng C khi có một lựa chọn tốt hơn. Rust đã tham gia vào Bcachefs trong việc triển khai một số tiện ích không gian người dùng. Hơn nữa, ý tưởng đang được ấp ủ để dần dần viết lại hoàn toàn Bcachefs trong Rust, vì sử dụng ngôn ngữ này giúp tiết kiệm đáng kể thời gian gỡ lỗi.

Đối với việc di chuyển Bcachefs vào dòng chính của nhân Linux, quá trình áp dụng có thể bị trì hoãn do kích thước lớn của các thay đổi (2500 bản vá và khoảng 90 nghìn dòng mã), rất khó để xem xét. Để tăng tốc độ xem xét, một số nhà phát triển đã đề xuất chia loạt bản vá thành các phần nhỏ hơn và được phân tách hợp lý hơn. Trong cuộc thảo luận, một số người tham gia cũng chú ý đến việc phát triển dự án bởi một nhà phát triển và mối nguy hiểm là mã có thể không được bảo trì nếu có điều gì đó xảy ra với nhà phát triển của nó (hai nhân viên của Red Hat quan tâm đến dự án, nhưng công việc của họ vẫn chưa được giải quyết). sửa lỗi hạn chế).

Bcachefs được phát triển bằng cách sử dụng các công nghệ đã được thử nghiệm trong quá trình phát triển thiết bị khối Bcache, được thiết kế để truy cập bộ đệm vào ổ cứng chậm trên ổ SSD nhanh (có trong nhân kể từ phiên bản 3.10). Bcachefs sử dụng cơ chế Copy-on-Write (COW), trong đó các thay đổi không dẫn đến ghi đè dữ liệu - trạng thái mới được ghi vào một vị trí mới, sau đó chỉ báo trạng thái hiện tại thay đổi.

Một tính năng của Bcachefs là hỗ trợ kết nối nhiều lớp ổ đĩa, trong đó bộ lưu trữ bao gồm nhiều lớp - ổ đĩa nhanh nhất (SSD) được kết nối với lớp dưới cùng, được sử dụng để lưu trữ dữ liệu được sử dụng thường xuyên và lớp trên cùng hình thành đĩa có dung lượng lớn hơn và rẻ hơn lưu trữ ít dữ liệu hơn . Bộ nhớ đệm ghi lại có thể được sử dụng giữa các lớp. Ổ đĩa có thể được tự động thêm vào và tách ra khỏi phân vùng mà không làm gián đoạn việc sử dụng hệ thống tệp (dữ liệu tự động di chuyển).

Nguồn: opennet.ru

Thêm một lời nhận xét