Skill .Ebook. Hack>security
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang ChínhLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 Ứng dụng Heartbeat và DRDB cho Mysq

Go down 
Tác giảThông điệp
buidunghai
Admin
buidunghai


Nam Aries Tổng số bài gửi : 83
Points : 258
Reputation : 0
Birthday : 16/04/1990
Join date : 31/12/2009
Age : 34
Đến từ : yên bái
Job/hobbies : sinh viên

Ứng dụng Heartbeat và DRDB cho Mysq Empty
Bài gửiTiêu đề: Ứng dụng Heartbeat và DRDB cho Mysq   Ứng dụng Heartbeat và DRDB cho Mysq I_icon_minitimeTue Jan 12, 2010 1:58 pm

Là một giải pháp khá phổ biến hiện nay là dùng DRBD để cấu trúc hệ thống HA Cluster cho Mysql . Có thể hiểu , DRBD là chương trình cho phép ta xây dựng RAID1 thông qua mạng . Nói dể hiểu hơn 1 chút thì DRBD là chương trình dùng mạng để đồng bộ dữ liệu partition của HD . Vì vậy , thật ra không cần phải là Mysql, khi xây dựng xong chương trình này, ta sẽ có thể ứng dụng cho apache , mail , ftp , ldap vv… . Với nhu cầu của thành viên HVA nênbài viết này đặt trọng tâm ứng dụng DRBD cho Mysql .

Cấu hình DRBD yêu cầu ta tạo các phần vùng meta data để quản lý phần vùng và tạo phần vùng chứa dữ liệu .

Cài đặt
# yum –y drbd kmod-drbd


Tạo 2 tất cả là 2 phần vùng tại HD /dev/sdb như sau ,
# fdisk /dev/sdb
/dev/sdb1 – Meta data (128M hoặc 256M)
/dev/sdb2 – Data


Chú ý : Để tránh tình trạng lãng phí tài nguyên giải quyết domain , nên cấu hình/etc/hosts tương ứng cho mạng LAN của bạn .

Sau khi fdisk xong , sẽ có kết quả như sau
コマンド (m でヘルプ): p

Disk /dev/sdb: 73.4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/sdb1 1 65 522081 83 Linux
/dev/sdb2 66 8924 71159917+ 83 Linux



Copy file /usr/share/doc/drbd/drbd.conf vào /etc/ như sau

/etc/drbd.conf
resource d0 {
protocol C;
startup {
degr-wfc-timeout 120; # 2 minutes.
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 500M;
al-extents 257;
}
on hvaonline.net {
device /dev/drbd0;
disk /dev/sdb2;
address 192.168.10.10:7788;
meta-disk /dev/sdb1[0];
}
on hvaonline.net {
device /dev/drbd0;
disk /dev/sdb2;
address 192.168.10.11:7788;
meta-disk /dev/sdb1[0];

}
}


Ý nghĩa của các thông số có ý nghĩa như sau ,

Resource : Đặt tên cho resource .

Protocol : Hãy chọn option này là C . Vì trong readme nó ghi vậy .

C: write IO is reported as completed, if we know it has
reached _both_ local and remote DISK.
* for critical transactional data.
B: write IO is reported as completed, if it has reached
local DISK and remote buffer cache.
* for most cases.
A: write IO is reported as completed, if it has reached
local DISK and local tcp send buffer. (see also sndbuf-size)
* for high latency networks
**********
# uhm, benchmarks have shown that C is actually better than B.
# this note shall disappear, when we are convinced that B is
# the right choice "for most cases".
# Until then, always use C unless you have a reason not to.
# --lge
#**********


on-io-error : Xử lý khi bị I/O error

pass_on : Report the io-error to the upper layers. (chưa hiểu lắm )

call-local-io-error : Chạy script mang tên call-local-io-error

detach : The node drops its backing storage device, and continues in disk less mode. (Chưa hiểu lắm)

Đọc module của drbd
lsmod |grep drbd
modprobe drbd minor_count=1


Kết quả khi nhúng drbd vào .
# modinfo drbd
filename: /lib/modules/2.6.9-42.ELsmp/kernel/drivers/block/drbd.ko
author: Philipp Reisner , Lars Ellenberg
description: drbd - Distributed Replicated Block Device v8.0.7
license: GPL
parm: minor_count:Maximum number of drbd devices (1-255)
alias: block-major-147-*
parm: allow_oosONT USE!
license: GPL
author: Evgeniy Polyakov
description: Generic userspace <-> kernelspace connector.
parm: cn_idx:Connector's main device idx.
parm: cn_val:Connector's main device val.
vermagic: 2.6.9-42.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4




Tạo metadata.(chạy trên cả 2 máy chủ . )
# drbdadm create-md d0


Khởi động và kiểm tra như sau . (chạy trên cả 2 máy chủ )

# drbdadm up all
# cat /proc/drbd
# service drbd start



Vào host 192.168.10.10, dùng lệnh sau để thành primary
#drbdadm -- --overwrite-data-of-peer primary all



-> Phần 2 : Tạo filesystem cho 2 node

Tại bước này , sẽ tạo file system và mount nó theo các trình tự sau

Tại Primary : 192.168.10.10
# mke2fs -j /dev/drbd0



Mount /dev/drdb0 đã tạo
#mkdir /mnt/drbd
#mount /dev/drbd0 /mnt/drbd/


Xong bước này xem như đã có sẵn những thứ cần thiết để đồng bộ dữ liệu .

Thử failover bằng tay như sau

tại Primary node : 192.168.10.10
# umount /mnt/drbd/
# drbdsetup /dev/drbd0 secondary


Tại Secondary node : 192.168.10.11
# drbdsetup /dev/drbd0 primary
# mount /dev/drbd0 /mnt/drbd/


Cuối cùng , tạo một file nào đó và xem phía primary:192.168.10.10 có tồn tại nó hay không .


-> Phần 3 : Setup Mysql để đồng bộ dữ liệu .

1. Cài đặt mysql -> Tìm trên HVA
2. cấu hình mysql

Phần này là dễ nhất , bạn chỉ cần ấn định tại basedir vào dưới directory /mnt/drdb là xong .

Ví dụ file cấu hình .

# Example MySQL config file for medium systems.

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir=/mnt/drbd/data
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M


# Replication Master Server (default)
# binary logging is required for replication
log-bin


# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout




-> Phần 4 : Dùng heartbeat để giám sát 2 máy chủ .

Đón đọc và làm thử post kết quả lên cho vui nha bà con
albino albino albino albino
Về Đầu Trang Go down
http://buidunghai.no1.vn
 
Ứng dụng Heartbeat và DRDB cho Mysq
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Skill .Ebook. Hack>security :: Thể loại :: *****(^_^) Web,hosting (^_^)-
Chuyển đến