วันที่ พุธ สิงหาคม 2555

พิมพ์หน้านี้  |  ดูบล๊อกอื่นๆ ที่ OKnation

 

Review แกะกล่อง Fusion-io การ์ดเร่งความเร็วสูงในการประมวลผลข้อมูล


ต้นฉบับของ Blog นี้อยู่ที่ http://www.s50.me/2012/08/review-fusion-io.html


22 August 2012 -- Blog ชิ้นนี้ผมจะมาทำ Quick Review ผลิตภัณฑ์ของค่าย Fusion-io ที่มี Steve Wozniak, Apple Co-Founder มาเป็น Chief Scientist อยู่ ณ เวลานี้ กันครับ โดยจะเริ่มดูในส่วนของ Hardware และ I/O Performance ที่ผมได้นำไปทดสอบในหลายๆ กรณี ว่าสามารถเร่งความเร็วให้กับระบบ Server ในการประมวลผลข้อมูลได้รวดเร็วขนาดไหน ซึ่งถ้ายิ่งเร่งได้เร็ว ก็ยิ่งจะเกิด Business Value มากเท่านั้น ที่แน่ๆ คือ


  • จากเดิมที่เคยประมวลผลข้อมูลประเภทพวก Batch Reporting Job ที่เคยใช้เวลาหลักชั่วโมง ผมเห็นกับตามาแล้ว ว่าเหลือหลักนาที จริงๆ อย่างไม่น่าเชื่อ  แต่ก็สัมผัสและเห็นกับตา มาหลายๆ กรณี จนตอนนี้โดยส่วนตัวผมเริ่มชินกับความเร็วระดับนี้ (Bandwidth: GB/s, IOPS: หลักแสน, Latency: microsecond) ไปเรียบร้อยแล้ว  :)
  • ซึ่งหากเราใช้ Fusion-io แล้วสามารถลดเวลาที่ใช้การประมวลผลประเภท Batch Processing ได้ระดับนี้จริงๆ จะเกิด Business Value เป็นอย่างมากเช่น
  • ระบบ Business Intelligence / Data Analytic / Data Warehouse ที่หน่วยงานการตลาดของธุรกิจจำเป็นต้อง Query ออก Report เพื่อแยกกลุ่มลูกค้า หรือ เพื่อหาพฤติกรรมของลูกค้าของธุรกิจเพื่อนำเสนอ New Products/Services ให้เข้ากับกลุ่มเป้าหมาย หากระบบเดิมกว่าจะได้ Report แต่ละอย่างออกมาใช้เวลาหลายชั่วโมง ถ้าหากเราใช้ Fusion-io แล้วลดเวลาเหลือเพียง หลักไม่กี่นาที เท่านั้น จุดนี้จะทำให้ หน่วยงานการตลาดสามารถทำได้หลาย Report และทดลองในกรณีต่างๆ ได้มากมาย เกิด Business Value ที่ชัดเจนมากๆ



  • นอกเหนือจากนี้ยังสามารถใช้กับระบบงานประเภท Online Transaction ได้ด้วยเช่นกัน ซึ่งกรณีนี้ เราสามารถใช้ Fusion-io มาเพิ่มจำนวน Transaction per second ให้สูงขึ้นกว่าเดิมได้หลายเท่าตัวเช่นกัน  เพราะเวลาที่ใช้ในการประมวลผลแต่ละ Transaction ลดน้อยลงมาก (Low Latency)  และยังมีกรณีการใช้งานอื่นๆ อีกมากมาย โดยสรุปคือ Application ใดใช้ Disk I/O Activity สูงๆ Fusion-io สามารถช่วยได้ทั้งหมดครับ





สำหรับผู้อ่านที่ไม่รู้จัก Fusion-io ให้ลองอ่านได้จาก Blog นี้ดูนะครับ  เทคโนโลยี Fusion-io คือ? มีประโยชน์ต่อระบบคอมพิวเตอร์อย่างไรบ้าง


เริ่มต้นกันตั้งแต่ Packaging เลย ก็มากันเป็นกล่องแบบนี้เลยครับ ดูดีเลยทีเดียว เพราะปกติ มันจะมาเป็นแบบกล่องกระดาษธรรมดา แล้วก็ใส่ซองกันไฟฟ้าสถิตย์แบบปกติ




ลองเปิดกล่องกันดู ก็พบกับ Fusion-io ioDrive Generation 2 (เพิ่ง Launch Generation 2 Series ออกมาเมื่อ October 2011)  เป็นอย่างไรครับ ดูแล้วตอนแรกนึกว่า กล่องใส่ปืน :)  ทาง Fusion-io ค่อนข้างลงทุนทำในส่วนของ Packaging ของผลิตภัณฑ์ได้ค่อนข้างดีเลยทีเดียว สิ่งที่อยู่ภายในกล่องนี้คือ


  • การ์ด Fusion-io ioDrive II รุ่นที่เห็นในภาพนี้ มีขนาด 1205 GB ซึ่งเป็นแบบ PCIe 2.0 x8 slots (แต่จริงๆ ใช้บัสภายใน ขนาด x4 เท่านั้น แต่ตัว physical slots มาเป็นแบบ x8 slots) 
  • Bracket ในส่วนของการเปลี่ยนช่องยึดการ์ดนี้ให้เป็นแบบ Low-Profile PCIe Slot
  • USB ที่มีขนาดเล็กๆ เอาไว้จัดเก็บพวก Document พื้นฐาน ซึ่งไม่ได้ใช้ครับ เพราะทุกอย่างผมจะโหลดจาก Fusion-io Support Site โดยตรง
  • Quick Start Guide Document ขนาดจิ๋วๆ ซึ่งก็ไม่มีอะไรเป็นพิเศษ




การสัมผัสกับอุปกรณ์แบบนี้ เราควรที่จะต้องป้องกันเรื่องไฟฟ้าสถิตย์ภายในตัวเราด้วยนะครับ โดยตัวเราต้องถ่ายประจุลง Ground (สายดิน) ก่อน ไม่เช่นนั้นแล้ว อาจจะเกิดการถ่ายประจุไฟฟ้าสถิตย์จากตัวเรา เข้าสู่ Fusion-io แล้วทำให้เกิดความเสียหาย ต่อ Chip ต่างๆ ในการ์ดนี้ได้



เอาล่ะ จากนั้น ก็ติดตั้งการ์ดนี้เข้าไปใน Server ที่มี Slot PCI Express 2.0 ขนาด x8 slot นะครับ แล้วก็เปิดเครื่อง Server กันเลย กรณีนี้ผมใช้ Cisco UCS C210 Server ครับ ระหว่างที่การ์ดนี้ทำงานอยู่ ก็จะมีแสงสีฟ้าขาว เปิดเร่งสลับไปมา จนดูเหมือนเปลวไฟสีน้ำเงินกำลังลุกโชน ให้ได้อารมณ์ของความเร็วและแรง :)




การ์ดนี้ใช้ได้กับ OS 64 Bit ทั้ง Windows, Linux, HP-UX (Only Itanium chip, HP-UX 11i v3), Solaris, Mac OSX รวมถึง VMWare ESX/ESXi นะครับ รายละเอียดแบบเต็มๆ ดูได้จากที่ Supported OS Platform  สิ่งที่ต้องทำในลำดับขั้นตอนต่อไปคือ ลง Driver (รวมถึง Utilities ต่างๆ) ที่ชื่อว่า VSL (Virtual Storage Layer) ซึ่งจัดเป็น Software ที่มีความสำคัญที่สุดในการใช้ Fusion-io Hardware ตัวนี้ ในภาพตัวอย่างด้านล่างนี้ คือผมติดตั้งบน VMWare ESXi 5 Update 1 และเรียก command "fio-status -a" เพื่อดู Status ต่างๆ ซึ่งก็เรียบร้อยดีครับ



ซึ่งจากการลองติดตั้งใน OS กลุ่ม Windows, Linux และ VMware แล้วก็เป็นไปด้วยความง่ายครับ เหมือนลง Driver การ์ดจอบนเครื่อง PC ปกติ จากนั้น Fusion-io ก็จะปรากฎตัวเป็น Block Disk Device บน OS นั้นๆ เพื่อให้ เอาไปใช้งานต่อในระดับถัดไปได้ นั่นคือ การสร้าง File Systems หรือ Mount Device ขึ้นไปใช้ได้เลย (กรณีที่ถอดการ์ดมาจาก Server อื่น, OS กลุ่มเดียวกัน) ก็สะดวกดีเหมือนกัน


นอกเหนือจากนี้ ผมยังได้ลองนำ Block Device ของ Fusion-io นี้ไปเป็น Swap Space ให้กับ Windows และ Linux OS ดูด้วยแล้วเช่นกัน ก็ทำให้การ Swap เป็นไปด้วยความรวดเร็วครับ เมื่อเทียบกับการ Swap ลงสู่ Device ที่เป็น Hard Disk ปกติ


และ ณ จุดนี้ เราสามารถที่จะเลือกทำ Low Level Format Sector Size จากค่าเริ่มต้นที่ 512 bytes/sector ให้มีขนาดใหญ่ขึ้นได้ เช่น 4096 bytes/sector หรือ 8192 bytes/sector  ขึ้นกับว่าจะใช้งานประเภทไหนครับ และ เรายังสามารถ Format แบบระบุขนาดได้ด้วยครับ (ขอยังไม่ลงรายละเอียดใน blog นี้) นับว่าค่อนข้างยืดหยุ่นต่อการใช้งานมาก เหมาะกับการใช้งานกับ I/O Workload ได้หลากหลายรูปแบบ



ภาพด้านบน เป็นหน้าจอของ Management Software ที่ชื่อว่า ioSphere ซึ่งเราสามารถดู Information รวมถึง Live Performance Stat แบบสดๆ ได้เลย ว่าขณะที่ดูอยู่นั้น มีการ Read/Write ที่ Bandwidth กี่ GB/s หรือ Read/Write ที่ กี่แสน IOPS  รวมถึงการดูพวก Alert ต่างๆ ได้ด้วย Software ตัวนี้ถูกออกแบบมาในลักษณะของ Manager/Agent ดังนั้นแล้ว กรณีที่เราติดตั้ง Fusion-io Hardware นี้กระจายไปในหลายๆ Server เราสามารถจัดการได้จากที่ศูนย์กลางได้


โดยส่วนตัวผมมีโอกาสได้นำ Fusion-io ไปทดสอบในหลายๆ Environment เราจะเห็น Performance ที่สูงๆ จนชินตาเลยทีเดียว ดังตัวอย่างด้านล่าง


ทดสอบการเขียนข้อมูลใส่ Fusion-io ด้วยความเร็วระดับ 68,000 IOPS (IO Operation per second)

โดยมี Write Bandwidth เฉลี่ยที่ 480MB/s


ทดสอบแบบโหดๆ โดยการ Read/Write ด้วย Bandwidth ที่สูงระดับ GB/s

สีเขียวคือ Read,  สีเหลืองคือ Write


ถึงจุดนี้แล้ว ผู้อ่านอาจจะสงสัยว่า Fusion-io ที่มี Performance ที่สูงแบบนี้ทั้งในส่วนของ Bandwidth (ระดับ GB/s) ส่วนของ IOPS (ระดับ แสน IOPS) และ Latency ระดับ Microsecond จะช่วยอะไรในระบบคอมพิวเตอร์ได้บ้าง  คำตอบเป็นดังนี้ครับ


  • ทำให้ I/O Bottleneck ที่อัดอั้นอยู่บน Server นั้นหายไป ซึ่งเหมาะกับ Server ที่ต้องมีการประมวลผลข้อมูลปริมาณมาก เช่น Database Server, Datawarehouse, Business Intelligence, Big Data Analytics รวมถึง Virtualization นั่นหมายความว่า Server จะทำงานได้ผลลัพธ์ที่ปริมาณมากขึ้นต่อหน่วยเวลา (เพิ่ม Transaction Rate) 
  • นั่นคือ ระบบ Business Application เราจะทำงานได้ความเร็วสูงขึ้นนั่นเอง หลายๆ กรณีที่ผมไปทดสอบ พบว่า Fusion-io สามารถลดเวลาในการประมวลผลได้มหาศาลมากๆ เช่น แต่เดิมใช้เวลา 12 ชั่วโมง พอนำ Data ขนาดใหญ่ (ประมาณ 7 ร้อยล้าน Database Rows) มาใส่ไว้ใน Fusion-io แล้วประมวลผล ปรากฎว่าลดเวลาเหลือเพียง 7 นาที เท่านั้น และยังมีอีกหลายๆ กรณี ที่เห็นแล้วอึ้งพอสมควรกับผลลัพธ์ที่เกิดขึ้น 
  • ราคา Enterprise PCIe Flash Technology นั้นลดลงอย่างมาก เมื่อเทียบกับปี 2008 ดังนั้น ด้วยความเร็ว และ คุณค่าของความเร็วที่เพิ่มขึ้นมหาศาลนั้น ผมเชื่อว่าถึงเวลาแล้วครับกับการลงทุนใช้เทคโนโลยีประเภทนี้ ณ ยุคนี้ 


เราสามารถนำ Fusion-io ไปใช้ได้กับหลายๆ Application ที่มีการใช้ I/O Workload เยอะๆ มากๆ (ดู Guideline ได้จากภาพด้านล่าง) เพราะมันเร่งความเร็วได้สูงมากจริงๆ ครับ แต่ว่าหากนำไปใช้กับ Application ที่เน้นการใช้ CPU, Memory มากกว่า I/O  กลุ่มนั้น Fusion-io จะไม่สามารถช่วยเร่งความเร็วได้มากครับ เพราะว่า Most of the time Server นั้นใช้ CPU, Memory มากกว่า I/O  ดังนั้นแล้ว  ระบบใดๆ ก็ตามที่ใช้ component จุดไหนมากเป็นพิเศษ เราจะต้องทำ Performance Optimize ที่จุดนั้น ถึงจะเห็นผลชัดเจน




สนใจข้อมูลเกี่ยวกับ Fusion-io สามารถติดต่อสอบถามข้อมูลเพิ่มเติมได้ที่ ตัวแทนจำหน่าย Fusion-io อย่างเป็นทางการประจำประเทศไทย ครับ


โดย larry

 

กลับไปที่ www.oknation.net