07.06.2020 Views

HA LVS

aaaa

aaaa

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Mô hình kết nối tổng thể

Bài thực hành

HA & LVS

Các bước cài đặt HA và LVS cho các máy chủ Load balancing và

database

* heartbeat

o heartbeat-pils

o heartbeat-stonith

Linux Advance Lab 1


* heartbeat-ldirectord

o ipvsadm

o perl-MailTools

+ perl-TimeDate

o perl-Net-IMAP-Simple

o perl-Net-IMAP-Simple-SSL

+ perl-IO-Socket-SSL

# perl-Net-SSLeay

o perl-Mail-POP3Client

o perl-Mail-IMAPClient

o perl-Authen-Radius

+ perl-Data-HexDump

Cấu hình load balancing

Cấu hình load blance bằng LVS / NAT

1. Cho phép IP fowarding

# echo "1" > /proc/sys/net/ipv4/ip_forward

2. Tạo virtual service cho LV server (qua phương thức round robin )

# ipvsadm -A -t 172.16.0.1:http -s rr

3. Đối với dịch dịch vụ virtual trên , dùng các lệnh sau để cấu hình cho realserver

# ipvsadm -a -t 172.16.0.1:http -r 10.0.0.101:http -m

# ipvsadm -a -t 172.16.0.1:http -r 10.0.0.102:http -m

4. Có thể kiểm tra kết quả bằng lệnh

#ipvsadm -L

Linux Advance Lab 2


5. Chỉnh default gateway tại máy load balancing

#route add -net default gw 10.0.0.1

Load blance bằng LVS / DR

1. Thêm interface ảo cho load balancing (vì mô hình LVS/DR yêu cầu ta phải tạo

thêm virtual IP)

# ifconfig eth1:0 10.0.0.100 netmask 255.255.255.0

2. Khai báo dịch vụ ảo cho load balancing

# ipvsadm -A -t 10.0.0.100:http -s rr

3. Khai báo server thật trên loadbalancing

# ipvsadm -a -t 10.0.0.100:http -r 10.0.0.101:http -m

# ipvsadm -a -t 10.0.0.100:http -r 10.0.0.102:http -m

4. Có thể kiểm tra kết quả bằng lệnh

#ipvsadm -L

Cấu hình file để không bị mất khi khởi động

# /etc/ha.d/ldirectord.cf

checktimeout=15

checkinterval=5

autoreload=yes

logfile="/var/log/ldirectord.log"

quiescent=yes

virtual=10.0.0.100:80

fallback=127.0.0.1:80

real=10.0.0.101:80 gate

real=10.0.0.102:80 gate

service=http

request="test.html"

receive="Still alive"

scheduler=rr

persistent=600

protocol=tcp

checktype=negotiate

1. Chạy dịch vụ

#/etc/init.d/ldirectord start

2. Kiểm tra kết quả

#ipvsadm -L –n

Cấu hình máy chủ thật để đảm bảo xử lý gói tin

1. Tạo card mạng ảo để nhận gói tin gửi tới theo địa chỉ card mạng ảo

#vi /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

IPADDR=10.0.0.100

NETMASK=255.255.255.255

NETWORK=10.0.0.0

BROADCAST=10.0.0.255

ONBOOT=yes

NAME=loopback

#/etc/init.d/network restart

# ip add sh lo

2. Giới hạn việc quảng bá gói tin ARP

# vi /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

Linux Advance Lab 3


net.ipv4.conf.eth0.arp_announce = 2

# sysctl -p

3. Cấu hình default gateway

#echo "any v default gw 10.0.0.1" > /etc/sysconfig/static-routes

#service network restart

#route -n

4. Tạo trang web để kiểm tra

#echo "Still alive" > /var/www/html/ldirectord.html

#echo "Real server 1" > /var/www/html/index.html

5. Chạy thử web server

#service httpd restart

Kiểm tra ldirectord

Kết nối vào máy chủ địa chỉ 172.16.0.1

Kết quả: trang index.html của server 1 hoặc server 2 trả về

Xóa kết nối với máy chủ 1 và truy cập lại trang web

Cấu hình chạy HA cho Web server

1. Cấu hình hostname cho các máy database1 và database2

#vi /etc/sysconfig/network

HOSTNAME=database1

# với máy cơ sở dữ liệu database2

# HOSTNAME=database2

2. Cấu hình phần giải tên cho các máy (hai máy giống nhau)

#vi /etc/hosts

127.0.0.1 localhost localdomain

10.0.0.97 database1 database

10.0.0.98 database2 database

Ghi chú:

Linux Advance Lab 4


Tên database1 và database2 ở trên phải giống kết quả của câu lệnh uname –r

khi thực hiện trên các máy.

3. Cấu hình file /etc/ha.d/ha.cf

# vi /etc/ha.d/ha.cf

logfacility local0

keepalive 1

deadtime 10

warntime 5

initdead 120

udpport 694

mcast eth1 225.0.0.1 694 1 0

auto_failback off

node

database1

node

database2

ping 192.168.1.1

respawn hacluster /usr/lib/heartbeat/ipfail

crm off

Ghi chú:

Tên database1 và database2 ở trên phải giống kết quả của câu lệnh uname

–n khi thực hiện trên các máy.

4. Tạo chứng thực giữa 2 node:

#vi /etc/ha.d/authkeys

auth 2

2 sha1 ThisIsMyPassword

#chmod 600 /etc/ha.d/authkeys

5. Đặt thời gian cho 2 node như nhau

6. Cấu hình Heartbeat trên node còn lại

#/usr/lib/heartbeat/ha_propagate

7. Chạy heartbeat trên cả 2 node

#/etc/init.d/heartbeat start

8. Chạy heartbeat trên cả 2 node

Cấu hình STONITH

1. Trên cả 2 node tạo khá chứng thực

# ssh-keygen -t rsa

2. Phân bố khóa

database1# ssh-copy-id -i /root/.ssh/id_rsa.pub database2

database2# ssh-copy-id -i /root/.ssh/id_rsa.pub database1

3. Kiểm tra kết quả

Database1# ssh -q -x -n -l root "ldirector1" "ls -l /"

4. Kích hoạt tiến trình atm

/etc/init.d/atd start

chkconfig atd on

5. Tạo STONITH clone resource

Cài đặt và cấu hình drbd

1. Thêm ổ cứng vào cả 2 máy ảo (ổ cứng nhận trong 2 máy là /dev/sdb)

2. Partition ổ cứng /dev/sdb trên hai máy thành ổ cứng /dev/sdb1 (chú ý không

format ổ cứng).

3. Làm sạch ổ cứng (trong trường hợp đã format ổ cứng)

# dd if=/dev/zero of=/dev/sdb1 bs=1M count=128

4. Cài đặt gói drbd trên cả 2 máy

Linux Advance Lab 5


#tar –xvzf drbd-8.0.3.tar.gz

#cd drbd-8.0.3

#make clean all

#make install

#make install-tools

5. Cấu hình file /etc/drbd.conf

resource mysql {

protocol C;

startup { wfc-timeout 0; degr-wfc-timeout 120; }

disk { on-io-error detach; }

syncer {

}

on database1 {

device /dev/drbd0;

disk /dev/sdb1;

address 192.168.3.97:8000;

meta-disk internal;

}

on database2 {

device

}

}

/dev/drbd0;

disk /dev/sdb1;

address 192.168.3.98:8000;

meta-disk internal;

6. Trên máy chủ database 1

[root@database1 etc]# drbdadm create-md mysql

[root@database1 etc]# drbdadm adjust mysql

[root@database1 ~]# drbdsetup /dev/drbd0 primary -o

[root@database1 ~]# service drbd start

[root@database1 ~]# service drbd status

7. Trên máy chủ database 2

[root@database2 ~]# service drbd start

[root@ database2 ~]# service drbd status

8. Kiểm tra tiến trình đang chạy

[root@ database1 ~]# watch cat /proc/drbd

Cấu hình High Avaibility cho Mysql

1. Trên 2 máy chủ database1 và database2

[root@database1 ~]# cd /etc/ha.d/

[root@ database1 ha.d]# cp /usr/share/doc/heartbeat-2.0.8/haresources ./

Chỉnh sửa file haresources thành

Database1 192.168.0.00 drbddisk::mysql

Filesystem::/dev/drbd0::/var/lib/mysql::ext3 mysqld

2. Format ổ cứng

[root@database2 ~]# drbdadm secondary mysql

[root@database1 ~]# drbdadm primary mysql

[root@database1 ~]# mkfs.ext3 -L mysql /dev/drbd0

[root@database1 ~]# mkfs.ext3 /dev/drbd0

[root@database1 ~]# mount /dev/drbd0 /mnt/mysql

3. Chỉnh sửa file cấu hình mysql bằng chỉnh sửa file my.cnf ở trên cả 2 máy

Linux Advance Lab 6


Chỉnh phần datadir=/mnt/mysql/data

4. Khởi tạo có sở dữ liệu mysql

[root@database1 ~]# mysql_install_db

Cấu hình High Avaibility cho website và samba

1. Trên máy 2 chủ database1 và database2 cấu hình heartbeat để cluster httpd

[root@database1 ~]# cd /etc/ha.d/

[root@ database1 ha.d]# cp /usr/share/doc/heartbeat-2.0.8/haresources ./

Chỉnh sửa file haresources thành

database1 192.168.85.3 httpd smb

Kết nối storage thông qua iSCSI thay cho sử dụng drbd

1. Chuẩn bị storage và kết nối mạng cho storage

2. Kiểm tra gói cài hỗ trợ iSCSI

[root@database ~]# rpm –q iscsi-initiator-utils-4.0.3.0-4

3. Cấu hình iSCSI và khởi động dịch vụ

[root@database ~]# vi /etc/iscsi/iscsid.conf

Nhập user và password truy cập storage

node.session.auth.username = My_ISCSI_USR_NAME

node.session.auth.password = MyPassword

discovery.sendtargets.auth.username = My_ISCSI_USR_NAME

discovery.sendtargets.auth.password = MyPassword

[root@database ~]# /etc/init.d/iscsi start

4. Tìm kiếm và đăng nhập target

[root@database ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.99

[root@database ~]# /etc/init.d/iscsi restart

5. Kiểm tra ổ đĩa được nhận

[root@database ~]# fdisk –l

6. Format ổ cứng và mount vào hệ thống

[root@database ~]# fdisk /dev/sdd

[root@database ~]# mkfs.ext3 /dev/sdd1

[root@database ~]# mkfs.ext3 /dev/sdd1

[root@database ~]# mkdir /mnt/iscsi

[root@database ~]# mount /dev/sdd1 /mnt/iscsi

7. Cấu hình để mount tự động khi khởi động server

[root@database ~]# chkconfig iscsi on

Chỉnh sửa file /etc/fstab

/dev/sdd1 /mnt/iscsi ext3 _netdev 0 0

Linux Advance Lab 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!