Thaiadmin

นำวิธีการทำ Cluster Elastix มาฝากครับ

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

นำวิธีการทำ Cluster Elastix มาฝากครับ
« เมื่อ: 17 ตุลาคม 2012, 15:51:32 »
ไม่รู้มีใครใช้แบบผมไหม ผิดพลาดอะไรขออภัยด้วยนะครับ

Spec เครื่อง Server ผมนะครับทั้งสองเครื่อง
Dell T410
CPU Xeon 5620 2.40GHz
Ram 16GB
HDD Raid5, 300 X 4 (900GB)
Lan 2 Port
Card    2PortE1, Analog 24Port FXO4, FXS20 Sangoma ทั้งคู่
IP Config
Server 1
   eth0   172.16.0.111
   eth1   192.168.100.111
Server2   
   eth0   172.16.0.112
   eth1   192.168.100.112
IP Virtual
   172.168.0.113

ติดตั้ง Elastix เริ่มจากการแบ่ง Partition ก่อนโดยผมเซ็ตตามนี้

   

-   /boot = 100MB   / force to be a primary partition
    
   

-   /     = 30000MB / force to be a primary partition
 
   

-   swap = 2048MB / force to be a primary partition
    
   
?
จากนั้นก็เซ็ตค่า Network แบ่งออกเป็นสองขา
eth0 IP:172.16.0.111   ผมใช้เป็น Network



eth1 IP:192.168.100.111   เป็นขา sync ข้อมูลของ DRBD แล HA



หลังจากลงเสร็จก็สั่ง Update และ Install Package ที่จำเป็น
yum –y update
yum install -y drbd kmod-drbd82 OpenIPMI-libs heartbeat-pils openhpi heartbeat heartbeat-stonith
เมื่ออับเดตเสร็จก็มาสร้าง Partition ที่จำนำมาทำเป็น DRBD ทำทั้งสอง Server นะครับให้เหมือนกัน
fdisk /dev/sda
• Add a new partion (n)
• Primary (p)
• Partition number (4)
First Cylinder = 4099 (แล้วแต่ขนาด Hdd ที่เหลืออยู่ หรือ Enter เลยก็ได้)
Last Cylinder = 100000 (แล้วแต่ขนาด Hdd ที่เหลืออยู่ หรือ Enter เลยก็ได้)
• Press “t” to change the partition system ID
• Press “4” to choose partition number
• Type 83
• Press “w” to save changes
แล้วก็ Reboot
ต่อไปก็สร้างไฟล์ System ครับทั้งสอง Server
mke2fs -j /dev/sda4
dd if=/dev/zero bs=1M count=1 of=/dev/sda4;sync

แก้ไข้ไฟล์ /etc/hosts ใส่ให้เหมือนกันทั้งสอง Server
vi /etc/hosts
172.16.0.111   crazy-1.domain.com   crazy-1
172.16.0.112   crazy-2.domain.com   crazy-2

?
แก้ไขไฟล์ config DRBD ทำทั้งสอง Server
vi /etc/drbd.conf

resource "r0" {
protocol C;
disk { on-io-error detach; }
startup { wfc-timeout 0; degr-wfc-timeout 3; }
syncer { rate 200M; }
on crazy-1 {
device /dev/drbd0;
disk /dev/sda4;
address 192.168.100.111:7789;
meta-disk internal;
}
on crazy-2 {
device /dev/drbd0;
disk /dev/sda4;
address 192.168.100.112:7789;
meta-disk internal;
}
}
แก้ไขให้ตรงกับชื่อ server และ IP
drbdadm create-md r0
service drbd start
   หลังจาก Start แล้ว จะมีข้อความ To abort waiting enter ‘yes’ ตามด้วยเวลา ตอนนี้เราก็ไปสั่ง service drbd start ที่ตัวที่สองข้อความนี้ก็จะหายไปเพราะมันได้ทำการเชื่อมต่อกันแล้ว

   
   
ถ้าสั่งดู service drbd status ทั้งสองเครื่องก็จะเป็น Secondary/Secondary ตามในรูป

    

   ใช้คำสั่ง watch -n 1 cat /proc/drbd เพื่อดู Process การซิงค์ข้อมูลครับ
 
หลังจากซิงค์ข้อมูลเสร็จก็ทำการ Mount Folder เข้ากับ Disk DRBD ต่อไปนี้ทำใน Server 1 ก่อนเมื่อเริ่มทำตัวที่สองผมจะบอกครับ
mke2fs -j /dev/drbd0
mkdir /data
mount /dev/drbd0 /data

เมื่อ ใช้คำสั่ง df จะเห็นโฟลเดอร์ขึ้นมา

 

ต่อไปก็หยุด service ต่างๆก่อนแล้ว Copy ไฟล์ที่สำคัญของ Elastix และทำการ Link ไฟล์
service asterisk stop
service httpd stop
service mysqld stop
service postfix stop
cd /data
tar -zcvf etc-asterisk.tgz /etc/asterisk
tar -zxvf etc-asterisk.tgz
tar -zcvf var-lib-asterisk.tgz /var/lib/asterisk
tar -zxvf var-lib-asterisk.tgz
tar -zcvf usr-lib-asterisk.tgz /usr/lib/asterisk/
tar -zcvf var-www.tgz /var/www/
tar -zxvf usr-lib-asterisk.tgz
tar -zcvf var-spool-asterisk.tgz /var/spool/asterisk/
tar -zxvf var-spool-asterisk.tgz
tar -zcvf var-lib-mysql.tgz /var/lib/mysql/
tar -zxvf var-lib-mysql.tgz
tar -zcvf var-log-asterisk.tgz /var/log/asterisk/
tar -zxvf var-log-asterisk.tgz
tar -zxvf var-www.tgz
rm -rf /etc/asterisk
rm -rf /var/lib/asterisk
rm -rf /usr/lib/asterisk/
rm -rf /var/spool/asterisk
rm -rf /var/lib/mysql/
rm -rf /var/log/asterisk/
rm -rf /var/www/
ln -s /data/etc/asterisk/ /etc/asterisk
ln -s /data/var/lib/asterisk/ /var/lib/asterisk
ln -s /data/usr/lib/asterisk/ /usr/lib/asterisk
ln -s /data/var/spool/asterisk/ /var/spool/asterisk
ln -s /data/var/lib/mysql/ /var/lib/mysql
ln -s /data/var/log/asterisk/ /var/log/asterisk
ln -s /data/var/www/ /var/www

ขั้นต่อไปจะทำการเซ็ต Heartbeat
chkconfig asterisk off
chkconfig mysqld off
chkconfig httpd off

?
สร้างไฟล์ Heartbeat
vi /etc/ha.d/ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 10
warntime 10
initdead 20
ping 172.16.0.113
ucast eth1 192.168.100.111 
ucast eth1 192.168.100.112
bcast eth1
auto_failback off
node crazy-1   
node crazy-2

vi /etc/ha.d/haresources
crazy-1 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 IPaddr::172.16.0.113/24/eth0/172.16.0.255 mysqld asterisk httpd postfix

vi /etc/ha.d/authkeys
auth 1
1 sha1 Password

chmod 600 /etc/ha.d/authkeys
chkconfig --add heartbeat
สั่ง Reboot
เมื่อกลับเข้ามาสั่ง ifconfig จะมี interface ขึ้นมาเป็น IP 172.16.0.113 ตามที่ได้เซ็ตไว้

ต่อมาก็นำ Config ไปใส่ไว้ที่ Server 2 พิมพ์ใน Server 1
scp ha.cf haresources authkeys root@172.16.0.112:/etc/ha.d/
แล้ว Enter แล้วพิมพ์ yes และใส่ Password ของ Server 2
ต่อจากนี้ทำที่ Server 2
mkdir /data
service asterisk stop
service httpd stop
service mysqld stop
service postfix stop
rm -rf /etc/asterisk
rm -rf /var/lib/asterisk
rm -rf /usr/lib/asterisk/
rm -rf /var/spool/asterisk
rm -rf /var/lib/mysql/
rm -rf /var/log/asterisk/
rm -rf /var/www/
chkconfig asterisk off
chkconfig mysqld off
chkconfig httpd off
chmod 600 /etc/ha.d/authkeys
chkconfig --add heartbeat

ที่ Server 2
service heartbeat start

ที่ Server 1
reboot

ตอนนี้ DRBD จะเป็น Primary ที่ Server 2 แล้วก็ทำการ link file
ln -s /data/etc/asterisk/ /etc/asterisk
ln -s /data/var/lib/asterisk/ /var/lib/asterisk
ln -s /data/usr/lib/asterisk/ /usr/lib/asterisk
ln -s /data/var/spool/asterisk/ /var/spool/asterisk
ln -s /data/var/lib/mysql/ /var/lib/mysql
ln -s /data/var/log/asterisk/ /var/log/asterisk
ln -s /data/var/www/ /var/www

เสร็จเรียบร้อยครับ ตอนนี้ก็สามารถ reboot เครื่องเพื่อทดสอบ HA ได้เลยครับ

หวังว่าจะช่วยได้ไม่มากก็น้อยนะครับ

Re: นำวิธีการทำ Cluster Elastix มาฝากครับ
« ตอบกลับ #1 เมื่อ: 27 มีนาคม 2014, 09:49:25 »
ขอบคุณมากครับ สอบถามนิดนึงคือเมื่อติดตั้งตัว Elastix ตามขั้นตอนข้างต้นเสร็จแล้วก็สามารถเข้าไป config ระบบโทรศัพท์แบบ voip ที่หน้าเวปได้เลยใช่ไหมครับ ผมเพิ่งเข้ามาทำหน้าที่ตรงนี้ มีความรู้แค่การ config หน้าเวป elastix แต่อยากจะเรียนรู้เรื่องการสร้าง server ด้วยครับ

Re: นำวิธีการทำ Cluster Elastix มาฝากครับ
« ตอบกลับ #2 เมื่อ: 7 พฤษภาคม 2014, 12:28:31 »
เซ็ตบนหน้าเว็บได้ตามปกติเลยครับ ด้านหลังจะเป็นการทำงานคือ Replicate ข้อมูลไปไว้เครื่องที่ standby ไว้และทำ ha กันเหมาะสำหรับนำไปต่อเข้ากับ gateway ต่างๆ