การใช้หลาย Server
การใช้งานหลายเซิร์ฟเวอร์ในกรณีที่เครื่องลูกมีสเปคเหมือนๆ กัน สามารถทำได้โดยการสำเนาไฟล์ image จากเซิร์ฟเวอร์หนึ่ง ไปยังอีกเซิร์ฟเวอร์หนึ่ง
อย่างไรก็ดีเนื่องจากการสำเนาไฟล์ Image อาจจะทำไม่ได้ในทางปฏิบัติ เพราะไฟล์ Image มีขนาดใหญ่มาก ดังนั้นอีกวิธีที่จะทำให้สามารถใช้งานหลายเซิร์ฟเวอร์ได้ก็คือ การสำเนาไฟล์ปรับปรุง image (ที่ระบบได้สำรองไว้โดยอัตโนมัติ) ไปทำการปรับปรุงเซิร์ฟเวอร์อื่น ทั้งนี้จะต้องมั่นใจว่าไฟล์ Image ของทั้งสองเครื่องเหมือนกันทุกประการก่อนที่จะนำไฟล์ปรับปรุง image จากเครื่องหนึ่งไปปรับปรุงไฟล์ image อีกเครื่องหนึ่ง
ในที่นี้จะใช้วิธีปรับปรุง image ที่เครื่องใดเครื่องหนึ่งก่อนเสมอ (ซึ่งจะเรียกว่าเครื่องหลัก) จากนั้นจึงนำเอาไฟล์ปรับปรุง image ไปปรับปรุงในเครื่องอื่น (เครื่องรอง)
เนื้อหา
วิธีปรับปรุงไฟล์ Image ในเครื่องรอง
ในขั้นตอนแรก ให้ทำการปรับปรุงไฟล์ Image ของเครื่องหลักตามขั้นตอนปกติ จากนั้นจึงสำเนาไฟล์ CoW ที่ระบบได้สำรองไว้ออกมา
จากนั้นหยุดระบบที่เครื่องรอง แล้วนำไฟล์ CoW นี้ไปทับไฟล์ CoW ของเครื่องลูกเครื่องใดเครื่องหนึ่ง แล้วเริ่มระบบในเครื่องรอง และสั่งให้ปรับปรุงไฟล์ Image จากไฟล์ CoW ที่นำมา
ในการปรับปรุงไฟล์ Image ที่เครื่องรอง ควรจะตรวจสอบว่าข้อมูลตรงกับเครื่องหลักหรือไม่ ทั้งไฟล์ CoW ที่นำมาปรับปรุง และไฟล์ Image หลังจากปรับปรุงแล้ว
ขั้นตอนการทำงาน
การนำไฟล์ CoW ออกมาจากเครื่องหลัก
การนำไฟล์ CoW ออกมาจากเครื่องหลัก สามารถทำได้หลายวิธี เช่น การนำ USB Drive ไปเสียบที่เครื่องเซิร์ฟเวอร์หลัก, การดาวน์โหลดไฟล์จากเครื่องเซิร์ฟเวอร์หลักมายังเครื่องที่ใช้งาน หรือการส่งไฟล์จากเครื่องเซิร์ฟเวอร์หลักไปยังเครื่องเซิร์ฟเวอร์รองโดยตรง
การนำ USB Drive ไปเสียบที่เครื่องเซิร์ฟเวอร์หลัก
การดาวน์โหลดไฟล์มายังเครื่องที่ใช้งาน
กรณีที่ต้องการดาวน์โหลดไฟล์ CoW มายังเครื่องที่ใช้งาน สามารถทำได้โดยผ่านทางโพรโตคอล SFTP ซึ่งสามารถใช้โปรแกรมที่รองรับโพรโตคอล SFTP เช่น FileZilla, WinSCP เป็นต้น โดยในที่นี้จะใช้โปรแกรม FileZilla
เมื่อเรียกโปรแกรม FileZilla ขึ้นมาแล้ว ให้ระบุข้อมูลดังนี้
Host | sftp://192.168.2.254 |
---|---|
Username | root |
Password | <รหัสผ่านของ root ที่กำหนดตอนติดตั้ง Slackware> |
Port | 22 |
จากนั้นคลิกปุ่ม Quick connect โปรแกรมจะบอกว่าเป็นเซิร์ฟเวอร์ใหม่ที่ไม่เคยรู้จักมาก่อน ให้คลิกปุ่ม Ok
เมื่อ login เรียบร้อย โปรแกรมจะแสดงข้อมูลในเครื่องเซิร์ฟเวอร์ (Remote site) ทางกรอบด้านขวา และข้อมูลในเครื่องที่ใช้งาน (Local site) ทางกรอบด้านซ้าย โดยที่ Remote site จะมีค่าเป็น /root ให้แก้ค่า Remote site เป็น /cow แล้วกดปุ่ม Enter โปรแกรมจะแสดงข้อมูลในไดเรกทอรี /cow
จากนั้นสามารถ drag ไฟล์ CoW ที่ต้องการมา drop ในกรอบ Local site ได้ ซึ่งโปรแกรมจะทำการสำเนาไฟล์ทันที โดยจะใช้เวลาสักครู่ตามขนาดของไฟล์ และความเร็วของระบบแลน
การนำไฟล์ CoW ไปใส่ไว้ในเครื่องรอง
การนำไฟล์ CoW ไปใส่ไว้ในเครื่องรอง ก็มีขั้นตอนตรงข้ามกับการดาวน์โหลดไฟล์ CoW จากเครื่องหลักลงมา แต่แทนที่จะใช้ SFTP เพื่อ connect ไปยังเครื่องหลัก ก็เปลี่ยน connect ไปยังเครื่องรองแทน และแทนที่จะสำเนาไฟล์ CoW จากเซิร์ฟเวอร์มายังเครื่องที่ใช้งาน ก็เปลี่ยนเป็นสำเนาไฟล์ CoW (ที่สำเนามาจากเครื่องหลัก) ไปยังเซิร์ฟเวอร์แทน ทั้งนี้จะต้องสำเนาไปยังชื่อชั่วคราวก่อน เพราะในขณะที่ระบบ Diskless บนเครื่องเซิร์ฟเวอร์รองยังทำงานอยู่ เราจะไปทับไฟล์ CoW ที่กำลังใช้งานอยู่ไม่ได้ อีกทั้งควรมีการตรวจสอบก่อนว่าไฟล์ CoW ที่สำเนามานั้นตรงกับต้นฉบับทุกประการหรือไม่
การสำเนาไฟล์โดยตรงระหว่างเครื่องหลัก และเครื่องรอง
หากเซิร์ฟเวอร์หลัก และเซิร์ฟเวอร์รองเชื่อมต่อกันผ่านแลน หรือผ่านอินเทอร์เน็ต ก็สามารถส่งไฟล์ CoW จากเซิร์ฟเวอร์หลัก ไปยังเซิร์ฟเวอร์รองได้โดยตรง ซึ่งสามารถทำได้หลายวิธี โดยในที่นี้จะใช้คำสั่ง rsync ซึ่งจะมีข้อดีคือ
- หากการดาวน์โหลดถูกหยุดในขณะที่ยังสำเนาไม่เสร็จ ก็สามารถดาวน์โหลดข้อมูลต่อได้
- สามารถบีบอัดข้อมูลในระหว่างการสำเนาได้ ซึ่งจะมีประโยชน์สำหรับการสำเนาไฟล์ CoW เป็นอย่างมาก
- มีการตรวจสอบความถูกต้องของข้อมูล
ในที่นี้จะสำเนาไฟล์ /cow/net01.cow จากเครื่องหลักซึ่งมีหมายเลขไอพี 192.168.1.1 ไปเป็นไฟล์ /cow/update.cow บนเครื่องรอง โดยเรียกคำสั่งดังนี้ที่เครื่องรอง
rsync -avzPS 192.168.1.1:/cow/net01.cow /cow/update.cow
เมื่อเรียกคำสั่งนี้แล้ว โปรแกรมจะถามพาสเวิร์ดของ root บนเครื่องหลัก และเมื่อใส่พาสเวิร์ดถูกต้อง โปรแกรมก็จะสำเนาข้อมูลโดยจะแสดงความเร็ว และเวลาคงเหลือโดยประมาณ
สำหรับพารามิเตอร์มีความหมายคร่าวๆ ดังนี้
- -a
- สำเนาไฟล์ในแบบ archive คือมีพารามิเตอร์เหมือนกับต้นฉบับทุกประการ (เช่น เจ้าของไฟล์, วันที่ของไฟล์, สิทธิของไฟล์, ฯลฯ)
- -v
- แสดงสถานะการทำงานโดยละเอียด
- -z
- บีบอัดไฟล์ขณะส่งข้อมูลด้วย ซึ่งจะมีประโยชน์ในกรณีส่งไฟล์ผ่านทางอินเทอร์เน็ต
- -P
- แสดงสถานะการทำงาน และหากมีไฟล์ปลายทางที่สำเนาค้างไว้ ก็ให้สำเนาต่อจากเดิม (โดยตรวจสอบด้วยว่าข้อมูลเดิมถูกต้องหรือไม่)
- -S
- จองเนื้อที่เฉพาะที่ใช้งานจริงๆ ซึ่งจะมีประโยชน์สำหรับไฟล์ CoW เพราะมักจะใช้งานไฟล์เพียงบางส่วนเท่านั้น
การตรวจสอบความถูกต้องของไฟล์ CoW
การตรวจสอบความถูกต้องของไฟล์ CoW ในที่นี้จะใช้การคำนวณค่า MD5 ของไฟล์ ซึ่งค่า MD5 ของข้อมูลที่ไม่เหมือนกันจะมีค่าไม่เท่ากัน ทำให้สะดวกในการตรวจสอบ โดยการคำนวณค่า MD5 ของไฟล์ CoW ต้นฉบับในเครื่องหลัก และเมื่อสำเนาไฟล์ CoW ไปยังเครื่องรองเรียบร้อยแล้ว ก็คำนวณค่า MD5 ของไฟล์ ถ้าตรงกันก็แสดงว่าไฟล์ที่สำเนาไปนี้เหมือนกับไฟล์ต้นฉบับ
การคำนวณค่า MD5 ใช้คำสั่งดังนี้
md5sum <ชื่อไฟล์>
เช่น ถ้าต้องการคำนวณค่า MD5 ของไฟล์ /cow/net01.cow ก็สามารถใช้คำสั่งดังนี้
cd /cow md5sum net01.cow
รอสักครู่ก็จะได้ผลลัพธ์ดังนี้ (เนื่องจากโปรแกรมต้องอ่านไฟล์ทั้งหมด จึงใช้เวลาตามขนาดของไฟล์ และความเร็วของดิสก์)
c857330215249d50a09abc303d90224b net01.cow
ให้เปรียบเทียบผลลัพธ์ที่ได้ระหว่างไฟล์ต้นฉบับในเครื่องหลัก และไฟล์ที่สำเนาไปในเครื่องรอง ถ้าตรงกันก็แสดงว่าไฟล์ที่สำเนาไปนี้เหมือนกับไฟล์ต้นฉบับ
ถ้าไม่ตรงกัน ก็จะต้องแก้ไข ซึ่งกรณีสำเนาโดยใช้คำสั่ง rsync ก็สามารถสั่งคำสั่ง rsync ซ้ำได้ โดยระบุพารามิเตอร์ เพื่อให้คำสั่ง rsync ตรวจสอบไฟล์ซ้ำ และสำเนาเฉพาะส่วนที่ไม่ตรงกันเท่านั้น
กรณีสำเนาไฟล์ผ่านเครื่องที่ใช้งานที่เป็นวินโดวส์ ก็สามารถใช้โปรแกรมคำนวณค่า MD5 บนวินโดวส์ก่อนก็ได้ เพื่อจะได้ตรวจสอบว่าการสำเนาไฟล์เริ่มมีปัญหาตอนไหน