Definition
Migration คือ การย้ายการทำงานจากเครื่องหนึ่งไปยังอีกเครื่องโดยสามารถทำงานต่อจาก State การทำงานเดิมที่ยังคงไว้ก่อนการทำ migration มีข้อดีคือ เสีย Down Time หรือ เวลาที่ระบบไม่สามารถให้บริการได้ น้อยที่สุดเท่าที่จะเป็นไปได้
ตัวอย่างเช่น การให้บริการ web server หากต้องการทำการ Maintenance ระบบ โดยต้องมีการปิดเครื่อง Server จะทำให้ไม่สามารถให้บริการลูกค้าได้
เราก็ทำการ Migration ระบบไปไว้ที่ Server อีกเครื่องก่อน เพื่อให้สามารถให้บริการ web server ได้ต่อไปโดยที่ผู้ใช้ไม่รู้สึกว่ามีอะไรเกิดขึ้นกับระบบ ส่วน Server เครื่องเดิมก็สามารถปิดเครื่องแล้วทำการ maintance ได้ เมื่อทำเสร็จแล้วจึงทำการ migration กลับมาที่เครื่องเดิมได้
Type of Migration
1. Quick Migration: เป็นการ running state ที่ได้ทำการ saved ไว้ก่อนแล้วบน disk (hibernating the VM), หากเกิด disk failed ขณะทำการเคลื่อนย้ายข้ามเครื่อง จะทำการเรียก saved state ขึ้นมาทำงานต่อ (waking up the VM).
2. Offline Migration: เกิดขึ้นเมื่อทำการปิดระบบก่อนแล้วจึง migration จากเครื่องหนึ่งไปสู่อีกเครื่องหนึ่ง
3. Quick Storage Migration: เป็นการแทนที่การทำงานในโหมด Offline Migration โดยการ running VM สามารถเคลื่อนย้ายจาก host ไปสู่เครื่องอื่นได้ภายใน 2 นาที
4. Live Migration: เป็นกระบวนที่ทาการเคลื่อนย้าย virtual machine จากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งโดยที่ไม่เกิดการ downtime ที่กระทบถึงระบบเน็ตเวิร์คหรือผู้ใช้
Algorithm of Live Migration
1. Migration Request arrives
2. Transfer Memory
3. Stop the VM
4. Transfer VM State
• Each device “transfer” its own state
• Dirty pages (from the last iteration) included
5. Continue the VM
• On remote (B) if migration was successful
• Send (broadcast) an Ethernet packet to announce the new location
• On local host (A) if migration failed
คำสั่งที่ใช้ Qemu monitor commands และ cmd line
- (qemu) migrate [–d]
On remote
-incoming
/usr/bin/kvm –m 512 –hda /images/a.img –incoming stdio
- (qemu) migrate_set_speed
- (qemu) migrate_cancel
- (qemu) info migration
วิธีการทำงานของ Live Migration
ซึ่งจะประกอบด้วย 1 ส่วนที่เป็น configuration และอีก 1 ส่วนที่เป็น “state”.
ณ ตอนนี้ VM ยังคง running อยู่บนon host 1.
ขณะที่ pages กำลังทำการ copied จาก VM ที่ยังคง Running อยู่บน host 1 ไปยัง new VM
ผู้ใช้งานและระบบ network applications ยังคงใช้การทำงานของ VM ที่อยู่บน host 1.ถ้ามีการเปลี่ยนแปลงของ RAM page ในขณะที่ running VM อยู่บน host 1 ภายหลังจากการ copied ไปที่ host 2 ระบบ OS จะทำการเปลี่ยน state จาก clean เป็น dirty. และทำซ้ำไปจนกระทั่ง ทำการ copied all pages จาก host 1 ไปสู่ host 2 และทุก State ถูกเซตค่าเป็น clean.
1. When Starting , During Migration
1. Create Disk Image as qcow2 , assign the name is vm_des.img
3. Using port no : 1234 for Live Migration
5. Changed name of Terminal : Original
6. Changed name of Terminal : Destination
12. Migration
13.Check Status Migration
14. Finish
15. Finish Migration KVM
16. Original is Stop!
17. Destination is Running
Reference :
http://www.aidanfinn.com/?p=10109
http://knowlagecom.blogth.com/
http://www.linux-kvm.org/page/Migration
http://phithak.com/study-kvm-internal-4/comment-page-1
http://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine
http://wiki.qemu.org/Main_Page