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 เดิม