1、網絡問題-networkhtml
更多網絡原理機制能夠參考《OpenStack雲平臺的網絡模式及其工做機制》。
node
1.一、控制節點與網絡控制器區別web
OpenStack平臺中有兩種類型的物理節點,控制節點和計算節點。控制節點包括網絡控制、調度管理、api服務、存儲卷管理、數據庫管理、身份管理和鏡像管理等,計算節點主要提供nova-compute服務。數據庫
控制節點的服務能夠分開在多個節點,咱們把提供nova-network服務的節點稱爲網絡控制器。ubuntu
1.二、OpenStack中nova-network的做用swift
OpenStack的網絡由nova-network(網絡控制器)管理,它會建立虛擬網絡,使主機之間以及與外部網絡互相訪問。windows
OpenStack的API服務器經過消息隊列分發nova-network提供的命令,這些命令以後會被nova-network處理,主要的操做有:分配ip地址、配置虛擬網絡和通訊。centos
1.三、OpenStack中Flat與FlatDHCP區別api
Flat(扁平): 全部實例橋接到同一個虛擬網絡,須要手動設置網橋。瀏覽器
FlatDHCP: 與Flat(扁平)管理模式相似,這種網絡全部實例橋接到同一個虛擬網絡,扁平拓撲。不一樣的是,正如名字的區別,實例的ip提供dhcp獲取(nova-network節點提供dhcp服務),並且能夠自動幫助創建網橋。
1.四、OpenStack中Flat與vLAN區別
在兩種Flat模式裏,網絡控制器扮演默認網關的角色,實例都被分配了公共的IP地址(扁平式結構,都在一個橋接網絡裏)。
vLAN模式功能豐富,很適合提供給企業內部部署使用。可是,須要支持vLAN的switches來鏈接,並且相對比較複雜,在小範圍實驗中常採用FlatDHCP模式。
1.五、OpenStack中網絡流向是怎樣的,都通過網絡控制器嗎
多節點時,網絡控制器與計算節點分別在不一樣主機,普通部署方式下(不是multi_host),只有nova-network控制網絡,而它僅僅在控制節點運行。所以,全部計算節點的實例都須要經過控制節點來與外網通訊。
能夠經過multi_host等高可用性部署方式改變這個單點故障問題。
1.六、OpenStack單網卡怎麼配置?
配置好服務器的網絡(混雜模式);
/etc/nova/nova.conf那一塊,public_interface和flat_interface都改爲這個單網卡的名稱便可,好比在腳本oneStack.sh 改動2處:
/etc/network/interfaces設置那一塊,去掉第2個網卡的設置(eth1);
/etc/nova/nova.conf那一塊,eth1修改成eht0(flat的網卡)。
這樣,在這個網卡上,既有外網的網絡,又有flat網絡。詳見《OpenStack雲平臺的網絡模式及其工做機制》。
1.七、OpenStack中網絡流向是怎樣的,都通過網絡控制器嗎
多節點時,網絡控制器與計算節點分別在不一樣主機,普通部署方式下(不是multi_host),只有nova-network控制網絡,而它僅僅在控制節點運行。所以,全部計算節點的實例都須要經過控制節點來與外網通訊。
能夠經過multi_host等高可用性部署方式改變這個單點故障問題。
1.八、OpenStack中網絡注意問題
1)openstack 中,nova-manage create用來建立虛擬機運行時所需的內網,而且將相關的IP地址記錄到fixed_ips數據表中。可是,當調用nova-manage delete 時,並不會自動的刪除fixed_ips中的內容,需手動進行刪除。
2)採用FlatDHCP方式部署openstack,在開放了icmp和ssh22端口的狀況下,仍然沒法經過控制節點鏈接到虛擬機實例。此時應該檢查控制節點的ip配置信息ip addr。
3)FlatDHCP模式下,network_size是整個fixed_ip range中的全部ip數。例如在一個A類/12的網絡中,有2^20個IP地址,全部的這些IP地址都要寫入數據庫fixed_ips表中,這將會花費很長時間,致使出現假死。
4)若是採用FlatManager的網絡模式,則必須手動創建相關的網橋,以便虛擬機實例之間以及和主機之間通訊。
並且,必須手動的將虛擬機實例的內部IP加入到nova數據庫的fixed_ips表中。
此外,fiexed_ips表保着全部可供虛擬機實例使用的內部IP,每次發起一個新的虛擬機實例,openstack的網絡服務部分,根據 fixed_ips表中的內容分配給該實例IP。若是用戶但願保留特定的IP地址,須要將數據庫中該IP對應的reserved字段設置爲1。
2、虛擬化問題-virtual
2.一、OpenStack中控制節點和計算節點配置nova.conf同樣嗎
多節點時,網絡控制器與計算節點分別在不一樣主機,普通部署方式下(不是multi_host),只有nova-network控制網絡,而它僅僅在控制節點運行。所以,全部計算節點的實例都須要經過控制節點來與外網通訊。
能夠經過multi_host等高可用性部署方式改變這個單點故障問題。
計算節點的nova.conf並非與控制節點徹底同樣,主要是
--vncserver_proxyclient_address=
--vncserver_listen=
應該是計算節點的ip。
2.二、OpenStack執行 virsh -c qemu:///system list,一直掛起在那裏(hang),怎麼解決
killall -9 dmidecode
dmidecode是一個管理工具,在虛擬機裝OpenStack中須要用到,用在libvirt中,但在有的機器中會出現hang up的狀況,這時候須要kill掉它。
2.三、OpenStack中虛擬化技術在哪裏配置
主要兩個文件:nova.conf nova-compute.conf。
其中的虛擬技術應該一致,好比都爲kvm,或者都爲qemu。
2.四、OpenStack中虛擬機中nova-compute常常啓動失敗,virsh list顯示空白,怎麼解決
1. 在vmware workstation上的虛擬機須要修改 *.vmx文件
vcpu.hotadd = "TRUE"
變動爲
vcpu.hotadd = "FALSE"
從新啓動機器,若是執行命令:
virsh
進入控制檯就沒有問題了。
2. 修改nova配置文件/etc/nova/nova.conf
#--libvirt_type=kvm
更改成qemu
--libvirt_type=qemu
3. 修改/etc/nova/nova-compute.conf
--libvirt_type=qemu
4. 從新啓動nova-compute,若是libvirt報錯
/var/log/libvirt/libvirtd.log
Cannot find 'pm-is-supported' in path: No such file or directory
報錯後須要安裝
apt-get install pm-utils
2.五、noVNC不能鏈接到實例,提示「Connection Refuesd」,什麼緣由
多是控制節點在收到vnc請求的時候,沒法解析計算節點的主機名,從而沒法和計算節點上的實例創建鏈接。
另外多是,當前瀏覽器不支持或者不能訪問,將計算節點的ip和主機名的對應關係加入到控制節點的/etc/hosts文件中。
3、存儲、卷問題-volume、lvm
3.一、OpenStack中建立volume一直在creating,什麼緣由
主要由於nova-volume沒有正常啓動,能夠
nova-manage service list
看看後面的狀態,不是笑臉:-)而是xx。若是沒有啓動,請看下一條。
3.二、OpenStack中nova-volume服務不能啓動,什麼緣由
主要由於沒有nova-volumes卷組,或者iscsitarget服務沒有啓動(或者沒有安裝)。
一、vgdisplay
沒有nova-volumes卷組,能夠建立卷組和磁盤
$ dd if=/dev/zero of=/opt/nova-volumes.img bs=1M seek=100000 count=0
$ losetup -f /opt/nova-volumes.img
$ losetup -a
$ vgcreate nova-volumes /dev/loop0
記着啓動nova-volume而後建立volume,不然下面仍然不能建立
$ service nova-volume restart
$ nova volume-create --display_name "volume1" 10
二、service iscsitarget status
1)沒有安裝iscsitarget,能夠apt安裝;
而後執行如下命令安裝和設置爲能夠啓動
apt-get install -y iscsitarget iscsitarget-dkms lvm2
sed -i -e 's/false/true/' /etc/default/iscsitarget
service iscsitarget start
service nova-volume start
2)狀態爲stop,能夠start
service iscsitarget start
3)若是既沒有nova-volumes卷組,也沒有安裝iscsitarget,切忌保證這二者都存在,而後重啓nova-volume,再建立volume
有人安裝iscsitarget並啓動後就create,結果nova-volume並無啓動,因此問題依然存在;
有人建立nova-volumes,也沒有重啓nova-volume,也不能正常工做。
3.三、OpenStack中建立volume一直在creating,怎麼停掉(stop)
主要由於nova-volume沒有正常啓動,能夠
nova-manage service list
看看後面的狀態,不是笑臉:-)而是xx。若是沒有啓動,請看下一條。
3.四、OpenStack中nova-volume執行出現問題,檢查什麼地方
主要由於nova-volume沒有正常啓動或者計算節點沒有能找到target,能夠檢查如下這些問題。
nova-volume是否正常;控制點,詳見問題3.2
iscsitarget是否開啓;服務端
open-iscsi是否安裝和開啓;客戶端
客戶端(計算節點)iscsiadm discovery看看能不能找到存儲服務;
分析nova-volume.log。
3.五、OpenStack中nova-volume管理target
控制節點查看target
tgtadm --lld iscsi --op show --mode target
創建target
sudo tgtadm --op new --lld=iscsi --mode=target --tid=1 --targetname=iqn.2010-10.org.openstack:volume-00000001
3.六、OpenStack中計算節點管理volume
查看session
sudo iscsiadm -m session
手動發現target
sudo iscsiadm -m discovery -t sendtargets -p IP:port
登入登出
sudo iscsiadm -m node -T targetname(iqn.2010-10.org.openstack:volume-00000004) -p 10.200.200.4:3260 --login
sudo iscsiadm -m node -T targetname(iqn.2010-10.org.openstack:volume-00000004) -p 10.200.200.4:3260 --logout
sudo iscsiadm -m node -o [delete|new|update] -T targetname
4、OneStack安裝問題
4.一、OpenStack能在普通的PC機上跑嗎?
4.二、OneStack簡單安裝須要改哪些地方?
一、切換到root,oneStack.sh刪除設置root密碼、設置locale、設置apt這3段(爲了方便剛安裝新系統的用戶加入的可選的步驟,setup_base.sh沒有這3段)
二、設置ip等參數 OUT_IP 外網ip(注意這是相對於OpenStack?內部網絡的) OUT_IP_PRE 外網ip前綴(腳本後面出現ip不用管,會被這個參數替換) FLOAT_IP 浮動ip
三、裸機的話qemu改爲kvm (對於xen之類的未加入支持) VIRT_YPE
四、網絡設置,會替換掉你原來的,不想替換就刪掉這一段 設置cat寫入interfaces文件(注意,那裏面pre-up手動設置了網卡mac,不須要的自行去掉;單網卡去掉eth1的設置便可)
五、執行oneStack.sh 或者setup_base.sh(基本系統,沒有添加鏡像和實例,能夠setup_test.sh)
其它沒有須要更改的(數據庫密碼等自行更改無影響)。 裏面有個image是從ubuntu官網下載,可能須要一些時間 (svn checkout,裏面還有一些刪除之類的工具)
4.三、OneStack單網卡安裝須要改哪些地方?
除了4.2所述部分外
1)在配置interfaces時,去掉eth1部分;
2)後面nova.conf設置裏面,eth1改成eth0(public_interface)。
4.四、OneStack多節點安裝須要改哪些地方?
控制節點使用oneStack.sh,若是不須要安裝nova-compute去掉便可;
計算節點執行addComputeNode.sh
注意nova.conf配置其他同樣,只是 4.五、OneStack安裝後怎麼清空nova數據,包括實例和volume等?
控制節點執行resetStack.sh clear,清空數據庫;
再執行resetStack.sh從新初始化數據庫。
5、鏡像問題-image
5.一、OpenStack中可使用windows嗎
虛擬出來的實例基本與普通的主機同樣,因此基本上全部系統均可以使用,製做相應的鏡像便可。
5.三、OpenStack怎麼製做Windows鏡像
創建鏡像文件
kvm-img create -f raw windowsxp.img 10G
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-22.iso
啓動安裝到鏡像
kvm -m 1024 -cdrom winxp.iso -drive file=windowsxp.img,if=virtio,boot=on -drive file=virtio-win-0.1-22.iso,media=cdrom -boot d -nographic -vnc :0
能夠vnc查看以及操做安裝過程
vncviewer 192.168.139.50:5900
(注意,5900最後一位與vnc :0對應,若是端口占用能夠改成一、二、3等,vncviewer 5901等)
上傳鏡像
glance add name="WindowsXP" is_public=true container_format=ovf disk_format=raw < windowsxp.img
5.三、OpenStack怎麼製做CentOS鏡像
建立鏡像
kvm-img create -f raw centos.img 5G
在虛擬機內部安裝ssh,以即可以遠程登陸實例
yum install openssh-server
service sshd start (虛擬機內部)
chkconfig sshd on (否則,重啓又不能ssh)
sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1 (vi /proc/sys/net/ipv4/ip_forward)
5.四、OpenStack怎麼Linux登陸ubuntu
官方提供的鏡像須要使用密鑰登陸,也就是啓動實例的時候使用的那個key(不用key啓動ubuntu實例是無法ssh登陸的)
ssh -i ~/.ssh/id_rsa ubuntu@10.0.0.2
在外網登陸使用floating ip;
要訪問外網注意設置節點上
sysctl -w net.ipv4.ip_forward=1
5.五、OpenStack怎麼novnc瀏覽器訪問登陸ubuntu
在能使用vnc的地方,瀏覽器輸入地址能夠訪問系統。
控制節點上
nova get-vnc-console 4 novnc
獲得一個url,例如
+-------+-------------------------------------------------------------------------------------+
| Type | Url |
+-------+-------------------------------------------------------------------------------------+
| novnc | http://192.168.139.50:6080/vnc_auto.html?token=ca2455e8-fcc9-447f-92ee-853b92b37cdb |
+-------+-------------------------------------------------------------------------------------+
瀏覽器中使用這個url訪問。
5.六、OpenStack怎麼Windows登陸ubuntu
下載啓動實例的時候使用的那個key(不用key啓動ubuntu實例是無法ssh登陸的)
ssh登陸工具裏面選擇key認證方式,auth裏面上傳這個private key
而後ssh登陸,輸入用戶名ubuntu,直接登陸。
5.七、OpenStack能夠密碼登陸ubuntu而不是密鑰嗎
默認的鏡像經過注入密鑰的方式,ssh是須要密鑰認證的方式登陸,不容許密碼登陸的;
設置別的用戶好比root密碼後,在vnc裏面能夠經過密碼登陸;
能夠本身製做鏡像,參考製做CentOS鏡像那樣,使用密碼登陸。
6、實例問題-instance
6.一、OpenStack中實例是什麼意思
簡單的說,一個實例就是一個跑着操做系統的虛擬機。
6.二、OpenStack中實例怎麼訪問
在OpenStack內部,可使用內網ip(fixed ip)訪問。
外部,可使用floating ip訪問。
注意設置相應的訪問規則,好比ssh端口,防火牆規則,ipv4_forward等。
能夠vnc訪問,vnc瀏覽器訪問。
Linux系統能夠ssh登陸,桌面系統也能夠安裝xrdp實現遠程桌面訪問;
Windows系統能夠遠程桌面鏈接。
6.三、OpenStack中怎麼管理實例
能夠web端(dashboard)訪問,圖形化操做管理。也可使用api,以下:
## 1:上傳實例
wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
glance add name="Ubuntu12.04-amd64" is_public=true container_format=ovf disk_format=qcow2 < precise-server-cloudimg-amd64-disk1.img
查看鏡像
nova image-list
## 2:建立flavor
nova flavor-list
nova-manage flavor create --name=m1.minitest --memory=384 --cpu=1 --root_gb=1 --flavor=6 --ephemeral_gb=1
## 三、建立虛擬機
nova boot --flavor 1 --image "Ubuntu12.04-amd64" --key_name key1 cloud01
查看實例
nova show cloud01
實例日誌
nova console-log cloud01
##綁定浮動ip
nova floating-ip-create
nova add-floating-ip cloud01 192.168.139.226
nova show cloud01
或者直接
nova add-floating-ip cloud01 `nova floating-ip-create | awk 'FNR==4{print $2}'`
nova list
nova show cloud01
### 查看vm
nova list
### 刪除vm,vm的ID或者名字
nova delete 10d1bc19-b2c4-4eee-a5c8-b256bda3f343
nova delete cloud01
## 四、默認實例登陸
ssh-keygen -f "/home/cloud/.ssh/known_hosts" -R 10.0.0.2
ssh -i ~/.ssh/id_rsa ubuntu@10.0.0.2
6.四、怎麼新建密鑰,怎麼使用密鑰
mkdir /root/ssh_clients/
建立密鑰:ssh-keygen -t rsa -f /root/ssh_clients/key01
上傳密鑰:nova keypair-add --pub_key /root/ssh_clients/key01.pub key01
啓動實例時分配密鑰:nova keypair-add --pub_key /root/ssh_clients/key01.pub key01
使用密鑰登陸:ssh -i /root/ssh_clients/key01 ubuntu@192.168.139.225
刪除keypair: nova keypair-delete
6.五、OpenStack中nova-compute啓動失敗什麼緣由
分析/var/log/nova/nova-compute.log日誌。
容易出現的問題是,volume問題或者virt問題。
6.五、OpenStack中nova-compute啓動失敗什麼緣由
啓動失敗時,nova-manage service list下顯示爲「XX」;分析/var/log/nova/nova-compute.log日誌。
容易出現的問題是,volume問題或者virt問題。
6.六、OpenStack中沒法鏈接實例
沒法鏈接到虛擬機實例的時候,應該檢查以下的環節:
1) 公共IP是否已經綁定到了公共網卡接口上,ip addr
2) 查看iptable的設置,NAT規則是否設置正確,iptables-save
3) 檢查安全組設置,euca-describe-groups
6.六、OpenStack中實例注意問題
1)虛擬機在build階段時,不要進行重啓操做,不然會出現kernel panic現象。
nova-manage create用來建立虛擬機運行時所需的內網,而且將相關的IP地址記錄到fixed_ips數據表中。可是,當調用nova-manage delete 時,並不會自動的刪除fixed_ips中的內容,需手動進行刪除。
2)計算節點的操做系統爲32位,所以,kvm上啓動的虛擬機內存受到限制,好比沒法建立內存大於4G的虛擬機。
3)虛擬機實例已經綁定了浮動IP,而且控制節點的對外網絡接口上也發現了相關的浮動IP地址,可是經過ssh卻沒法進行鏈接。
解決:在dashboard中添加相關的安全規則。security group -> edit rules
添加:icmp -1 -1 0/0;tcp 22 22 0/0
在OneStack裏面,已經把端口所有啓動1~65535,能夠更改成只開放ssh、imcp等部分。
4)nova的配置文件默認存放在/etc/nova/nova.conf中,其中涉及到nova各個參數的配置。
nova全部的參數能夠經過nova-api --help進行查看。
7、系統及其它
7.一、查看日誌
OpenStack的nova相關日誌都在/vr/log/nova下面,通常多數是nova出現問題,包括網絡、存儲、compute、虛擬化等。
volume相關問題查看nova-volume.log
compute和libvirt相關問題查看nova-compute.log
查看實例日誌,web裏面有這樣一個菜單,api裏面使用nova console-log cloud01
7.二、怎麼實現高可用性的部署
請參考文章《構建OpenStack的高可用性(HA,High Availability)》,裏面給出了一些大概的方案。
7.三、OpenStack有哪些資料,新手去哪裏學習
動手實踐,閱讀wiki、文檔,參與社區,反饋問題,勤動腦。如下爲部分網址:
國內技術資料較少,多爲安裝管理相關問題,或者媒體資料。對於swift有一些技術分析的資料,其它較少。
安裝部署問題多Google,不少會連接到https://launchpad.net/別人的問答。之後能夠把問題和解決方法抽象出來在《OpenStack安裝部署管理中常見問題解決方法(OpenStack-Lite-FAQ)》分享,但願少把時間浪費在安裝和部署上。