วันที่ เสาร์ พฤษภาคม 2555

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

 

เทคโนโลยี Fusion-io คือ? มีประโยชน์ต่อระบบคอมพิวเตอร์อย่างไรบ้าง


[ต้นฉบับของ Blog ชิ้นนี้อยู่ที่  http://www.s50.me/2012/05/fusion-io.html ]


12 May 2012 -- ระบบคอมพิวเตอร์ไม่ว่าจะเป็นเครื่องคอมพิวเตอร์ส่วนบุคคล (PC: Personal Computer) หรือว่าระบบคอมพิวเตอร์แม่ข่าย (Server) นั้นจะมีองค์ประกอบในภาพใหญ่นั้นเหมือนกันคือ มีอยู่ 3 องค์ประกอบหลักๆ คือ

  • CPU หรือ Microprocessor
  • Memory / DRAM
  • I/O (Input/Output)

ซึ่งใน 3 ส่วนนี้ มีความรวดเร็วการทำงานที่แตกต่างกัน แต่ว่าทั้ง 3 ส่วนนี้ต้องทำงานด้วยกัน  ทีนี้ให้ลองนึกภาพตามนะครับ เหมือนมีคนทำงาน 3 คนที่ต้องทำงานร่วมกัน  ถ้าแต่ละคนมีความเร็วในการทำงานที่แตกต่างกัน สิ่งที่เกิดขึ้นคือ จะต้องมีการรอการทำงานซึ่งกันและกันอยู่ ซึ่งจุดที่รอนั้นคือ คอขวด (bottleneck) นั่นเอง ก็เหมือนถนนตอนแรกวิ่งมา 4 เลน พอถึงจุดที่เป็นสะพานที่รถจะต้องข้ามผ่านไป กลับเหลือเพียงแค่ 1 เลน นั่นแสดงว่า มีการกระจุกตัวที่จะต้องรอคิวเกิดขึ้น ทำให้เกิดสภาพรถติด คับคั่ง นั่นเอง


วกกลับมาที่ระบบคอมพิวเตอร์ เจ้าตัวที่เป็นคอขวด (bottleneck) นั้นก็คือ I/O นั่นเอง  ให้ดูภาพที่แสดงความรวดเร็วของทั้ง 3 องค์ประกอบตามภาพนี้ครับ



จาก ภาพด้านบน ทางซ้ายมือองค์ประกอบของ CPU และ Memory ซึ่งมีความเร็วในการทำงานอยู่ที่หลักของ nanosecond (10 ยกกำลัง ลบ9) ส่วน I/O นั้นจะมีความเร็วในการทำงานอยู่ที่ระดับของ milliseconds (10 ยกกำลังลบ 3) ซึ่งจะพบว่า มีความเร็วที่แตกต่างกันมากๆ เลยทีเดียว ถ้านำมาหารกัน (เอา milliseconds หารด้วย nanoseconds) ก็จะอยู่ในระดับ 100,000 - 1,000,000 เท่าตัว (10 ยกกำลัง 5 หรือ 10 ยกกำลัง 6) นั่นเอง


ฉะนั้น I/O คือส่วนที่เป็น Bottleneck ของระบบคอมพิวเตอร์ครับ ซึ่งมันจะเป็นปัญหาหรือไม่นั้น ขึ้นอยู่กับเราครับ ว่าเราใช้งาน I/O นั้นมากน้อยเพียงใด ยกตัวอย่าง I/O นะครับ เช่น Network , Storage Disk นั่นเอง ในยุคปัจจุบัน เทคโนโลยีทางด้าน Network นั้นก้าวหน้าไปมากแล้วครับ ความเร็วสูงระดับ 10Gbps เป็นต้นไป แต่สำหรับ Storage Disk นั้นยังไปไม่ถึงไหนไกลมากนัก (เมื่อเทียบกับ ความเร็วของ CPU)


หาก Application หรือ Software ที่เราใช้งานในระบบคอมพิวเตอร์นั้น มีการเขียน/อ่าน ข้อมูลลง Storage Disk จำนวนมาก และ บ่อยครั้ง เราจะพบว่า Storage Disk นั้นคือ Bottleneck ของระบบ ซึ่งสมมติว่าเราทำงานอย่างหนึ่งที่ต้องเขียน/อ่าน ข้อมูลลง Disk Storage เป็นจำนวนมาก เช่นงาน Database, Batch Operation , Index Search Engine แล้วพบว่าเราใช้เวลานานหลายนาที หรือ หลายชั่วโมง นั่นเป็นเพราะ CPU รอการทำงานจาก Disk นั่นเอง




ดัง นั้นถ้าหากเราต้องการเร่งความเร็ว โดยการลดเวลาของ Application ให้เร็วขึ้นนั้น ก็มีอยู่หลายๆ ทางที่จะสามารถทำได้ครับ ยกตัวอย่างเช่น


  • เพิ่ม RAM หรือ Memory ครับ แล้วก็ปรับ Application ให้โหลดข้อมูลขึ้น Memory เพื่อประมวลผลให้มากสุดเท่าที่จะมากได้ แต่ก็ต้องมีการออกแบบเพื่อรองรับกรณี ไฟดับ หรือ UPS ระบบสำรองไฟแบตเตอรี่หมดด้วยนะครับ (กรณีไฟดับ) ว่าจะมีวิธีการเอาข้อมูลที่อยู๋ใน Memory เก็บลง Disk ได้อย่างไร 
    • ประเด็นอื่นๆ ที่ต้องประเมินร่วมกันอีกคือ ราคาของ Memory ขนาดใหญ่ๆ เช่น 32GB, 64GB, 128GB นั้นไม่ธรรมดาเลยครับ
  • เพิ่มจำนวน Hard Disk และทำ RAID5 หรือ RAID6 หรือ RAID10 ครับ การเพิ่มจำนวน Disk จะช่วยให้ระบบคอมพิวเตอร์นั้นรองรับการเขียน/อ่านข้อมูลได้ดียิ่งขึ้น ถนนกว้างขึ้น 
    • แต่ประเด็นคำถามคือ ต้องเพิ่มกี่ลูก Disk แล้วถ้ามันต้องใช้หลายสิบลูกหรือว่าหลายร้อยลูก ก็ต้องมี External Storage ที่ติดตั้งข้างนอกเครื่องอีก เปลืองไฟ เปลืองแอร์ เปลืองที่ภายในห้อง Datacenter
  • เพิ่มจำนวน Server โดยใช้ Server ที่มีจำนวน CPU, Memory และ I/O ตามปกติ ไม่ต้องใส่ Memory หรือว่า Disk สูงเท่ากับที่ประเมินไปในข้อด้านบน 
    • แต่มีประเด็นที่ต้องพิจารณาเพิ่มคือ ลักษณะของ Application จะต้องสามารถทำงานในลักษณะมี Server หลายตัวแบบนี้ได้ (Application ถูกออกแบบมาในลักษณะ grid, clustering) 
    • และยังมีประเด็นเรื่อง การเปลืองไฟ เปลืองแอร์ และ เปลืองที่ภายในห้อง Datacenter
  • หา Expert ผู้เชี่ยวชาญ มาปรับ Application Architecture , Algorithm ใหม่ ให้ทำงานให้มีประสิทธิภาพสูงสุดโดยใช้ ทรัพยากรน้อยที่สุด (CPU, Memory และ I/O) 
    • ประเด็นคือ จะไปหาจากที่ไหน ? ราคาค่าตัวเท่าไหร่ ?  เขาจะอยู่กับเราไปตลอดหรือไม่ ?
    • และการปรับ Application Architecture หรือ Software Algorithm ใหม่นั้น ไม่ได้เป็นเรื่องเล็ก ต้องใช้เวลาในการพัฒนาและทดสอบ ไปในระยะใหญ่ๆ มีภาระผูกพัน และ Software ก็ต้องมีการ Upgrade เรื่อยๆ ในอนาคต ก็ต้องดูแลกันในระยะยาว 


แต่ปัจจุบัน มีเทคโนโลยีของ Fusion-io ที่จะเป็นอีกหนึ่ง Solution ทางเลือกที่ตอบโจทย์ได้ครบทุกประเด็น โดยแม้กระทั่ง Apple Co-Founder (Steve Wozniak) เองก็พูดไว้เช่นกันครับ ตามภาพด้านล่างนี้




อ่ะ ใส่ภาพของ Steve Wozniak ให้ชมกันนิดนึงครับ  :D


Steve Wozniak ในช่วงวัยรุ่น ที่นั่งสร้าง Mac Computer กับ Steve Jobs ในปี 1975


Steve Wozniak รูปตอนปัจจุบัน ปี 2012


ด้วยวิธีการของ Fusion-io นั้น มันตอบโจทย์ในทุกๆ ด้านตามที่ Steve Wozniak ว่าไว้เลยครับ ดังนี้


  • ราคาถูกกว่า Memory หรือ RAM แน่นอน
  • ความเร็วสูงกว่า Storage Disk มาก ทำงานที่ระดับความเร็ว ไมโครวินาที (Microsecond)  ขณะที่ Storage Disk ทำงานที่ความเร็วระดับ Millisecond  
  • มีความจุหลากหลายขนาด ตั้งแต่ 365GB ถึง 10TB (Terabytes) ต่อ 1 หน่วย Card.  Server สามารถติดตั้ง Fusion-io ได้หลายหน่วย 
  • ไม่เปลืองไฟ ไม่เปลืองแอร์ ไม่เปลืองพื้นที่ของห้อง Datacenter
  • ไม่ต้องเพิ่ม Server นั่นหมายความว่าไม่ต้องเพิ่มจำนวน Software License
  • ไม่ต้องสรรหา Expert มาช่วยในการปรับแต่ง Application Architecture และ Algorithm
  • เป็น Solution ที่ตอบโจทย์ในทุกๆ ด้าน อย่างที่ Steve Wozniak ให้ความเห็นไว้


เรียกได้ว่า Fusion-io นั้นสามารถทดแทน External Storage หรือว่า SAN ได้เลยทีเดียว ในเชิงของ I/O Performance ตามภาพด้านล่างนี้ครับ ภาพด้านซ้ายคือระบบ External Storage ซึ่งเป็นตู้ใส่ Hard Disk ได้หลายร้อยหรือหลายพันลูกและเชื่อมต่อกับ Server ด้วย SAN Technology ผ่าน Fibre Channel หรือ อื่นๆ  ภาพด้านล่างนี้แสดงให้เห็นว่า ตู้ SAN Storage ทั้งตู้ สามารถมาอยู่ใน Fusion-io Card ใบเดียวได้เลยทีเดียว ในเชิงของ Performance นะครับ


The performance of a SAN ... in the Palm of Your Hand. (Amazing)



แต่ทั้งนี้ทั้งนั้นไม่ได้หมาย ความว่า Fusion-io จะมาทดแทนระบบ SAN External Storage นะครับ เพราะมันมีไว้ใช้กันคนละวัตถุประสงค์ เราจะนำ Fusion-io มาช่วยในการแก้ปัญหา I/O Performance เป็นหลัก ส่วน SAN External Storage นั้นยังคงต้องมีไว้ใช้เพื่อจัดเก็บข้อมูลอื่นๆ ทั่วๆ ไปจากหลายๆ Server ไปแชร์ถังข้อมูลข้างนอกกัน (Storage Consolidation Solution)


แต่ ในอดีตที่ผ่านมา เราใช้ SAN External Storage มาเพื่อแก้ปัญหา I/O Performance โดยใช้คุณลักษณะของ SAN External Storage ที่ว่า สามารถใส่ Hard Disk ได้หลายร้อยลูก (Disk Spindles) เพื่อมาแก้ปัญหานั่นเอง แต่นั่นเป็นการแก้ปัญหาแบบ ขี่ช้างจับตั๊กแตน นะครับ เพราะหลายๆ ครั้งที่เราออกแบบระบบ SAN External Storage เพื่อให้ได้ I/O Performance ตามที่ Application ต้องการนั้น มันจะต้องใส่ Hard Disk จำนวนมาก เพื่อให้ได้ Performance  แต่ในเชิง Capacity นั้นได้มาเยอะเกินกว่าที่จะต้องการ (Over Capacity Sizing) ซึ่งจะส่งผลให้เรื่องของ ราคาสูง , เปลืองไฟ , เปลืองเนื้อที่ภายในห้อง Datacenter และ เปลืองแอร์ นั่นเอง  (ขี่ช้างจับตั๊กแตน)


สนใจข้อมูลเพิ่มเติมเกี่ยวกับ Fusion-io สามารถดูเพิ่มเติมได้ที่ http://www.tangerine.co.th/fusion-io

หรือจะติดต่อกับ ทีม Fusion-io ของบริษัท แทนเจอรีน จำกัด โดยตรงก็ได้เช่นกันครับ


Fusion-io "ioDrive II Duo" PCIe Card สำหรับติดตั้งเข้าไปในเครื่องคอมพิวเตอร์


Tag Label: Disk Bottleneck, EMC VFCache, Fusion IO, Tangerine, Violin Memory, XtremIO, เพิ่มประสิทธิภาพ, เร่งความเร็ว, แก้ปัญหา IO

โดย larry

 

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