Dễ dàng mở rộng phần mềm Linux RAID 5 với XFS. Thực hành tốt nhất?


13

Tôi sử dụng máy Ubuntu của mình làm máy chủ tệp cho các máy khách Windows / Linux / Mac bằng cách sử dụng chia sẻ Samba. Tôi cần nó để có thể dễ dàng mở rộng bằng cách chỉ cần thêm nhiều ổ đĩa cứng mà không phải di chuyển bất kỳ dữ liệu nào qua lại.

Đây là cách tôi đã làm nó cho đến nay. Tôi đã thêm thành công một ổ đĩa cứng thứ tư. Bây giờ sẽ rất tốt để biết đây là cách nó nên được thực hiện? Những gì tôi đang làm sai hoặc những gì tôi có thể làm tốt hơn?

Tạo mảng 3 ổ đĩa ban đầu

Tôi bắt đầu với ba ổ trống: / dev / sdb, / dev / sdc và / dev / sdd.

Đầu tiên tôi tạo các phân vùng trống cho tất cả các ổ đĩa:

$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Khi các phân vùng RAID trống đã được tạo cho cả ba đĩa, tôi đã tạo một mảng RAID5:

$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

Bây giờ mảng RAID5 đã được tạo và nó đã được xây dựng. Mất nhiều thời gian, nhưng bạn có thể tiến hành tạo một khối LVM2 vật lý mới:

$ pvcreate /dev/md0

Bây giờ hãy tạo một nhóm âm lượng mới:

$ vgcreate vd_raid /dev/md0

Sau đó, chúng ta cần tạo một khối logic mới trong nhóm âm lượng đó. Đầu tiên chúng ta cần tìm ra kích thước chính xác của nhóm âm lượng đã tạo:

$ vgdisplay vg_raid

Kích thước có thể được nhìn thấy từ hàng chỉ ra "Tổng PE" trong phạm vi vật lý. Hãy tưởng tượng nó là 509. Bây giờ hãy tạo một khối logic mới cần tất cả không gian có sẵn:

$ lvcreate -l 509 vg_raid -n lv_raid

Cuối cùng, chúng ta có thể tạo một hệ thống tệp trên đầu khối lượng logic đó:

$ mkfs.xfs /dev/mapper/vg_raid-lv_raid

Để có thể sử dụng mảng RAID mới tạo của chúng tôi, chúng tôi cần tạo một thư mục và gắn kết nó:

$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid

Bây giờ nó đã sẵn sàng để sử dụng. Nhưng để nó tự động gắn kết sau khi khởi động lại, chúng ta cần lưu hình học RAID vào tệp cấu hình của mdadm:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

Sau đó thêm dòng sau vào / etc / fstab để tự động gắn mảng RAID:

/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1

Bây giờ mảng RAID đã sẵn sàng để sử dụng và được gắn tự động vào thư mục / raid sau mỗi lần khởi động.

Thêm một ổ đĩa mới vào mảng

Hãy tưởng tượng rằng bây giờ bạn có một ổ đĩa mới, / dev / sde, mà bạn muốn thêm vào mảng đã tạo trước đó mà không mất bất kỳ dữ liệu nào.

Đầu tiên, ổ đĩa mới cần được phân vùng như tất cả các ổ đĩa khác:

$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc

Sau đó, nó cần được thêm vào mảng RAID:

$ mdadm --add /dev/md0 /dev/sde1

Bây giờ mảng RAID5 bao gồm bốn ổ đĩa, hiện chỉ có ba ổ đĩa đang được sử dụng. Mảng cần được mở rộng để bao gồm cả bốn ổ đĩa:

$ mdadm --grow /dev/md0 --raid-devices=4

Sau đó, khối lượng LVM2 vật lý cần được mở rộng:

$ pvresize /dev/md0

Bây giờ, âm lượng vật lý được thay đổi kích thước theo mặc định để bao phủ tất cả không gian có sẵn trong mảng RAID. Chúng ta cần tìm ra kích thước mới trong phạm vi vật lý:

$ vgdisplay vg_raid

Hãy tưởng tượng rằng kích thước mới hiện là 764 (có thể được nhìn thấy từ "Total PE"). Bây giờ mở rộng âm lượng hợp lý để bao gồm điều này:

$ lvextend /dev/mapper/vg_raid-lv_raid -l 764

Sau đó mở rộng hệ thống tệp XFS. Điều này cần phải được thực hiện trong khi hệ thống tập tin trực tuyến và được gắn kết:

$ xfs_grow /raid

Theo mặc định, nó được mở rộng để bao gồm tất cả không gian có sẵn. Cuối cùng, hình dạng mảng RAID cần được cập nhật vì mảng hiện bao gồm một đĩa mới. Đầu tiên xóa dòng đã thêm từ /etc/mdadm/mdadm.conf và sau đó thêm một dòng mới:

$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf

3
Đừng đặt phân vùng trên đĩa của bạn. Không cần nó - bộ tự động RAID trong nhân (loại phân vùng fd) không được dùng nữa.
James

Vì vậy, thay vì tạo phân vùng kiểu 'fd' bằng fdisk, tôi chỉ nên tạo mảng / dev / md0 cho các thiết bị / dev / sdb, / dev / sdc và / dev / sdd?
Nhiệm vụ

1
Tôi đã nghe nói rằng không phải tất cả các đĩa đều có cùng kích thước, vì vậy nếu tôi mua một đĩa terabyte mới, nó có thể không có cùng kích thước. Điều đó sẽ giới thiệu một số vấn đề?
Nhiệm vụ

Câu trả lời:


5

Tôi nghĩ bạn đã hiểu đúng. Hãy chắc chắn rằng bạn hiểu và chú ý đến các cảnh báo liên quan đến việc phát triển RAID 5 man 8 mdadm.

Cá nhân nếu tôi đang tăng âm lượng LVM, tôi sẽ không phát triển một mảng RAID hiện có để làm điều đó. Tôi sẽ tạo một mảng RAID khác, tạo một vật lý mới từ nó và thêm nó vào cùng một nhóm âm lượng. Đây là một hoạt động an toàn hơn nhiều (không liên quan đến việc viết lại toàn bộ mảng RAID5 trên bộ đĩa mới) và giữ kích thước của các mảng của bạn xuống.


Hoàn toàn đồng ý. vgextend là bạn của bạn ở đây.
Dan Andreatta

1
Nói chung tôi hiểu, nhưng còn tình huống mà tôi muốn phát triển ba mảng đĩa đã đề cập ở trên thành một mảng bốn đĩa. Tôi không thể tạo một mảng RAID mới từ đĩa thứ tư.
Nhiệm vụ

1
Tôi sẽ không mở rộng mảng đĩa của một máy chủ lưu trữ tại một thời điểm. Đi từ một mảng ba đĩa sang một mảng bốn đĩa sẽ chỉ cung cấp cho bạn thêm 50% dung lượng lưu trữ, vì bạn phải sử dụng các đĩa có cùng kích thước.
Kamil Kisiel

1
Đã đồng ý. Khi bạn hết dung lượng, các ổ đĩa lớn hơn sẽ giảm giá. Xây dựng một mảng RAID thứ hai trên một tập hợp các ổ đĩa lớn hơn mới, sau đó chuyển dữ liệu cũ của bạn sang đó và ngừng hoạt động bộ cũ sau khi pvmove hoàn tất. Tất cả điều này có thể được thực hiện trong khi các hệ thống tập tin trong khối lượng logic bị ảnh hưởng bởi pvmove đang được sử dụng.
flabdablet
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.