อบรม Cloud กับ SIPA

SIPA กับ Cloud เนี่ยผลุบๆ โผล่ๆ มานานละ ไม่ค่อยอยากย้อนอดีตแต่ก็เวลามีคนพูดถึง Cloud ที่ SIPA แล้วรู้สึกอึดอัด ประมาณว่า “พวกเมิงมีโอกาสครั้งนึงแล้ว แต่ทำไมไม่ทำ ?” จริงๆ ครับ โครงการที่เกี่ยวกับ Cloud ที่ SIPA มามานานแล้ว ประมาณเกือบๆ 2 ปีเห็นจะได้ แต่ไม่ค่อยได้รับความสนใจ เพราะไม่มีใครเข้าใจ จนเอาเข้าจริง 2 ปีให้หลังดันมาสนใจ เห็นเขาว่า Cloud ก็ Cloud กับเขาด้วย แต่ก็แค่ งูๆ ปลาๆ เพราะไม่เข้าใจอย่างถ่องแท้ เมื่อวานพี่ที่ TD1 ส่งสัญญาณเรื่องการอบรม Cloud ซึ่งฝ่ายถ่ายทอดเทคโนโลยีฝากถามมา โดยให้ผมหาคอร์สอบรมให้ ผมก็เลยจัดคอร์สชุดใหญ่ อบรม 4 วัน วันละ 6 ชั่วโมง เอาแบบให้ตายกันไปข้างนึง คอร์สชื่อ Building and Using a Eucalyptus Cloud คอร์สนี้เป็นของ Eucalyptus จริงๆ ซึ่งต้องไปเรียนที่อเมริกาโน่นเลย ผมคิดว่าใครได้ไปเรียนคอร์สนี้ถือว่าคุ้มค่ามากๆ นอกจากจะได้ไปแคลิฟอร์เนียแล้ว ยังได้ไปเรียนกับต้นตำหรับผู้พัฒนา Eucalyptus จริงๆ ด้วย อ้อ ลืมไป ค่าเรียนตกอยู่คนละ 4 หมื่นกว่าๆ ยังไม่รวมค่าเดินทาง ค่าที่พัก ฯลฯ คิดว่า ฝ่ายถ่ายทอดเทคโนโลยี คงมีคำตอบที่ดีๆ ให้เร็วๆ นี้ หวังว่าจะมีโครงการสนับสนุนการพัฒนาผู้ประกอบการและผู้ที่สนใจไปเรียน Eucalyptus ที่ต่างประเทศ หรือเชิญวิทยากรบินมาสอนที่นี่ ก็คิดไปเรื่อยเปื่อย บางทีอาจเงียบเหมือนเมื่อ 2 ปีที่แล้วก็เป็นได้ ใครจะไปรู้ อย่างที่ผมเกริ่นไว้ในตอนแรก ถ้า SIPA ยัง งูๆ ปลาๆ ในเรื่อง Cloud อยู่ก็คาดหวังได้อยากครับ :P

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 4

หลายท่านพยายามสร้าง Image เพื่อใช้ในการสร้างบริการของตัวเอง แต่ว่าไฟล์ Image มันมีขนาดเล็กไปหน่อย :P ทำให้เพิ่มโปรแกรมที่เราต้องการใส่ลงไปไม่ได้ งานเข้าเลยมั๊ยล่ะ อย่างนี้ต้องขยายครับ สำวิธีการขยายไฟล์ Image เราสามารถใช้วิธีการการจัดการไฟล์และพาร์ทิชันทั่วๆ ไปได้ มาลองดูวิธีการกันครับ ผมดาวน์โหลด pre-packaged มาแก้ไขเพิ่มเติมโปรแกรมที่ผมต้งการ แต่ตัว Image เองจำกัดพื้นที่ขนาดเพียง 2G เท่านั้น การติดตั้งบริการหรือโปรแกรมใหญ่ๆ ทำให้พื้นที่ที่ต้องใช้ไม่เพียงพอ ดังนั้นเราต้องขยายพื้นที่ของ Image วิธีการก็ง่ายๆ ใช้คำสั่งดังนี้

sudo fsck.ext3 -f ubuntu-9.04-i386.img
sudo resize2fs ubuntu-9.04-i386.img 8G

คำสั่งข้างต้นจำทำการตรวจสอบไฟล์ Image จากนั้นเราขยายพื้นที่เป็น 8G ด้วยคำสั่ง resize2fs เท่านี้ก็เรียบร้อยแล้ว ทีนี้ให้ upload image เขาไปที่ Eucalyptus สร้าง instance ขึ้นมาใหม่ ล็อกอินแล้วตรวจขนาดดูครับ จะพบว่าเรามีพื้นที่เพิ่มขึ้นเป็น 8G แล้ว ง่ายๆ แค่นี้เอง :)

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 3

คราวที่แล้วติดค้างเรื่องเอา services ของเราไปใส่ไว้ที่ Elastic Block Storage (EBS) แต่…ทำไมต้องทำเช่นนั้น ? หลังจากสร้าง Instance จาก EMI แล้วก็ได้ VM เป็น Instance สมชื่อ ถ้า terminate ตัว VM นั้นไปทุกอย่างที่อยู่ใน Instance นั้นก็ไปทั้งหมด หากไม่มีการสำรองข้อมูลโยกมาไว้ที่ EBS ดังนั้นการขอใช้บริการ Cloud จึงเลี่ยงไม่ได้ที่จะต้องใช้ EBS ด้วยเสมอๆ ซึ่งผู้ที่เป็นเจ้าของสามารถสร้าง snapshot เองได้ หากว่าเราติดตั้ง services ลงบน EBS แทนเราก็จะสามารถ snapshot ทั้ง services และ data ได้ในตัว อีกทั้งยังประหยัด resource อื่นๆ ได้อีกมาก ที่สำคัญเราไม่ต้องซื้อ services ที่มีจำหน่ายบน Cloud Cateloge เลย อืมมมลืมบอกไปว่าวิธีการนี้ใช้ได้กับ Amazon EC2 และ Amazon S3 ด้วยครับ เอ้ามาเริ่มกันเลย

ให้คุณ start instance ขึ้นมาครับ (ขอเป็น debian instance นะครับ) จากนั้นสร้าง volume ขนาดที่คิดว่าคุณจะต้องใช้ของผมใช้ประมาณ 8GB ให้ชื่อว่า mekha

euca-create-volume -s 8 -z mekha

จากนั้น attach volume กับ instance ที่กำลังทำงานอยู่ (debian ของเรา)

euca-attach-volume -i i-31AB05AF vol-5959961D -d /dev/sdc

ตัวเลข i-31AB05AF คือ instance-id และ vol-5959961D คือ volume-id ที่เราได้มาจากตอนสร้าง instance และ volumn เปลี่ยนตามของคุณนะครับ เอ้าตอนนี้เราจะมีอุปกรณ์ /dev/sdc เพิ่มเข้ามาใน instance ของเราแล้ว จากนั้นก็เริ่มขั้นตอนการใช้ disk ปกติทั่วไป ให้ login เป็น root ใน instance ของเรา จากนั้นสร้าง partition และ format ให้เรียบร้อย

mk2efs /dev/sdc1

จากนั้นสร้าง mount point ไปยัง volume (ใช้ชือว่า /esb) และ mount ให้เรียบร้อย

mkdir /ebs
mount /dev/sdc1 /ebs

Continue reading

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 2

ในครั้งที่แล้วเราสร้าง EMI โดยการติดตั้ง OS ลงใน Disk Image ครั้งนี้ผมจะมาแนะนำวิธีแบบฉลาดแกมโกงคือวิธีการแก้ไข Disk Image ที่มีอยู่แล้ว ในโครงการ Eucalyptus มี Pre-Packaged Image ที่ใช้เป็น Guest OS อยู่แล้ว อยู่ในรูปแบบ JeOS (Just enough Operating System) ซึ่งเราสามรถเอา Image มาแก้ไขได้ :) ไม่ได้ล้อเล่นครับ เอามาแก้ไขและติดตั้งโปรแกรมหรือของที่ยังขาดได้โดยตรงเลยล่ะ วิธีการนี้เป็นวิธีการเล่นกับ Disk Image ทั่วๆ ไปที่เรามักพบเจอกันอยู่แล้ว อธิบายหลังการคร่าวๆ กันก่อน JeOS Image ที่มีอยู่แล้วก็คือ Disk Image, Kernel Image (มีทั้ง KVM และ Xen) และ Ram Disk Image (Initrd.ing สำหรับ KVM,Xen) ซึ่งเราจะต้อง mount เจ้า Disk Image นี้ขึ้นมาเป็นอุปกรณ์หนึ่งในเครื่องของเราจากนั้นก็แก้ไขเหมือนกับการใช้งาน Storage ทั่วไป

สำหรับการติดตั้งโปรแกรมหรือบริการเพิ่มเติมเราสามารถใช้เครื่องมือที่ เป็น package manager ของระบบปฏิบัติการนั้นๆ ได้โดยตรง ไม่ว่าจะเป็น Apt, Yum หรือ Zypper แต่ต้องทำในสิทธิ root เท่านั้น ที่ต้องระวังคือการติดตั้งอย่าให้ Disk Image ถูกเขียนจนเต็ม หากทราบว่าขนาดของ Disk Image ไม่พอให้ขยาย Disk Image ก่อนแล้วค่อยติดตั้งโปรแกรมเพิ่มเติมลงไป และสุดท้ายอย่ายุ่งกับ Kernel เป็นดีที่สุด เพราะคุณอาจต้องไล่เก็บ Kernel ของ KVM,Xen และ Initrd.img ของ KVM, Xen ด้วย อันนี้เปลืองแรงโดยใช่เหตุ เข้าใจข้อกำหนดกันแล้วมาลงมือทำกันได้เลย Continue reading

สร้าง Cloud Services Image สำหรับ Eucalyptus ภาค 1

ช่วงนี้กระแส Cloud Computing ในประเทศไทยกำลังมาแรงและการใช้งานก็กำลังทะยอยเพิ่มมากขึ้น หลายบริษัทต่างพยายามเข็นผลิตภัณฑ์ของตัวเองออกมาเพื่อบอกว่ามี Cloud Solution เช่นกัน สำหรับ how-to นี้คงไม่ได้พูดถึงเรื่อง Cloud หรือที่มาที่ไปของ Cloud มากนัก แต่ขอเปลี่ยนจากการติดตั้งมาเป็นการสร้างบริการบน Cloud กันเลยดีกว่า :) ในต่างประเทศ Software As A Services เป็นจุดเปลี่ยนในภาคอุตสาหกรรมซอฟต์แวร์มาก นอกจากจะลดต้นทุนการลงทุนเรื่องฮาร์ดแวร์ของผู้ประกอบการแล้ว การ provisioning ผ่านบริการบน IaaS ทำให้การลงทุนและระยะเวลาในการ deploy application ให้กับลูกค้าสั้นลงมาก เพียง 3 นาทีลูกค้าของคุณก็สามารถใช้งานซอฟต์แวร์ของคุณผ่าน Cloud Services ได้แล้ว เจ๋งมั๊ย วันนี้ผมจะมาแนะนำการสร้าง Eucalyptus Machine Image (EMI) สำหรับ Private Cloud ในองค์กรอย่าง Eucalyptus สำหรับท่านที่ใช้ Ubuntu Enterprise Cloud ก็สามารถใช้วิธีนี้ได้เช่นกันครับ

ก่อนจะเริ่มสร้าง Eucalyptus Machine Image มาทำความเข้าใจเกี่ยวกับ EMI กันก่อน Euclyptus ใช้ EMI ในการ deploy virtual machine ซึ่ง image นั้นจะต้องประกอบด้วย

  1. Ram Disk Image
  2. Kernal Image เป็นไฟล์ kernel เพื่อใช้ในการ boot vm ทั้งนี้ขึ้นอยู่กับว่าจะใช้ hyperviser แบบใด KVM, Xen
  3. Disk Image เป็น file system ที่ถูกบีบอัดภายในคือโครงสร้างของ Linux Standard Base พร้อม Service ที่เราใส่ลงไป

วันนี้จะมาแนะนำวิธีการสร้าง Service Image ของ media wiki กัน เอ้ามาลงมือกันเลย! Continue reading