Các nhà phát triển Cloudflare làm việc trên các bản vá để tăng tốc độ mã hóa đĩa trên Linux

CloudFlare

Các Các nhà phát triển Cloudflare đã phát hành thông tin về công việc họ đang làm để tối ưu hóa hiệu suất mã hóa đĩa trong nhân Linux, trong đó họ đề cập rằng họ đã chuẩn bị các bản vá cho hệ thống con dm-crypt và Crypto API.

Với, thử nghiệm tổng hợp được phép tăng gấp đôi băng thông để đọc và ghi, cũng như giảm một nửa độ trễ. Khi thử nghiệm trên các máy thực, chi phí mã hóa đã giảm xuống gần như mức được thấy khi làm việc với đĩa mà không sử dụng mã hóa dữ liệu.

Quan tâm đến việc cải thiện mã hóa dữ liệu trên đĩa đó là vì Cloudflare sử dụng dm-crypt để mã hóa dữ liệu trên các ổ đĩa được sử dụng để lưu nội dung vào bộ nhớ đệm trên CDN. Dm-crypt hoạt động ở cấp thiết bị khối và mã hóa các yêu cầu I / O để ghi và giải mã các yêu cầu đọc, hoạt động như một lớp giữa thiết bị khối và trình điều khiển hệ thống tệp.

Để đánh giá hiệu suất dm-crypt sử dụng gói kiểm tra I / O linh hoạt, se đã đo tốc độ làm việc với các phân vùng được mã hóa và không được mã hóa trên đĩa RAM nằm trong RAM để loại bỏ các biến động về hiệu suất của đĩa.

Đối với phân vùng không được mã hóa, hiệu suất đọc và ghi vẫn ở mức 1126MB / s, nhưng khi bật mã hóa, tốc độ giảm 7 lần xuống còn 147MB / s.

Lúc đầu, việc sử dụng các thuật toán không hiệu quả đã bị nghi ngờ trong hệ thống mật mã hạt nhân. Nhưng các thử nghiệm đã sử dụng thuật toán aes-xts nhanh hơn với 256 khóa mã hóa, có hiệu suất khi chạy "điểm chuẩn cryptsetup" cao hơn hai lần so với kết quả thu được khi kiểm tra đĩa RAM.

dm-mật mã

Các thí nghiệm với cờ dm-crypt để điều chỉnh hiệu suất không hoạt động: Khi sử dụng cờ –perf-same_cpu_crypt, hiệu suất thậm chí còn giảm xuống 136MB / s và khi sử dụng cờ –perf-submit_from_crypt_cpus, nó chỉ tăng lên 166MB / s.

Phân tích sâu hơn logic của công việc cho thấy rằng dm-crypt không đơn giản như vậy như nó có vẻ.

Khi nhận được yêu cầu ghi từ bộ điều khiển FS, dm-crypt không xử lý nó ngay lập tức mà đặt nó vào hàng đợi "kcryptd", không được hiểu ngay lập tức, nhưng khi thời điểm thích hợp xảy ra. Từ hàng đợi, yêu cầu được gửi đến Linux Crypto API để mã hóa.

Khi đọc lần đầu tiên, dm-crypt xếp hàng "kcryptd_io" một yêu cầu nhận dữ liệu từ đơn vị. Despué theo thời gian, dữ liệu có sẵn và chúng được xếp hàng đợi "kcryptd" để giải mã.

Kcryptd gửi một yêu cầu đến API mã hóa Linux, API này sẽ giải mã thông tin một cách không đồng bộ. Yêu cầu không phải lúc nào cũng đi qua tất cả các hàng đợi, nhưng trong trường hợp xấu nhất, yêu cầu viết được đặt trên hàng đợi tối đa 4 lần và yêu cầu đọc tối đa 3 lần. Mọi cú đánh vào đuôi đều dẫn đến sự chậm trễ, đó là lý do chính khiến hiệu suất dm-crypt giảm đáng kể.

Xét thấy các ổ đĩa hiện đại đã trở nên nhanh hơn và thông minh hơn, hệ thống phân bổ tài nguyên trong nhân Linux đã được sửa đổi và một số hệ thống con đã được thiết kế lại, Các kỹ sư của Cloudflare đã thêm một chế độ hoạt động mới vào dm-crypt, loại bỏ việc sử dụng các hàng đợi bổ sung và các cuộc gọi không đồng bộ.

Chế độ này được kích hoạt bởi một cờ "force_inline" riêng biệt và đưa dm-crypt vào dạng một proxy đơn giản để mã hóa và giải mã các yêu cầu đến. Tương tác với API Crypto đã được tối ưu hóa thông qua sự lựa chọn rõ ràng các thuật toán mã hóa Chúng hoạt động ở chế độ đồng bộ và không sử dụng hàng đợi yêu cầu.

Khi kiểm tra tải trên các máy chủ thực, việc triển khai mới cho thấy hiệu suất rất gần với cấu hình hoạt động mà không cần mã hóa và việc bao gồm mã hóa trên các máy chủ có bộ đệm Cloudflare không ảnh hưởng đến tốc độ phản hồi.

Trong tương lai, Cloudflare có kế hoạch chuyển các bản vá đã chuẩn bị sang nhân Linux chính, nhưng trước đó chúng sẽ phải được sửa đổi, vì chúng được tối ưu hóa cho một tải nhất định và không bao gồm tất cả các lĩnh vực ứng dụng.

Fuente: https://blog.cloudflare.com


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.