CloudStack 4.1.0安裝詳解 - 2、KVM KVM(kernel-based Virtual Machine)是一個開源的系統虛擬化平台,自Linux 2.6.20之後已整合到Linux核心中,因它使用Linux自身的調度器進行管理,所以相對於的虛擬化解決方案而言,其核心源碼很少也更加的穩定。 CloudStack支援與多種虛擬化解決方案的整合。 CloudStack+KVM是最佳的黃金組合!他們都功能強大且免費,你可以毫無顧忌地隨意部署安裝而不必害怕有人找你要授權費。KVM一直以來沒有好的免費的叢集管理工具,現在加上CloudStack後,如虎添翼,比起VCenter、XenCenter這類強力商業軟體來講也毫不遜色。 今天我們來主要介紹CloudStack受控端為KVM節點時的安裝方法。鑒於網上文章一大抄,很多內容都是裝來裝去一大堆東西,看觀們一會就暈了,根本不瞭解為什麼裝這些程式,裝來是幹什麼的。這回呢,我會把每一步說明儘可能詳細一些,外加我多次重裝後得到的經驗和教訓,希望能讓後來者可以少走些彎路。 一、環境檢測KVM虛擬化需要硬體的支援,因此首先需要檢查下你的伺服器是否可以支援它,如果這步都過不去的話,那麼下面的內容就不必再看了。 檢查方法: 1egrep '^flags.*(vmx|svm)' /proc/cpuinfo如果執行後能顯示出東西,那麼恭喜你,可以跟我繼續啦。Let’s go! 二、安裝KVM相關組件CentOS直接提供KVM程式源,直接安裝就是了。 1yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager libvirt vconfig得益於Linux核心的支援,KVM相關包都不大,這步應該可以很快完成。 裝好後為保證管理節點可以正常調用,還需要開放相關連接埠。 vi /etc/libvirt/libvirtd.conf 去掉如下內容的注釋: 1listen_tls = 02listen_tcp = 13tcp_port = "16509"4auth_tcp = "none"5mdns_adv = 0vi /etc/sysconfig/libvirtd 1LIBVIRTD_ARGS="--listen"vi /etc/libvirt/qemu.conf 1vnc_listen = 0.0.0.0現在,可以啟動虛擬機器服務啦: 1service libvirtd restart測試一下是否成功: 1lsmod | grep kvm三、安裝NTP時間同步管理節點會通過各種協議與受控節點通訊,為了確保安全,受控節點接到命令後會進行一系列的校正,如果兩機的時間不同步的話,會導致命令拒絕執行。因此,最簡單的辦法就是所有的機器都安裝 NTP服務,自動完成時間同步。 當然,如果你可以保證兩機時間相差不大的情況下,此步可以忽略。 安裝方法 1yum install ntp四、設定主機名稱CloudStack管理節點添加主機時要擷取受控端本機名稱,如無法正確擷取會導致無法正常添加主機,Agent啟動時也會報一大堆的錯。 運行以下命令檢查: 1hostname --fqdn如無正常返回,請編輯 /etc/hosts 檔案,添加主機ip對應的名稱。如: 192.168.19.160 kvm1.cloudstack.comvi /etc/sysconfig/network 將 HOSTNAME= 改為同你剛設定的一樣。 編輯完後立即生效。如果還不成的話,重啟下伺服器應該就會好了。 注意:在CloudStack中添加受控機時,會自動將名稱代入。因此千萬別偷懶,一定要為每台機器設定不同的名稱,否則你將會在管理後檯面對一堆同名主機列表而感到無奈~~~ 五、配置yum倉庫預設情況下,CentOS的軟體源中沒有收錄最新版本CloudStack,為了能順利安裝,我們需要手工指定軟體源。 建立 /etc/yum.repos.d/cloudstack.repo 檔案,內容為: 1[cloudstack]2name=cloudstack3baseurl=http://cloudstack.apt-get.eu/rhel/4.1/4enabled=15gpgcheck=0六、安裝agentKVM不像XenServer、VCenter等已經內建了強大的管理功能,因此必須安裝一個CloudStack代理來完成主控端發來的指令。 直接通過倉庫安裝: 1yum install cloud-agent這個安裝包比較大,如果你的網路是小水管的話,那麼你現在可以去泡杯茶、抽根煙休息一下啦。 注意:安裝完 cloud-agent 後無需啟動,等管理節點中添加主機時會自動啟動。 預設的安裝目錄:/etc/cloudstack/agent CloudStack是通過log4j來輸出日誌的,因此你可以通過修改 log4j-cloud.xml 檔案來調整日誌的輸出結構。 七、修改安全性原則預設的SELinux安全性原則會限制CloudStack操作,因此需要調整: vi /etc/selinux/config 1SELINUX=permissive以上修改需重啟伺服器才會生效,為使設定立即生效可使用下邊的命令 1setenforce permissive另需要在 iptables 中把一些連接埠開啟: 1iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT2iptables -I INPUT -p tcp -m tcp --dport 1798 -j ACCEPT3iptables -I INPUT -p tcp -m tcp --dport 16509 -j ACCEPT4iptables -I INPUT -p tcp -m tcp --dport 5900:6100 -j ACCEPT5iptables -I INPUT -p tcp -m tcp --dport 49152:49216 -j ACCEPT6 7iptables-save > /etc/sysconfig/iptables八、添加主機好了,到目前為止,你的準備工作已經完成了。 如果建立的是簡單網路域的話,你現在就可以在管理節點的WEBUI中順利添加這台受控主機啦。這步的操作方法非常簡單,CloudStack中有一個非常友好的嚮導,應該可以協助你正確完成添加。另外,網上也有一大堆的文章介紹,我就不詳細說了,等將來有機會時我再給大家介紹下CloudStack進階網路域的相關功能及添加方法。 附,可能遇到的問題:1、在管理節點中添加主機失敗如果很不幸,添加主機時失敗,請不要慌張,這個問題應該不難解決,先看下日誌。 管理節點日誌在/var/log/cloudstack/management/catalina.out 受控節點日誌在:/var/log/cloudstack/agent/cloudstack-agent.out 認真反覆分析日誌,你會找到答案,然後水平提到升華~~~ 2、Unable to start agent: Failed to get private nic name如果你是初學,在設定網路時千萬別亂選。尤其是別隨便指定流量標籤。 在CloudStack中,流量標籤是同受控主機的橋接器相關的,如果設定了流量標籤,則受控機必須設定相應的橋接器。cloudstack4.1的agent在啟動時,預設會自動建立cloudbr0和cloudbr1兩個橋接器。如果你指定了其他的標籤名,則相應的橋接器也要作修改,甚至需要在受控機上手工建立橋接器。 如果想修改成其他橋接器名字,那麼需要在設定檔裡面指定: vi /etc/cloudstack/agent/agent.properties 修改下面兩個參數 1private.network.device2public.network.devic如果橋接器指定錯誤的話,那麼就會出現上面的錯誤。 真正明白了這個道理,那麼你就可以進階啦,你將能夠實現不同的網卡使用不同的網路。 3、Failed to create vnet如果你再嘗試建立進階網路,出現的如上的錯誤,那是因為你沒有安裝vconfig程式。 1yum install vconfig