เทคโนโลยี Fusion-io คือ? มีประโยชน์ต่อระบบคอมพิวเตอร์อย่างไรบ้าง
[ต้นฉบับของ Blog Content ชิ้นนี้อยู่ที่ //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 สามารถดูเพิ่มเติมได้ที่ //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
Create Date : 12 พฤษภาคม 2555 |
|
0 comments |
Last Update : 12 พฤษภาคม 2555 22:05:38 น. |
Counter : 1595 Pageviews. |
|
|
|