Thứ tự tốt nhất của RAID, LVM và LUKS


13

Tôi sẽ cài đặt một máy chủ tệp với Debian GNU / Linux 8.

Tôi muốn có phần mềm RAID-1 bằng mdadm cũng như các đĩa được mã hóa bằng LUKS. Tôi cũng thích sự linh hoạt của việc có LVM.

Có nhiều cách khác nhau để làm điều này. Một cách là: Đầu tiên thiết lập RAID-1 bằng mdadm. Sau đó, thiết lập PV LVM để bao gồm / dev / mdX được tạo. Sau đó thiết lập LV và mã hóa chúng bằng LUKS. Sau đó định dạng chúng với một hệ thống tập tin, nói ext4. Điều này dẫn đến một bố cục như thế này:

RAID --> LVM --> LUKS --> ext4

Hoặc tôi có thể làm theo thứ tự khác:

RAID --> LUKS --> LVM --> ext4

Hoặc thậm chí có thể:

LVM --> RAID --> LUKS --> ext4

Và thậm chí có thể hoàn toàn khác.

Lợi ích và nhược điểm của các phương pháp khác nhau là gì? Điều gì mang lại hiệu suất tốt nhất, bảo mật, khả năng bảo trì, vv?

Có "cách tốt nhất" để làm điều này?

Câu trả lời:


18

Đầu tiên, thứ tự LUKS và LVM tùy thuộc vào việc bạn muốn có mật khẩu LUKS khác nhau hoặc các cài đặt khác cho các LV khác nhau. Nếu nói, bạn cần thiết lập các mật khẩu khác nhau cho các LV khác nhau, bạn chắc chắn cần đặt LUKS lên trên LVM. Mặt khác, nếu tất cả các LV chia sẻ cùng một mật khẩu và cài đặt như keylen, bạn muốn có LUKS bên dưới LVM, để bạn không phải đối phó với chi phí có nhiều phân vùng LUKS (hãy nghĩ gì về bạn sẽ phải làm khi bạn cần thay đổi mật khẩu).

Thứ hai, bạn hầu như luôn muốn RAID ở mức thấp nhất, để khi một đĩa bị chết, nó có thể được hoán đổi dễ dàng và trong suốt. Nếu bạn đã thiết lập RAID trên LVM, bạn sẽ phải thay thế một PV khi một đĩa bị chết, đó sẽ là một nỗi đau lớn ở cổ. Ngoài ra RAID trên LVM sẽ đánh bại hoàn toàn tính linh hoạt của LVM. Sau đó, bạn có thể cần phải thiết lập lớp LVM thứ hai trên đầu RAID một lần nữa!

Do đó, vì trong hầu hết các trường hợp, mọi người chỉ cần sử dụng một mật khẩu duy nhất, điều này sẽ đủ:

RAID -> LUKS -> LVM -> ext4

Trong một số trường hợp, bạn có thể cần sử dụng LVM để kết hợp nhiều thiết bị RAID thành một khối lớn, sau đó bạn có thể làm:

RAID -> LVM -> LUKS (-> LVM) -> ext4

Về mặt lý thuyết, thứ tự không ảnh hưởng nhiều đến hiệu năng, nếu mỗi lớp được thiết lập chính xác và trong thực tế tôi chưa thấy thiết lập này có hiệu suất đặc biệt xấu. Điều quan trọng nhất có lẽ là sự liên kết:

  1. đảm bảo các phân vùng của bạn được căn chỉnh 1MB (rất quan trọng đối với SSD);
  2. Đối với lớp RAID, chọn kích thước khối một cách khôn ngoan;
  3. đối với LVM, đảm bảo bạn đặt --dataalignmentkhớp với kích thước khối RAID ( điều này có thể hữu ích).

Ngoài ra nếu trên SSD, hãy chắc chắn bạn kích hoạt LUKS TRIM / HỦY pass-through bằng cách thêm rd.luks.options=discardvào /etc/default/grubdiscardđể /etc/crypttab(Đây là những gì tôi làm trên Red Hat / Fedora Linux. Có thể là một khác nhau chút về Debian.) LVM và RAID nên loại bỏ tự động hỗ trợ nếu bạn sử dụng kernel mới.

Tất nhiên, đây chỉ là những hướng dẫn chung. Nếu bạn có nhu cầu đặc biệt, vui lòng cập nhật câu hỏi hoặc nhận xét của bạn ở đây.


Cảm ơn đã trả lời nhanh chóng. Điểm tốt! Bạn có thể nhận xét về sự khác biệt hiệu suất nếu chúng không tầm thường?
Thomas

Cập nhật với một số ghi chú hiệu suất.
Yan Li

1
Cũng cần chỉ ra rằng bạn không cần luôn luôn sử dụng MDADM (mặc dù tôi hy vọng đây sẽ là giải pháp điển hình nhất). - LVM cung cấp RAID (còn gọi là phản chiếu)
davidgo

@davidgo Vâng. Tôi cũng nghĩ về việc đề cập đến điều đó nhưng không làm điều đó, bởi vì tôi không chắc liệu đó có phải là con đường đúng đắn hay không. Tôi đã không dùng thử cá nhân (chủ yếu tôi sử dụng các cấp RAID cao hơn như 5 hoặc 6) và đã đọc phản hồi trái chiều về phản chiếu LVM, như được đề cập bởi một số câu trả lời trong câu hỏi này .
Yan Li

@Yan, tôi đồng ý. Tôi quá luôn luôn sử dụng RAID mdadm (1)
davidgo

4

Nếu bạn muốn tất cả RAID, LUKS và LVM tôi muốn giới thiệu RAID -> LUKS -> LVM -> FS. RAID --> LVM --> LUKS --> LVM --> FSkhông tốt hơn RAID -> LUKS -> LVM- để mở rộng âm lượng, chỉ cần thêm nhiều RAID -> LUKSthiết bị vào một nhóm âm lượng.

RAID --> LVM --> LUKS --> FS - chỉ mã hóa các khối logic cụ thể có tính năng không mã hóa mọi thứ theo mặc định (có thể được coi là lợi thế hoặc bất lợi) nhưng nó sẽ giúp mở rộng FS gốc dễ dàng hơn.

Mở rộng LUKS trên đầu khối lượng logic là nguồn gây ra sự cố phổ biến khi người dùng mở rộng / thay đổi kích thước chúng theo thứ tự sai. Có LUKS trên toàn bộ thiết bị RAID md sẽ đơn giản hóa việc thay đổi kích thước - thêm thiết bị md mới, tạo LUKS trên đó, thêm thiết bị vào / etc / crypttab (ít nhất là trên bản sao Fedora và RHEL) và mở rộng nhóm âm lượng của bạn. Nếu root FS nằm trong nhóm âm lượng, bạn sẽ cần thêm một rd.luks.uuidmục khác vào kernel cmdline (chỉnh sửa / etc / default / grub và tạo lại grub.cfg.)

LUKS -> RAIDthường là sai - dữ liệu sẽ được mã hóa nhiều lần, tiêu tốn nhiều chu kỳ CPU hơn mà không đạt được. Cũng có khả năng thay thế nhầm một đĩa bị hỏng bằng một đĩa mới mà không thiết lập LUKS khi một đĩa bị lỗi.

Mở rộng và thu hẹp:

Khi kéo dài luôn đi từ dưới cùng của ngăn xếp, khi thu nhỏ từ đỉnh.

Thí dụ:

Mở rộng RAID -> LVM -> LUKS -> FS (hai bước đầu tiên là tùy chọn nếu có đủ không gian trống trong nhóm âm lượng):

  1. Thêm đĩa mới và tạo md RAID.
  2. Thêm thiết bị mdX vào nhóm âm lượng.
  3. Mở rộng khối lượng logic.
  4. Mở rộng thiết bị LUKS.
  5. Mở rộng FS.

Thu hẹp RAID -> LVM -> LUKS -> FS :

  1. Thu hẹp FS.
  2. Thu nhỏ thiết bị LUKS.
  3. Thu nhỏ khối lượng logic.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.