Harddisk เป็นอุปกรณ์ที่เสียบ่อยที่สุดในเครื่องคอมพิวเตอร์ อย่างแรกสุดที่ควรทำคือมี harddisk สองตัวที่มีข้อมูลเหมือนกันอยู่ตลอดยังกับกระจกเงา (RAID 1) ถ้าติดตั้งระบบแบบนี้ drive อันนึงล่มไประบบก็ไปต่อได้
เมื่อต้นเดือนผมไปช่วยแก้ไขระบบจองห้องพักของโรงแรมหรูขนาดเล็กเพื่อน ที่เมือง Sedona, AZ เครื่องคอมพิวเตอร์หลักที่ใช้ทำระบบจองและเก็บเงินห้องพักของเขาเสียเนื่องจากฮาร์ดดิสล่ม เขามีระบบสำรองข้อมูลที่ดีจึงไม่มีข้อมูลเสียหาย แต่การที่ไม่มีระบบจองห้องพักให้ใช้ไปหนึ่งวันครึ่งในฤดูท่องเที่ยวที่แสนจะยุ่งนั้นสร้างความเดือดร้อนให้ธุรกิจไม่น้อย ระหว่างที่ไม่มีเครื่องคอมพิวเตอร์ เขาไม่สามารถรับจองห้อง หรือเปลี่ยนแปลงแก้ไขอะไรได้เลย เขาไม่รู้ว่าห้องพักไหนว่าง ห้องไหนมีคนพักช่วงไหนกี่วัน ส่งอีเมล์ไปยืนยันการจองให้ลูกค้าก็ไม่ได้
ระบบที่ใช้ีอยู่มีเครื่องคอมสองเครื่อง ทำงานเข้าถึงฐานข้อมูลเดียวกัน โดยฐานข้อมูลหลักอยู่บนเครื่องคอมหลัก ครั้งนี้เครื่องคอมหลักมีปัญหาระบบทั้งระบบก็ใช้งานไม่ได้ทันที
ไม่ต้องสงสัยเขาอยากได้ระบบที่มีเครื่องคอมสองเครื่อง เมื่อเครื่องใดเครื่องหนึ่งล่มไป อีกเครื่องหนึ่งก็ยังทำงานต่อได้ ผมรู้ว่าเราสามารถตั้งให้เครื่องสองเครื่องนี้อยู่ใน cluster ของ windows 2003 ซึ่งถ้าเครื่องใดเครื่องหนึ่งล่มไป ระบบก็สามารถ failover ไปอยู่บนเดียวได้โดยอัตโนมัติ แต่เมื่อมาศึกษาดูแล้ว การสร้าง cluster นั้นยุ่งยาก และราคาแพง ไม่น้อย (คาดว่าอย่างต่ำ ก็ $5000 รวมราคาเครื่อง) และถ้า disk array เสีย เขาก็จะมีปัญหาอยู่ดี นอกจากว่าจะมี disk array สองชุด คิด ๆ แล้วก็รู้สึกว่าออกจะเกินไปหน่อยสำหรับโรงแรมขนาดเล็ก (น้อยกว่า 50 ห้อง)
จริง ๆ แล้วระบบจองห้องพักของเขาไม่ได้ใหญ่โตซับซ้อนแต่อย่างใด ฐานข้อมูลทุกอย่างอยู่บน file อันเดียวเท่านั้น แต่ว่าเขา share fileอัีนเดียวนี้จากเครื่องหลักไปอีกเครื่องหนึ่ง
อย่างน้อยที่สุดที่ควรทำก็คือใช้ Harddisk สองตัวที่มีข้อมูลเหมือนกัน ถ้าอันใดอันหนึ่งเสีย ก็ไม่มีปัญหาอะไร (Raid 1 – mirroring) เป็นอย่างแรกที่ผมแนะนำให้เขาทำในตอนนี้
ผมกลับมาบ้านแล้วก็ลองหาข้อมูลเพิ่มว่ามีหนทางอื่น หรือสินค้าอะไรในตลาดที่เราสามารถซื้อมาใช้ได้หรือไม่
ดู ๆ ไปแล้วก็มีบริษัทที่ทำเครื่องที่ไม่ล่มง่าย ๆ อยู่เหมือนกัน ใช้ในโรงพยาบาลหรือหน่วยงานฉุกเฉิน (911 หรือ 191 ที่เมืองไทย) บริษัทนี้ชื่อ Stratus Technologies เขาโฆษณาว่าเครื่องของเขานั้นใช้งานได้ 99.9998% ตลอดเวลาเลยทีเดียว มีเก้าหลังศูนย์เกือบสี่ตัว ระบบของเขาก็แพงน่าดูเหมือนกัน ผมเดาว่าคงเริ่มกัน เกิน $10,000 เครื่อง ftServer ใช้เทคนิคว่ามีทุกอย่างสำรองหมด มี CPU สองตัว มี memoryและชุดจ่ายไฟ สองชุด มี Harddisk มากกว่าสามตัว มี Network card อย่างน้อยสองชุด ชิ้นส่วนหลาย ๆ ชิ้นโดยเฉพาะ harddrive นั้นสามารถเปลี่ยนได้โดยไม่ต้องดับเครื่อง เครื่องคอมพิวเตอร์ hardware แบบนี้ดีตรงที่ว่าเราไม่ต้องติดตั้ง software ให้เป็นระบบกันล่ม (fault-tolerant) การกันนั้นอยู่ที่เครื่องเลย ซึ่งช่วยลดความยุ่งยากในการติดตั้งโปรแกรมไปได้มาก มันเด็ดมากแต่ดู ๆ แล้วก็ยังรู้สึกว่าแพงและใหญ่กินไฟเกินความจำเป็น
ไปดูบน ebay แล้วแม้แต่เครื่องใช้แล้วของ Stratus ก็ยัง $4,000 เครื่อง Server แบบ Rackmount ขนาด 2U ของ Dell หรือ HP เครื่องเก่า ๆ นั้นราคาไม่แพงเท่าไหร่ แต่ต้องซื้อ harddrive เอง เครื่อง Server พวกนี้มีข้อดีก็คือ มี CPU แบบ Xeon สองตัว ติดตั้ง harddrive มากกว่าสองตัวได้ บางรุ่นมีมีชุดจ่ายไฟสองชุด บางรุ่นสามารถถอดและเปลี่ยนชุดจ่ายไฟได้โดยไม่ต้องปิดเครื่อง ต่อเข้า network ได้มากกว่าสองทาง ความทนทานนั้นมีมากกว่าเครื่องคอมตั้งโต๊ะมาก แต่เครื่องพวกนี้ใหญ่ ร้อนและเสียงดัง ควรจะมี rack และห้องคอมพิวเตอร์ปรับอากาศโดยเฉพาะ คงจะไม่เหมาะกันบ้านพักริมลำธารในเมืองท่องเที่ยวสุดหรูเท่าไหร่ พลังการคำนวณมหาศาลจาก Xeon สองตัวรุ่นเก่าก็ไม่ใช่สิ่งจำเป็น แถมยังเปลืองไฟอีกต่างหาก
มาคิด ๆ ต่อดูแล้วก็คิดว่าสิ่งสำคัญที่สุดของระบบเขาก็คือ ฐานข้อมูลที่ใช้ร่วมกันต่างหาก ถ้าเราเอา database file อันนี้ออกมาอยู่ใน Network Attached Storage (NAS) ที่เก็บไฟล์อยู่บนเนตเวอร์ต คราวนี้ถ้าเครื่องใดเครื่องหนึ่งหายไปเขาก็ยังใช้โปรแกรมต่อไปได้ ไม่เลวทีเดียว แต่ปัญหาก็คือถ้าเจ้า NAS ตัวนี้ล่มเสียเองละ อืมม์
แวะผ่านไป Blognone แล้วเจอข่าวว่ากูเกิ้ลเปิดเผย server ให้ดูก็เลยแวะเข้าไปอ่านแล้วก็ทึ่งว่านี่แหละเป็นการออกแบบที่ชาญฉลาดเสียเหลือเกิน เป็นการแก้ปัญหาที่เหมาะสมและราคาไม่แพง และใช้พลังงานไม่มาก คือเครื่องคอมพิวเตอร์นั้นอุปกรณ์ที่เสียบ่อยที่สุดคือ Harddrive (เจอมาไม่ต่ำกว่าสามครั้ง) memory (เจอมาสองครั้ง) power supply (เจอมาสองสามหน) CD/DVD drive (เจอมาสองสามครั้ง) การ์ดจอ (สองหน) mainboard (ไม่เคยเจอเลย นอกจากบน Laptop สามครั้ง) เครื่องของ Google นั้น ออกแบบมาป้องกันอุปกรณ์ที่เสียบ่อยอย่างพอดี ๆ
เครื่อง Server ของ Google มี CPU สองตัว Harddrive สองตัว ใส่ memory แบบ ECC ได้ 8 แผง mainboard รับไฟ 12 V อย่างเดียว มีแบตตอรี่หนึ่งตัว ดูแล้วเหมือนกับธรรมดาแต่ไม่ธรรมดา ที่ผมทึ่งมากที่สุดคือการออกแบบให้แผง mainboard รับไฟ 12 volt แล้วมีแบตตอรี่ไว้จ่ายไฟสำรอง power supply นั้นไม่เสียบ่อย การมีสองตัวจึงเป็นการสิ้นเปลืองค่อนข้างมาก แต่จะไม่มีไฟสำรองเลยก็ไม่ได้ การใช้แบตตอรี่ แล้วออกแบบให้ mainboard รับไฟ 12 v นั้นเหมือนยิงนกทีเดียวได้สองตัว คือได้แบตตอรี่ไว้ แทน UPS (Uninterupted Power Supply) แล้วยังเสมือนมี power supply ชั่วคราวตัวที่สองไปด้วย
เยี่ยมจริง ๆ
ผมเชื่อว่า Harddrive สองตัวคงเป็น Raid 1 ทำให้การภาระในการ backup ลดลง Memory แบบ ECC ทำให้เครื่องเสถึยร ไม่crash บ่อย ๆ และการคำนวณไม่ผิดพลาด มีตั้ง 8 แผงแบบนี้ทำให้ไม่จำเป็นต้องใช้ memory ขนาดใหญ่ที่ราคาแพง สามารถใช้ตัวเล็ก ๆ มาต่อหลาย ๆ ตัวได้ หรืออาจจะเอาไว้เป็นแบบ Redundant คือ memory สองชุดที่เหมือนกันป้องกัน memory เสียก็ได้
CPU นั้นมีทั้ง AMD และ Intel โดยไม่จำเป็นต้องใช้ตัวที่เร็วและแรงที่สุด แต่เน้นว่าได้พลังในการคำนวณเทียบกับการกินไฟแล้วสุงสุด เพื่อประหยัดไฟ ทั้งไฟที่เครื่องกิน และไฟค่าแอร์ที่ทำให้เครื่องเย็น
โอ้โหนี่แหละเป็นเครื่อง Server แบบที่ใ้ช้กระบาลออกแบบจริง ๆ ไม่ใช่ใช้แต่เงินทุ่มเข้าไป ถ้ามีทำเลียนแบบดัดแปลงเมื่อไหร่นี่น่าเอามาใช้ธุรกิจจริง ๆ
หลังจากทึ่งกับเครื่องของ Google แล้วก็ปิ้งขึ้นมาได้ว่าจริง ๆ แล้วที่จำเป็นที่ต้องมีตลอดเวลา (high-availability) ในระบบโรงแรมขนาดเล็กนี้คือ file ฐานข้อมูลอันเดียว เครื่องใดเครื่องหนึ่งจะเสียก็พอทนได้ ถ้าอีกเครื่องยังทำงานได้ปรกติ ผมก็เลยว่าที่เขาต้องการก็คือ NAS (คล้าย ๆ file server) สองตัวโดยตัวแรกมี Raid 1 เป็นอย่างน้อย จะให้หรูก็เป็น Raid 6 แล้วก็ีมี อีกตัวเป็น Backup ของตัวแรกอีกที ตัวนี้ไม่ต้องหรูมากมี harddrive ตัวเดียวก็ได้ แต่ต้องสามารถ failover ขึ้นไปแทน ตัวหลักที่ล่มได้ ในเวลาไม่นาน (ประมาณชั่วโมงนึงพอทนได้)
ผมยังไม่รุ้ว่ามี NAS ในตลาดที่ทำแบบนี้ได้หรือไม่ เลยลองถามไปที่ยี่ห้อที่สนใจดู ก็ปรากฎว่าไม่มี เลยลองถามอีกทีว่าถ้าฉันซื้อเครื่องเหมือนกันสองเครื่องละ ถ้าอันแรกมันเจ๊ง ฉันถอด Harddisk ออกมาแล้วเสียบเข้าเครื่องสำรอง แล้วมันจะวิ่งแทนได้ทันทีหรือเปล่า ก็ไม่มีคนตอบ แต่คิดว่าคงทำได้แต่ทำแบบนี้ก็ใช้เงินมากขึ้น โดยมีอีกเครื่องนึงมาเก็บเอาไว้เท่านั้น อาจจะไม่มีวันต้องใช้เลยก็ได้ แถมยังต้องหาที่เก็บอีก
คิดไปคิดมาแล้วระบบที่เหมาะที่สุดในตอนนี้ก็คือหาเครื่องที่ทนทานหน่อยแล้ววิ่งด้วยฮาร์ดิสด์เหมือนกันสองตัวดีกว่า ถ้าเครื่องเสียก็ให้สอนให้พนักงานรู้จักนำข้อมูลที่ทำสำรองไว้มาใช้งานต่อได้ ดูจะสมเหตุสมผลที่สุด
สรุปก็คือ
1. อย่างแรกที่ต้องทำคือการมีระบบสำรองข้อมูลที่ดี ง่ายที่สุดก็คือมี USB drive หนึ่งอันที่ขนาดใหญ่พอสมควรแล้วก็ backup ทุกอย่างเข้าไปเก็บในนั้น ถ้าไฟล์ใหญ่และเยอะก็หาพวก external harddrive มา backup ก็ได้ ขึ้นนี้ควรทำทุกคนไม่ใช่แต่ธุรกิจโดยเฉพาะไฟล์สุดหวงแหนอย่างเช่นรูปถ่ายกับแฟนตอนที่ยังหวานชื่นที่ไม่อาจกลับมาอีกแล้ว รูปครูบาอาจารย์ ผู้แก่ผู้เฒ่าที่ไม่ได้อยู่กับเราแล้ว ลูกคุณลูกตอนยังน่ารักที่สุด การบ้าน หรือวิทยานิพน์ ทางที่ดีมีสำเนาอีกชุดโดยเขียนลงบน CD หรือ DVD ไว้เลยก็ได้
2. Harddisk เป็นอุปกรณ์ที่เสียบ่อยที่สุดในเครื่องคอมพิวเตอร์ เพราะมีแผ่นต้องวิ่งตลอดเวลา หัวอ่านก็เคลื่อนเข้าเคลื่อนออกโอกาสเสียมีมาก ถ้าอยากให้เครื่องคอมไม่ล่มง่าย ๆ อันดับแรกที่ควรทำเลยคือมี harddisk สองตัวที่มีข้อมูลเหมือนกันอยู่ตลอดยังกับกระจกเงา (RAID 1) ถ้าติดตั้งระบบแบบนี้ drive อันนึงล่มไประบบก็ไปต่อได้ ไม่ต้องมีปัญหาเหมือนระบบของโรงแรมเพื่อนที่ใช้ไม่ได้ไปสองสามวัน
2.1 เดี๋ยวนี้มี harddrive แบบใหม่ที่เรียกว่า SSD (Solid State Drive) ถ้าข้อมูลไม่เยอะ หรือไม่อยากคิดติดตั้ง RAID 1 ก็ให้ลองพิจารณาใช้ drive แบบนี้แทน เนื่องจากทำจากชิบคล้าย ๆ กับเมมโมรี่ของกล้องถ่ายรูป ไม่มีชิ้นส่วนที่ต้องวิ่งไปมา SSD จึงโอกาสเสียน้อยกว่า harddrive แบบธรรมดามาก ข้อเสียคือราคาแพงและการต่อเข้าเครื่องอาจจะประหลาดนิดหน่อย แต่อีกสักพักนึงก็คงจะมีให้เลือกใช้ทั่วไปและราคาถูกลงมา
3. ทุกอย่างก็มีโอกาสเสีย ทางที่ดีก็ซื้อของที่มียี่ห้อ หรือซื้อรุ่นที่ทนทาน ผ่านการพิสูจน์มาแล้วจะดีกว่า เรียกอีกอย่างว่าใช้เครื่องระดับที่เป็น workstation ที่เป็นเครื่องคอมชั้นดี เครื่องพวกนี้ใช้ Mainboard ที่รองรับ ECC RAM ได้ ใช ้ ECC RAM ชั้นดี มี RAID บนเครื่อง CPU ที่ใช้ก็เป็น Server grade เช่น Xeon หรือ Opteron โดยดูตัวอย่าง สเปค ได้จาก Dell Precision Workstation หรือ Apple Mac Pro ผมแนะนำเครื่องแบบ workstaion ไม่ใช่เพราะต้องการพลังความสามารถของมันแต่ต้องการความทนต่างหากดังนี้ถ้าจะซื้อรุ่นที่กำลังจะตกรุ่นก็ใช้ได้ ไม่ต้องใช้รุ่นที่ใหม่ที่สุดแต่อย่างใด
4. ถ้าจะให้แน่นหนาขึ้นมาอีกคราวนี้ต้องมีเครื่องสำรอง ดีที่สุดก็คือเป็นเครื่องรุ่นเดียวกันทุกอย่างใช้แทนกันได้ ถ้าเครื่องใดเครื่องหนึ่งเสีย อีกเครื่องก็ยังใช้งานไ้ด้ ธุรกิจก็ยังไปต่อไ้ด้ ที่อาจจะยากหน่อยก็คือการติดตั้งโปรแกรมให้เข้าถึงข้อมูลชุดเดียวกันพร้อมกันได้อย่างไร ที่ทำ ๆ กันก็ืคือให้มีเครื่องหลักเป็นอีกเครื่องหนึ่งแยกไปต่างหากที่เรียกว่า Server โดยที่เซอร์เวอร์จะเป็นเครื่องที่ทนทานแข็งแรงและได้รับการทะนุถนอมอย่างดีโดยอาจจะเปิดแอร์ให้ทั้งวันหรือมีห้องส่วนตัว มีระบบไฟสำรองจาก UPS ฯลฯ องค์กรที่เริ่มจะมีระบบแบบนี้ัมักจะต้องมีเจ้าหน้าที่ดูแลระบบแล้วละครับ
4. ขึ้นต่อมานี่เิริ่มจะแพงและยุ่งยากแล้ว แต่ถ้าระบบเราใหญ่มีคนใช้เยอะก็จำเป็นต้องทำ มีทางเลือกหลายทาง โดยจะต่อ Server ให้เป็น High Avaibility Cluster ก็ได้ หรือจะซื้อเครื่องที่ทำมาเป็นพิเศษแบบ Stratus Technologies ก็ได้ จะทำเป็นแบบ Co-location ก็ได้ อันนี้ต้องพิจารณาอย่างดีให้เหมาะสมกันรูปแบบของการใช้งาน ถ้าระบบของบริษัทไหนสำคัญระดับนี้แล้ว ส่วนมากก็ต้องมีทีมงานของวิศวะกรระบบ ตรวจสอบดูแล ไม่ใช่ทำกันแบบมือสมัครเล่นแล้ว
Miang wrote,
ถ้างบน้อยไม่ต้องการจ่ายราคาระดับ workstaion ก็เอารุ่นธรรมดานี่แหละแต่เอาแบบต่อ harddrive 2 ตัวเป็น RAID 1 ได้ ผมแนะนำ Dell OptiPlex 755 760 หรือ 960 รุ่นที่เป็น mini tower เท่านั้น ช่วย upgrade เป็น PSU แบบประหยัดไฟด้วยจะช่วยโลกได้มาก ขอบคุณครับ
http://www.dell.com/content/products/productdetails.aspx/desktop-optiplex-760
http://www.dell.com/content/products/productdetails.aspx/desktop-optiplex-960
| Link | April 11th, 2009 at 1:57 AM