1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu và thực hành thiết lập RAID Linux

20 37 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 829,15 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

khái niệm RAID, các loại RAID, stripping (RAID 0) và monitoring (RAID 1), giải pháp sử dụng khả năng tính toán (RAID 56), khi nào nên sử dụng RAID và nên chọn loại RAID nào, khôi phục ổ đĩa hỏng, phân vùng logic, mở rộng và giảm kích thước phân vùng logic

Trang 1

NGHIÊN CỨU VÀ THỰC HÀNH THIẾT LẬP RAID LINUX

1 RAID 1

2 Các loại RAID 1

3 Stripping (RAID 0) và Mirroring (RAID 1) 2

4 Giải pháp sử dụng khả năng tính toán (RAID 5/6) 3

5 RAID 10 (Mirroring + Stripping) 4

6 Khi nào nên sử dụng RAID 4

7 Nên chọn loại RAID nào? 4

8 Tạo một mảng (Thiết lập với RAID 1) 4

9 Thiết lập với RAID 5 9

10 Khôi phục ổ đĩa hỏng 13

11 Quản lý phân vùng logic (Logical Volume Manager LVM) 13

12 Tạo các nhóm và các phân vùng 15

13 Mở rộng một phân vùng logic 17

14 Giảm kích thước phân vùng logic 18

Trang 2

RAID

RAID

Lưu trữ dữ liệu trên hard disk là việc cần thiết để hỗ trợ việc truy cập dữ liệu trên máy chủ, nhưng khi ổ đĩa bị hỏng, dữ liệu có thể bị mất Có một vài cách để giải quyết vấn đề này Một là sử dụng LVM để nhóm nhiều ổ đĩa và thể hiện chúng như một thiết bị Hai là có thể sử dụng BtrFS để làm thực hiện chiến lược như LVM Và cách cuối cùng là sử dụng RAID

RAID cho phép sử dụng nhiều ổ đĩa như thể là một ổ đĩa lớn, cùng với các tùy chọn built-in khác

Có 3 loại RAID phổ biến như sau:

Hardware RAID

Fake RAID

Software RAID

Hardware RAID sử dụng các bộ điều khiển phần cứng thường được gọi là RAID controllers, giúp quản lý RAID một cách trong suốt với hệ điều hành Các máy chủ mức độ doanh nghiệp thường sử dụng các bộ điều khiển phần cứng Ở các hệ thống, việc thiết lập RAID thường được thao tác qua BIOS (basic input/output system) hoặc UEFI(Unified extensible firmware interface)

Fake RAID là dạng nhỏ hơn của hardware RAID được sử dụng trên các hệ thống nhỏ hơn hoặc các máy tiín để bàn Các nhà sản xuất có thể thêm chức năng RAID vào mainboard thông qua chip Loại cài đặt RAID thứ 3 là thông qua phần mềm ở trong nhân Linux Hệ thống này được là md

hoặc đa ổ đĩa hệ thống md thuờng thể hiện tốt hơn fake RAID, và các mảng md RAID có thể di chuyển giữa các máy Báo cáo này tập trung việc sử dụng md RAID

Các loại RAID

Có vài loại - hoặc vài mức độ của RAID Mức dộ sử dụng phụ thuộc vào điều gi quan trọng nhất Các mức độ khác nhau đưa ra các đánh đổi giữa không gian ổ đĩa sẵn có, độ tin cậy và tốc độ

Trang 3

Các mức độ RAID thường được sử dụng

Sức chứa lưu trữ được tính bởi N(tổng số lượng ổ đĩa) trong mảng RAID (trừ các ổ đĩa lẻ) sau đó nhân với kích thước của ổ đĩa

Thông thường 1 ổ đĩa cứng được sử dụng như là 1 ổ đĩa dự trữ Khi có 1 ổ đĩa trong mảng lỗi, ổ đĩa dự trữ được thay thế ngay lập tức

Striping (RAID 0) và Morroring (RAID 1)

Cách cơ bản nhất để sử dụng RAID là với 2 ổ đĩa, có thể thiết lập RAID mức 0 hoặc RAID mức độ

1 RAID 0, còn được gọi là striping, coi 2 ổ đĩa như là 1 ổ đĩa kết hợp với kích thước nhân đôi Khi

ghi dữ liệu vào 1 mảng RAID, các phần của dữ liệu sẽ nằm trên mỗi ổ đĩa Vì việc ghi dữ liệu Linux

có thể thực thi đồng thời trên các ổ đĩa, nên ghi dữ liệu vào RAID 0 nhanh hơn việc ghi dữ liệu vào 1

ổ đĩa đơn Tuy nhiên, bất lợi là khi một trong các ổ đĩa hỏng, bất kì phần nào của các files mà đã được lan truyền trên các ổ đĩa sẽ biến mất Vì vậy tất cả dữ liệu bị mất

RAID 1, còn được gọi là mirroring, cho phép chỉ lưu trữ dữ liệu trên mảng như là 1 ổ đĩa đơn Nó luu trữ các bản sao chép giống nhau của các files trên các ổ đĩa, vì vậy nêu một ổ đĩa hỏng, dữ liệu vẫn có thể nhận từ các ổ đĩa còn lại Vì tất cả dữ liệu cần được ghi lên mỗi ổ đĩa, RAID 1 không cung cấp bất kì khả năng cải thiện hiệu năng ghi dữ liệu,

Lưu trữ file RAID 0 và RAID 1

Giải pháp sử dụng khả năng tính toán (RAID 5/6)

Để tối ưu lựa chọn tốt nhất - redunancy(dư thừa), storage size (kích thước lưu trữ) và speed (tốc độ)

có thể gọi sự hỗ trợ của khả năng của vi xử lý RAID mức độ 5 sử dụng tối thiểu 3 ổ đĩa và cung cấp khả năng sử dụng hiệu quả không gian lưu trữ có sẵn và gia tăng tốc độ đọc và ghi Điều này có thể đạt đươc bằng cách striping dữ liệu trên nhiều ổ đĩa và ghi checksum của mỗi stripe vào một ổ đĩa

khác(còn được biết đến là block parity (tính chẵn lẻ khối) Nếu một ổ đĩa lỗi, checksum có thể được

sử dụng xây dựng lại dữ liệu trong các stripe bị thiếu

Trang 4

Đánh đổi ở đây là cách tiếp cận này sử dụng sức mạnh của khả năng tính toán để tính checksum Khi dữ liệu được ghi ra mảng, checksum cần được tính và lưu trữ trên một trong các ổ đĩa Nếu 1 ổ đĩa lỗi, checksum sau đó có thể được sử dụng bằng cách kết hợp với dữ liệu còn lại trên các ổ đĩa

để tính lại các phần thiếu của dữ liệu

Ảnh dưới đây mô tả cách dữ liệu và checksum được tách giữa các ổ đĩa B1, B2 và B3 là các phần của file B Bp là 1 checksum hoặc parity (chẵn lẻ) Nếu đĩa 1 hỏng, B2 có thể được tính từ B1, B3 và

Bp, vì vậy khi ổ đĩa thay thế được thêm vào, nội dung của nó sẽ được khôi phục

Bố cục RAID 5 stripe giữa các ổ đĩa

RAID 5 và RAID 6 thường là lựa chọn tốt cho các máy chủ web, máy chủ file và các hệ thống mục đích chung khác nơi mà hầu hết các giao dịch là đọc

RAID 5 và RAID 6 không phải là lựa chọn tốt nhất cho môi trường cần ghi nhiều dữ liệu, cụ thể là máy chủ cơ sở dữ liệu, vì nó sẽ có thể làm hại tới hiệu năng tổng thể

Trong trường hợp 1 ổ đĩa hỏng, cần phải hy sinh hiệu năng để giữ hệ thống hoạt động Một khi ổ đĩa hỏng được thay, dữ liệu sẽ cần được xây dựng lại dựa trên thông tin chẵn lẻ Điều này sẽ mất một khoảng đáng kể của toàn bộ hiệu năng của mảng Thời gian cho những lần xây dựng lại này tiếp tục tăng lên sau mỗi năm, vì các ổ đĩa ngày càng lớn hơn

Lưu ý rằng, sử dụng RAID không phải là giải pháp thay thế cho việc tạo backup thông thường Sử dụng RAID sẽ phòng ngừa trường hợp phần cứng hỏng nhưng không phải cho việc xóa dữ liệu có chủ đích

RAID 10 (Morroring + Stripping)

RAID 10 yêu cầu ít nhất 4 ổ đĩa và là sự kết hợp của RAID 1 và RAID 0 Điều này sẽ giúp tăng cả tốc độ và sự dự trữ RAID 10 thường được khuyến nghị sử dụng nếu có nhu cầu về tốc độ nhưng

Trang 5

vẫn cần sự dư thừa Trong trường hợp dùng 4 ổ đĩa cứng, hai ổ đĩa cứng được tạo bản sao

(mirroring) giữ một nửa dữ liệu được cắt (strip) và hai bản sao còn lại giữ nửa dữ liệu còn lại Điều này có nghĩa là nếu một ổ đĩa bất kỳ nào hỏng, họăc thậm chí có thêm ổ đĩa thứ 2 bị hỏng (ổ đĩa ở trong nhóm 2 ổ được sao chép còn lại) thì dữ liệu vẫn không bị mất

Khi nào nên sử dụng RAID

RAID cực kì hữu dụng nếu thời gian vận hành và tính sẵn có là quan trọng Backup sẽ đảm bảo việc mất mát dữ liệu Nhưng, việc phục hồi lượng lớn dữ liệu, khi gặp sự cố ổ đĩa hỏng, có thể mấy hàng tiếng đồng hồ để thực hiện Các bản backup có thể từ hàng giờ hoặc hàng ngày trước, các phần dữ liệu được lưu và được thay đổi sẽ không có trong bản backup gần đây nhất RAID cho phép dù có một hoặc nhiều ổ đĩa hỏng thì vẫn không có dữ liệu bị mất và trong nhiều trường hợp, không phải chịu thời gian ngưng chạy của hệ thống

RAID cũng hữu dụng nếu có vấn đề liên quan đến đọc ghi (IO), trường hợp mà các ứng dụng đang đợi trên ổ đĩa để thực hiện các công việc RAID cung cấp nhiều thông lượng hơn bằng việc cho phép đọc và ghi dữ liệu từ nhiều ổ cứng thay vì một

Nên chọn loại RAID nào?

Không sử dụng RAID: nếu hệ thống có thể chịu đựng vài tiếng đồng hồ bị down và/ họă mất dữ liệu trong khi khôi phục hệ thống từ các bản backup

RAID 0: Nếu dữ liệu không quan trọng và có thể để mất, nhưng hiệu năng lại quan trọng (cụ thể

là cache)

RAID 1: Nêu cần ưu tiên việc dư dữ liệu để đảm bảo thời gian chạy hệ thống (uptime) một cách không tốn kém

RAID 5/6: Nêu có máy chủ web, môi trường đọc dữ liệu cao họăc có các mảng lưu trữ rất lớn như

là một đối tượng

RAID 10: Cân bằng giữa tốc độ đọc ghi cũng như việc dự trữ dữ liệu

Tạo một mảng (Thiết lập với RAID 1)

Để bảo vệ dữ liệu trên máy khỏi trường hợp ô đĩa bị hỏng, vì vậy việc sử dụng RAID là cần thiết Việc sử dụng mức độ RAID nào phụ thuộc số lượng ổ đĩa cứng có sẵn Đầu tiên cần bảo đảm rằng

có ít nhất 3 ổ đĩa và tạo các partition có kích thước giống nhau trên chúng

Nếu không có đủ ổ đĩa để sử dụng RAID, có thể sử dụng nhiều partitions có kích thước

giống nhau trên một ổ đĩa và sử dụng chúng như là các thành phần trong mảng RAID Cách này cho phép thử cài đặt và quản lý RAID Hiệu năng theo cách thiết lập này sẽ khá chậm,

vì dữ liệu sẽ cần được ghi vào các phần khác nhau của cùng một ổ đĩa nhiều lần Nó cũng

không cung cấp khả năng phục hồi chống lại ổ đĩa lỗi Nếu ổ đĩa này hỏng, thì mảng RAID

cũng sẽ lỗi

Trang 6

Ví dụ đầu tiên khởi tạo RAID 1, cần sử dụng 3 partition (ở ví dụ này là /dev/sda2 /dev/sda3 và /dev/sda4) với kích thước giống nhau thì RAID mới hoạt động được Thiết lập tạo 3 partition 1 G và thiết lập loại partition là fd00 - Linux RAID

$ sudo gdisk /dev/sda3

GPT fdisk (gdisk) version 0.8.6

Partition table scan:

MBR: not present

BSD: not present

APM: not present

GPT: not present

Creating new GPT entries

Command (? for help): n

Partition number (1-128, default 1):

First sector (34-16777182, default = 2048) or {+-}size{KMGTP}:

Last sector (2048-16777182, default = 16777182) or {+-}size{KMGTP}: 2G Current type is 'Linux filesystem'

Hex code or GUID (L to show codes, Enter = 8300): fd00

Changed type of partition to 'Linux RAID'

Command (? for help): w

Final checks complete About to write GPT data THIS WILL OVERWRITE

EXISTING

PARTITIONS!!

Do you want to proceed? (Y/N): y

OK; writing new GUID partition table (GPT) to /dev/sdc

The operation has completed successfully

Trang 7

Xóa bảng phân vùng và tạo 1 phân vùng RAID Lặp lại tiến trình này cho 2 partition /dev/sda2 và /dev/sda4 Tuy nhiên nếu các ổ đĩa có cùng kích thước (lựa chọn tốt nhất là các ổ đĩa cùng nhà sản xuất), việc phân chia các ổ đĩa là không cần thiết

Sử dụng package mdadm để thao tác và quản lý RAID Để tạo một mảng, cần chỉ định chế độ

create , mức độ RAID và các partition thành phần của mảng

$ sudo mdadm create /dev/md0 level=raid1 raid-devices=2 /dev/sda2 /dev/sda3

spare-devices=1 /dev/sda4

mdadm: Note: this array has metadata at the start and

may not be suitable as a boot device If you plan to

store '/boot' on this device please ensure that your

boot-loader understands md/v1.x metadata, or use

metadata=0.90

Continue creating array? y

mdadm: Defaulting to version 1.2 metadata

mdadm: array /dev/md0 started

Câu lệnh trên tạo 1 thiết bị có thể gắn (mount) là /dev/md0 và đây cũng là thiết bị RAID 1 được tạo bởi 2 partitions /dev/sda2 và /dev/sda3 , /dev/sda4 là partition dự trữ

Tạo hoặc chạy một mảng RAID sẽ khiến module nhân md được tải lên và hiển thị thông tin trạng thái Kiểm tra log nhân qua lệnh dmesg

Trang 8

$ sudo dmesg

[ 9508.794689] md: bind<sdc>

[ 9508.795609] md: bind<sdd>

[ 9508.795996] md: bind<sde>

[ 9508.806492] md: raid1 personality registered for level 1

[ 9508.807304] md/raid1:md0: not clean starting

background reconstruction

[ 9508.807306] md/raid1:md0: active with 2 out of 2 mirrors

[ 9508.807318] md0: detected capacity change from 0 to 8584626176 [ 9508.809302] RAID1 conf printout:

[ 9508.809305] - wd:2 rd:2

[ 9508.809306] disk 0, wo:0, o:1, dev:sdc

[ 9508.809307] disk 1, wo:0, o:1, dev:sdd

[ 9508.812318] md: resync of RAID array md0

[ 9508.812320] md: minimum _guaranteed_ speed: 1000 KB/sec/disk

[ 9508.812321] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync

[ 9508.812323] md: using 128k window, over a total of 8383424k

[ 9508.821845] md0: unknown partition table

[ 9550.509411] md: md0: resync done

[ 9550.516479] RAID1 conf printout:

[ 9550.516481] - wd:2 rd:2

[ 9550.516483] disk 0, wo:0, o:1, dev:sdc

[ 9550.516484] disk 1, wo:0, o:1, dev:sdd

[ 9550.517712] RAID1 conf printout:

[ 9550.517715] - wd:2 rd:2

[ 9550.517716] disk 0, wo:0, o:1, dev:sdc

[ 9550.517717] disk 1, wo:0, o:1, dev:sdd

Để kiểm tra trạng thái của thiết bị RAID, sử dụng lệnh mdadm với chế độ truy vấn detail

$ sudo mdadm query detail /dev/md0 /dev/md0:

Version : 1.2

Creation Time : Mon Jun 20 09:41:18 2016

Raid Level : raid1

Array Size : 8383424 (8.00 GiB 8.58 GB)

Used Dev Size : 8383424 (8.00 GiB 8.58 GB)

Raid Devices : 2

Trang 9

Total Devices : 3

Persistence : Superblock is persistent

Update Time : Mon Jun 20 09:42:00 2016

State : clean

Active Devices : 2

Working Devices : 3

Failed Devices : 0

Spare Devices : 1 Name : au-mel-centos-1.example.com:0 (local to host gateway.example.com)

UUID : ca66c4e2:49e8c87e:94d311de:01ca4f55

Events : 17

Number Major Minor RaidDevice State

0 8 33 0 active sync /dev/sda2

1 8 49 1 active sync /dev/sda3

2 8 65 - spare /dev/sda4

Hiển thị thông tin về mảng, cũng như là trang thái chi tiết của mỗi thành phần Trong ví dụ

đang sử dụng mảng RAID 1, có thể thấy /dev/sda2` /dev/sda3 đang ở trạng

hỏng, partition dự trữ (/dev/sda4) sẽ tự động được kích hoạt và đồng bộ

Có thể kiểm tra nhanh thiết bị RAID bằng cách truy vấn file hệ thống /proc :

$ sudo cat /proc/mdstat Personalities :

[raid1] md0 : active raid1 sda4[2](S)

sda3[1] sda2[0]

2045952 blocks super 1.2 [2/2] [UU]

unused

devices: <none>

Kí hiệu [UU] thể hiện [2/2] thiết bị đang hoạt động Nêu một thiết bị gỡ hoặc hỏng, kết quả có thể

là [U_] (S) sau thiết bị thể hiện nó đang được sử dụng như là vùng dự trữ

Vào lúc khởi động, máy Linux sẽ gọi mdadm Phụ thuộc vào thiết lập của nó, công cụ sẽ quét tất cả các partition hoặc các ổ đĩa được định nghĩa cho siêu khối RAID Nếu tìm được bất cứ cái nào, nó

sẽ phân tích chúng và cố gắng lắp ghép và bắt đầu tất cả mảng RAID Có thể định nghĩa rõ ràng các mảng RAID trong file thiết lập của mdadm , để đảm bảo các tên node thiết bị không thay đổi File thiết lập định nghĩa các mảng trong /etc/mdadm/mdadm.conf trên Ubuntu

# mdadm.conf

# # Please refer to mdadm.conf(5) for information about this file.

#

Trang 10

# by default (built-in), scan all partitions (/proc/partitions) and

all # containers for MD superblocks alternatively, specify devices to scan, using # wildcards if desired.

#DEVICE partitions containers

# auto-create devices with Debian standard permissions

CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system

HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts

MAILADDR root

# definitions of existing MD arrays

# This file was auto-generated on Tue, 10 May 2016 21:55:12 +1000

# by mkconf $Id$

File config madadm.conf mặc định

Để thêm định nghĩa cho mảng RAID 1, thêm vào mdadm.conf dòng sau:

ARRAY /dev/md0 level=raid1 num-devices=2 spares=1

UUID=b2847c74:af06ebb0:9a1f19f6:132aed7f

devices=/dev/sda2,/dev/sda3,/dev/sda4

Thiết lập với RAID 5

Nêu có ít nhất 4 ổ đĩa cứng, có thể tạo được RAID 5 Để tạo mảng RAID 5, cần tháo mảng RAID 1 đầu tiên Để dừng mảng RAID 1, giải phóng tất cả thiết bị nó sử dụng:

$ sudo mdadm manage /dev/md0 stop

mdadm: stopped /dev/md0

Có thể sử dụng những thiết bị đã tháo rời (/dev/sda2 , ) cho mảng RAID 5 mới Xóa thiết lập đã thêm ở file mdadm.conf Thiết lập các partition dưới dạng "Linux RAID" bằng lệnh sudo gdisk /dev/sdax

Ngày đăng: 08/03/2022, 15:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w