Migrate-to-small-flavor

Objective

ปัญหาที่ทำให้ไม่สามารถ resize Instance ลงได้ เกิดจากขนาด disk ที่ไม่เท่ากันในแต่ละ Flavor ดังนั้นหากจะ resize ไปยัง instance ที่เล็กกว่า จะต้องใช้การ copy data ไปยังเครื่องใหม่ซึ่งเล็กกว่าแทน

Requirement

  • Linux Administrator level
  • Downtime ขึ้นกับขนาด Data ใน Disk

Step

1.สร้างเครื่องใหม่ปลายทางให้เหมือน Instance ปัจจุบัน

Create > Instances
เลือก base Image และ config ต่างๆให้เหมือนกับเครื่องปัจจุบัน รวมถึงควร set password หรือ key ให้ตรงตามเดิม

2.ปิดเครื่องและเข้า rescue mode ทั้งสอง Instance

recue instance ตัวแรก Instance > <instance_name> > Power > Rescue

recue instance ตัวที่สอง Instance > <instance_name> > Power > Rescue

3.login เข้า rescue mode ทั้งสอง Instance

ssh nc-user@<server_ip>

4.mount partition ซึ่งเก็บ data ไปที่ /mnt ทั้งสอง Instance

โดยปกติ disk ที่เป็น data ของลูกค้าจะอยู่ที่ /dev/vdb partition ที่ 1

mount /dev/vdb1 /mnt

5.ลบ data ***ในเครื่องปลายทาง***

rm -rf /mnt

6.copy data ข้ามเครื่อง

วิธี rsync จากเครื่องต้นทาง

ที่เครื่องปลายทาง ต้อง set password user root และ enable ให้ ssh ได้
แก้ไขไฟล์ /etc/ssh/sshd_config ให้บรรทัด PermitRootLogin yes
และ restart service ของ sshd

***ควรใช้ secure password***

ที่เครื่องต้นทาง

cd /mnt

rsync -av . root@<dest_ip>:/mnt

เช็ค file ที่เครื่องปลายทาง

(Optional) วิธี remote tar จากเครื่องต้นทาง

cd /mnt

tar -cpf – . | ssh nc-user@<dest_ip> ‘sudo tar -C /mnt -xpf -‘

7.ออกจาก rescue

cd /

umount /mnt

Instance > <instance_name> > Power > Unrescue

8.แก้ไข private ip หรือ External IP ถ้าจำเป็น

  • ถ้า application มีการผูกติดกับ External IP ให้ unlink External IP จาก Instance เก่า มา link กับ Instance ใหม่แทน
  • ถ้า application มีการผูกติกกับ Private IP ให้จด MAC address และ IP เก่าไว้ และ Remove port จาก Instance ทั้งสองเครื่อง และมาใส่ Instance ใหม่แทน โดยกำหนด MAC address เดิม และ Private IP เดิม

Was this article helpful?

Related Articles