Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7

Bản dịch của bài báo đã được chuẩn bị vào đêm trước khi bắt đầu khóa học "Quản trị viên Linux. Ảo hóa và phân cụm".

DRBD (Thiết bị khối sao chép phân tán) là giải pháp lưu trữ phân tán, linh hoạt và có thể nhân rộng trên toàn cầu dành cho Linux. Nó phản ánh nội dung của các thiết bị khối như ổ cứng, phân vùng, khối logic, v.v. giữa các máy chủ. Nó tạo ra các bản sao dữ liệu trên hai thiết bị lưu trữ để nếu một trong số chúng bị lỗi thì dữ liệu trên thiết bị thứ hai có thể được sử dụng.

Bạn có thể nói nó giống như cấu hình RAID mạng 1 với các đĩa được ánh xạ tới các máy chủ khác nhau. Tuy nhiên, nó hoạt động hoàn toàn khác với RAID (kể cả RAID mạng).

Ban đầu, DRBD được sử dụng chủ yếu trong các cụm máy tính có tính sẵn sàng cao (HA), tuy nhiên, bắt đầu từ phiên bản XNUMX, nó có thể được sử dụng để triển khai các giải pháp lưu trữ đám mây.

Trong bài viết này, chúng tôi sẽ giải thích cách cài đặt DRBD trên CentOS và trình bày ngắn gọn cách sử dụng nó để sao chép bộ nhớ (phân vùng) trên hai máy chủ. Đây là bài viết hoàn hảo để bắt đầu với DRBD trên Linux.

Môi trường thử nghiệm

Chúng tôi sẽ sử dụng cụm hai nút cho thiết lập này.

  • Nút 1: 192.168.56.101 – tecmint.tecmint.lan
  • Nút 2: 192.168.56.102 – server1.tecint.lan

Bước 1: Cài đặt gói DRBD

DRBD được triển khai dưới dạng mô-đun hạt nhân Linux. Nó là trình điều khiển cho một thiết bị khối ảo nên nó nằm ở cuối ngăn xếp I/O của hệ thống.

DRBD có thể được cài đặt từ ELRepo hoặc EPEL. Hãy bắt đầu bằng cách nhập khóa ký gói ELRepo và kết nối kho lưu trữ trên cả hai nút như hiển thị bên dưới.

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm

Sau đó, bạn cần cài đặt mô-đun hạt nhân DRBD và các tiện ích trên cả hai nút bằng cách sử dụng:

# yum install -y kmod-drbd84 drbd84-utils

Nếu đã bật SELinux, bạn cần định cấu hình các chính sách để loại trừ các quy trình DRBD khỏi sự kiểm soát của SELinux.

# semanage permissive -a drbd_t

Ngoài ra, nếu hệ thống của bạn đang chạy tường lửa (firewalld), bạn sẽ cần thêm cổng DRBD 7789 để cho phép đồng bộ hóa dữ liệu giữa hai nút.

Chạy các lệnh này cho nút đầu tiên:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4"  source address="192.168.56.102" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Sau đó chạy các lệnh này cho nút thứ hai:

# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept'
# firewall-cmd --reload

Bước 2: Chuẩn bị lưu trữ cấp thấp

Bây giờ chúng ta đã cài đặt DRBD trên cả hai nút cụm, chúng ta phải cung cấp các vùng lưu trữ có cùng kích thước trên chúng. Đây có thể là một phân vùng ổ cứng (hoặc toàn bộ ổ cứng vật lý), thiết bị RAID phần mềm, Khối lượng logic LVM hoặc bất kỳ loại thiết bị chặn nào khác được tìm thấy trên hệ thống của bạn.

Đối với bài viết này, chúng tôi sẽ tạo một thiết bị khối thử nghiệm 2GB bằng lệnh dd.

# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024

Giả sử đây là phân vùng không được sử dụng (/dev/sdb1) trên thiết bị khối thứ hai (/dev/sdb) được kết nối với cả hai nút.

Bước 3. Định cấu hình DRBD

Tệp cấu hình chính DRBD - /etc/drbd.confvà các tệp cấu hình bổ sung có thể được tìm thấy trong thư mục /etc/drbd.d.

Để sao chép bộ lưu trữ, chúng ta cần thêm các cấu hình cần thiết vào tệp /etc/drbd.d/global_common.conf, chứa các phần chung và chung của cấu hình DRBD và chúng ta cần xác định tài nguyên trong .res các tập tin.

Hãy tạo một bản sao lưu của tệp gốc trên cả hai nút, sau đó mở tệp mới để chỉnh sửa (sử dụng trình soạn thảo văn bản bạn chọn).

# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig
# vim /etc/drbd.d/global_common.conf 

Thêm các dòng sau vào cả hai tệp:

global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}

Lưu tệp và sau đó đóng trình chỉnh sửa.

Chúng ta hãy xem xét dòng giao thức C một chút. DRBD hỗ trợ ba chế độ sao chép khác nhau (nghĩa là đồng bộ hóa sao chép ba mức độ), cụ thể là:

  • giao thức A: giao thức sao chép không đồng bộ; thường được sử dụng nhất trong các kịch bản sao chép ở khoảng cách xa.
  • giao thức B: Giao thức sao chép bán đồng bộ hoặc giao thức bộ nhớ đồng bộ.
  • giao thức C: thường được sử dụng cho các nút trong mạng có khoảng cách ngắn; cho đến nay đây là giao thức sao chép được sử dụng phổ biến nhất trong cài đặt DRBD.

Điều quan trọng là: Việc lựa chọn giao thức sao chép ảnh hưởng đến hai yếu tố triển khai: bảo mật và độ trễ. Ngược lại, thông lượng không phụ thuộc đáng kể vào giao thức sao chép đã chọn.

Bước 4: Thêm tài nguyên

Tài nguyên là một thuật ngữ chung đề cập đến tất cả các khía cạnh của một tập dữ liệu được sao chép cụ thể. Chúng tôi sẽ xác định tài nguyên của chúng tôi trong tệp /etc/drbd.d/test.res.

Thêm phần sau vào tệp trên cả hai nút (hãy nhớ thay thế các biến bằng các giá trị thực tế cho môi trường của bạn).

Hãy chú ý đến tên máy chủ, chúng ta cần chỉ định tên máy chủ mạng, tên này có thể lấy được bằng lệnh uname -n.

resource test {
        on tecmint.tecmint.lan {
 		device /dev/drbd0;
       		disk /dev/sdb1;
        		meta-disk internal;	
                	address 192.168.56.101:7789;
        }
        on server1.tecmint.lan  {
		device /dev/drbd0;
        		disk /dev/sdb1;
        		meta-disk internal;
                	address 192.168.56.102:7789;
        }
}
}

Trong đó:

  • trên tên máy chủ: Phần trên áp dụng câu lệnh cấu hình lồng nhau.
  • thử nghiệm: Đây là tên của tài nguyên mới.
  • thiết bị/dev/drbd0: Cho biết thiết bị khối ảo mới được quản lý bởi DRBD.
  • đĩa/dev/sdb1: Đây là phân vùng thiết bị khối làm thiết bị dự phòng cho thiết bị DRBD.
  • siêu đĩa: Xác định nơi DRBD lưu trữ siêu dữ liệu của nó. Nội bộ có nghĩa là DRBD lưu trữ siêu dữ liệu của nó trên cùng một thiết bị vật lý cấp thấp như dữ liệu thực tế trong quá trình sản xuất.
  • địa chỉ: Cho biết địa chỉ IP và số cổng của nút tương ứng.

Cũng lưu ý rằng nếu các tham số có cùng giá trị trên cả hai máy chủ, bạn có thể chỉ định chúng trực tiếp trong phần tài nguyên.

Ví dụ: cấu hình trên có thể được cơ cấu lại thành:

resource test {
	device /dev/drbd0;
	disk /dev/sdb1;
        	meta-disk internal;	
        	on tecmint.tecmint.lan {
 		address 192.168.56.101:7789;
        	}
        	on server1.tecmint.lan  {
		address 192.168.56.102:7789;
        		}
}

Bước 5. Khởi tạo và khởi chạy tài nguyên

Để tương tác với DRBD, chúng tôi sẽ sử dụng các công cụ quản trị sau (tương tác với mô-đun hạt nhân để định cấu hình và quản lý tài nguyên DRBD):

  • drbdadm: Công cụ quản trị cấp cao DRBD.
  • drbdsetup: Công cụ quản trị cấp thấp hơn để kết nối các thiết bị DRBD với các thiết bị dự phòng của chúng, định cấu hình các cặp thiết bị DRBD để phản ánh các thiết bị dự phòng của chúng và để xác minh cấu hình của các thiết bị DRBD đang chạy.
  • Drbdmeta: Công cụ quản lý siêu dữ liệu.

Sau khi thêm tất cả các cấu hình tài nguyên ban đầu, chúng ta phải gọi tài nguyên trên cả hai nút.

# drbdadm create-md test

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Đang khởi tạo kho siêu dữ liệu

Tiếp theo, chúng ta cần chạy nó, nó sẽ kết nối tài nguyên với thiết bị sao lưu của nó, sau đó đặt các tham số sao chép và kết nối tài nguyên với thiết bị ngang hàng của nó:

# drbdadm up test

Bây giờ nếu bạn chạy lệnh lsblk, bạn sẽ nhận thấy rằng thiết bị/khối lượng DRBD drbd0 được liên kết với thiết bị sao lưu /dev/sdb1:

# lsblk

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Danh sách các thiết bị khối

Để vô hiệu hóa tài nguyên, hãy chạy:

# drbdadm down test

Để kiểm tra trạng thái của tài nguyên, hãy chạy lệnh sau (lưu ý rằng trạng thái của đĩa được mong đợi tại thời điểm này Không nhất quán/Không nhất quán):

# drbdadm status test
OR
# drbdsetup status test --verbose --statistics 	#for  a more detailed status

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Kiểm tra trạng thái của tài nguyên trên
độc ác

Bước 6: Đặt nguồn đồng bộ hóa tài nguyên chính/thiết bị ban đầu

Ở giai đoạn này, DRBD đã sẵn sàng hoạt động. Bây giờ chúng ta cần chỉ định nút nào sẽ được sử dụng làm nguồn đồng bộ hóa thiết bị ban đầu.

Chạy lệnh sau trên chỉ một nút để bắt đầu đồng bộ hóa đầy đủ ban đầu:

# drbdadm primary --force test
# drbdadm status test

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Đặt nút chính làm thiết bị ban đầu
Sau khi đồng bộ hóa hoàn tất, trạng thái của cả hai ổ đĩa sẽ là UpToDate.

Bước 7: Kiểm tra thiết lập DRBD

Cuối cùng, chúng ta cần kiểm tra xem thiết bị DRBD có hoạt động khi cần thiết để lưu trữ dữ liệu được sao chép hay không. Hãy nhớ rằng chúng tôi đã sử dụng một ổ đĩa trống, vì vậy chúng tôi phải tạo một hệ thống tệp trên thiết bị và gắn kết nó để kiểm tra xem liệu chúng tôi có thể sử dụng nó để lưu trữ dữ liệu được sao chép hay không.

Chúng tôi cần tạo một hệ thống tệp trên thiết bị bằng lệnh sau trên nút nơi chúng tôi bắt đầu đồng bộ hóa hoàn toàn ban đầu (có tài nguyên có vai trò chính):

# mkfs -t ext4 /dev/drbd0

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Tạo hệ thống tệp trên ổ đĩa Drbd

Sau đó gắn kết nó như được hiển thị (bạn có thể đặt tên phù hợp cho điểm gắn kết):

# mkdir -p /mnt/DRDB_PRI/
# mount /dev/drbd0 /mnt/DRDB_PRI/

Bây giờ hãy sao chép hoặc tạo một số tệp ở điểm gắn kết ở trên và tạo một danh sách dài với lệnh ls:

# cd /mnt/DRDB_PRI/
# ls -l 

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Liệt kê nội dung của tập Drbd chính

Tiếp theo, ngắt kết nối thiết bị (đảm bảo mount không mở, thay đổi thư mục sau khi ngắt kết nối để tránh lỗi) và thay đổi vai trò nút từ chính sang phụ:

# umount /mnt/DRDB_PRI/
# cd
# drbdadm secondary test

Đặt nút khác (có tài nguyên có vai trò phụ) làm nút chính, sau đó gắn thiết bị vào nút đó và đưa ra một danh sách dài các điểm gắn kết. Nếu thiết lập hoạt động tốt, tất cả các tệp được lưu trữ trên ổ đĩa sẽ ở đó:

# drbdadm primary test
# mkdir -p /mnt/DRDB_SEC/
# mount /dev/drbd0 /mnt/DRDB_SEC/
# cd /mnt/DRDB_SEC/
# ls  -l 

Thiết lập DRBD để sao chép lưu trữ trên hai máy chủ CentOS 7
Kiểm tra thiết lập DRBD đang chạy trên nút phụ.

Để biết thêm thông tin, hãy xem các trang trợ giúp về công cụ quản trị:

# man drbdadm
# man drbdsetup
# man drbdmeta

Thông tin khác: Hướng dẫn sử dụng DRBD.

Tóm tắt thông tin

DRBD cực kỳ linh hoạt và linh hoạt, khiến nó trở thành giải pháp sao chép lưu trữ phù hợp để thêm HA vào hầu hết mọi ứng dụng. Trong bài viết này, chúng tôi đã hướng dẫn cách cài đặt DRBD trên CentOS 7 và trình bày ngắn gọn cách sử dụng nó để sao chép bộ nhớ. Hãy chia sẻ suy nghĩ của bạn với chúng tôi bằng cách sử dụng mẫu phản hồi bên dưới.

Tìm hiểu thêm về khóa học.

Nguồn: www.habr.com

Thêm một lời nhận xét