YJWANG

Down된 Compute Node에서 인스턴스 수동 Migration 진행하기 본문

60.Cloud/60.OpenStack

Down된 Compute Node에서 인스턴스 수동 Migration 진행하기

왕영주 2021. 12. 10. 17:55

 

 

참고 사이트

https://docs.openstack.org/nova/latest/admin/node-down.html

 

2개의 Compute Node 중에서 1개의 Node가 Down됐다는 가정 하에 진행됩니다. 또한 Instance가 Shared Storage를 사용하고있어야합니다. (Cinder LVM 가능)

root@virt-go-u20-101:~# openstack compute service list --service nova-compute
+----+--------------+-----------------+------+---------+-------+----------------------------+
| ID | Binary       | Host            | Zone | Status  | State | Updated At                 |
+----+--------------+-----------------+------+---------+-------+----------------------------+
| 39 | nova-compute | virt-go-u20-112 | nova | enabled | down  | 2021-12-14T02:45:26.000000 |
| 42 | nova-compute | virt-go-u20-111 | nova | enabled | up    | 2021-12-14T02:52:33.000000 |
+----+--------------+-----------------+------+---------+-------+----------------------------+

 

virt-go-u20-112 에 있는 Instance가 Down됐다는 가정 하에 Migration을 virt-go-u20-111 서버에 진행합니다.

우선 mariadb container에 접속하여 nova 계정으로 nova DB에 접속합니다.

root@virt-go-u20-101:~# docker exec -it mariadb /bin/bash

(mariadb)[mysql@virt-go-u20-101 /]$ mysql -u nova -p
Enter password: 

MariaDB [(none)]> use nova;

 

DB접속 암호는 /etc/kolla/passwords.yml 파일을 사용합니다.

root@virt-go-u20-101:~# cat /etc/kolla/passwords.yml  |grep nova_database
nova_database_password: vOtXlrvzjMiETltYlQLyvnb6xvXjx1hmd2C4TMde

 

[Option] 위 명령을 쉽게 아래와 같이 사용할 수 있습니다.

docker exec -it mariadb /usr/bin/mysql -u nova -p`grep 'nova_database_password' /etc/kolla/passwords.yml |awk '{print $2}'`
use nova;

 

이후 Instance 값을 변경합니다.

MariaDB [nova]> SELECT * FROM instances WHERE uuid = "0834c330-14da-4511-85d5-ec55719c291e";

MariaDB [nova]> UPDATE instances SET host = 'virt-go-u20-111' WHERE uuid = '0834c330-14da-4511-85d5-ec55719c291e';
Query OK, 1 row affected (0.011 sec)
Rows matched: 1  Changed: 1  Warnings: 0

 

이후 Instance를 stop 후 start하면 정상적으로 Migration이 진행됩니다.

# openstack server stop 0834c330-14da-4511-85d5-ec55719c291e
# openstack server start 0834c330-14da-4511-85d5-ec55719c291e

 

[Option] Instance 상태가 powering-off 등 특정 상태에 Stuck 되어 있다면 아래 쿼리를 참고하시기 바랍니다.

### Instance 상태 강제로 Shutoff로 전환
UPDATE instances SET power_state=4 WHERE uuid = 'de8ae499-a002-4246-a648-200f1318c132';
UPDATE instances SET vm_state="stopped" WHERE uuid = 'de8ae499-a002-4246-a648-200f1318c132';

### Instance task 상태 초기화하기
UPDATE instances SET task_state=NULL WHERE uuid = 'de8ae499-a002-4246-a648-200f1318c132';
반응형