Một trong những máy chủ mà tôi quản trị chạy loại cấu hình mà bạn mô tả. Nó có sáu ổ cứng 1TB với nhóm RAIDZ được mã hóa LUKS trên đó. Tôi cũng có hai ổ cứng 3TB trong máy nhân bản ZFS được mã hóa LUKS bị tráo đổi mỗi tuần để được đưa ra khỏi trang web. Máy chủ đã sử dụng cấu hình này trong khoảng ba năm và tôi chưa bao giờ gặp sự cố với nó.
Nếu bạn có nhu cầu về ZFS với mã hóa trên Linux thì tôi khuyên bạn nên thiết lập này. Tôi đang sử dụng ZFS-Fuse, không phải ZFS trên Linux. Tuy nhiên, tôi tin rằng sẽ không ảnh hưởng đến kết quả ngoài ZFS trên Linux có thể sẽ có hiệu suất tốt hơn so với thiết lập mà tôi đang sử dụng.
Trong thiết lập này, dữ liệu dư thừa được mã hóa nhiều lần vì LUKS không "biết" về Z-RAID. Trong LUKS-on-mdadm, dữ liệu giải pháp được mã hóa một lần và chỉ được ghi vào đĩa nhiều lần.
Hãy nhớ rằng LUKS không biết về RAID. Nó chỉ biết rằng nó đang ngồi trên một thiết bị khối. Nếu bạn sử dụng mdadm để tạo một thiết bị RAID và sau luksformat
đó, thì đó là mdadm đang sao chép dữ liệu được mã hóa vào các thiết bị lưu trữ bên dưới, chứ không phải LUKS.
Câu hỏi 2.8 trong LUKS FAQ giải quyết việc mã hóa nên được đặt lên trên RAID hay ngược lại . Nó cung cấp sơ đồ sau.
Filesystem <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks <- bottom
Vì ZFS kết hợp chức năng RAID và hệ thống tập tin, giải pháp của bạn sẽ cần giống như sau.
RAID-Z and ZFS Filesystem <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks <- bottom
Tôi đã liệt kê các phân vùng thô là tùy chọn vì ZFS hy vọng rằng nó sẽ sử dụng lưu trữ khối thô thay vì phân vùng. Mặc dù bạn có thể tạo zpool của mình bằng cách sử dụng các phân vùng, nhưng điều đó không được khuyến khích bởi vì nó sẽ thêm một cấp quản lý vô dụng và nó sẽ cần được tính đến khi tính toán phần bù của bạn sẽ được căn chỉnh cho phân vùng.
Nó sẽ không cản trở đáng kể hiệu suất viết? [...] CPU của tôi hỗ trợ Intel AES-NI.
Không nên có vấn đề về hiệu suất miễn là bạn chọn phương thức mã hóa được trình điều khiển AES-NI hỗ trợ. Nếu bạn có cryptsetup 1.6.0 hoặc mới hơn, bạn có thể chạy cryptsetup benchmark
và xem thuật toán nào sẽ cung cấp hiệu suất tốt nhất.
Câu hỏi này về các tùy chọn được đề xuất cho LUKS cũng có thể có giá trị.
Cho rằng bạn có hỗ trợ mã hóa phần cứng, bạn có nhiều khả năng phải đối mặt với các vấn đề về hiệu suất do phân vùng sai.
ZFS trên Linux đã thêm thuộc ashift
tính vào zfs
lệnh để cho phép bạn chỉ định kích thước cung cho các ổ đĩa cứng của bạn. Theo Câu hỏi thường gặp được liên kết, ashift=12
sẽ cho bạn biết rằng bạn đang sử dụng các ổ đĩa có kích thước khối 4K.
Câu hỏi thường gặp về LUKS nói rằng phân vùng LUKS có căn chỉnh là 1 MB. Câu hỏi 6.12 và 6.13 thảo luận chi tiết về vấn đề này và cũng cung cấp lời khuyên về cách làm cho tiêu đề phân vùng LUKS lớn hơn. Tuy nhiên, tôi không chắc có thể làm cho nó đủ lớn để đảm bảo rằng hệ thống tệp ZFS của bạn sẽ được tạo trên ranh giới 4K. Tôi rất muốn nghe cách giải quyết vấn đề này cho bạn nếu đây là vấn đề bạn cần giải quyết. Vì bạn đang sử dụng ổ đĩa 2TB, bạn có thể không gặp phải vấn đề này.
ZFS sẽ nhận thức được các lỗi đĩa khi hoạt động trên các thùng chứa LUKS của trình ánh xạ thiết bị trái ngược với các thiết bị vật lý?
ZFS sẽ nhận thức được các lỗi đĩa khi nó có thể đọc và ghi cho chúng mà không gặp vấn đề gì. ZFS yêu cầu lưu trữ khối và không quan tâm hoặc biết về các chi tiết cụ thể của lưu trữ đó và nguồn gốc của nó. Nó chỉ theo dõi bất kỳ lỗi đọc, ghi hoặc tổng kiểm tra mà nó gặp phải. Tùy thuộc vào bạn để theo dõi sức khỏe của các thiết bị lưu trữ bên dưới.
Tài liệu ZFS có một phần về khắc phục sự cố đáng đọc. Phần về thay thế hoặc sửa chữa một thiết bị bị hư hỏng mô tả những gì bạn có thể gặp phải trong trường hợp hỏng hóc và cách bạn có thể giải quyết nó. Bạn sẽ làm điều tương tự ở đây với các thiết bị không có ZFS. Kiểm tra nhật ký hệ thống cho các tin nhắn từ trình điều khiển SCSI, bộ điều khiển HBA hoặc HD và / hoặc phần mềm giám sát SMART và sau đó hành động tương ứng.
Làm thế nào về sự trùng lặp và các tính năng ZFS khác?
Tất cả các tính năng ZFS sẽ hoạt động như nhau bất kể bộ lưu trữ khối bên dưới có được mã hóa hay không.
Tóm lược
- ZFS trên các thiết bị được mã hóa LUKS hoạt động tốt.
- Nếu bạn có mã hóa phần cứng, bạn sẽ không thấy hiệu suất đạt được miễn là bạn sử dụng phương pháp mã hóa được phần cứng của bạn hỗ trợ. Sử dụng
cryptsetup benchmark
để xem những gì sẽ hoạt động tốt nhất trên phần cứng của bạn.
- Hãy nghĩ về ZFS như RAID và hệ thống tập tin kết hợp thành một thực thể duy nhất. Xem sơ đồ ASCII ở trên để biết nơi nó phù hợp với ngăn xếp lưu trữ.
- Bạn sẽ cần mở khóa từng thiết bị khối được mã hóa LUKS mà hệ thống tệp ZFS sử dụng.
- Theo dõi sức khỏe của phần cứng lưu trữ giống như cách bạn làm bây giờ.
- Hãy chú ý đến việc căn chỉnh khối của hệ thống tập tin nếu bạn đang sử dụng các ổ đĩa có khối 4K. Bạn có thể cần thử nghiệm với các tùy chọn luksformat hoặc các cài đặt khác để có được sự liên kết bạn cần cho tốc độ chấp nhận được.