สำหรับ Google เองแล้วนั้นคงปฎิเสธไม่ได้เลยครับว่าธุรกิจส่วนใหญ่ของทาง Google นั้นจะต้องพึ่งพาการเก็บข้อมูลไว้ใน Data Center(เพราะธุรกิจที่ Google แจ้งเกิดก็คือธุรกิจด้านการค้นหาหรือ Search ที่ต้องมีการเก็บข้อมูลเอาไว้ในปริมาณมากเพื่อประมวลผลครับ) นอกไปจากนั้นแล้วในปัจจุบันนี้นั้นเราก็ได้เข้าสู่ยุคที่เรียกว่า “Cloud Computing” กันมากขึ้นดังจะเห็นได้จากอะไรๆ ก็มีการเก็บข้อมูลไว้บนระบบ Cloud ซึ่งแน่นอนหล่ะครับว่าระบบดังกล่าวย่อมต้องมีการใช้ Data Center เช่นเดียวกัน
ทั้งนี้ในอดีตนั้นเราจะเห็นได้ว่า Data Center นั้นจะใช้แหล่งเก็บข้อมูลแบบฮาร์ดดิสที่ใช้กันในระดับองค์กรที่ประสิทธิภาพความเร็ว ฯลฯ ของมันนั้นจะแตกต่างไปจากแหล่งเก็บข้อมูลแบบที่จำหน่ายให้ผู้บริโภคธรรมดาทั่วไปได้ใช้งานกันอยู่แล้ว สาเหตุส่วนหนึ่งก็เนื่องด้วยแหล่งเก็บข้อมูลที่จะนำมาใช้งานบน Data Center ได้นั้นจะต้องมีความน่าเชื่อถือได้ของการจัดเก็บข้อมูลที่มากกว่าแหล่งเก็บข้อมูลทั้วไปแล้วมันยังต้องรองรับการเข้าถึงข้อมูลที่นับวันยิ่งจะมีคนเข้าถึงข้อมูลบน Data Center ของแต่ละบริษัท(ไม่เฉพาะ Google เท่านั้น) มากขึ้นๆ ทำให้แหล่งเก็บข้อมูลแบบเดิมสำหรับ Data Center นั้นดูแล้วจะไม่เหมาะสมกับยุดสมัยที่อะไรๆ ก็เป็นระบบ Cloud แล้วครับ
เมื่อไม่นานมานี้นั้นทาง Google จึงได้ทำการเผยแพร่เอกสารที่ใช้ชื่อว่า “Disks for Data Centers” ออกมาครับ ตัวเอกสารดังกล่าวนั้นได้ระบุถึงข้อเสนอในการเปลี่ยนดิสก์สำหรับการเก็บข้อมูลใน Data Center ที่ในปัจจุบันนั้นใช้เทคโนโลยีเก่าๆ มายาวนานถึง 15(ขึ้นไป) ให้ผู้พัฒนาดิสก์ได้ศึกษาและอาจจะนำเอาไปใช้งานในการผลิตดิสก์แบบใหม่เพื่อให้รองรับกับระบบ Cloud ในรูปแบบที่ทาง Google เองต้องการและคิดว่าน่าจะเป็นมาตรฐานที่จะทำให้ผู้ให้บริการ Cloud ต่างๆ นั้นสามารถที่จะนำดิสก์ที่ได้ทำการเปลี่ยนแปลงตามที่ Google แนะนำไปใช้งานได้ด้วยครับ
สำหรับคำแนะนำของ Google จะเป็นอย่างไรนั้นสามารถไปติดตามกันได้เลยครับ
- อย่างแรกเลยที่ Google แนะนำนั้นก็คือการเปลี่ยน From Factor หรือรูปแบบของดิสก์ให้เป็นแบบใหม่ไปเลยครับ โดยตรงจุดนี้ทาง Google ได้ให้เหตุผลว่าดิสก์ขนาด 3.5 นิ้วและ 2.5 นิ้วนั้นควรที่จะมีความสูงมากขึ้นกว่านี้(ความสูงในส่วนของแกน Z) เพื่อที่จะสามารถทำการวางจานแม่เหล็ก(ที่ใช้ในการเก็บข้อมูล) เพิ่มเข้าไปในตัวดิสก์ได้โดยที่ไม่มีความจำเป็นจะต้องเพิ่มดิสก์เข้าไปในเครื่อง Data Center ให้เปลืองพื้นที่หลายๆ ดิสก์ แถมการเพิ่มความสูงเพื่อวางจานแม่เหล็กเข้าไปได้มากขึ้นนั้นจะทำให้ความจุของดิสก์ตัวนั้นมากขึ้นตามโดยที่ยังคง IOPS/GB ไว้ได้เช่นเดิม โดยดิสก์ขนาด 3.5 นิ้วควรที่จะสูงขึ้น 1 นิ้วและดิสก์ขนาด 2.5 นิ้วควรที่จะสูงขึ้นอีก 15 mm ครับ(เมื่อเพิ่มความสูงขึ้นไปแล้วและใส่จานแม่เหล็กเข้าไปได้มากขึ้นจากความสูงที่เพิ่มขึ้นมาก็จะทำให้ต้นทุนในการผลิตดิสก์ต่อความจุลดลงตามไปด้วยซึ่งนั่นเป็นซึ่งที่ผู้ผลิตดิสก์หลายๆ เจ้าพยายามที่จะทำมาโดยตลอดอยู่แล้วครับ)
- แนวคิดที่ 2 ที่ Google นำเสนอก็คือการรวมเอาเทคโนโลยีของการผลิตดิสก์อย่าง shingled magnetic recording(SMR) และ conventional magnetic recording(CMR) ซึ่งหากสามารถที่จะรวมเทคโนโลยีทั้ง 2 นี้เข้าเป็นหนึ่งเดียวในการผลิตดิสก์ได้แล้วหล่ะก็นั่นหมายความว่าดิสก์ตัวนั้นๆ จะได้รับข้อดีของแต่ละเทคโนโลยีมาไว้ในตัวไม่ว่าจะเป็นความเร็วในการเขียนข้อมูลสำหรับ transactional workloads ที่เพิ่มมากขึ้นและความสามารถในการเป็นดิสก์สำหรับแหล่งเก็บข้อมูลที่มีระยะเวลาอายุการใช้งานยาวครับ
- แนวคิดต่อมานั้นอาจจะเป็นไอเดียที่ค่อนข้างจะแหลกอยู่หน่อยครับเนื่องจากว่าทาง Google นั้นได้เสนอว่าในดิสก์แต่ละตัวนั้นควรจะมีแขนหัวอ่าน (Actuator Arm) ที่เอาไว้ใช้ในการรับคำสั่งจากวงจรของดิสก์เพื่อเข้าไปหาข้อมูลบนแผ่นแม่เหล็กทืี่ติดตั้งไว้อย่างน้อยก็ 2 อันขึ้นไป ทาง Google บอกเอาไว้ว่าการเพิ่มแขนหัวอ่านนั้นจะมีผลทำให้ความเร็วในการอ่านข้อมูลแบบ Parallel Accesses [IOPS] หรือจะเรียกว่า random accesses ซึ่งหมายความว่าการเข้าถึงข้อมูลแบบสุ่มมีประสิทธิภาพมากขึ้นโดยที่เราไม่จำเป็นต้องใช้เทคโนโลยีแปลกๆ อย่างเช่นการเติมสารก๊าซฮีเลียมเข้าไปภายในตัวดิสซ์เพื่อเพิ่มอัตราการหาข้อมูลแบบสุ่มให้เร็วขึ้นแต่ต้องแลกมากับการปิดส่วนแผ่นแม่เหล็กไว้อย่างดีซึ่งทำให้ต้นทุนสูงมากขึ้นกว่าที่ควรจะเป็นครับ
- ข้อเสนอต่อมาของ Google นั้นก็คือการทำดิสก์ให้เป็นกลุ่มของดิสก์(“group disks”) หรือให้ผู้ผลิตดิสก์จำหน่ายดิสก์แบบรวมกันออกมาเป็นแพ็กเกจซึ่งในจุดนี้นั้นจะไปคล้ายๆ กับการจำหน่ายอุปกรณ์จำพวก NAS ที่คุณสามารถจะเชื่อมต่อโิสก์เข้าไปในตัวอุปกรณ์ได้ทีละหลายๆ ตัว อย่างไรก็ตามแต่ในการซื้อดิสก์สำหรับอุปกรณ์จำพวก NAS นั้นคุณจะต้องซื้อดิกส์ทีละดิกส์ไปซึ่งราคาต้นทุนจะแพงกว่าการทำแพ็กเกจรวมดิสก์ครับ ทาง Google ได้ให้ข้อดีของการทำดิสก์ให้เป็นกลุ่มไว้ 3 ข้อได้แก่ 1. เมื่อรวมดิสก์เข้าเป็นกลุ่มแล้วนั่นหมายความว่าคุณจะสามารถใช้ดิสก์ทั้งกลุ่มนั้นแชร์ caches ขนาดใหญ่ๆ เพื่อที่จะใช้งานร่วมกันได้(โดยทาง Google ได้พูดถึงเรื่องดังกล่าวไว้ต่อเนื่องด้วย) 2. ผู้จำหน่ายและผู้ซื้อสามารถที่จะตั้งต้นทุนที่หักลบกลบการรวมกลุ่มกันของดิสก์แล้วให้อยู่ในระดับที่คงที่ได้ และ 3. สามารถที่จะปรับปรุงเรื่องพลังงานในการดูแลรักษาดิสก์ที่เป็นกลุ่มได้ดีกว่าเดิม(โดยทาง Google ได้พูดถึงเรื่องดังกล่าวไว้ต่อเนื่องด้วย) ทั้งนี้ทาง Google ไม่ได้ระบุรายละเอียดเอาไว้ครับว่าการรวมกลุ่มของดิสก์นี้นั้นควรจะมีกี่ดิสก์ต่อกลุ่ม
- ในส่วนของข้อดีข้อ 1 ของข้อเสนอด้านต้นที่บอกเอาไว้ว่าดิสก์ทั้งกลุ่มนั้นสามารแชร์ caches ขนาดใหญ่ๆ เพื่อที่จะใช้งานร่วมกันได้นั้นทาง Google ได้อธิบายเพิ่มเติมเอาไว้ครับว่าถ้าหากทำการรวมดิสก์เป็นรูปแบบกลุ่มแล้ว ผู้ผลิตก็ไม่มีความจำเป็นจะต้องเปลี่ยนอินเตอร์เฟซดิสก์ให้เป็นแบบใหม่ ซึ่งนั่นหมายความว่าผู้ผลิตยังคงสามารถที่จะทำการใช้อินเตอร์เฟซแบบ SATA หรือ PCIe ได้เช่นเดิมอยู่(จากการรวมกลุ่มของดิสก์เข้ามาไว้ด้วยกันแล้วใช้อินเตอร์เฟซการเชื่อมต่อแค่ช่องเดียว) ส่วน caches นั้นโดยปกติดิสก์แต่ละตัวนั้นจะมีขนาดของ caches แตกต่างกันไป(ตั้งแต่ 30 MB – 100 MB) ทำให้ ณ จุดนี้นั้นการใช้งาน Data Center จะมีความเร็วในการอ่านข้อมูลเปลี่ยนไปตามดิสก์ที่ทำการอ่านขณะนั้นด้วย เพื่อแก้ปัญหาดังกล่าวนี้เมื่อทำการรวมกลุ่มดิสก์เข้าด้วยกันแล้วนั้นทาง Google ก็ได้นำเสนอว่าให้แยก caches ที่ควรจะอยู่ในดิสก์แต่ละตัว ออกมาอยู่ข้างนอกต่างหากไปเลยโดยที่ caches ที่แยกออกมาดังกล่าวนั้นก็ใช้ caches ที่มีขนาดใหญ่ๆ ไปเลยและ caches ดังกล่าวนั้นก็อาจจะติดตั้งอยู่บนบอร์ดรวมของกลุ่มดิสก์นั้นหรือว่าจะทำออกมาในรูปแบบถาด caches ที่สามารถปรับเปลี่ยนขนาดได้ตามที่ต้องการเพื่ออนาคตจะได้เพิ่ม caches ได้อีก(ซึ่งทาง Google ได้นำหลักการเช่นนี้มาจากมุมมองของ TCO) แน่นอนครับว่าการมี caches เพียงแค่ caches เดียวสำหรับดิสก์แบบกลุ่มไปเลยนั้นย่อมทำให้ต้นทุนลดลงจากเดิมแต่ในทางกลับกันแล้วนั้นประสิทธิภาพในการใช้งานก็จะเพิ่มขึ้นครับ
- ในส่วนของข้อดีข้อ 3 ที่บอกว่าสามารถที่จะปรับปรุงเรื่องพลังงานในการดูแลรักษาดิสก์ที่เป็นกลุ่มได้ดีกว่าเดิมนั้นทาง Google ได้เสนอไว้เลยครับว่าในปัจจุบันนนั้นดิสก์แต่ละตัวจะต้องทำการใช้พลังงานไฟฟ้าในการทำงานจาก Power Supply หลักของตัวเครื่อง Server ที่ใช้ทำ Data Center ซึ่งนั่นหมายความว่าเครื่อง Server แต่ละตัวนั้นจะสามารถเพิ่มดิสก์เข้าไปได้อย่างจำกัดจำนวน(เพราะถ้าเพิ่มมากไปก็ไฟเลี้ยงไม่พอครับ) วิธีแก้ในอดีตที่ผ่านมานั้นก็ต้องเพิ่มเครื่อง Server เข้าไปใน Data Center ใหม่ทำให้ต้นทุนสูงขึ้น แต่ถ้าผู้ผลิตดิสก์ผลิตดิสก์แบบกลุ่มแล้วนั้นก็ให้ใช้วิธีการจ่ายไฟให้กับดิสก์แบบกลุ่มนั้นต่างหากโดยไฟที่จะจ่ายเข้าไปก็ต้องเป็นมาตรฐาน 12v DC power supply ครับ
ตัวอย่างของ NAS
- ข้อเสนอต่อมานั้นถือได้ว่าเป็นจุดสำคัญที่ทาง Google อยากจะให้เกิดขึ้นมากๆ เลยครับ สิ่งนั้นก็คือความสามารถในการแสดงข้อมูลการทำงานรวมไปถึงประสิทธิภาพของดิสก์ ณ เวลานั้นๆ โดยละเอียด ซึ่งในส่วนนี้นั้นทาง Google บอกว่าผู้ผลิตอาจจะต้องเพิ่มส่วนของหน่วยความจำสำหรับเก็บข้อมูลนี้แยกออกมาต่างหากและทำการเก็บข้อมูลในรูปแบบของ log โดยควรที่จะมาพร้อมกับซอฟต์แวร์ที่สามารถเข้าไปอ่าน log นั้นๆ ได้ทันทีตลอดเวลา ทั้งนี้ในเบื้องต้นนั้นสิ่งที่ทาง Google ต้องการที่จะให้มีการเก็บข้อมูลใน log นั้นประกอบไปด้วย 1.เวลาที่ใช้ในการค้นหาข้อมูลของตัวดิสก์รวมไปถึงระยะเวลาดีเลย์ที่เกิดขึ้นจากการเปลี่ยนแผ่นแม่เหล็กในการอ่านข้อมูล 2. เวลาที่ใช้ในการส่งข้อมูลจากข้อมูลที่ถูกเก็บไว้ในดิสก์ไปถึงผู้ที่เรียกใช้ข้อมูลนั้นและ 3. เวลาที่ใช้ในการแก้ไขข้อผิดพลาดในการค้นหาข้อมูลจากดิสก์ต้นขั้นจนกระทั่งผู้ร้องขอข้อมูลได้รับข้อมูลที่ถูกต้อง ทั้งนี้ทาง Google ได้ให้เหตุผลเอาไว้ครับว่าข้อมูลทั้ง 3 ส่วนนี้ถือว่าเป็นเรื่องจำเป็นอย่างมากในการพัฒนา Data Center และระบบ Cloud ซึ่งหากได้ข้อมูลดังกล่าวมานี้ทาง Google ก็จะสามารถรู้ได้ครับว่าดิสก์นั้นควรจะนำไปปรับใช้กับงานในรูปแบบใดมากกว่าเพื่อให้การทำงานนั้นมีประสิทธิภาพที่ดีที่สุด
- เพิ่ม Background Tasks และ Background Management APIs เพื่อที่จะใช้ในการเปิดให้ผู้ควบคุมสามารถที่จะเข้าไปปรับทำการแก้ไขข้อผิดพลาดที่เกิดขึ้นกับดิสก์ได้โดยตนเอง เพราะโดยปกติที่ผ่านมานั้นดิสก์ส่วนใหญ่จะมีวิธีการและหลักการในการแก้ไขปัญหาเป็นตัวของมันเองผ่านทางระบบปฎิบัติการต่างๆ ซึ่งนั่นอาจจะเพียงพอกับผู้บริโภคทั่วไปแต่เมื่อเป็น Data Center แล้วนั่นไม่เพียงพอที่จะเพิ่มประสิทธิภาพได้ครับ
- Flexible Capacity หรือการกำหนดความจุในรูปแบบที่มีความยืดหยุ่น ตรงนี้นั้นทาง Google ได้อธิบายเอาไว้ครับว่าในปัจจุบันนั้นดิสก์แต่ละตัวได้มีการระบุขนาดความจุเอาไว้ เช่น X TB เป็นต้น ด้วยการระบุขนาดดังกล่าวไปตายตัวนั้นทำให้ในความเป็นจริงแล้วผู้จัดจำหน่ายดิสก์สามารถที่จะจำหน่ายดิสก์ได้ในราคาที่สูงกว่าขนาดความจุที่ผู้ซื้อควรจะได้รับ นอกเหนือไปจากนั้นแล้วบนดิสก์นั้นยังจะต้องมีส่วนของ sectors หรือส่วนของช่องเก็บข้อมูลที่ถูกจองไว้สำหรับการใช้งานในรูปแบบอื่นที่ไม่สามารถจะนำมาให้ผู้ใช้ปรับมาใช้งานได้จริงเช่น reallocation, cache ฯลฯ แถมอีกส่วนหนึ่งนั้นก็คือถ้าเกิดตัวดิสก์เกิดมีส่วนหัวของข้อมูลเสียขึ้นมาแล้วหล่ะก็ในความเป็นจริงแล้วเราสามารถที่จะแก้ไขข้อผิดพลาดดังกล่าวนั้นด้วยการ mapping ส่วนของจุดเก็บข้อมูลใหม่ใม่ให้เป็นส่วนที่เกิดความเสียหาย(และเมื่อ mapping ใหม่แล้วก็อาจจะยังช่วยให้สามารถกู้ข้อมูลจากส่วนที่เสียไปได้ด้วย) ซึ่งตรงนี้แหละครับเป็นจุดสำคัญว่าจริงๆ แล้วท้ายที่สุดการระบุขนาดความจุของดิสก์แบบตายตัวนั้นเมื่อใช้งานไปจริงๆ แล้วมันก็ไม่ได้เป็นจริงตามนั้น ยิ่งไปกว่านั้นทางผู้ผลิตยังได้ประโยชน์ในเรื่องนี้จากการขายดิสก์เกินราคาจากความจุที่ควรจะเป็นอีกด้วย
- ควรจะขยายขนาดของ Sector ในการเก็บข้อมูลให้มากขึ้นกว่าเดิมเพราะในปัจจุบันนั้นขนาด Sector ที่สามารถเลือกได้บนดิสก์นั้นมักจะอยู่ที่ 512 B – 4 KiB เท่านั้น ซึ่งการขยายขนาดของ Sector ให้ใหญ่ขึ้นนั้น(Google แนะนำว่าน่าจะอยู่ที่สัก 64 KiB ขึ้นไป) จะช่วยให้การเขียนข้อมูลลงไปบนดิสก์นั้นทำได้ดีมากขึ้นแถม error correcting codes (ECCs) หรือระบบที่ช่วยให้ทราบถึงความผิดพลาดของข้อมูลและช่วยแก้ไขข้อมูลในส่วนที่ผิดสามารถทำได้ดีกว่าเดิม
- Optimized Queuing Management [IOPS] ท้ายสุดเลยนั้นทาง Google ได้เสนอไว้ว่าผู้ผลิตควรที่จะปรับแต่งความสามารถในการจัดการคิวของคำสั่งข้อมูลเวลาที่ใช้งานให้มีมาตรฐานใหม่ที่จะช่วยให้ผู้ดูแลระบบสามารถจัดการกับคิดคำสั่งงานได้ง่ายขึ้นเช่นอาจจะใช้เทคนิคในการเพิ่มความสามารถให้ผู้ดูแลระบบทำโค้ดในการใส่ลำดับความสำคัญของคำสั่งต่างๆ เข้าไปเพื่อที่ดิสก์จะได้ทำงานตามลำดับคำสั่งนั้นได้ครับ(โดยปกติแล้วตรงนี้นั้นจะมีระบบปฎิบัติการเป็นผู้จัดการแต่ถ้าสามารถทำได้ลึกถึงขั้นบนดิสก์ด้วยตัวของมันเองแล้วนั้นก็จะทำให้การใช้งาน ความเร็วในการเข้าถึงข้อมูลดีกว่าเดิมมากครับ)
จากทั้งหมดที่ทาง Google เสนอมานั้น(จริงๆ แล้วในเอกสาร “Disks for Data Centers” จะมีการให้รายละเอียดของแต่ละข้อเสนอเอาไว้มากกว่านี้) ดูเหมือนว่า Google เองตั้งใจที่อยากจะสามารถทำการเข้าถึงการสั่งงานดิสก์สำหรับ Data Center ในระดับที่ต่ำที่สุดซึ่งนั่นจะทำให้เกิดความเร็วในการสั่งการใช้งานต่างๆ มากขึ้นครับ(เหมือนกับการโค๊ดโปรแกรมภาษา Assembly ที่เป็นภาษาระดับต่ำสั่งงานหน่วยประมวลผลได้โดยตรงไม่ต้องผ่านผู้แปลภาษาการทำงานของ Assembly จึงเร็วมากเป็นต้น)
อย่างไรก็ตามสิ่งที่ Google นำเสนอนั้นก็ใช่ว่าจะเกิดขึ้นจริงในเร็วๆ วันนี้หรือไม่แน่อาจจะไม่เกิดขึ้นเลยก็เป็นได้หากไม่มีการสนับสนุนอย่างเป็นทางการซึ่งจุดหนึ่งนั้นต้องมาจากผู้ผลิตดิสก์ที่หากอ่านรายละเอียดดูดีๆ แล้วนั้นจะเห็นได้ครับว่าผู้ผลิตดิสก์นั้นหากทำตาม Google จริงก็อาจจะเสียเปรียบในเรื่องของการตั้งราคาจำหน่ายดิสก์และสูญเสียความสามารถในการกำหนดทิศทางของตลาดได้ คงต้องรอดูกันต่อไปหล่ะครับว่าผู้ผลิตดิสก์ทั้งหลายจะตอบรับเอกสารฉบับนี้มากน้อยแค่ไหน ส่วนผู้บริโภคระดับธรรมดาอย่างเราๆ ท่านๆ นั้นเรื่องนี้ถือว่าไกลตัวพอดูเลยครับ
ที่มา : theregister, “Disks for Data Centers”