一、前言

上一篇文章講了OpenStack的部署和簡單操作,今天介紹一下如何實現(xiàn)虛擬機的Migrate以及Resize。Migrate操作和Resize操作基本上屬于同一種操作,Migrate操作只是Resize操作的一個特例,無需更改虛擬機的配置。

二、操作

2.1 應(yīng)用需求

這兩個需求的應(yīng)用場景如下:

  1. 某臺宿主機不再使用需要將其內(nèi)虛擬機遷出。

  2. 當(dāng)前宿主機內(nèi)虛擬機數(shù)量過多,遷出一部分。理論上這種情況不存在,因為OpenStack在建立虛擬機的時候會考慮這些問題,但是如果新添加了宿主機節(jié)點則有可能出現(xiàn)此問題。

  3. 虛擬機的配置過低,需要提高配置。

2.2 實操

理論上此操作很簡單,只需要在web管理界面中點下按鈕即可。但是我實際測試卻木有反應(yīng),是何道理?檢查日志發(fā)現(xiàn)是因為不能進行從當(dāng)前宿主機到目標(biāo)宿主機的ssh,于是操作失敗。經(jīng)過多次測試發(fā)現(xiàn)如下解決方案。

首先通過ps -ef命令可以發(fā)現(xiàn)nova-compute進程的啟動用戶是stack。所以是stack用戶之間不能進行ssh造成的上述問題。解決方案便是實現(xiàn)宿主機集群內(nèi)所有服務(wù)器兩兩之間的ssh無密碼登錄。(參考https://funcptr.net/2014/09/29/openstack-resizing-of-instances/)

  1. 生成公鑰

切換到stack用戶(以下操作全在stack用戶下),執(zhí)行

ssh-keygen -t rsa
  1. 關(guān)閉host校驗

執(zhí)行

cat << EOF > ~/.ssh/config
Host *
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/nullEOF
  1. 將公鑰拷入.authorized_keys

cat ~/.ssh/id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
  1. 將.ssh復(fù)制到所有主機

scp .ssh youruser@remotehost:~/

當(dāng)然如果當(dāng)前用戶是無密碼的,那么你需要先用有密碼的用戶將.ssh遠程拷貝到此無密碼用戶的根目錄下,然后修改此目錄的權(quán)限為無密碼用戶。當(dāng)然逐臺操作過于麻煩,可以寫腳本如下:

for node in node1 node2 node3 ;do ssh -t $node 'sudo chown -R stack:stack /opt/stack/.ssh';done;

當(dāng)然上述scp也可以寫個腳本一次執(zhí)行。執(zhí)行完如果虛擬機的狀態(tài)不對,可以執(zhí)行

nova reset-state --active <instance>

來激活當(dāng)前主機。

三、總結(jié)

以上便是解決Migrate以及Resize無法正常操作的方法,歡迎留言交流。天太熱,今天就不喝雞湯了。


作  者:魏守峰 
Email:772920866@qq.com 

出處:http://www.cnblogs.com/shoufengwei/ 

本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載、交流,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接。如果覺得本文對您有益,歡迎點贊、歡迎探討。

http://www.cnblogs.com/shoufengwei/p/7161812.html