Clone Zilla - OpenSource Clone System

ก่อนจะ Update กัน ก็จะเกริ่น เนื้อหาเคร่า ๆ กันก่อน

client 192.168.200.4 (00:23:54:de:9f:f7) finished cloning.
Stats: Multicast restored 2009-01-26-15-img,
/dev/sda1, success, 6713 MB, 2.370 mins, 2832.0 MB/min;
/dev/sda5, success, 1151 MB, .445 mins, 2580.0 MB/min;

ตัวอย่าง ประิสิทธิภาพการ Clone ด้วย Clone Zilla บน Network Gigabit เครื่องเดียว (เฉลี่ย ประมาณ 2.5G ต่อนาที)

Client 192.168.200.4 (00:23:54:de:9f:f7) finished cloning.
Stats: Multicast restored 2009-01-26-15-img,
/dev/sda1, success, 6713 MB, 4.031 mins, 1662.0 MB/min;
/dev/sda5, success, 1151 MB, 1.449 mins, 792.0 MB/min;

ตัวอย่าง ประสิทธิภาพการ Clone ด้วย Clone Zilla บน Network 10/100 เครื่องเดียว (เฉลี่ย ประมาณ 1G ต่อนาที)

ระบบ OCS หรือ Clone Zilla

เป็นระบบการ Clone HDD โดยใช้ Linux และโปรแกรม DRBL (Diskless Remote Boot in Linux)

ซึ่งทุกอย่างเป็น OpenSource และที่สำคัญคือ ฟรี ไม่มีค่าลิขสิทธิ์ให้ปวดหมอง ไม่ต้องแอบใช้แบบหลบๆซ่อนๆ

สามารถ Clone ได้ทั้ง Windows , Linux , และอื่น ๆ แม้กระทั่ง HDD ที่ต่อ RAID อยู่ก็ตาม

ใช้ระบบ Boot ผ่าน Network ไม่จำเป็นต้องใช้ CD-ROM หรือ USB Flash Drive

คู่มือการใช้งานตอนนี้ผมกำลังเขียนอยู่มีทั้งหมด 6 ตอน

1. ขั้นตอนการติดตั้ง OCS
2. ขั้นตอนการอัพเดท OCS
3. ขั้นตอนการคอนฟิก OCS
4. ขั้นตอนการสร้าง Image
5. ขั้นตอนการจ่าย Image แบบ Unicast เครี่องเดียว
6. ขั้นตอนการจ่าย Image แบบ MultiCast หลายเครื่องพร้อมกัน

ก่อนจะให้อัพเดทหรือโหลดไปใช้ จะต้องทำความเข้าใจกับระบบก่อน จะได้้มองเห็นภาพการทำงานได้ถูกต้องเวลาเกิดปัญหา

จะได้ทราบสาเหตุ และแก้ปัญหาได้ถูก

ก่อนอื่น จะต้องทำความเข้าใจโครงสร้างของ HDD กันก่อน

ใน HDD 1 ลูกนั้น จะประกอบด้วย 3 ส่วน คือ
1. Master Boot Record หรือ MBR หรือ Boot Sector หรือ Sector 0 เป็นต้น จะทำหน้าที่ Boot เข้าสู่ OS
2. Partition Table เป็นส่วนที่ทำหน้าที่แบ่งส่วนของข้อมูลใน HDD หรือพูดง่าย ๆ คือ แบ่งพื้นที่ของแต่ละ Drive
3. Data หรือข้อมูลที่อยู่ในแต่ละ Partition หรือในแต่ละ Drive ที่เราแบ่งไว้

ยก ตัวอย่างเช่น HDD ขนาด 160G เราทำการแบ่ง Drive C ไว้ 30G เพื่อลง Windows และแบ่ง Drive D ไว้อีก 130G ลงเกมส์ โดยที่ Drive C มีข้อมูลอยู่ประมาณ 15G และ Drive D มีข้อมูลอยู่ประมาณ 60G เป็นต้น

เราจะได้ว่า

1. จุดเริ่มต้นของ HDD ขนาด 160G เราจะเรียกว่า Master Boot Record
2. Patition Table จะเก็บข้อมูลบอกว่า HDD มี 2 Partition โดย Partition แรกขนาด 30G และ Partitionสอง ขนาด 130G
3. ข้อมูลของ Partition แรกจะมีขนาด 15G และข้อมูลใน Partition สองจะมีขนาด 60G

เมื่อเราเข้าใจโครงสร้างของ HDD แล้ว ต่อไปเราก็ต้องทำความเข้าใจในเรื่องของการอ้างอิงใน Linux

สำหรับ Linux นั้น จะมอง HDD แตกต่างไปจาก Windows

Windows จะมอง Partition ต่าง ๆ เป็น Drive เช่น Drive C: , D: , E: เป็นต้น

แต่สำหรับ Linux นั้นจะมอง HDD เป็น device ชื่อ /dev/sda , /dev/sdb , /dev/sdc ไปเรื่อยๆ ตามจำนวน HDD

ส่วน Partition นั้น Linux จะมองเป็น /dev/sda1 , /dev/sda2 , /dev/sda3 เป็นต้น

เมื่อทำความเข้าใจเรื่อง HDD กันเรียบร้อยแล้ว ต่อไปก็มาทำความเข้าใจเรื่อง Network กัน

คำว่า UniCast , BroadCast , MultiCast เป็นอย่างไร มีผลดีผลเสียอย่างไร

UniCast คือ การรับส่งข้อมูลระหว่าง ต้นทาง 1 เครื่อง ไปยังปลายทาง 1 เครื่อง

MultiCast คือ การรับส่งข้อมูลระหว่าง ต้นทาง 1 เครื่อง ไปยังกลุ่มของปลายทาง (อาจจะ 1 เครื่องหรือหลายเครื่องก็ได้)

BroadCast คือ การรับส่งข้อมูลระหว่าง ต้นทาง 1 เครื่อง ไปยังทุก ๆ เครื่องในเครือข่าย

ถามว่า เจ้าคำ 3 คำนี้ มาเกี่ยวข้องกับการ Clone ของเราอย่างไร

อย่างแรกก็คือ ในการ Save Image เราจะต้องดึงข้อมูลจากเครื่องต้นฉบับ 1 เครื่อง ไปยัง Server 1 เครื่อง เราจะเรียกว่า

UniCast

สำหรับการ Clone จาก Server ไปยังเครื่องเดียวในร้าน จะเรียกว่า UniCast เหมือนกัน

ถ้าเป็นการ Clone จาก Server ไปยังหลาย ๆ เครื่อง แต่ไม่ใช่ทั้งหมด จะเรียกว่า MultiCast

ถ้าเป็นการ Clone จาก Server ไปยังทุก ๆ เครื่องในร้านที่มีอยู่ทั้งหมด จะเรียกว่า BroadCast

การ Clone แบบ CloneZilla จะต้องเปิด Service อะไรบ้างบน Server และการทำงานเริ่มต้นจนจบเป็นอย่างไร


ในการ Clone นั้น เครื่องลูกข่ายจำเป็นจะต้องรองรับการ Boot ผ่าน Network หรือใน Bios จะเรียกว่า ROM Boot

หรือ PXE Boot หรือ Network Boot แล้วแต่ ให้ทำการ Enable Function นี้ขึ้นมา เพื่อทำการ Boot (ส่วนมากแล้ว

Function นี้จะติดมากับ LAN Onboard เกือบทุกบอร์ดอยู่แล้ว) เท่าที่ทดสอบก็สามารถใช้ได้ทุก Chipset ไม่ว่าจะเป็น

Intel , Nvidia , SIS , Realtek , Marvell ทั้ง 10/100 และ Gigabit ถ้า Linux มองเห็น Driver ก็สามารถใช้งานได้

Linux ตัวที่ใช้ Boot ก็จะเป็น Ubuntu Version 8.10 เป็นตัวเดียวกับที่ใช้บน Server เมื่อทำการบูตแล้ว ก็จะพบกับ

Menu ที่เป็น Graphics ซึ่งเมนูเหล่านี้ ก็จะถูกกำหนดมาจาก Server ว่าจะเป็นการ Clone แบบไหน


Service ที่ใช้ ก็มีค่อนข้างหลายตัว ได้แก่ DHCPD , TFTPD , NFS , NIS เป็นต้น
Tools ที่ใช้ ก็มีอีกหลายตัวเหมือนกัน ได้แก่ ntfsclone , gzip , udpcast , sfdisk , clonezilla เป็นต้น

ฟังดูแล้ว เหมือนจะยากเลย แต่การติดตั้งต่าง ๆ จะเป็นระบบ Script จัดการ Config ทุกอย่างให้เองหมดอัตโนมัติ


วิธีการใช้งาน ก็จะมีอยู่ด้วยกัน 2 อย่างคือ การ Save-Image และ Restore Image

Save-Image ก็คือ การดึงไฟล์ต้นฉบับ จากเครื่องใดเครื่องนึงในร้าน มาเก็บไว้ใน Server
จะสามารถทำได้ 2 แบบ คือ
- Save-Disk-Image คือการ ดึง Image จาก Disk ทั้งลูก เช่น /dev/sda , /dev/sdb , /dev/sdc เป็นต้น
- Save-Partition-Image คือการ ดึง Image จาก Partition เช่น /dev/sda1 , /dev/sda2 , /dev/sda5 เป็นต้น

Restore-Image ก็คือ การ Clone ต้นฉบับ ไปยังเครื่องลูก
ก็จะมี 2 แบบ 3 วิธี
- Restore-Disk คือการ Clone ทั้ง Disk
- Restore-Partition ก็คือการ Clone เฉพาะ Partition


3 วิธีคือ
- UniCast ก็คือ Clone แค่เครื่องเดียว
- MultiCast ก็คือ Clone แบบหลายเครื่อง (จะต้องกำหนดจำนวนเครื่อง เมื่อเครื่องลูก connect มาครบ ก็จะเริ่ม Clone)
- BroadCast ก็คือ Clone ทั้งหมด (จะต้องกำหนดจำนวนเครื่อง เมื่อเครื่องลูก connect มาครบ ก็จะเริ่ม Clone)


ภาพตัวอย่างหน้าตาตอน Save Image (รันบน Virtual Box)

เมื่ออ่านและทำความเข้าใจแล้ว ก็สามารถโหลดคู่มือการติดตั้งและใช้งาน นำไปทดสอบกันดูได้ครับ

http://www.hadyaiinternet.com/datasheet/CloneZilla.pdf

โพสต์ยอดนิยมจากบล็อกนี้

I miss you all กับ I miss all of you ต่างกันอย่างไร

ปัญหาและเฉลยวิชาธรรม นักธรรมชั้นตรี สอบในสนามหลวง วันอังคาร ที่ ๒๙ กันยายน พ.ศ.๒๕๕๒

ปัญหาและเฉลยวิชาอนุพุทธประวัติ นักธรรมชั้นโท สอบในสนามหลวง วันอาทิตย์ ที่ ๒๐ พฤศจิกายน พ.ศ. ๒๕๔๘