Sự khác biệt giữa việc tạo mảng mdadm bằng cách sử dụng phân vùng hoặc toàn bộ đĩa trực tiếp


26

Ai đó có thể vui lòng giải thích cho tôi, sự khác biệt giữa việc tạo mdadmmảng bằng cách sử dụng phân vùng hoặc toàn bộ đĩa trực tiếp không? Giả sử tôi có ý định sử dụng toàn bộ ổ đĩa. Lưu ý rằng họ đang ở với GPT.

Tưởng tượng RAID6 được tạo theo hai cách:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

hoặc là:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Có sự khác biệt?

EDIT1: Ý tôi là ví dụ về độ tin cậy hoặc khả năng quản lý hoặc các hoạt động khôi phục trên các mảng đó, v.v.

EDIT2: Tôi sử dụng các ổ đĩa khác nhau của nhà sản xuất. Nhưng đó không phải là câu hỏi thực sự. Tất cả chúng đều có cùng kích thước, tôi có một điểm, rằng có thể có các nhà sản xuất làm cho các ổ đĩa có kích thước hơi khác nhau. Nhưng vì câu hỏi này, hãy giả sử rằng chúng có cùng kích thước.

EDIT3: Sắp xếp từ chối trách nhiệm: Cho đến nay tôi luôn phân vùng các ổ đĩa.


2
Tôi đã luôn tò mò về điều này nhưng không bao giờ hỏi bất cứ ai. Một điểm khác biệt tôi thấy là sử dụng các đĩa được phân vùng (sda1, v.v.), bạn sẽ có được một ít không gian đĩa (một số KB) vì GPT dành một số không gian cho thông tin phân vùng.
GMaster

Câu trả lời:


25

Sự khác biệt quan trọng nhất là nó cho phép bạn tăng tính linh hoạt cho việc thay thế đĩa. Nó là chi tiết tốt hơn dưới đây cùng với một số khuyến nghị khác.

Người ta nên xem xét sử dụng một phân vùng thay vì toàn bộ đĩa. Điều này nên theo các khuyến nghị chung để thiết lập một mảng và chắc chắn có thể giúp bạn đỡ đau đầu trong tương lai khi việc thay thế đĩa tiếp theo là cần thiết.

Các đối số quan trọng nhất là:

Đĩa từ các nhà sản xuất khác nhau (hoặc thậm chí các mô hình khác nhau có cùng dung lượng "của cùng một nhà sản xuất) không nhất thiết phải có cùng kích thước đĩa và, ngay cả sự khác biệt về kích thước nhỏ nhất, sẽ ngăn bạn thay thế một đĩa hỏng bằng một đĩa mới hơn nếu cái thứ hai nhỏ hơn cái thứ nhất Phân vùng cho phép bạn giải quyết vấn đề này;

Lưu ý bên lề về lý do sử dụng các đĩa nhà sản xuất khác nhau: Đĩa sẽ thất bại, đây không phải là vấn đề "nếu" mà là "khi nào". Đĩa của cùng một nhà sản xuất và cùng một mô hình có các thuộc tính tương tự nhau, và do đó, khả năng thất bại cao hơn trong cùng điều kiện và thời gian sử dụng. Đề xuất là sử dụng các đĩa từ các nhà sản xuất khác nhau, các kiểu máy khác nhau và đặc biệt là không thuộc cùng một lô (xem xét việc mua từ các cửa hàng khác nhau nếu bạn mua đĩa của cùng một nhà sản xuất và kiểu máy). Điều này không có gì lạ khi một đĩa thứ hai bị lỗi trong quá trình thay đổi vị trí sau khi thay thế đĩa khi các đĩa cùng loại được sử dụng. Bạn chắc chắn không muốn điều này xảy ra với bạn.

Vì vậy, các khuyến nghị:

1) Phân vùng các đĩa sẽ được sử dụng với dung lượng nhỏ hơn một chút so với không gian đĩa tổng thể (ví dụ: tôi có một mảng RAID5 gồm 2TB và tôi cố tình phân vùng chúng lãng phí khoảng 100 MB mỗi ổ). Sau đó, sử dụng / dev / sd? 1 của mỗi cái để soạn mảng - Điều này sẽ thêm một giới hạn an toàn trong trường hợp đĩa thay thế mới có ít không gian hơn so với đĩa gốc được sử dụng để lắp ráp mảng khi nó được tạo;

2) Sử dụng đĩa từ các nhà sản xuất khác nhau;

3) Sử dụng đĩa của các mô hình khác nhau nếu các nhà sản xuất khác nhau không phải là một lựa chọn cho bạn;

4) Sử dụng đĩa từ các lô khác nhau;

5) Chủ động thay thế các đĩa trước khi chúng bị lỗi và không phải tất cả cùng một lúc. Điều này có thể là một chút hoang tưởng và thực sự phụ thuộc vào mức độ nghiêm trọng của dữ liệu bạn có. Tôi sử dụng để có các đĩa có chênh lệch 6 tháng tuổi với nhau;

6) Tạo bản sao lưu thường xuyên (luôn luôn, bất kể bạn có sử dụng một mảng hay không). Raid không phục vụ cùng mục đích sao lưu. Mảng đảm bảo cho bạn tính sẵn sàng cao, Sao lưu cho phép bạn khôi phục các tệp bị mất (bao gồm cả những tệp vô tình bị xóa hoặc bị hỏng do vi-rút, một số ví dụ về việc sử dụng mảng sẽ không bảo vệ bạn khỏi).

OBS: Ngoại trừ tất cả các phi neglectable hợp lý trên, không có nhiều hơn nữa sự khác biệt kỹ thuật giữa việc sử dụng / dev / sd? vs / dev / sd? #.

Chúc may mắn


Điều đó hầu như không liên quan ...
user1133275

Tuy nhiên, tôi đoán cảnh báo @Kalavan đề cập đến việc sử dụng nhiều phân vùng trong cùng một đĩa như các thành phần của một mảng. Điều đó chắc chắn sẽ không có ý nghĩa nhiều vì nó loại bỏ sự dư thừa. Tuy nhiên, chúng tôi biết rằng đây không phải là ý định của câu hỏi của bạn, dù sao thì cảnh báo của anh ấy cũng có ý nghĩa.
Marcelo

Nếu việc quản lý các phân vùng theo cách thủ công dường như là một rắc rối, người ta nên sử dụng sfdisk -d src | sfdisk tgthoặcsgdisk --backup && sgdisk --load-backup
andyn

7

Một lập luận quan trọng khác là một số bo mạch chính có thể xóa các siêu khóa RAID của bạn nếu bạn sử dụng toàn bộ thiết bị đĩa và không cẩn thận với việc xóa chúng khi thêm đĩa vào mảng RAID đã từng là thiết bị GPT.

Tôi đã học được điều này một cách khó khăn, khi UEFI của bo mạch chủ ASRock của tôi khiến RAID của tôi không thể sử dụng được:

Để bảo vệ bạn trước điều này, hãy luôn chạy sgdisk --zaptrên đĩa có định dạng GPT trước đây mà bạn muốn sử dụng cho RAID toàn thiết bị.

wipefs -a cũng có thể làm việc để xóa tất cả các loại thông tin phân vùng còn sót lại (không chỉ GPT) trước khi thêm thiết bị vào đĩa.


Điều đó nói rằng, chỉ sử dụng các phân vùng có vẻ như là một thực tiễn tốt nhất để làm cho điều này ít có khả năng xảy ra .

Tôi chưa bao giờ biết những lý lẽ thực sự là gì đối với thực tiễn tốt nhất này (ngoài câu trả lời của @ Marcelo giải thích rằng nó có thể xử lý các đĩa có kích thước hơi khác nhau). Bây giờ tôi biết.

Nhân tiện, nếu điều này xảy ra với bạn, dữ liệu của bạn sẽ không bị mất. Bạn rất có thể chỉ sgdisk --zaplà thiết bị, sau đó tạo lại RAID bằng ví dụ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd(mdadm sẽ cho bạn biết rằng nó đã phát hiện dữ liệu trong quá khứ và hỏi bạn có muốn tiếp tục sử dụng lại dữ liệu đó không). Tôi đã thử điều này lần thứ hai và nó đã hoạt động, nhưng tôi vẫn khuyên bạn nên sao lưu trước khi bạn làm điều đó.


2

Có một số bài viết trích dẫn vấn đề với việc sử dụng toàn bộ thiết bị làm thành viên RAID thay vì phân vùng, một ở đây . Tôi có thể xác nhận rằng đó là trường hợp.

Vì vậy, nếu bạn tạo RAID sử dụng toàn bộ thiết bị (ví dụ /dev/sda, /dev/sdb... thay vì trên /dev/sda1, /dev/sdb1...) thiết bị RAID không lắp ráp lại sau khi khởi động lại ngay cả khi bạn có cấu hình đã lưu dưới mdadm.conf. Ngoài ra còn có khả năng ghi đè phần sụn chính hoặc loại bỏ siêu khối RAID. Trong thiết lập của tôi, việc chạy mdadm --assemble --scan --verbosekhông giúp tôi lấy lại thiết lập RAID của mình và dường như đó là trường hợp siêu khối RAID không khả dụng.


Tôi đã thử nghiệm thiết lập RAID1 bằng các ổ đĩa 2x10GB trong VirtualBox. RAID được tạo trên toàn bộ thiết bị và nó được lắp ráp lại sau khi khởi động lại. Vấn đề chỉ có thể được áp dụng cho các thiết bị vật lý.
Lungten

0

Để tự cứu mình khỏi những cơn đau đầu trong tương lai, hãy sử dụng các phân vùng. Tất cả các ổ đĩa đều thất bại, đó không phải là câu hỏi "nếu" mà là "khi nào". Nếu bạn đang sử dụng toàn bộ ổ đĩa, thì sau một lỗi ổ đĩa, bạn phải thay thế nó bằng mô hình kích thước chính xác. Thậm chí một vài MB lớn hơn, do nhà sản xuất khác nhau, hoặc thay đổi quy trình, bất cứ điều gì, sẽ khiến việc thay thế ổ đĩa bị lỗi.

Sử dụng phân vùng, khi một trong các ổ đĩa 2TB hiện tại của bạn không thành công, bạn sẽ nhận được 4TB thay thế (hoặc bất cứ thứ gì, chỉ cần lớn hơn), sau đó tạo cùng kích thước phân vùng 2TB trên đó. Có, bạn có thể đang lãng phí không gian trên ổ đĩa lớn mới đó. Có thể sử dụng phần còn lại của ổ đĩa đó làm phân vùng không đột kích, nhưng có thể ảnh hưởng đến hiệu suất theo những cách kỳ lạ. Sau một vài lần thay thế và thay thế ổ đĩa, cuối cùng bạn sẽ thay thế tất cả các ổ đĩa 2TB ban đầu của mình và giờ đây có khả năng mở rộng mảng RAID của bạn để sử dụng kích thước phân vùng lớn hơn.

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.