Juju #01 – เริ่มต้นใช้งาน Juju

Juju [1] เป็นเครื่องมือในการการออกแบบ Service Oriented Architecture และ Application Oriented Deployment [2] ทำให้การออกแบบระบบที่ซับซ้อนและการ Scale Out ทำได้ง่ายขึ้น สามารถทำงานได้ตั้งแต่ในเครื่องคอมพิวเตอร์เครื่องเดียว ไปจนถึงการทำงานบน Private Cloud และ Public Cloud ตัวอย่างเช่น หากต้องการระบบจัดการ Big Data ด้วย Hadoop ซึ่งประกอบด้วย Server หลายเครื่อง (Link: การติดตั้ง Hadoop อย่างง่าย) เดิมจะต้องใช้เวลาอ่านคู่มือ ทำลองติดตั้ง เมื่อได้ระบบขึ้นมาแล้ว ก็จะยังไม่สามารถใช้งานได้จริงทันที อย่างเช่น ต้องการใช้ Hadoop ในการทำเรื่อง Realtime Syslog Analytics [3] ประกอบด้วย Server จำนวนมาก ดังภาพ วิธีการที่ทำให้ได้ระบบนี้มา ก็เพียงแค่ บอก Juju ว่าต้องการระบบอะไร แล้วสั่ง Deploy แล้วก็รอ หลังจากนั้นก็ทำ Port Forward ด้วยคำสั่ง [4] sudo iptables -A PREROUTING -t nat -i ens160 -p tcp –dport 9000 -j DNAT –to 10.107.107.xxx:9000 ก็จะสามารถใช้งานได้แล้ว     Reference [1] https://jujucharms.com/ [2] https://jujucharms.com/docs/stable/about-juju [3] https://jujucharms.com/realtime-syslog-analytics/ [4] http://opensource.cc.psu.ac.th/Note_on_port_forwarding_to_LXD_container

Read More »

ขั้นตอนการติดตั้ง HBase บน Hadoop อย่างง่าย

HBase เป็น Database บน Hadoop [1] จากบทความ ขั้นตอนการติดตั้ง Hadoop Cluster อย่างง่าย จะได้ HDFS อยู่ที่ hdfs://192.168.1.101:9000 แล้ว ก็จะสามารถใช้ HBase บน Hadoop HDFS ได้ ขั้นตอนการติดตั้ง โคลนเครื่องต้นฉบับ แล้วตั้ง ip address ให้เรียบร้อย เช่น 192.168.1.121 ติดตั้ง HBase (mama shell) (mama shell) cd ~ wget http://www-us.apache.org/dist/hbase/stable/hbase-1.2.3-bin.tar.gz tar -zxvf hbase-1.2.3-bin.tar.gz sudo mv hbase-1.2.3 /usr/local/hbase sudo chown -R hduser.hadoop /usr/local/hbase sudo mkdir /usr/local/zookeeper sudo chown -R hduser.hadoop /usr/local/zookeeper แก้ไขไฟล์ /usr/local/hbase/conf/hbase-site.xml (hduser shell) <configuration> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.rootdir</name> <value>hdfs://192.168.1.101:9000/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/zookeeper</value> </property> </configuration> ขั้นตอนการ Start HBase (hduser shell) /usr/local/hbase/bin/start-hbase.sh ดูผลการทำงาน จาก Hadoop HDFS ว่าสร้าง /hbase แล้ว http://192.168.1.101:50070/explorer.html#/hbase ใช้งานผ่าน Shell ได้จากคำสั่ง (hduser shell) /usr/local/hbase/bin/hbase shell ขั้นตอนการ Stop HBase (hduser shell) /usr/local/hbase/bin/stop-hbase.sh   References: [1] https://hbase.apache.org/

Read More »

ขั้นตอนการติดตั้ง Hadoop Cluster อย่างง่าย

Hadoop เป็น Framework สำหรับสร้างการประมวลผลแบบกระจาย (Distributed Processing) กับข้อมูลขนาดใหญ่ (Large Data Sets) สามารถเริ่มต้นจากทดสอบบนเครื่องคอมพิวเตอร์เครื่องเดียว ไปจนเป็นระบบ Cluster ได้[1] อธิบายง่ายๆได้ว่า Hadoop ประกอบด้วย ส่วนประมวลผลแบบกระจายเรียกว่า YARN (หรือ MapReduce) และ ส่วนเก็บข้อมูลแบบกระจายเรียกว่า HDFS (Hadoop Distributed File System) สำหรับการสร้าง Hadoop Cluster ในบทความนี้ใช้ Hadoop version 2.7.2 บน Ubuntu 16.04 โดย Cluster จะประกอบด้วย 1 Master และ N Slaves โดยจะใช้วิธีการสร้างเครื่องต้นฉบับ แล้ว Clone ไปเป็น Master/Slave ต่อไป 1.ขั้นตอนการสร้างตันฉบับสำหรับการ Clone 1.1. ติดตั้ง Ubuntu 16.04 ตามปรกติ สร้าง User คนแรกชื่อ mama 1.2. สร้างกลุ่มชื่อ hadoop sudo addgroup hadoop 1.3. สร้างผู้ใช้ชื่อ hduser อยู่ในกลุ่ม hadoop sudo adduser hduser –ingroup hadoop 1.4. ติดตั้ง Java sudo apt-get install default-jre openjdk-8-jdk-headless 1.5. ติดตั้ง hadoop wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz tar -zxvf hadoop-2.7.2.tar.gz sudo mv hadoop-2.7.2 /usr/local/hadoop sudo mkdir /usr/local/hadoop/etc/hadoop/tmp sudo chown -R hduser.hadoop /usr/local/hadoop 1.6. เพิ่มตัวแปรใน /etc/environment HADOOP_HOME=/usr/local/hadoop HADOOP_PREFIX=/usr/local/hadoop JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 1.7. แก้ไขค่าใน .bashrc su hduser; cd ~ แล้วแก้ไข .bashrc โดยเพิ่มบรรทัดต่อไปนี้ ท้ายไฟล์ export HADOOP_HOME=/usr/local/hadoop export HADOOP_PREFIX=/usr/local/hadoop export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 2.ขั้นตอนการสร้าง Master (namenode) 2.1. Clone เครื่องต้นฉบับมา แล้วแก้ไข ip address, /etc/hosts, /etc/hostname ให้เหมาะสม โดยเครื่องนี้ต้อง Static IP เช่น 192.168.1.101 2.2. แก้ไข /usr/local/hadoop/etc/hadoop/core-site.xml ดังนี้ <configuration> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.107.116:9000</value> </property> </configuration> 2.3. แก้ไข /usr/local/hadoop/etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property> </configuration> 2.4. แก้ไข /usr/local/hadoop/etc/hadoop/slaves โดยใส่ IP ของเครื่องที่จะเป็น Slave หรือ datanode ลงไป เช่น 192.168.1.102 ถึง 192.168.1.111 เป็นต้น 192.168.1.102 192.168.1.103 192.168.1.104 192.168.1.105 192.168.1.106 192.168.1.107 192.168.1.108 192.168.1.109 192.168.1.110 192.168.1.111  

Read More »

Server High Availability คืออะไร

“เคยได้ยินคำว่า Server เรามี Uptimeถึง 99% ไหม”  High Availability มีชื่อย่อในวงการสั้น ๆ ว่า HA องค์กรหรือหน่วยงานมากมายในปัจจุบันมีการวัดประสิทธิภาพการให้บริการด้วย HA โดยจะมีหน่วยการวัดที่เรียกว่า Uptime ซึ่งคิดจากเวลาเป็น % ของการให้บริการ โดยมีชื่อเรียกระดับการให้บริการตามตารางดังนี้ Availability % Downtime per year Downtime per month* Downtime per week 90% (“one nine”) 36.5 days 72 hours 16.8 hours 95% 18.25 days 36 hours 8.4 hours 97% 10.96 days 21.6 hours 5.04 hours 98% 7.30 days 14.4 hours 3.36 hours 99% (“two nines”) 3.65 days 7.20 hours 1.68 hours 99.5% 1.83 days 3.60 hours 50.4 minutes 99.8% 17.52 hours 86.23 minutes 20.16 minutes 99.9% (“three nines”) 8.76 hours 43.8 minutes 10.1 minutes 99.95% 4.38 hours 21.56 minutes 5.04 minutes 99.99% (“four nines”) 52.56 minutes 4.32 minutes 1.01 minutes 99.999% (“five nines”) 5.26 minutes 25.9 seconds 6.05 seconds 99.9999% (“six nines”) 31.5 seconds 2.59 seconds 0.605 seconds 99.99999% (“seven nines”) 3.15 seconds 0.259 seconds 0.0605 seconds ระดับที่หลายหน่วยงานหรือหลายอุปกรณ์พยายามจะโฆษณา จะอยู่ที่ระดับ Five nines หรือ Uptime 99.999% นั่นเอง ซึ่งจะเห็นได้ว่าจะมี Downtime แค่ 5.26 นาที ต่อปีเท่านั้น ซึ่งมองในด้านอุปกรณ์เครือข่าย จะมีปัจจัยน้อยที่จะทำให้เกิด Downtime แต่ในส่วนของ Server นั่นจะมีปัจจัยมากกว่าเพราะประกอบด้วยอุปกรณ์มากชิ้น แต่ปัญหาดังกล่าวในปัจจุบันน้อยลง หลังจากเข้าสู่ยุคของ Cluster หรือ Cloud เพราะจะมีเครื่องคอยทำงานแทนกันอยู่ตลอดเวลานั่นเอง ตัวอย่างการทำ HA ระดับองค์กร โดยคำว่า HA มักจะใช้คู่กับสิ่งที่เราจะต้องการจะสื่อว่าจะทำอย่างไรให้ระบบมี Uptime สูง ๆ เช่น Server High Availability ก็คือทำให้เครื่อง Server มีการให้สามารถทำงานได้โดยไม่ Hang ไม่ดับ ถ้าใช้กับคำว่า Web Server High Availability ก็หมายความว่า จะทำอย่างไรให้สามารถให้บริการ Web Site โดยไม่มีอาการล่ม ซึ่งบางครั้งเราจะมีการ ตัด Downtime ที่เป็นการวางแผนเอาไว้ก่อนแล้ว หรือเรียกสั้น ๆ ว่าการ Maintenance ระบบนั่นเอง การที่จะทำให้เกิดสิ่งที่เรียกว่า HA ก็มีอยู่

Read More »

WorkShop : Load Balance Web Server (Server High Availability)

“ทำไม Web ล่มบ่อยจัง, ทำอย่างไรได้บ้างถ้าไม่ต้องซื้อ Server แพง ๆ เพื่อใช้งานหนักเพียงไม่กี่วัน, Web ล่มแล้วจะติดต่อใครได้บ้าง” คำถามเหล่านี้เคยกวนใจคุณบ้างหรือเปล่า ? ขอนำเสนอวิธีการง่าย ๆ ที่ใครก็ทำได้ โดยในเนื้อหาหลักจะอธิบายแบบกว้าง ๆ และผมจะแยกเขียน blog อธิบายแบบละเอียดเป็นหัวข้อ ๆ ไปนะครับ ถ้าใครไม่เข้าใจสามารถคลิกเข้าไปดูเป็นเรื่อง ๆ ได้ครับ Workshop Outline ftp://ftp.psu.ac.th/pub/psu-lbs/workshop-outline.pdf เครื่องที่ใช้ในการทดสอบ (Oracle VM VirtualBox) *แนะนำให้เปิดกับโปรแกรม version ล่าสุด ** User : testlab , Password : 123456 มีทั้งหมด 3 เครื่อง เป็น Web Server 2 เครื่อง และเครื่องสำหรับทำ Load Balance 1 เครื่อง สามารถ Download ได้ตาม Link นี้ รายละเอียด URL Ubuntu Load Balance Server Ubuntu Web Server 1 Ubuntu Web Server 2 http://ftp.psu.ac.th/pub/psu-lbs/workshop.ova โดยจะแบ่งเป็น 7 ตอนโดยแยกเป็น 7 Blog ดังนี้ ตอนที่ ชื่อตอน ตอนที่ 1 Server High Availability คืออะไร ตอนที่ 2 การติดตั้ง Apache2 + PHP5 บนเครื่อง Ubuntu 14.04 LTS ตอนที่ 3 การติดตั้ง Lighttpd + PHP5 บนเครื่อง Ubuntu 14.04 LTS ตอนที่ 4 การติดตั้งโปรแกรมตรวจสอบประสิทธิภาพ Server : Apache Jmeter บนเครื่อง Windows ตอนที่ 5 การทดสอบประสิทธิภาพ Web Server ประเภท Static Page : Apache2 vs Lighttpd บนเครื่อง Ubuntu 14.04 LTS ตอนที่ 6 การตรวจสอบสถานะการให้บริการ Web Server ด้วย WGET และสร้าง Shell Script เพื่อตรวจสอบอัตโนมัติ ตอนที่ 7 การสร้างระบบ Load Balance Web Server ด้วยวิธีการ URL Redirect บทความเพิ่มเติม วิธีการเขียน Script ตรวจสอบ Server Performance สำหรับเครื่อง Linux Server วิธีการเขียน Script ตรวจสอบ Server Performance สำหรับเครื่อง Windows 2008 R2 วิธีการ Sync Source Code ระหว่างเครื่อง Linux (กำลังดำเนินการ) วิธีการ Sync Source Code ระหว่างเครื่อง Windows (กำลังดำเนินการ)  

Read More »