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