㈜유미테크
OpenStack 인스턴스 Resize
목차
• SSH Key 설정
• Horizon을 통한 인스턴스 Resize
• CLI 환경에서 커맨드를 통한 인스턴스 Resize
2
SSH Key 설정
• OpenStack에서 생성된 인스턴스의 자원크기를 변경할때, 다음과 같은 요구사항이 있다.
– 다른 compute node에 SSH로 인증없이 로그인 가능 (public key authentication)
– 사용가능한 shell(/bin/bash) 지정: ubuntu 패키지는 /bin/false로 설정하고 있음.
– known_hosts에 대상 compute 호스트 등록
• 위의 요구사항에 만족하는지 확인하기 위해 SSH로 다른 compute node에 접속해본다.
– 위와 같이 password를 묻는 화면이 뜬다면, SSH Key설정을 해야한다.
3
~$ ssh 100.100.100.113
stack@compute3 password : _
SSH Key 설정 (계속)
• Controller node에서 SSH key를 생성한다.
• 생성된 key의 권한을 설정한다.
– authorized_keys와 known_hosts은 없을수도 있다.
4
~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/stack/.ssh/id_rsa) : <Enter>
Enter passphrase (empty for no passphrase) : <Enter>
Enter same passphrase again : <Enter>
Your identification has been saved in /home/stack/.ssh/id_rsa.
Your public key has been saved in /home/stack/.ssh/id_rsa.pub.
The key fingerprint is:
0b:fa:3c:b8:73:71:bf:58:57:eb:2a:2b:8c:2f:4e:37 stack@contoller
~$ chmod 700 ~/.ssh
~$ chmod 600 ~/.ssh/id_rsa
~$ chmod 644 ~/.ssh/id_rsa.pub
~$ chmod 644 ~/.ssh/authorized_keys
~$ chmod 644 ~/.ssh/known_hosts
SSH Key 설정 (계속)
• 생성된 key를 각 Compute node별로 전송한다.
– 위의 과정을 Compute node 별로 반복한다.
• 각 Compute node에서 public key를 ‘authorized_keys’로 설정하고, private key를 .ssh로 복사한다.
– 위의 과정을 Compute node 별로 반복한다.
5
~$ scp $HOME/.ssh/id_rsa [email protected]:id_rsa
id_rsa 100% 395 0.4KB/s 00:00
~$ scp $HOME/.ssh/id_rsa.pub [email protected]:id_rsa.pub
id_rsa.pub 100% 395 0.4KB/s 00:00
┗ 전송하려는 compute node의 IP
┗ 전송하려는 compute node의 IP
~$ cat $HOME/id_rsa.pub >> $HOME/.ssh/authorized_keys
~$ cp $HOME/id_rsa $HOME/.ssh/id_rsa
SSH Key 설정 (계속)
• SSH로 각 Compute node간에 password 없이 접속이 되는지 확인한다.
– 위와 같이 별도의 password를 입력하지 않아도 해당 compute node로 접속이 가능하다면 SSH key설정은 완료되었다.
6
~$ ssh 100.100.100.113
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic x86_64)
* Documentation: https://help.ubuntu.com/
568 package can be updated.
233 updates are security updates.
Last login: Thu Jul 31 11:56:43 2014 from compute1
stack@compute3:~$ _
SSH Key 설정 (계속)
• OpenStack에서도 SSH key를 이용하여 migration이 가능하도록 설정한다.
– 위의 과정을 각 Compute node별로 반복한다.
7
~$ mkdir -p /opt/stack/data/nova/.ssh
~$ cp $HOME/id_rsa /opt/stack/data/nova/.ssh/id_rsa
~$ cat $HOME/id_rsa.pub /opt/stack/data/nova/.ssh/authorized_keys
~$ echo ‘StrictHostKeyChecking no’ >> /opt/stack/data/nova/.ssh/config
Horizon을 통한 인스턴스 Resize
• resize할 인스턴스에서 ‘more->인스턴스 크기 변경(Resize Instance)’를 선택한다.
8
Horizon을 통한 인스턴스 Resize (계속)
• 변경할 flavor을 선택한뒤, ‘크기변경(Resize)’버튼을 누른다.
9
Horizon을 통한 인스턴스 Resize (계속)
• resize가 진행되면서 해당 인스턴스의 상태가 변하는 것을 확인 할 수 있다.
10
Horizon을 통한 인스턴스 Resize (계속)
• resize가 진행되면서 migration이 이루어지기 때문에, 하이퍼바이저에서 자원사용량이 변하는 것을 확인할 수 있다.
• migration 되는 하이퍼바이저는 scheduler에 의해 선택된다.
11
Horizon을 통한 인스턴스 Resize (계속)
• resize가 끝나면, ‘확인(Confirm)’ 또는 ‘되돌리기(Revert)’ 설정을 통해 최종적으로 resize를 마무리한다.
12
Horizon을 통한 인스턴스 Resize (계속)
• resize후, 인스턴스의 크기가 변경된 것을 확인 할 수 있다.
13
CLI 환경에서 커맨드를 통한 인스턴스 Resize
• 인스턴스 Resize
– nova resize --poll <server> <flavor>
14
~$ cd ~/devstack
~/devstack$ source openrc admin demo
~/devstack$ nova resize --poll test1_ns test
Server resizing… 0% complete
~$ cd ~/devstack
~/devstack$ source openrc admin demo
~/devstack$ nova resize --poll test1_ns test
Server resizing… 100% complete
Finished
~/devstack$
CLI 환경에서 커맨드를 통한 인스턴스 Resize (계속)
• nova list로 인스턴스 상태 확인
• Resize된 Flavor로 confirm
– nova resize-confirm <server>
• Resize되기 전의 Flavor로 revert
– nova resize-revert <server>
15
~/devstack$ nova resize-confirm test1_ns
~/devstack$ nova resize-confirm test1_ns
~/devstack$ nova list +--------------------------------------+----------------------+---------------+------------+-------------+------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+----------------------+---------------+------------+-------------+------------------+
| f8831b48-15cd-4b84-b024-811e08c1968c | cirros_compute1_net1 | SHUTOFF | - | Shutdown | net1=10.10.10.21 |
| f27d52e8-6dd3-4c87-8596-fa877c96d6cb | cirros_compute2_net2 | SHUTOFF | - | Shutdown | net2=11.11.11.21 |
| e21e7542-db00-4205-aa42-d05cbbca35da | cirros_compuet3_net3 | SHUTOFF | - | Running | net3=12.12.12.4 |
| 075e796c-17ac-4672-b9c1-82912bf6359b | test1_ns | VERIFY_RESIZE | - | Running | net2=11.11.11.31 |
| 211daa8e-6bc7-48d9-8a79-731a16d63041 | test2_ns | ACTIVE | - | Running | net2=11.11.11.32 |
| 3468d2ff-3975-4199-be11-4b54291e3595 | test3_ns | ACTIVE | - | Running | net2=11.11.11.33 |
| e7e4cad3-226b-48ff-9fb3-decdef764af9 | ubuntu_compute1_net1 | ERROR | - | Shutdown | net1=10.10.10.22 |
+--------------------------------------+----------------------+---------------+------------+-------------+------------------+
CLI 환경에서 커맨드를 통한 인스턴스 Resize (계속)
• nova show 커맨드를 통한 인스턴스의 flavor 확인
16
~/devstack$ nova show test1_ns
+--------------------------------------+----------------------------------------------------------+
| Property | Value |
+--------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
…
| config_drive | |
| created | 2014-07-31T07:58:47Z |
| flavor | custom (1ba7fe93-4d97-48f3-80dd-f6bf6ea4c15c) |
| hostId | 4561a98e0a99bb43a84b7ea5ebedb27d7d015ff9970f4963cad31592 |
| id | 075e796c-17ac-4672-b9c1-82912bf6359b |
| image | cirros-0.3.2-x86_64-uec |
…
~/devstack$ nova show test1_ns +--------------------------------------+----------------------------------------------------------+
| Property | Value |
+--------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
…
| config_drive | |
| created | 2014-07-31T07:58:47Z |
| flavor | test(e5deffd1-a64d-4cfe-ae61-cffa914fe43e) |
| hostId | 4561a98e0a99bb43a84b7ea5ebedb27d7d015ff9970f4963cad31592 |
| id | 075e796c-17ac-4672-b9c1-82912bf6359b |
| image | cirros-0.3.2-x86_64-uec |
…