เพิ่มประสิทธิภาพให้กริดด้วย Opportunistic Storage

by javaboom
20 October 2008 - 01:09

DZero เป็นโครงการทดลองด้านฟิสิกส์พลังงานสูง (High-energy physics) ต้องพึ่งพาการประมวลผลสมรรถนะสูงเพื่อคำนวณงานประเภท Simulation ที่มีจำนวนมากถึง 60,000 -100,000 งานต่อสัปดาห์ และงานทั้งหมดนี้จะถูกส่งไปประมวลผลยังเครือข่ายกริด * ที่มีคอมพิวเตอร์กระจายตัวอยู่ตามสถานที่ต่างๆถึง 23 แห่ง โดยในอดีตนั้น DZero ประสบปัญหาจากการที่เครือข่ายกริดดังกล่าวไม่มี storage สำหรับจัดเก็บข้อมูลขาเข้า (input data) ของงานที่จะนำไปประมวลผล ที่แล้วมา DZero จะแก้ปัญหาโดยส่งข้อมูลขาเข้าจากหน่วยงานของผู้ใช้ไปยังคอมพิวเตอร์ปลายทางที่อยู่ในเครือข่ายกริด ซึ่งจะมีการขนส่งข้อมูลขาเข้าเช่นนี้ทุกครั้งที่งานต้องการข้อมูล แต่มีปัญหาที่ตามมา คือ ความล้มเหลวในการประมวลผลของงานมีโอกาสเกิดขึ้นสูงมาก เพราะเครือข่ายระหว่างหน่วยงานของผู้ใช้ที่ DZero กับเครือข่ายกริดเป็นเครือข่ายแวนที่มีความเร็วและความน่าเชื่อถือต่ำ ทำให้เกิดโอกาสที่ข้อมูลขาเข้าส่งไปที่งานไม่ทันตามกำหนดเวลา (ช่วงเวลา time-out) แล้วเป็นผลให้การประมวลผลของงานนั้นล้มเหลวไปด้วย

Open Science Grid (OSG) ซึ่งเป็นสมาคมที่จัดเตรียมเครือข่ายกริดให้กับ DZero อาสาแก้ปัญหานี้โดยประสานงานกับองค์กรต่างๆที่เป็นสมาชิกของ OSG เพื่อสร้างพื้นที่จัดเก็บข้อมูลแบบ opportunistic storage อันเป็นวิธีการที่องค์กรสมาชิกแชร์พื้นที่ว่างของ storage ที่องค์กรยังไม่ได้นำพื้นที่เหล่านั้นไปใช้งาน โดย storage เหล่านี้ถูกติดตั้งอยู่บนคอมพิวเตอร์ที่แชร์พลังของโปรเซสเซอร์บนเครือข่ายกริดนั่นเอง สำหรับกรณี DZero นี้ OSG สามารถจัดสรรพื้นที่ว่างบน opportunistic storage ได้ถึง 1 TB และประโยชน์ที่ได้ตามมา คือ อัตราความสำเร็จในการประมวลผลของงานเพิ่มขึ้นจาก 30% ไปเป็น 85% เลยทีเดียว

ข่าวนี้อาจดูไม่น่าตื่นเต้นมากนัก เพราะหลักการของ opportunistic storage ไม่ใช่เรื่องแปลกใหม่ ซึ่งสามารถพบเห็นได้ในเครือข่ายแบบ peer-to-peer แต่จุดประสงค์ของการเสนอข่าวนี้ ผมอยากชี้ให้เห็นความจริงประการหนึ่งว่า หน่วยงานวิจัยที่เป็นผู้ใช้ของเครือข่ายกริดบางแห่ง ก็ประสบปัญหาคล้ายกับ DZero คือ มีงานที่ต้องใช้ข้อมูลขาเข้าขนาดใหญ่ หรือต้องส่งข้อมูลจำนวนมากไปประมวลผลที่งาน แต่ทว่า เครือข่ายกริดไม่มี storage สำหรับจัดเก็บข้อมูลเช่นนี้ได้ ทำให้ผู้ใช้จำเป็นต้องพัฒนาโปรแกรมของงานให้รับส่งข้อมูลระหว่างคอมพิวเตอร์ในหน่วยงานของตนกับเครือข่ายกริดทันทีที่งานต้องการข้อมูล ซึ่งจะทำให้เกิดปัญหาดังที่ DZero เคยพบเจอ นั่นคือ การประมวลผลล่าช้าและอาจเกิดความล้มเหลวในที่สุด

เครือข่ายกริดบางแห่งแก้ปัญหาโดยการลงทุนจัดซื้อ storage ความจุสูงเพื่ออุทิศไว้เป็นทรัพยากรกลางและแชร์ไว้ให้ผู้ใช้ของของเครือข่ายเข้ามาใช้งานได้ แต่เครือข่ายกริดบางแห่งก็ไม่สามารถลงทุนเช่นนีิ้ได้ ดังนั้น การใช้ storage ที่ว่างอยู่หรือยังไม่ได้ใช้งานในช่วงเวลาอันใกล้ เพื่อนำมาสร้าง opportunistic storage จะสามารถลดต้นทุนได้มากทีเดียว (รวมถึงลด TCO) และโดยปรกติ คอมพิวเตอร์ที่แชร์อยู่บนเครือข่ายกริดจะอุทิศพลังของโปรเซสเซอร์เป็นหลัก โดยเราเรียกคอมพิวเตอร์แบบนี้ว่า compute node โดย compute node ส่วนใหญ่มีพื้นที่ว่างของ storage ปริมาณหนึ่ง การแชร์และรวมพื้นที่ว่างระหว่าง compute node หลายๆเครื่องในเครือข่ายกริดเข้าด้วยกัน จะทำให้ได้ความจุของ storage ขนาดใหญ่ขึ้นมาได้ อีกทั้ง การใช้ระบบจัดการข้อมูลที่มีประสิทธิภาพเพื่อกระจายข้อมูลไปยัง storage ที่อยู่ใกล้ compute node มากขึ้น จะช่วยเพิ่มประสิทธิภาพในการประมวลผลบนเครือข่ายกริดได้เป็นอย่างมาก ทั้งนี้ งานวิจัยที่เกี่ยวข้องกับการจัดการข้อมูลที่กระจายตัวอยู่บนเครือข่ายกริด จะถูกจัดไว้ในหมวดงานวิจัยและพัฒนาที่เรียกว่า Data Grid

* เครือข่ายกริด (Grid network) หมายถึง กลุ่มขององค์กรที่แบ่งปันทรัพยากรคอมพิวเตอร์เพื่อการประมวลผลแบบ Grid Computing

ที่มา - INTERNATIONAL SCIENCE GRID THIS WEEK

UPDATE: จากแหล่งข่าวที่มากล่าว่า DZero ใช้ storage เพื่อทำ opportunistic storage จาก US-LHC Tier-2 ทั้งหมด 6 แห่ง และจะพยายามค้นหาพื้นที่ว่างจากที่อื่นๆเพิ่มอีก

Blognone Jobs Premium