Câu trả lời:
Có rất nhiều lời khuyên, nhưng rất ít kết quả thực nghiệm cho hiệu quả của việc sử dụng mã hóa.
Tôi đã tìm thấy một nghiên cứu như vậy: điểm chuẩn SSD Linux: So sánh các hệ thống tập tin và phương pháp mã hóa . Trong bảng dưới đây, các số đo là thực / người dùng / sys và kết quả tốt nhất là màu xanh lá cây trong khi các biện pháp xấu nhất được tô màu đỏ:
Dựa trên những kết quả này, tác giả đã quyết định sử dụng dm-crypt ở chế độ aes-xts-plain với keylength 128 bit và btrfs với căn chỉnh ssd và
compress=lzo
.
Một bài viết hữu ích khác là Tác động Hiệu suất của Mã hóa Đĩa Linux trên Ubuntu 14.04 LTS . Nó đã nghiên cứu việc sử dụng CPU trong quá trình cài đặt trên ba cấu hình của các tùy chọn cài đặt chứng khoán (không mã hóa đĩa), phương pháp mã hóa toàn bộ đĩa bằng cách sử dụng LUKS trên mã hóa thư mục gốc dựa trên LVM và eCryptfs. Các kết quả được tóm tắt trong biểu đồ bên dưới và kết luận là cài đặt không mã hóa trung bình 26%, trong khi LUKS trên mã hóa LVM và eCryptfs đều trung bình khoảng 30 ~ 31%, vì vậy cả hai đều có hiệu suất gần như tương đương.
Một bài viết không có kết quả thực nghiệm nhưng rất nhiều lời khuyên tốt là LinuX, SSD và mã hóa đĩa . Tôi khuyên bạn nên đọc bài viết này, và đây là lời khuyên chính được đưa ra:
noatime
và nodiratime
để loại bỏ việc ghi sổ thời gian truy cập cho các tệp và thư mục.Tôi đã thực hiện một số thử nghiệm với hệ thống từ thấp đến trung bình. Kết quả dưới đây.
Tóm lại, có vẻ như mã hóa không khiến tối ưu hóa hệ thống tập tin trở nên vô dụng. Như bạn có thể thấy trong bảng, đối với dmcrypt / LUKS (AES256), F2FS
hệ thống tệp nhanh hơn EXT4
hầu hết tất cả các bối cảnh trong đó nó nhanh hơn theo mặc định (không có mã hóa, đó là). Thật đáng ngạc nhiên, nó cũng mang lại một lợi ích đáng chú ý trong trường hợp nó không có mã hóa - cụ thể là, Bonnie++ Sequential Output (Per char)
và các Flexible I/O Tester Sequential Read
thử nghiệm.
Đối với kịch bản tương tự, nó cũng chậm hơn trong hai thử nghiệm (Viết tuần tự - Bonnie ++ và FIO), nhưng dù sao cũng không chậm hơn nhiều . Số dặm của bạn có thể thay đổi.
Tôi đã không kiểm tra EXT4 với AES-128bits vì thời gian có hạn vì nó không cần thiết cho câu trả lời này.
Lưu ý: Tôi đã quan sát những sai lệch rất lớn, kỳ lạ khi thử nghiệm với AES-128bits. Lên đến 15% biến thể trong hầu hết các thử nghiệm và thậm chí 37% (!) Trong một trường hợp. Không chắc chắn lý do tại sao. Tôi đã không sử dụng hệ thống cho bất cứ điều gì khác trong suốt thời gian thử nghiệm. Bản thân hệ thống đã được mã hóa bằng AES-256, vì vậy tôi có thể nghĩ ra một lời giải thích giả thuyết liên quan đến các đường ống CPU / opcache, nhưng ... Thực sự chưa thể nói được. (Điều này cũng xảy ra khi kiểm tra từ đĩa CD trực tiếp, mà không bao giờ mở khóa phân vùng AES-256bit, vì vậy đó không phải là lý do).
Độ lệch được giữ dưới 3,6% (điển hình 1,4%) ở mọi nơi khác. Tôi đang áp dụng tỷ lệ lỗi 4%. Vì vậy, sự khác biệt nhỏ hơn 4% nên được bỏ qua cho những kết quả này.
Thiết lập thử nghiệm:
SSD: Kingston SV300S37A/120G
Mainboard: ASUS Sabertooth 990FX R2.0
CPU: AMD FX-6350 @ stock
Kernel version: 4.11.3
IO Scheduler: CFQ
All tests were run using an 80GB secondary partition.
Bảng kết quả ở định dạng ASCII (các khác biệt được coi là "không liên quan" được bỏ qua):
|+===================================+|
|| % Change ||
|+=====================+=====================+=================+| ||--------+--------+--------+--------||
|| (no encryption) | AES-256 | AES-128 || || F2FS / EXT4 |Crypto / NoCrypto||
|+============+========================+----------+----------+----------+----------+------+----------||=========||--------+--------+--------+--------+|
|| Test suite | Test Method | EXT4 | F2FS | EXT4 | F2FS | EXT4 | F2FS || Unit ||nocrypto| aes256 | aes128 | aes256 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
|| Manual | Read | 390.6 | 391.59 | 320 | 325.6 | - | 345.36 || MiB/s || | | -11.81 | -16.85 ||
||(cp and dd) | Write (zeros) | 501.96 | 517.17 | 96.9 | 96.7 | | 112.16 || MiB/s || | | -78.31 | -81.30 ||
|| | Write (random data) | 100.44 | 97.99 | 91.8 | 89.5 | | 97.64 || MiB/s || | | | -08.66 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| | Seq. Output – Per char | 80.68 | 83.76 | 63.56 | 80.59 | - | 75.56 || MiB/s || | +26.79 | -09.79 | ||
|| | Seq. Output – Block | 498.92 | 492.42 | 104.74 | 101.13 | | 90.9 || MiB/s || | | -81.54 | -79.46 ||
|| Bonnie++ | Seq. Output – Rewrite | 196.4 | 198.99 | 74.69 | 70.8 | | 70.27 || MiB/s || | -05.21 | -64.69 | -64.42 ||
|| | Seq. Input - Per char | 86.93 | 86.04 | 84.01 | 81.25 | | 87.84 || MiB/s || | | | -05.57 ||
|| | Seq. Input – Block | 352.57 | 355.99 | 286.36 | 289.24 | | 304.5 || MiB/s || | | -14.46 | -18.75 ||
|| | Random seeks | 9452.9 | 9102.2 | 8142.3 | 8224.8 | | 7431.4 || ops/s || | | -18.36 | -09.64 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| Fs-mark | 1000 files, 1 thread | 193.7 | 236.6 | 93.6 | 103.7 | - | 73.9 || files/s || +18.13 | +10.79 | -68.77 | -56.17 ||
|| | 5000 files, 4 threads | 310.1 | 348.8 | 90.9 | 99 | | 91.6 || files/s || +11.10 | +08.91 | -73.74 | -71.62 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| | Random read | 56.77 | 69.86 | 58.79 | 63.51 | | 61.93 || MiB/s || | | | ||
|| | | 14188 | 17461 | 14695 | 15874 | | 15479 || IOPS || +23.07 | +08.02 | -11.35 | -09.09 ||
|| Flexible | | | | | | - | || || | | | ||
|| I/O | Random write | 59.91 | 78.99 | 52.2 | 63.75 | | 67.75 || MiB/s || | | | ||
|| Tester | | 14973 | 19745 | 13046 | 15935 | | 16934 || IOPS || +31.87 | +22.14 | -14.24 | -19.30 ||
|| | | | | | | | || || | | | ||
|| | Sequential read | 284.02 | 247.57 | 95.14 | 95.17 | | 95.98 || MiB/s || | | | ||
|| | | 71001 | 61889 | 23781 | 23788 | | 23991 || IOPS || -12.83 | | -61.24 | -61.56 ||
|| | | | | | | | || || | | | ||
|| | Sequential write | 94.06 | 100.77 | 100.63 | 96.56 | | 86.93 || MiB/s || | | | ||
|| | | 23512 | 25188 | 25153 | 24137 | | 21728 || IOPS || +07.13 | -04.04 | -13.74 | -04.17 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
_