บทความนี้จะแนะนำการคอนฟิก Linux HA บน server สองตัว โดยใช้โปรแกรม heartbeat โดยในบทความตอนแรกนี้ จะคอนฟิกเป็นแบบ Active Standby คือ ณ ขณะหนึ่งจะมีเครื่องที่ใช้งานเพียงเครื่องเดียวเท่านั้น ส่วนอีกเครื่องจะเป็นเครื่องสำรอง แล้วจะถูกใช้งานโดยอัตโนมัติเมื่อเครื่องหลักมีปัญหา
ระบบที่ทดสอบ
- Fedora 9
- heartbeat-2.1.3-1.fc9.i386.rpm
ข้อมูลพื้นฐาน
Primary Server (เครื่องหลัก): linux-ha01.example.com
Secondary Server (เครื่องสำรอง): linux-ha02.example.com
Virtual IP Address: 192.168.1.1
Default gateway: 192.168.1.254
ติดตั้งโปรแกรม
เริ่มต้นติดตั้งโปรแกรมตามตัวอย่างต่อไปนี้บนเครื่องทั้งสอง (ดูข้อมูลอ้างอิงสำหรับการดาวน์โหลด)
# rpm -ivh --nodeps fedora-usermgmt-core-0.10-1.fc8.noarch.rpm # rpm -ivh --nodeps fedora-usermgmt-shadow-utils-0.10-1.fc8.noarch.rpm # rpm -ivh fedora-usermgmt-default-fedora-setup-0.10-1.fc8.noarch.rpm # rpm -ivh fedora-usermgmt-0.10-1.fc8.noarch.rpm # rpm -ivh ipvsadm-1.24-11.i386.rpm # rpm -ivh perl-MailTools-2.02-3.fc9.noarch.rpm # rpm -ivh perl-TimeDate-1.16-8.fc9.noarch.rpm # rpm -ivh perl-MailTools-2.02-3.fc9.noarch.rpm # rpm -ivh ldirectord-2.1.3-1.fc9.i386.rpm # rpm -ivh pils-2.1.3-1.fc9.i386.rpm # rpm -ivh lm_sensors-3.0.1-5.fc9.i386.rpm # rpm -ivh net-snmp-libs-5.4.1-14.fc9.i386.rpm # rpm -ivh stonith-2.1.3-1.fc9.i386.rpm # rpm -ivh heartbeat-2.1.3-1.fc9.i386.rpm
คอนฟิกไฟล์ของ heartbeat
สร้างไฟล์คอนฟิกขึ้นมาบนเครื่องทั้งสองให้เหมือนกัน โดยไฟล์คอนฟิกทั้งหมดของ heartbeat จะอยู่ใน /etc/ha.d/
ตัวอย่างคอนฟิกไฟล์ /etc/ha.d/ha.cf
logfacility daemon # Log to syslog as facility "daemon" node linux-ha01.example.com node linux-ha02.example.com keepalive 1 # Send one heartbeat each second deadtime 10 # Declare nodes dead after 10 seconds bcast eth0 # Broadcast heartbeats on eth0 and eth1 interfaces ping 192.168.1.254 # Ping our router to monitor ethernet connectivity auto_failback no # Try and keep resources on their "preferred" hosts respawn hacluster /usr/lib/heartbeat/ipfail # Failover on network failures
ตัวอย่างคอนฟิกไฟล์ /etc/ha.d/haresources
linux-ha01.example.com 192.168.1.1
สร้าง key สำหรับใส่ในไฟล์ authkeys โดยใช้คำสั่งดังนี้
# dd if=/dev/urandom count=4 2>/dev/null | md5sum | cut -c1-32 0a7ee4ce653744cb5ecbcbdc0ef52487
ตัวอย่างคอนฟิกไฟล์ /etc/ha.d/authkeys
auth 1 1 sha1 0a7ee4ce653744cb5ecbcbdc0ef52487
เริ่มต้นโปรแกรม heartbeat
เมื่อสร้างคอนฟิกทั้งสองเครื่องเรียบร้อยแล้ว ต้องเริ่มต้นโปรแกรม heartbeat ทั้องสองเคริ่องโดยแนะนำให้เริ่มจากเครื่องหลักก่อน
# /etc/init.d/heartbeat start Starting High-Availability services: [ OK ]
ทดสอบการใช้งาน
เราสามารถทดสอบการทำงานโดยใช้คำสั่ง ping ไปที่ Virtual IP Address จากเครื่องอื่นๆ โดยถ้าทั้งสองเครื่องทำงานปกติ เครื่องหลัก (Primary Server) จะทำหน้าที่เป็น Virtual IP แต่ถ้าเครื่องหลักมีปัญหา (อาจทดสอบโดยการดึงสาย LAN ออก) เครื่องสำรองจะทำหน้าที่เป็น Virtual IP แทน
ข้อมูลอ้างอิง