Veeam, một công ty sản xuất phần mềm sao lưu và khắc phục thảm họa, đã đề xuất mô-đun blksnap để đưa vào nhân Linux, mô-đun này thực hiện cơ chế tạo ảnh chụp nhanh của các thiết bị khối và theo dõi các thay đổi trong thiết bị khối. Để làm việc với ảnh chụp nhanh, tiện ích dòng lệnh blksnap và thư viện blksnap.so đã được chuẩn bị, cho phép bạn tương tác với mô-đun hạt nhân thông qua các lệnh gọi ioctl từ không gian người dùng.
Mục đích của việc tạo mô-đun là tổ chức sao lưu các ổ đĩa và đĩa ảo mà không ngừng hoạt động - mô-đun cho phép bạn ghi lại trong ảnh chụp nhanh trạng thái hiện tại của toàn bộ thiết bị khối, cung cấp một lát cắt riêng biệt để sao lưu không phụ thuộc vào các thay đổi đang diễn ra . Một tính năng quan trọng của blksnap là khả năng tạo ảnh chụp nhanh đồng thời cho một số thiết bị khối cùng một lúc, điều này không chỉ cho phép đảm bảo tính toàn vẹn dữ liệu ở cấp thiết bị khối mà còn đạt được tính nhất quán về trạng thái của các thiết bị khối khác nhau trong bản sao lưu.
Để theo dõi các thay đổi, hệ thống con thiết bị khối (bdev) đã thêm khả năng đính kèm các bộ lọc cho phép bạn chặn các yêu cầu I/O. blksnap triển khai bộ lọc chặn yêu cầu ghi, đọc giá trị cũ và lưu trữ nó trong danh sách thay đổi riêng xác định trạng thái của ảnh chụp nhanh. Với cách tiếp cận này, logic làm việc với thiết bị khối không thay đổi; việc ghi trong thiết bị khối gốc được thực hiện như cũ, bất kể ảnh chụp nhanh, giúp loại bỏ khả năng hỏng dữ liệu và tránh các sự cố ngay cả khi xảy ra lỗi nghiêm trọng không thể đoán trước trong blksnap và không gian được phân bổ cho các thay đổi đã đầy.
Mô-đun này cũng cho phép bạn xác định khối nào đã được thay đổi trong khoảng thời gian giữa ảnh chụp nhanh cuối cùng và bất kỳ ảnh chụp nhanh nào trước đó, điều này có thể hữu ích cho việc thực hiện sao lưu gia tăng. Để lưu các thay đổi liên quan đến trạng thái ảnh chụp nhanh, một phạm vi tùy ý của các cung có thể được phân bổ trên bất kỳ thiết bị khối nào, điều này cho phép bạn lưu các thay đổi trong các tệp riêng biệt trong hệ thống tệp trên các thiết bị khối. Kích thước của vùng lưu trữ các thay đổi có thể tăng lên bất kỳ lúc nào, ngay cả sau khi tạo ảnh chụp nhanh.
Blksnap dựa trên mã mô-đun veeamsnap có trong sản phẩm Veeam Agent cho Linux, nhưng được thiết kế lại để tính đến các chi tiết cụ thể về phân phối trong nhân Linux chính. Sự khác biệt về mặt khái niệm giữa blksnap và veeamsnap là việc sử dụng hệ thống lọc được gắn vào thiết bị khối, thay vì thành phần bdevfilter riêng biệt chặn I/O.
Nguồn: opennet.ru
