OpenStack Train版雙節點安裝(十三)啓動實例

第十三部分 啓動實例linux


預備知識:Linux Bridge網絡模式vim

因爲上節最後驗證網絡和這節啓動實例須要使用到Linux Bridge,因此這裏介紹下Linux Bridge的基本概念centos

假設宿主機上有一塊與外網鏈接的物理網卡eth0 ,上面跑了一個虛擬機VM1,那麼使用Linux Bridge,宿主機會建立一個Linux Bridge的bridge br0將物理網卡eth0和實例的虛擬網卡橋接起來。以下圖所示,br0能夠當作是一個虛擬交換機,vnet0能夠當作是虛擬交換機上的一個端口。安全

image.png

具體的鏈接方式是:虛擬機的虛擬網卡(若是虛擬機的操做系統是linux,它的虛擬網卡名稱也是eth0)——vnet0——br0——物理網卡eth0網絡

在下面的安裝中,咱們會使用計算節點(能夠當作是是實例的宿主機)的網卡eth1來橋接實例的虛擬網卡(實例若是安裝的是linux系統,則其虛擬網卡名稱是eth0)。架構

相似上面的架構,br0由neutron建立,使用的名稱是類brq8c8dcd81-d3這樣的,端口vnet0也由neutron建立,其名稱相似tapfdf3a9b5-f8這樣的其中包含有由neutron service plugin、agent建立的ip地址等信息。實例啓動後,neutron會將該端口分配給實例。app

這樣,brq8c8dcd81-d3把宿主機的eth1,端口tapfdf3a9b5-f8和實例的虛擬網卡橋接起來,從而爲實例提供網絡訪問。dom

image.png

具體來講就是這樣鏈接的實例(實例的操做系統是linux系統的話)的虛擬網卡eth0——tapfdf3a9b5-f8——brq8c8dcd81-d3——宿主機(計算節點)的eth1ssh

同理,若是再啓動一個新實例,則neutron會在brq8c8dcd81-d3建立一個新的端口,tapxxxxxxx-xx,將其分配給該實例。
tcp

image.png

可見,類比vSphere,brq8c8dcd81-d3其實就是一個標準虛擬交換機,tapfdf3a9b5-f8就是上面的端口(端口組),eth1就是上行鏈路。


控制節點的網絡底層配置

如上節最後所述,控制節點在建立虛擬網絡時,會建立相似以上所說的brqxxxxx(xxxxx爲虛擬網絡ID的前11位)網橋,而且會建立一個dhcp-agent使用的端口tapxxxxx(xxxx爲dhcp-agent的前幾位),將物理網卡eth1和tap設備橋接起來。

在控制節點,使用brctl show 查看

brctl show

image.png

相似圖上的顯示纔是正確的,若是後面沒有eth1,後面建立實例將得不到ip地址。
請按以下步驟排查

(1)確認已經中止或者刪除了NetworkManager軟件包

systemctl stop NetworkManager
systemctl disable NetworkManager
yum remove NetworkManager -y

(2)重啓網絡

systemctl restart network


建立實例前的準備工做

建立實例類型

. admin-openrc
openstack flavor create --id 0 --vcpus 1 --ram 64 --disk 1 m1.nano

openstack flavor list


創建普通項目、用戶,並賦予普通用戶user角色。

openstack project create --domain default --description "ygj Project" ygj-project

openstack user create --domain default --password 123456 ygj

openstack role add --project ygj-projec --user ygj user


創建普通用戶的環境變量腳本

vim ygj-openrc

加入:

export OS_PROJECT_DOMAIN_NAME=Default

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_NAME=ygj-project

export OS_USERNAME=ygj

export OS_PASSWORD=123456

export OS_AUTH_URL=http://ct:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2


建立密鑰對

 . ygj-openrc

ssh-keygen -q -N ""

openstack keypair create --public-key ~/.ssh/id_rsa.pub ygjkey

openstack keypair list


建立安全組規則

openstack security group rule create --proto icmp default

openstack security group rule create --proto tcp --dst-port 22 default


檢查openstack的相關服務和配置

. ygj-openrc

openstack flavor list

openstack image list

openstack network list(複製下網絡ID,後面使用)

image.png
記下的網絡ID爲:3903994e-3f22-4677-8c3a-5ea4edd90afb


openstack security group list


修改計算節點上的nova配置文件,避免建立實例時報沒法分配網絡的錯誤

vim /etc/nova/nova.conf

[DEFAULT]

vif_plugging_is_fatal = false

vif_plugging_timeout = 0

image.png


確認開啓2個節點的eth1的混雜模式,使虛擬機能鏈接除本宿主機外的網絡

yum install net-tools -y

ifconfig eth1 promisc

image.png


確認已經中止2個節點上的networkmanager服務,不然會影響橋接網絡的創建。

systemctl stop NetworkManager

systemctl disable NetworkManager


再次檢查控制節點上neutron的橋接網絡配置是否正確

yum install bridge-utils -y

brctl show

image.png

必定要確認eth1已經橋接到brq上面。


建立並啓動實例
建立實例的命令
openstack server create --flavor 實例類型 --image 來源的鏡像 --nic net-id=PROVIDER_NET_ID --security-group 安全組名 --key-name 密鑰對 實例名稱

其中PROVIDER_NET_ID:上面openstack network list命令查到的網絡ID

具體來講能夠以下面的命令:

. ygj-openrc

openstack server create --flavor m1.nano --image cirros --nic net-id=3903994e-3f22-4677-8c3a-5ea4edd90afb --security-group default --key-name ygjkey cirros-instance1


命令成功執行後,稍等片刻,使用openstack server list 查看實例的建立情況

image.png

確認其Status爲「ACTIVE」,Networks下面不爲空

若是實例的Status一直爲BULID或者ERROR,則須要檢查計算節點nova的日誌文件中的報錯信息,而後加以解決,日誌文件的路徑爲:/var/log/nova/nova-compute.log


計算節點的檢查

上述命令建立實例後,計算節點的網絡會發生以下變化

ip a

image.png

能夠看到會多出一個brq的網橋和一個tap設備
其中brq的網橋和控制節點的同名,意味着它們的端口接在了同一個虛擬交換機上

tap設備即剛纔建立的實例使用的端口(能夠當作是)。

再使用brctl查看

brctl show

image.png

發現tap設備橋接到了網橋上。

可是,計算節點的eth1此時並無橋接到這個brq上,可是再重啓下網絡和實例便可橋接,至於其具體緣由不明(多是openstack的bug或者是實驗環境是vmware-workstation的緣由)。

(1)重啓計算節點網絡

systemctl restart network

(2)在控制節點重啓實例

openstack server reboot cirros-instance1

重啓好以後再在計算節點使用brctl show查看

image.png

能夠看到計算節點的eth1已經橋接到brq上。

檢查下和實例的網絡鏈接:

ping 10.8.20.53

image.png

說明實例已經可以獲取ip地址。


在計算節點訪問實例的控制檯
查看正在運行的實例

virsh list

image.png

記下其id是2


進入實例的控制檯

virsh console 2

這裏的2就是上面記下的id

按回車,會出現實例的登陸提示符,使用cirros用戶和提示的密碼登陸

image.png

出現$提示符代表登陸成功

image.png

使用ip a查看實例的ip

image.png

獲取到了正確的ip。

還可使用sudo passwd修改root密碼,使用mount查看器磁盤掛載狀況,其餘操做再也不贅述。

image.png

最後再檢查下網絡訪問狀況

ping 10.8.20.42

ping 10.8.20.41

ping www.baidu.com

image.png


按鍵盤上的「ctrl+]」鍵返回到計算節點的命令提示符。


再建立一個實例

在控制節點執行如下操做

. ygj-openrc

openstack server create --flavor m1.nano --image cirros --nic net-id=3903994e-3f22-4677-8c3a-5ea4edd90afb --security-group default --key-name ygjkey cirros-instance2

image.png

openstack server list

image.png

能夠看到,新的實例已是ACTIVE。得到的ip地址爲10.8.20.51,而且能夠ping通,說明實例建立成功。


使用dashboard查看實例的狀態

使用前面創建普通用戶ygj 密碼123456登陸dashboard(不要使用admin登陸,將看不到任何實例),在實例處能夠查看到建立的2個實例。
image.png

2個實例

image.png


也能夠訪問實例的控制檯

image.png


至此,啓動實例完成,下節將介紹怎麼安裝和配置centos7的實例。

相關文章
相關標籤/搜索