前面提到過openstack環境部署及建立虛擬機器的完整過程,然後有時候會發現建立的虛擬機器規格太小,滿足不了業務需求;亦或是虛擬機器規格太大,容易造成資源浪費。
於是就有了線上拉伸虛擬機器規格的需求。所以,今天這裡介紹下在openstack裡建立vm後,怎麼線上調整虛擬機器(雲主機)的大小?
注意一點:
openstack的虛擬機器線上調整大小的原理:
其實就相當於做了一個雲主機在不同宿主機(計算節點)之間的遷移,所以前提是至少需要有兩個計算節點。
如果是單機部署的openstack(即控制節點和計算節點都在一臺機器上),有且只有一個計算節點,那麼是無法完成線上調整虛擬機器大小的。
同時要注意的是:
要在相關遷移雲主機間進行無密碼訪問,由於OpenStack是由Nova元件來管理雲主機,所以需要對Nova使用者進行無密碼訪問。
如上圖中的centos-004這臺雲主機的規格採用的是名為kvm001型別,即2核CPU、4G內容,現在需要將這臺雲主機的規格降為1核2G,即kvm002型別。操作流程如下:
1)修改控制節點和節點節點的nova.conf檔案,新增下面兩行內容:
allow_resize_to_same_host=True
scheduler_default_filters=RetryFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter
2)控制節點上重啟nova相關服務
[root@linux-node1 src]# systemctl restart openstack-nova-api.service openstack-nova-cert.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
3)計算節點上重啟nova服務
[root@linux-node1 nova]# systemctl restart openstack-nova-compute
4)nova賬號的ssh雙向認證關係
下面的操作在雲主機所在計算節點和其他相關遷移雲主機的計算節點上操作。
要清楚的是:
計算節點可能有多臺,但是我們只需要在要調整大小的雲主機所在的計算節點和其他的另外一臺或多臺計算幾點上操作就行,並不是要求所有的計算節點都要操作(全部計算節點都操作也是可以的)
將nova賬號的shell型別改為/bin/bash,即可以使用nova賬號登陸
[root@linux-node1 ~]# cat /etc/passwd|grep nova
nova:x:162:162:OpenStack Nova Daemons:/var/lib/nova:/bin/bash
然後在nova賬號下產生公私鑰
[root@linux-node2 ~]# su - nova
Last login: Thu Nov 17 17:32:54 CST 2016 from linux-node2.openstack on pts/11
-bash-4.2$ ssh-keygen -t rsa
-bash-4.2$ pwd
/var/lib/nova
-bash-4.2$ cd .ssh/
-bash-4.2$ ls
id_rsa id_rsa.pub
將id_rsa.pub拷貝為authorized_keys
-bash-4.2$ cp id_rsa.pub authorized_keys
然後將id_rsa.pub公鑰內容拷貝到其他相關遷移雲主機的計算節點上的/var/lib/nova/.ssh/authorized_keys檔案內,同時也要講對方的公鑰內容拷貝過來,做成雙向信任關係(即雙方在nova賬號下ssh登陸時都不需要輸入密碼)
同時,還要在各計算節點上做nova和root賬號的雙向信任關係。
修改許可權
[root@linux-node1 ~]# cd /var/lib/nova/.ssh/
[root@linux-node1 .ssh]# ll
total 16
-rw-------. 1 nova nova 816 Nov 17 17:32 authorized_keys
-rw-------. 1 nova nova 1679 Nov 17 17:12 id_rsa
-rw-r--r--. 1 nova nova 408 Nov 17 17:12 id_rsa.pub
修改sudo許可權
[root@linux-node1 ~]# visudo
.....
nova ALL=(ALL) NOPASSWD: ALL
最後測試nova賬號間的信任連線,確認ssh無密碼連線!
5)接下來登陸dashboard介面,線上調整雲主機的大小:
選擇目標flavor
點選確認修改尺寸
待調整後,再查詢虛擬機器新的大小規格,就會發現已經更新了。