22
บทที่ 3 วิธีการดําเนินงาน ในการศึกษาเรื่อง การประยุกต์ใช้ Ubuntu ในการบริหารจัดการ Cluster และ Load balance ผู้ศึกษาจะนําเสนอรายละเอียดของขั้นตอนการออกแบบระบบ ซึ่งได้นําทฤษฎีและแนวความคิดต่างๆ จากที่ได้ศึกษามาแล้วในบทที่ 2 มาประยุกต์ใช้งานโดยมีขั้นตอนดังนี3.1 ศึกษาและเก็บรวบรวมข้อมูล จากการศึกษาและเก็บรวบรวมข้อมูลพบว่า ปัจจุบันองค์กรต่างๆ ไม่ว่าจะเป็นเอกชนหรือทาง ภาครัฐ มีการใช้บริการ Server เป็นจํานวนมาก ซึ่งในการให้บริการต่างๆ นั้น จะขึ้นอยู่กับขนาดและ หน้าที่ขององค์กร โดยในการติดตั้ง Server เพื่อให้บริการจะทํางานอยู่บนระบบปฏิบัติการ Windows และบนระบบปฏิบัติ Linux ขั้นตอนการทํางานของระบบ Load Balancing บน Linux Fedora core เป็นการแบ่งงานกันหรือกระจาย Load การใช้งานของผู้ใช้ ไปยัง Server ภายในกลุ่ม เพื่อให้สามารถ รับจํานวนของผู้ใช้งานที่เข้ามาใช้งานได้มากขึ้น หรือสามารถรองรับงานที่เข้ามาได้มากขึ้น นอกจากนั้นยังมีคุณสมบัติของ Failover คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทํางานได้ เช่น มีเครื่อง Server ภายในกลุ่มเกิดล่มอยู่ หรือไม่สามารถรองรับผู้ใช้งานจํานวนมากได้เนื่องจาก ทรัพยากรที่ใช้ทํางานไม่พอเพียง ตัว Load Balancer ที่เป็นตัวแจกจ่าย Load ให้คอมพิวเตอร์ ภายในกลุ่มก็จะส่ง Load ไปยังคอมพิวเตอร์เครื่องอื่นๆแทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมา ใช้งานได้ใหม่อีกครั้ง โดยโครงสร้างการให้บริการ Server ขององค์กรเป็นดังภาพต่อไปนีภาพที่ 3-1 โครงสร้างการให้บริการ Server ขององค์กร โดยการใช้ Load Balancing

3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

บทที ่3

วิธีการดําเนินงาน

ในการศึกษาเรื่อง การประยุกต์ใช้ Ubuntu ในการบริหารจัดการ Cluster และ Load balance ผู้ศึกษาจะนําเสนอรายละเอียดของข้ันตอนการออกแบบระบบ ซึ่งได้นําทฤษฎีและแนวความคิดต่างๆ จากท่ีได้ศึกษามาแล้วในบทท่ี 2 มาประยุกต์ใช้งานโดยมีข้ันตอนดังนี ้

3.1 ศึกษาและเก็บรวบรวมข้อมูล

จากการศึกษาและเก็บรวบรวมข้อมูลพบว่า ปัจจุบันองค์กรต่างๆ ไม่ว่าจะเป็นเอกชนหรือทางภาครัฐ มีการใช้บริการ Server เป็นจํานวนมาก ซึ่งในการให้บริการต่างๆ นั้น จะข้ึนอยู่กับขนาดและหน้าท่ีขององค์กร โดยในการติดตั้ง Server เพ่ือให้บริการจะทํางานอยู่บนระบบปฏิบัติการ Windows และบนระบบปฏิบัต ิLinux ข้ันตอนการทํางานของระบบ Load Balancing บน Linux Fedora core เป็นการแบ่งงานกันหรือกระจาย Load การใช้งานของผู้ใช้ ไปยัง Server ภายในกลุ่ม เพ่ือให้สามารถรับจํานวนของผู้ใช้งานท่ีเข้ามาใช้งานได้มากข้ึน หรือสามารถรองรับงานท่ีเข้ามาได้มากข้ึน นอกจากนั้นยังมีคุณสมบัติของ Failover คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทํางานได้ เช่น มีเครื่อง Server ภายในกลุ่มเกิดล่มอยู่ หรือไม่สามารถรองรับผู้ใช้งานจํานวนมากได้เนื่องจากทรัพยากรท่ีใช้ทํางานไม่พอเพียง ตัว Load Balancer ท่ีเป็นตัวแจกจ่าย Load ให้คอมพิวเตอร์ภายในกลุ่มก็จะส่ง Load ไปยังคอมพิวเตอร์เครื่องอ่ืนๆแทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมาใช้งานได้ใหม่อีกครั้ง โดยโครงสร้างการให้บริการ Server ขององค์กรเป็นดังภาพต่อไปนี ้

ภาพท่ี 3-1 โครงสร้างการให้บริการ Server ขององค์กร โดยการใช้ Load Balancing

Page 2: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

26

3.2 วิเคราะห์และออกแบบระบบ ปัญหาของการใช้ Server ขนาดใหญ่ท่ีมีผู้ใช้บริการจํานวนมาก คือ จะทําอย่างไรให้ระบบ

สามารถรองรับการใช้งานของผู้ใช้งานจํานวนมากได้ เทคนิคหนึ่งท่ีมีการใช้อย่างแพร่หลายก็คือการทํา Load Balance ซึ่งเป็นเทคนิคท่ีช่วยแบ่งงานท่ีเข้ามาจากผู้ใช้งาน ให้กระจายไปในกลุ่มของ Server ท่ีจัดเตรียมไว้ สําหรับปัญหาท่ีมีปริมาณ ผู้ใช้จํานวนมากเข้าทํางานพร้อมกันจํานวนมาก โดยเฉพาะช่วงเวลาสําคัญ จนทําให้ระบบ Server นั้นทํางานช้ามาก ส่งผลให้ผู้ใช้งานมีปัญหาในการใช้งานไม่สามารถทํางานได้อย่างมีประสิทธิภาพ และท่ีแย่ท่ีสุดในบางครั้ง Server เกิดล่มข้ึนมา จนไม่สามารถให้บริการได้ ถึงแม้จะแก้ไขโดยการเพ่ิมแรมหรือเพ่ิมทรัพยากรให้มากข้ึน แต่ก็ไม่สามารถช่วยแก้ไขปัญหาได ้ให้เกิดความเสียหายในทางธุรกิจเกิดข้ึน

3.2.1 ออกแบบระบบเครือข่าย ในการศึกษาโครงงานเทคโนโลยีสารสนเทศทางผู้ศึกษาโครงงานได้ทําการวิเคราะห์ข้อมูล

และออกแบบระบบเครือข่าย ดังนี ้1) เครื่องคอมพิวเตอร์จํานวน 7 เครื่อง โดยแบ่งเครื่องคอมพิวเตอร์ท้ัง 7 เครื่องออกเป็น

3 กลุ่ม คือ เครื่อง Client 3 เครื่อง เครื่อง Load balance 2 เครื่อง และเครื่อง Cluster server 2 เครื่อง

2) ทําการติดตั้งระบบปฏิบัติการ Ubuntu linux จํานวน 4 เครื่อง 3) ทําการ Config เครื่อง Server 2 เครือ่ง เพ่ือใช้ในการทํา Load balance 4) ทําการ Config เครื่อง Server 2 เครื่อง เพ่ือใช้ในการทํา Cluster server

3.2.2 ทดสอบระบบ

1) ทดสอบระบบ Load balance ให้สามารถกระจาย Load ไปยังกลุ่มของ Server ทดสอบโดยตรวจสอบการทํางานของ CPU และ Ram ของเครื่อง Cluster server ท้ัง

4 เครื่อง ว่าได้รับงานจากเครื่อง Load balance หรือไม่ และสามารถกระจาย Load ไปยังเครื่อง Cluster server ท้ัง 4 เครื่องได ้

2) ทดสอบการเกิด Failover ในกรณีท่ีเครื่อง Server เครื่องใดเครื่องหนึ่งล่ม ทดสอบโดยสมมุติเหตุการณ์การเกิด Failover ข้ึน ด้วยการปิดเครื่อง Server เครื่อง

ใดเครื่องหนึ่งหรือการเกิดสถานะท่ีไม่พร้อมใช้ แล้วใช้ซอร์ฟแวร์ในการตรวจสอบดูการทํางานของเครื่อง Server ท่ียังให้บริการอยู่ว่าให้บริการแทนเครื่อง Server ท่ีดับไปหรือไม่

3) ทดสอบการให้บริการ MySQL Server ด้วยระบบ Cluster server ให้เครื่องคอมพิวเตอร์ภายในกลุ่มสามารถทํางานร่วมกันได ้

ทําการติดตั้ง Mysql-Cluster-Server-5.1 ท่ีเครื่อง Server ท่ีจะให้บริการ MySQL Server หลังจากนั้นทําการทดสอบการให้บริการ โดยการสร้าง Database ข้ึนมาแล้วทําการสร้างตารางข้ึนมา1ตารางเพ่ิอทําการทดสอบ หลังจากสร้างตารางเสร็จแล้วก็ทําการเพ่ิมข้อมูลเข้าไปยังกลุ่มของ Cluster server ว่าสามารถให้บริการในรูปแบบของ Cluster Server โดยตรวจสอบว่าข้อมูลท่ีได้เพ่ิมเข้าไปนั้น ได ้Update ท้ังเครื่องหรือไม่

Page 3: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

27

ภาพท่ี 3-2 ระบบ Load Balancing บน Linux Ubuntu

3.3 ข้ันตอนการติดตั้งและปรับแต่งระบบ

3.3.1 ข้ันตอนการติดตั้ง Ubuntu linux 1.) เลือกภาษาท่ีใช้ในการดําเนินการ การติดตั้งระบบ ให้เลือก English

ภาพท่ี 3-3 ข้ันตอนการเลือกภาษาเพ่ือดําเนินการ การติดตั้งระบบ

Page 4: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

28

2.) จะปรากฏเมนูเพ่ือจัดการกับ Ubuntu server ให้เลือก เมนูแรก คือ Insall Ubuntu Server

ภาพท่ี 3-4 ข้ันตอนการเลือกเมนูเพ่ือดําเนินการ การติดตั้งระบบ

3.) เลือกภาษาท่ีใช้ในการดําเนินการติดตั้ง ให้เลือกเป็น English

ภาพท่ี 3-5 ข้ันตอนการเลือกภาษา

Page 5: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

29

4.) กําหนดประเทศหรือสถานท่ีของเครื่อง Server ท่ีเราติดตั้ง ในท่ีนี้เครื่องของเราอยู ่Asia ประเทศไทย ให้เลือกเป็น Other

ภาพท่ี 3-6 ข้ันตอนการเลือกประเทศหรือสถานท่ี

5.) ให้เลือก Asia

ภาพท่ี 3-7 ข้ันตอนการเลือกเอเชียเพ่ือดําเนินการ การติดตั้งระบบ

Page 6: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

30

6.) ให้เลือก Thailand

ภาพท่ี 3-8 ข้ันตอนการเลือกประเทศเพ่ือดําเนินการ การติดตั้งระบบ

7.) กําหนด Keyboard Layout ให้เลือก NO

ภาพท่ี 3-9 ข้ันตอนการกําหนด Keyboard Layout

Page 7: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

31

8.) กําหนดค่ามาตรฐานสําหรับ Keyboard ให้กําหนดค่า นั่นคือ Thailand

ภาพท่ี 3-10 ข้ันตอนการกําหนด Keyboard Original

9.) กําหนด Keyboard Format ให้กําหนดเป็นค่า Default นั่นคือ Thailand

ภาพท่ี 3-11 ข้ันตอนการกําหนด Keyboard Format เพ่ือดําเนินการ การติดตั้งระบบ

Page 8: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

32

10.) หลังจากนั้นระบบจะทําการกําหนดหมายเลข IP Address ให้ Server แบบ DHCP ซึ่ง ในท่ีนี้ต้องการกําหนดแบบ Static ให้เลือก Cancel

ภาพท่ี 3-12 ข้ันตอนการกําหนด IP Address ให้เครื่อง Server

11.) กําหนด Name Server หรือ DNS ให้กับ Server

ภาพท่ี 3-13 ข้ันตอนการกําหนด Name Server หรือ DNS ให้เครื่อง Server เพ่ือดําเนินการ การติดตั้งระบ

Page 9: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

33

12.) กําหนดชื่อ หรือ Host Name ให้กับ Server ควรจะตั้งให้สัมพันธ์กับหน้าท่ีของ Server

ภาพท่ี 3-14 ข้ันตอนกําหนดชื่อ Hostname ให้กับ Server ควรจะตั้งให้สัมพันธ์กับหน้าท่ีของServer 13.) กําหนด Password จํานวน Password จะต้องไม่ต่ํากว่า 4 ตัว

ภาพท่ี 3-15 ข้ันตอนกําหนด Password จํานวน Password จะต้องไม่ต่ํากว่า 4 ตัว

Page 10: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

34

14.) ให้ทําการยืนยัน Password อีกครั้ง

ภาพท่ี 3-16 ข้ันตอนการยืนยัน Password

15.) กําหนด site ท่ีจะทําการ Update Packet ผ่าน Apt ให้เลือก Continue (เรา

สามารถ Update Packet ภายหลังได)้

ภาพท่ี 3-17 ข้ันตอนการกําหนด Site ท่ีจะทําการ Update Packet ผ่าน Apt

Page 11: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

35

16.) แสดงรายชื่อของ Software ท่ีมีมาให้เราสามารถติดตั้งภายหลังได้ในท่ีนี้แนะนําให้ติดตั้ง OpenSSH Server เพ่ือจะได ้Remote มาท่ี Server

ภาพท่ี 3-18 เข้าสู่กระบวนการติดตั้ง Software

17.) เข้าสู่กระบวนการติดตั้ง Boot Loader

ภาพท่ี 3-19 เสร็จสิ้นการติดตั้ง

Page 12: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

36

18.) นําแผ่น Ubuntu 8.04.1 Server ออก แล้วเลือก Continue เพ่ือ Restart Server

ภาพท่ี 3-20 Restart Server

Page 13: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

37

3.3.2 การติดตั้ง Load balancing และ Cluster Server ท่ีเครื่อง Server ท้ัง 4 เครื่อง การทําระบบ MySQL Cluster ครั้งนี้จะใช้เครื่องท้ังหมด จํานวน 3 เครื่องดังนี ้เครื่องท่ี1: เป็น storage node (cluster01:192.168.1.101) เครื่องท่ี2: เป็น storage node (cluster02:192.168.1.102) เครื่องท่ี3: เป็น MySQL cluster management server (loadb2:192.168.1.202)

Storage node หรือ Data node เป็นส่วนท่ีทําเป็น Cluster ของข้อมูล ทําหน้าท่ีเก็บ

ข้อมูล โดยเครื่องเหล่านี้จะส่งข้อมูลท้ังด้านเวลาและจํานวนของแต่ละส่วนสําหรับชื่อ process ของ Node นี้มีชื่อว่า ndbd

API node หรือ SQL node จะทําหน้าท่ีเป็นตัวกลางในการเรียกใช้งานข้อมูลจาก

storage node โดย node นี้ เชื่อมต่อโดยใช้ชื่อ service ว่า mysqld -ndbcluster หรือจะใช้ mysqld ร่วมกับ ndbcluster ก็ได้ เพียงแต่ต้องเข้าไป config ใน file my.cnf (การทดสอบระบบครั้งนี้ ผู้ศึกษาเลือกใช้วิธีนี้ในการทดสอบ)

MySQL cluster management server หรือ Management node (MGM node) จะ

ทําหน้าท่ีเป็นตัวตรวจสอบการคงอยู่ของ storage node (สถานะของ cluster) และทําหน้าท่ีจัดการ node อ่ืน ๆ เช่น การจัดการ Config, Start&Stop node อ่ืน ๆ , ทําการ backup&restore ข้อมูล ซึ่งแน่นอนว่า node นี้ต้อง run เป็นตัวแรกแน่นอน และ process ท่ีอยู่ node นี้มีชื่อว่า ndb_mgmd

การติดตั้ง MySQL Cluster Management Server เริ่มต้น Install mysql cluster server version 5.1-Ubuntu โดยจะมีการ install

cluster management server (ndb_mgmd) และ cluster management client (ndb_mgm) ให้โดยอัตโนมัติดังนี ้

1. ติดตั้ง mysql cluster server version 5.1-Ubuntu ด้วยคําสั่งดังนี้ท่ีเครื่อง MySQL cluster management server loadb2:192.168.1.202

2. สร้างและแก้ไขไฟล์ ndb_mgmd.cnf

apt-get install mysql-cluster-server-5.1

nano /etc/mysql/ndb_mgmd.cnf

Page 14: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

38

แล้วเพ่ิมข้อความท้ังหมดตามนี ้

[NDBD DEFAULT] NoOfReplicas=2 DataMemory=80M # How much memory to allocate for data storage IndexMemory=18M # How much memory to allocate for index storage # For DataMemory and IndexMemory, we have used the # default values. Since the "world" database takes up # only about 500KB, this should be more than enough for # this example Cluster setup. [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] # Section for the cluster management node [NDB_MGMD] # IP address of the management node (this system) HostName=192.168.1.202 # Section for the storage nodes [NDBD] # IP address of the first storage node HostName=192.168.1.101 DataDir=/var/lib/mysql-cluster #BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=512M [NDBD] # IP address of the second storage node HostName=192.168.1.102 DataDir=/var/lib/mysql-cluster #BackupDataDir=/var/lib/mysql-cluster/backup DataMemory=512M # one [MYSQLD] per storage node [MYSQLD] [MYSQLD]

Page 15: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

39

หรือถ้าต้องการจะให้ Cluster management server start เองโดยอัตโนมัติเม่ือมีการ boot ระบบ เราสามารถสร้าง script เพ่ือจัดการ ดังนี ้

ติดตั้ง MySQL Cluster Nodes (Storage Nodes) 3. สร้าง Groub Msql พิมพ์ดังนี ้

4. ติดตั้ง mysql cluster server version 5.1-Ubuntu ท่ีเครื่อง Storage Nodes ท้ัง 2

เครื่อง พิมพ์คําสั่งดังนี้

5. แก้ไข MySQL configuration file ท้ังสองเครื่อง ท่ี /etc/mysql/my.cnf

6. ค้นหา [mysqld] และเพ่ิมข้อมูลดังนี ้

จากนั้นเลื่อนลงมาจนถึงบรรทัดสุดท้ายแล้ว เพ่ิมข้อมูลดังนี ้

echo ‘ndb_mgmd -f /var/lib/mysql-cluster/ndb_mgmd.cnf’ > /etc/init.d/ndb_mgmd chmod 755 /etc/init.d/ndb_mgmd update-rc.d ndb_mgmd defaults

groupadd mysql useradd -g mysql mysql

apt-get install mysql-cluster-server-5.1

nano /etc/mysql/my.cnf

[mysqld] ndbcluster # IP address of the cluster management node ndb-connectstring=192.168.1.202

[MYSQL_CLUSTER] ndb-connectstring=192.168.1.202

Page 16: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

40

ในกรณีท่ีเราต้องการให้ Start cluster node (storage node) เองโดยอัตโนมัติเม่ือมีการ boot เครื่อง เราสามารถสร้าง script เพ่ือจัดการดังนี ้

การติดตั้ง Web Load Balance โดยใช้ HA-Proxy การทํา Web Load Balanceในการทดสอบนี้จะใช้เครื่อง 4 เครื่องโดยแบ่งเป็น 2 ส่วน

ดังนี ้Load Balancer 2 เครื่อง ทําหน้าท่ีรับ request จากเครื่อง Client และส่งต่อ request

ไปให้ Web Server ต่างๆ (Host Name: loadb01, IP Address: 192.168.1.201) (Host Name: loadb01, IP Address: 192.168.1.202)

Apache Web Server 2 เครื่อง ติดต่อกับเครื่อง Client โดยผ่าน Load Balancer (Host Name: cluster01, IP Address: 192.168.1.101) (Host Name: cluster02, IP Address: 192.168.1.102)

7. อันดับแรกทําการสร้าง Web Server โดยเราจะทําการติดตั้ง Apache บนเครื่อง

cluster01 และ cluster02 โดยท้ัง 2 เครื่องทําเหมือนกันดังนี ้

ทําการแก้ไข Configuration

echo ‘ndbd’ > /etc/init.d/ndbd chmod 755 /etc/init.d/ndbd update-rc.d ndbd defaults

apt-get install apache2

nano /etc/apache2/apache2.conf

[...]

#LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

[…]

Page 17: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

41

/etc/init.d/apache2 restart

8. เนื่องจาก haproxy จะตรวจสอบสถานะของ node จาก check.txt ดังนั้นจึงไม่จําเป็นต้องเก็บ log ของ check.txt

9. สร้างไฟล ์check.txt

10. สร้างไฟล์ Index.html ดังนี ้

โดยแทนท่ี X ด้วยหมายเลขของเครื่อง Serverแล้ว restart apache2 ด้วยคําสั่ง

11. ทําการติดตั้ง HA Proxy เพ่ือให้เครื่อง loadb01 และ loadb02 ทําหน้าท่ีเป็น Web Load Balancer โดย

12. จากนั้นทําการปรับแต่งค่าการทํางานของ haproxy ดังนี ้

nano /etc/apache2/sites-available/default

[...]

SetEnvIf Request_URI "^/check\.txt$" dontlog

CustomLog /var/log/apache2/access.log combined env=!dontlog [...]

touch /var/www/check.txt

echo “Test Page Server X” > /var/www/index.html

apt-get install haproxy

nano /etc/haproxy/haproxy.cfg

Page 18: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

42

แก้ไขข้อมูลดังนี ้

# this config needs haproxy-1.1.28 or haproxy-1.2.1 global log 127.0.0.1 local0 log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 #chroot /usr/share/haproxy user haproxy group haproxy daemon #debug #quiet defaults log global mode http option httplog mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000

Page 19: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

43

listen web-cluster 192.168.1.203:80

mode http

stats enable

stats auth admin:admin

balance roundrobin

cookie PHPSESSIONID prefix

option httpclose

option forwardfor

option httpchk HEAD /check.txt HTTP/1.0

option forwardfor

option httpchk HEAD /check.txt HTTP/1.0

server webA 192.168.1.101:80 cookie A check

server webB 192.168.1.102:80 cookie B check

ต่อ

13. ใช้คําสั่ง nano /etc/default/haproxy เพ่ือเข้าไปแก้ไขไฟล์ haproxy จะได้ start haproxy ได้ โดยนําเครื่องหมาย # ออก หน้าข้อความ ENABLED=1

14. ทําการ start haproxy

/etc/init.d/haproxy start

# Set ENABLED to 1 if you want the init script to start haproxy. ENABLED=1 # Add extra flags here. #EXTRAOPTS="-de -m 16"

Page 20: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

44

การติดตั้ง Heartbeat และการปรับแต่งระบบเพ่ือทํา Failover ก่อนท่ีจะทํา Failover นั่น เครื่อง Server ท่ีทํา Failover จะต้องมีการ์ด Network 2 ตัว

หรือถ้ามี On borad อยู่แล้ว ก็เพ่ิมแค่ 1 ตัว 15. ปรับแต่ง IP ให้เครื่อง ท่ีทํา Faiover (loadb01/loadb02) ดังนี ้

เพ่ิมข้อมูลตามนี้ (สําหรับเครื่อง Loadb01)

เพ่ิมข้อมูลตามนี้ (สําหรับเครื่อง Loadb02)

16. Enable Packet Forwarding on the Load Balancers การส่งต่อ แพคเกต โดยใช้คําสั่งบน Loadb01 และ Loadb2 ดังนี้ echo

nano /etc/network/interfaces

dns-nameservers 8.8.8.8 8.8.4.4 auto eth0:1 iface eth0:1 inet static address 192.168.1.203 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 10.100.100.1 netmask 255.255.255.0

dns-nameservers 8.8.8.8 8.8.4.4 auto eth0:1 iface eth0:1 inet static address 192.168.1.203 netmask 255.255.255.0 auto eth1 iface eth1 inet static address 10.100.100.2 netmask 255.255.255.0

"net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf

Page 21: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

45

17. ตรวจสอบว่าได้รับการเปลี่ยนแปลงแล้วหรือไม่โดยผลลัพจะต้องแสดงเป็นเลข 1 โดยใช้คําสั่งดังนี ้

18. พิมพ์คําสั่งติดตั้ง Heartbeat เพ่ือทํา Failover (loadb01/loadb02)

19. หลังจากติดตั้งเสร็จแล้ว ทําการสร้างและแก้ไขไฟล์ /etc/ha.d/ha.cf

เพ่ิมข้อความดังนี้

20. สร้างและแก้ไขไฟล์ /etc/ha.d/authkeys

sysctl –p net.ipv4.ip_nonlocal_bind = 1

Apt-get install heartbeat

nano /etc/ha.d/ha.cf

#Configuration 1 (taken from Linux Journal with some changes) watchdog /dev/watchdog logfile /var/log/ha-log debugfile /var/log/ha-debug deadtime 5 warntime 10 initdead 15 bcast eth1 auto_failback on # The following names must match the output of uname -n node loadb1 node loadb2

auth 3 1 crc 2 sha1 yourpasswordhere 3 md5 yourpasswordhere

Page 22: 3bc.msu.ac.th/project_file/chapter3(9).pdf · 38 '( : B˛

46

21. จากนั้นพิมพ์คําสั่งดังนี ้ 22. สร้างและแก้ไขไฟล์ /etc/ha.d/haresources

23. ทําการ restart network

24. ทําการ start heartbeat

chmod 600 /etc/ha.d/authkeys

haproxy1 \ IPaddr::172.25.87.180/24/eth0

/etc/init.d/networking restart

Service heartbeat start