12/08/2018, 00:40

TÌM HIỂU VÀ CẤU HÌNH PHÂN PHỐI DỮ LIỆU VỚI DRBD

I. Tổng quan khái niệm : DRBD (viết tắt của Distributed Replicated Block Device) sao chép dữ liệu trên các thiết bị chính cho các thiết bị phụ trong một cách mà đảm bảo rằng cả hai bản sao của dữ liệu vẫn còn giống hệt nhau. Hãy suy nghĩ về nó như là nối mạng RAID 1. Ánh xạ dữ liệu trong thời ...

I. Tổng quan khái niệm :

DRBD (viết tắt của Distributed Replicated Block Device) sao chép dữ liệu trên các thiết bị chính cho các thiết bị phụ trong một cách mà đảm bảo rằng cả hai bản sao của dữ liệu vẫn còn giống hệt nhau. Hãy suy nghĩ về nó như là nối mạng RAID 1. Ánh xạ dữ liệu trong thời gian thực, do đó, nhân rộng của nó xảy ra liên tục. Các ứng dụng không cần phải biết rằng trong thực tế dữ liệu của họ được lưu trữ trên đĩa khác nhau.

High Availability có nghĩa là “Độ sẵn sàng cao“, những máy chủ, thiết bị loại này luôn luôn sẵn sàng phục vụ, người sử dụng không cảm thấy nó bị trục trặc, hỏng hóc gây gián đoạn. Để đảm bảo được điều đó, tối thiểu có một cặp máy, thiết bị chạy song song, liên tục liên lạc với nhau, cái chính hỏng, cái phụ sẽ lập tức biết và tự động thay thế. Một ví dụ đơn giản nhất là một số máy chủ có hai bộ nguồn, tự động thay thế nóng cho nhau.

Phần mềm DRBD (Distributed Replicated Block Device) đảm nhận việc đồng bộ này. Khi được cài đặt trên hai hay nhiều máy chủ trong một nhóm (cluster), drbd thực hiện việc liên tục đồng bộ giữa các partition ổ cứng được chỉ định thông qua mạng. Một lệnh ghi ổ cứng trên máy chủ chính chỉ được coi là hoàn thành khi lệnh ghi đó cũng được thực hiện xong ở các máy chủ khác trong cùng cluster. Nói cách khác, drbd thực hiện việc tạo các nhóm ổ cứng RAID-1 qua mạng, còn gọi là net-raid.

Heartbeat đảm nhận các công việc còn lại (trước năm 2007). Heartbeat chạy thường trú (daemon) trên các máy trong một cluster, thông tin liên tục cho máy phụ biết về trạng thái dịch vụ cần high availability trên máy chính (tôi còn sống và đang làm việc!). Một khi dịch vụ đó “chết”, heartbeat lập tức khởi động các dịch vụ thay thế trên máy phụ để chuyển máy đó thành máy chính. Việc thay thế này thực hiện được vì partition ổ cứng trên hai máy đã được drbd đồng bộ như nói ở trên.

Khi một cặp máy chủ Mail server, File server, Web server sẵn sàng cao chạy, nếu máy chính bị shutdown, hỏng card mạng, phần mềm mail server, … bị treo, v.v… máy chính sẽ bị loại ra ngoài hệ thống, máy phụ lập tức khởi động dịch vụ thay thế và được chuyển thành máy chính. Quá trình đó hoàn toàn tự động và trong suốt với người dùng. Người dùng chỉ cảm thấy bị gián đoạn lúc máy phụ đang khởi động dịch vụ.

DRBD và Heartbeat đều là phần mềm nguồn mở chạy trên các máy chủ Linux (trong các kho phần mềm của RedHat, SUSE, Ubuntu, CentOS, … đều có sẵn hai phần mềm này)

DRBD cũng là một hệ thống lưu trữ distributed cho các nền tảng GNU/Linux cho phép ngăn chặn các thiết bị mirro trên mạng. Điều này rất hữu ích cho thiết lập có độ sẵn sàng cao (giống như HA NFS server) bởi nếu một nút bị lỗi, toàn bộ dữ liệu vẫn có sẵn từ các nút khác.

drbd.jpg

DRBD là một mô-đun hạt nhân Linux và nằm giữa I / O scheduler vào cuối thấp hơn và hệ thống tập tin ở cuối phía trên. Để giao tiếp với DRBD, người dùng sử dụng lệnh cấp cao drbdadm . Đối với sự linh hoạt tối đa DRBD đi kèm với công cụ ở mức độ thấp drbdsetup .xem Hình 1.1, “Vị trí của DRBD trong Linux”.

ha_drbd.png

DRBD cho phép bạn sử dụng bất kỳ thiết bị khối hỗ trợ bởi Linux, thường là:

phân vùng hoặc ổ đĩa cứng hoàn toàn. (partition or complete hard disk) phần mềm RAID. (software RAID) Logical Volume Manager (LVM) . (Logical Volume Manager ) Khối lượng Hệ thống quản lý doanh nghiệp (EVMS). (Enterprise Volume Management System). Theo mặc định, DRBD sử dụng các cổng TCP 7788 và cao hơn cho việc giao tiếp giữa các nút DRBD.Hãy chắc chắn rằng tường lửa của bạn không ngăn chặn thông tin liên lạc trên cổng này.

Bạn phải thiết lập các thiết bị DRBD trước khi tạo hệ thống tập tin trên chúng. Tất cả mọi thứ liên quan đến dữ liệu người dùng nên được thực hiện chỉ qua /dev/drbd_ R thiết bị và không trên thiết bị thô, như DRBD sử dụng 128 MB mới nhất của thiết bị thô cho các siêu dữ liệu. Hãy chắc chắn rằng để tạo ra các hệ thống tập tin chỉ trên / dev / drbd <n> thiết bị và không phải trên các thiết bị thô.

Ví dụ, nếu thiết bị là 1024 MB trong kích thước, thiết bị DRBD có chỉ có 896 MB có sẵn cho dữ liệu, với 128 MB ẩn và dành riêng cho siêu dữ liệu. Bất kỳ cố gắng để truy cập vào không gian giữa 896 MB và 1024 MB không thành công vì nó không có sẵn cho dữ liệu của người sử dụng.

II. CÀI ĐẶT DỊCH VỤ DRBD :

1.Cài đặt gói DRBD

1.1Các file yêu cầu trong gói cài đặt DRBD

Cách cài đặt : có thể cài một gói Drbd hoặc từng phần nhỏ trong gói .rpm.

Filename Explanation
drbd Convenience package, split into other
drbd-bash-completion Programmable bash completion support for drbdadm
drbd-heartbeat Heartbeat resource agent for DRBD (only needed for Heartbeat)
drbd-kmp-default Kernel module for DRBD (cần thiết)
drbd-kmp-xen Module hạt nhân cho DRBD
drbd-udev udev integration scripts for DRBD, managing symlinks to DRBD devices in/dev/drbd/by-res and /dev/drbd/by-disk
drbd-utils Management utilities for DRBD (needed)
drbd-pacemaker Pacemaker resource agent for DRBD
drbd-xen Xen block device quản lý tập lệnh cho DRBD
yast2-drbd YaST DRBD Configuration (recommended)

Các gói ở trên đây mình dùng phiên bản DRDB 8.3 nên các gói còn lại nếu download thì cũng phải cùng phiên bản với DRDB 8.3.

Để đơn giản hóa công việc với drbdadm , sử dụng sự hỗ trợ hoàn thành Bash trong các gói RPM drbd-bash-completion. Nếu bạn muốn kích hoạt nó trong phiên shell hiện tại của bạn, tạo một file /root/.bashrc và chèn lệnh sau với quyền của Root :

source / etc / bash_completion.d / drbdadm.sh

2.Cấu hình DRBD

Trước khi cấu hình DRDB các bản phải sử dụng tên máy chủ A và B, tên tài nguyên là R0(R0 là một phân vùng unpatition trong ở cứng máy tính và trên 2 máy có cùng dung lượng). Thiết lập máy chủ A làm node chính.

Trước khi bạn bắt đầu cấu hình DRBD, chắc chắn rằng các thiết bị khối trong các nút Linux của bạn đã sẵn sàng và phân vùng (nếu cần). Các thủ tục sau đây giả sử bạn có hai nút, A và B và nó sử dụng các cổng TCP 7788 . Hãy chắc chắn rằng cổng này được mở trong tường lửa hoặc bạn đang disable tường lửa của máy.

2.1 đăng nhập với người dùng Root

2.2 thay đổi các file cấu hình của DRBD :

2.2.1 mở tập tin /etc/drdb.conf và chèn vào những dòng sau nếu trong tập tin không có sẵn :

Include “drbd.d/global_common.conf”;Include “drbd.d/*.res”; Bắt đầu với DRBD 8.3 tập tin cấu hình được chia thành các tập tin riêng biệt ,nằm trong thư mục : /etc/drdb.d/ .

2.2.2 chỉnh sửa tập tin /etc/drbd.d/global_common.conf

– Mở tập tin /etc/drbd.d/global_common.conf .

– Đến dòng Startup và chèn vào những câu sau :

startup {# wfc-timeout degr-wfc-timeout outdated-wfc-timeout# wait-after-sb;wfc-timeout 1;degr-wfc-timeout 1;}

2.2.3 Tạo tập tin / etc/drbd.d/r0.res , thay đổi dòng theo cách cấu hình của bạn, và lưu nó:

resource r0 { (1)device /dev/drbd_r0 minor 0; (2)disk /dev/sda1; (3)meta-disk internal; (4) on thunhat { (5)

address 192.168.1.10:7788; (6)

}

on thuhai { (5)

address 192.168.1.11:7788; (6)

}

syncer {

rate 7M; (7)

}

}

Chú thích :

(1) Tên của tài nguyên chính, yêu cầu sử dụng tên là R0,R1 …

(2) Tên thiết bị dùng cho DRBD và đường dẫn phụ của nó.

Trong ví dụ trên, các nút tên thiết bị, như tạo ra với udev, được tham chiếu ( / dev/drbd_r0 , với r0 đại diện cho tên tài nguyên). Đối với việc sử dụng này, bạn cần phải có drbd-udev gói đã được cài đặt. Ngoài ra, bỏ qua tên nút thiết bị trong cấu hình và sử dụng dòng sau để thay thế:

device minor 0

(3) Các thiết bị được nhân rộng giữa các nút. Lưu ý, trong ví dụ này các thiết bị đều giống nhau trên cả hai nút. Nếu bạn cần các thiết bị khác nhau, di chuyển đĩa tham số vào các phần trên .

(4) Tham số meta đĩa thường có chứa các giá trị nội bộ , nhưng nó có thể để xác định một thiết bị rõ ràng để giữ các dữ liệu meta.

(5) Phân vùng chứa tên tên của nút.

(6) Địa chỉ IP và port number tương ứng ( port thường dùng 7788).

(7) Tốc độ đồng bộ hóa. Đặt bằng 1/3 băng thông , nó chỉ giới hạn đồng bộ hóa , không ánh xạ .

2.3 Kiểm tra file cấu hình nếu cấu lệnh trả về lỗi , xem lại file cấu hình

drbdadm dump all 2.4 Động bộ hóa (nên để mặc định file Csync2).

csync2-xv Nếu không có file csync2-xv hoặc không muốn dùng nó , hãy copy file cấu hình DRBD sang một node khác.

scp / etc / drbd.conf venus             </div>
            
            <div class=

0