1. 程式人生 > >使用Fuel 9.0快速部署Openstack Mitaka(其實也就用了五六個小時吧)

使用Fuel 9.0快速部署Openstack Mitaka(其實也就用了五六個小時吧)

testing send onf perf nds 鍵盤 operation 如何 and

關於什麽是Fuel以及Fuel的作用和構架可以參考下面Openstack官方給出的Wiki鏈接.

https://wiki.openstack.org/wiki/Fuel.

在安裝部署之前,先看看官方給出的Fuel 9.0版本特性.

Mirantis OpenStack is distributed as a single commercially supportedpackage in ISO format. The 9.0 release features:

· Enhanced OpenStack Lifecycle Management features in Fuel,including the ability to scale up/down, change configuration settings, anddeploy new functionality, such as by adding plugins for Murano and StackLight

· The ability to export Fuel configurationvalues to third-party configuration management tools

· Enhanced features for NFViand other high performance workloads, including support for NUMA and CPU-pinning, Huge Pages, SR-IOVand DPDK

· Support for applicationand service orchestration with TOSCA

· Support for cgroups toenable the efficient allocation of a specific amount of system resources,including CPU and memory, to particular resource groups

· The ability to deployOpenStack environments on servers with disks provided by storage systems withmultipath I/O

· Support for preprovisionedOracle Linux nodes

· Support of OpenStack Mitaka upstream release

Fuel 9.0將會搭載Openstack_Mitaka 版本,這個版本是2016年出的最新版本。

當然Fuel 9.0也增強了很多其他特性,比如對Huge Pages,SR-IPV和Intel的DPDK.

Fuel 在早先的版本中已經去掉了利用Centos來搭建Openstack的環境,在9.0中只使用Ubuntu和Ubuntu + UCA的部署方式.

下面進入安裝部署環節:

1,環境準備

1.1 Fuel 鏡像下載

使用下方網址即可下載最新的Fuel release image.用於部署fuel-master,一般為BT文件,利用下載工具下載即可.

https://www.fuel-infra.org/

技術分享圖片

1.2 硬件資源

官方推薦使用4核心的CPU,以及4G以上內存、10G網卡、500G物理磁盤.但是在實驗環境下,雙核CPU,4G內存 1000M網卡和50G以上的硬盤就足夠了,切記的是硬盤不得小於50G,因為這樣會導致安裝失敗.

當然官方給出的實驗要求比我推薦的要求要低,體現在內存的設置上,如果設置為2G內存會導致安裝速度緩慢,所以建議條件容許的情況下加大設備資源.

下面是官方給出的推薦的生產以及實驗環境介紹.

For a production environment:

  • Quad-core CPU

  • 4 GB RAM

  • 10 Gigabit network port

  • Disk size depends on the number of deployed nodes. All nodes send logs to the Fuel Master node using rsyslog. During installation, Fuel creates a separate partition for /var to store the remote logs and allocates 40% of the disk size to it. Our recommendation for the remote logs partition is 20 GB per node. If you deploy 10 nodes with Fuel, you need to have a (20 x 10) x 2.5 = 500 GB disk for the Fuel Master node.

  • IPMI access through an independent management network

For a testing environment:

  • Dual-core CPU

  • 2 GB RAM

  • 1 Gigabit network port

  • 50 GB disk

  • Physical console access

1.3軟件選擇

官方推薦使用Virtual-box來安裝部署Fuel-master節點.當然你也可以選用VM來部署.效果都是一樣的,只是有些人反應用VM來裝會產生一些問題,所以在這裏我選擇Virtual-box 來進行安裝部署.

2.部署 Fuel-Master

2.1 創建Fuel-master 虛擬機.

新建一個虛擬機名稱為Fuel-master,當然你也可以自己定義名稱.

技術分享圖片

這裏什麽要選擇Red Hat是因為Fuel的底層使用的是Centos,但是Virtual-BOX裏面沒有Centos選項,只能選擇最貼近的Red Hat,而且不要忘了選擇64位系統.如果選擇32有可能會安裝失敗.

[root@fuel~]# rpm -q centos-release

centos-release-7-2.1511.el7.centos.2.10.x86_64

[root@fuel~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

設置虛擬機內存大小為4G.

技術分享圖片

選擇“現在創建虛擬磁盤”.

技術分享圖片

硬盤文件類型選擇為VDI類型.

技術分享圖片

磁盤空間分配建議選擇動態分配,如果選擇固定大小,系統會直接在磁盤中扣除相對應的磁盤空間.當然如果磁盤空間足夠大也可以直接設置為固定大小.

技術分享圖片

技術分享圖片

最少要求50G,這裏我選擇52G.如果是部署CEE使用的Fuel,建議設置為70G.

如果磁盤選項的是固定大小,這裏需要創建虛擬磁盤可能需要幾分鐘. 根據磁盤的性能不同等待時間也不同. 如果設置保存的盤符沒有足夠空間,會直接提示報錯。所以建議大家選擇動態分配,可以節省一些空間.

技術分享圖片

下面進行VBOX的網絡設置

管理à全局設定à網絡

配置三塊虛擬網卡,信息如下:

這裏的信息和Fuel的網絡信息要對稱,如果不想用下面的地址,需要在Fuel設置裏面同步更改,不然會導致部署Openstack失敗.

Host-Only Ethernet Adapter

IPv4: 10.20.0.10

Mask: 255.255.255.0

DHCP: Unable

Host-Only Ethernet Adapter #2

IPv4: 172.16.0.1

Mask: 255.255.255.0

DHCP: Unable

Host-Only Ethernet Adapter #3

IPv4: 192.168.0.1

Mask: 255.255.255.0

DHCP: Unable

網卡芯片選擇Intel的PRO/1000,切記混雜模式一定要設置為Allow all.並且禁用DHCP.

以前嘗試過芯片選擇為PCnet-PCI結果失敗了.在做CEE部署的時候網卡類型也要選擇PRO/1000.

技術分享圖片

技術分享圖片

接下來運行虛擬機,運行時會彈出讓你選擇ISO文件,這裏選擇Fuel的鏡像文件即可.

技術分享圖片

幾秒鐘後會進入Fuel 安裝選擇界面,這裏選擇第一項,然後系統會自動加載和安裝Fuel.

技術分享圖片

技術分享圖片

一段時間後進入Fuel-Menu界面你可以在這裏修改默認密碼和一些設置.

PS:在Fuel 8.0版本中安裝系統後會重啟,重啟後出現這個界面有15秒的時間按任意鍵進入 fuel-menu.但是在9.0版本中會自動進入這個界面.所以不用擔心會不及時按鍵盤.

技術分享圖片

技術分享圖片

選擇Skip building bootstrap image,因為如果不選擇的話,默認Fuel會從國外獲取源,但是我並沒有設置外部網絡,而且就算設置了外部網絡可以訪問外網,速度也是很慢的,所以這裏還是會導致安裝失敗.選擇以後會使用本地源進行部署,後面會說明關於本地源如何下載和加載.

技術分享圖片

選擇Save and quit,然後這裏需要等待1分鐘的樣子,因為這裏要檢查更改是否合規,檢查通過後系統就會繼續安裝Fuel了.

技術分享圖片

經過漫長的等待,具體多久無法統計了,大概2小時就可以進入Fuel的登錄界面了.此過程中切勿關閉或者重啟虛擬機.任何不必要的操作都可能導致安裝失敗.然後會出現下面的畫面,到這裏Fuel-master的安裝就結束了.

技術分享圖片

在瀏覽器打開https://10.20.0.2:8443測試一下是否安裝成功.如果這裏沒有顯示Fuel的登錄界面,說明安裝中忽略了一些步驟,或者資源分配不足.

技術分享圖片

保存快照,以便日後恢復.

技術分享圖片

這個時候登錄這個頁面,可能登錄不了,提示“Keystone服務不可用”,可以啟動Keystone

/bin/systemctl start  openstack-keystone.service

然後需要重啟

2.2 增加本地源.

打開 /var/www/nailgun 目錄 ,用ls發現目錄下現在是沒有mirrors文件夾.因為我采用的是離線模式安裝,沒有從官方的鏈接中下載一些必要的庫,所以從國外找了一些源下載了以後放置在網盤中了.

cd /var/www/nailgun

技術分享圖片

我已經上傳本地源文件到我的百度盤,下載下面2個連接的文件包,傳輸到/var/www/nailgun目錄下,有沖突的部分直接替換掉.

Bootstraps:鏈接:http://pan.baidu.com/s/1nu7lY6P密碼:b3qt

Mirrors :鏈接:http://pan.baidu.com/s/1kVwaZJ5 密碼:hhsc

註意:這兩個文件比較大,不要直接放在var/www/nailgun目錄下,否則就會導致/var所在的磁盤空間沾滿,我是放在了/var/log目錄下,然後加是軟連接過去的

使用XFTP軟件將本地源文件copy到Fuel,具體如下圖.也可以自己在PC或者服務器上建立FTP服務器,然後利用wget命令傳輸文件.總之不管用什麽方法都可以,只要能把文件上傳到相應的文件夾內即可.

技術分享圖片

技術分享圖片

技術分享圖片

運行 Fuel-createmirror命令, 此命令目的是讓web後臺管理界面的源地址變為本地地址.(默認為一些官方鏈接下載地址,這些地址速度很慢,有的甚至連接不到,所以這裏替換為本地源地址.)

[root@fuel nailgun]#fuel-createmirror

This script is DEPRECATED. Please usefuel-mirror utility!

Starting new HTTP connection (1):10.20.0.2

Starting new HTTP connection (1):10.20.0.2

Starting new HTTP connection (1):10.20.0.2

Starting new HTTP connection (1):10.20.0.2

Failed to open url -http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/dists/mos9.0/main/binary-amd64/Release: <urlopen error [Errno -2] Name orservice not known>. retries left - 2.

Traceback (mostrecent call last):

File"/usr/lib/python2.7/site-packages/packetary/library/connections.py",line 214, in open_stream

return self.opener.open(request)

File"/usr/lib64/python2.7/urllib2.py", line 431, in open

response = self._open(req, data)

File"/usr/lib64/python2.7/urllib2.py", line 449, in _open

‘_open‘, req)

File"/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain

result = func(*args)

File"/usr/lib64/python2.7/urllib2.py", line 1244, in http_open

return self.do_open(httplib.HTTPConnection,req)

File"/usr/lib64/python2.7/urllib2.py", line 1214, in do_open

raise URLError(err)

URLError: <urlopenerror [Errno -2] Name or service not known>

Failed to open url -http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/dists/mos9.0/main/binary-amd64/Release:<urlopen error [Errno -2] Name or service not known>. retries left - 1.

Traceback (mostrecent call last):

File "/usr/lib/python2.7/site-packages/packetary/library/connections.py",line 214, in open_stream

return self.opener.open(request)

File"/usr/lib64/python2.7/urllib2.py", line 431, in open

response = self._open(req, data)

File"/usr/lib64/python2.7/urllib2.py", line 449, in _open

‘_open‘, req)

File"/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain

result = func(*args)

File"/usr/lib64/python2.7/urllib2.py", line 1244, in http_open

return self.do_open(httplib.HTTPConnection,req)

File"/usr/lib64/python2.7/urllib2.py", line 1214, in do_open

raise URLError(err)

URLError: <urlopenerror [Errno -2] Name or service not known>

Failed to open url -http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0/dists/mos9.0/main/binary-amd64/Release:<urlopen error [Errno -2] Name or service not known>. retries left - 0.

Traceback (most recentcall last):

File"/usr/lib/python2.7/site-packages/packetary/library/connections.py",line 214, in open_stream

return self.opener.open(request)

File"/usr/lib64/python2.7/urllib2.py", line 431, in open

response = self._open(req, data)

File"/usr/lib64/python2.7/urllib2.py", line 449, in _open

‘_open‘, req)

File"/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain

result = func(*args)

File"/usr/lib64/python2.7/urllib2.py", line 1244, in http_open

return self.do_open(httplib.HTTPConnection,req)

File"/usr/lib64/python2.7/urllib2.py", line 1214, in do_open

raise URLError(err)

URLError: <urlopenerror [Errno -2] Name or service not known>

<urlopen error[Errno -2] Name or service not known>

Starting new HTTP connection(1): 10.20.0.2

Starting new HTTPconnection (1): 10.20.0.2

Starting new HTTPconnection (1): 10.20.0.2

Starting new HTTPconnection (1): 10.20.0.2

Updating the Clusterrepositories...

Updating the releaserepositories...

Try to update theRelease ‘Mitaka on Ubuntu 14.04‘

Try to update theRelease ‘Mitaka on Ubuntu+UCA 14.04‘

Operations have been completed successfully

更換本地源後和bootstrp後,查看是否有已經激活的bootstrp.

技術分享圖片

如果這裏沒有激活很可能是你下載的文件損壞了.可以嘗試找其他bootstrp文件來覆蓋.

3.增加node節點虛擬機.

新建兩個子節點虛擬機 (controller/compute), 建議設置4G內存,128G磁盤空間.

內存設置低於4G很可能會部署失敗,我這裏設置為6G.

並且要開啟VT-x和AMD-V,以便支持intel和AMD的CPU開啟硬件虛擬化.如果不開啟很可能會部署失敗.

PS:在VM下面曾經嘗試用4G內存來進行部署,結果失敗很多次,但是還是成功了,需要拼人品.建議如果在VM下部署失敗建議加大內存.

啟動順序改成網絡第一

技術分享圖片

不要忘記關聯網卡,具體配置如下.

.

技術分享圖片

開啟虛擬機後選擇ubuntu_bootstrap啟動.

技術分享圖片

技術分享圖片

技術分享圖片

8.0版本搭載的是Centos 7 bootstrap,但是在9.0使用的是Ubuntu 14.04.4的bootstrap.

使用bootstrap 引導後,我們的Fuel-master 就可以發現節點了.

技術分享圖片

4.部署Openstack

下面開始使用Fuel部署Openstack

1)登錄https://10.20.0.2:8443/#login

技術分享圖片

4.搭建部署Openstack

新建Openstack環境.

Fuel 9.0 版本去除了Centos,只保存了Ubuntu的部署方式,但是比之前多出了一個模式叫做Ubuntu+UCA(UCA use Ubuntucloud archive as a source of packages for Openstack components)

在這裏我們選擇Mitaka on Ubuntu 14.04.

技術分享圖片

技術分享圖片

選擇QEMU-KVM.

技術分享圖片

網絡這裏選用neutron VLAN模式,因為這裏只是在做測試,並沒有百萬個租戶. 如果使用VXLAN 每個管理域可以定義1600萬個VNI, 每一個VNI可以包含4096個VLAN.可以更好的規劃和隔離租戶.

技術分享圖片

後端存儲選擇默認的LVM,其實也可以選用Ceph,但是Ceph需要新建一個Ceph節點,在測試環境下並不需要.

技術分享圖片

這裏可以增加附加服務和特性, 包括Ceilometer計費以及用於支持Hadoop集群的Sahara等等.在測試環境就不增加這些了,如果是生產按照需求增加服務,而且這裏不選擇也無所謂完成部署後還是可以增加的.

技術分享圖片

配置節點屬性,如下圖所示.

在此定義我們之前發現的兩個節點.

技術分享圖片

技術分享圖片

設置node網絡接口

將網絡接口配置改變為下圖的狀態,鼠標拖拽模塊即可改變.這裏設置錯誤也會導致部署失敗.

技術分享圖片

更改NTPserver地址為Fuel-master的地址.

技術分享圖片

設置完成後進行網絡驗證,如有錯誤信息就按照錯誤提示進行修改.

技術分享圖片

定義完節點後在fuel上使用fuel node 命令可以發現Pending_roles已經發生改變.

技術分享圖片

技術分享圖片

點擊deploychanges 進行部署.

技術分享圖片

這時Fuel就開始自動部署Openstack了.

第一個步驟是利用Cobbler Server安裝Ubuntu系統.

技術分享圖片

安裝過程中可以看到站點的Status變為了provisioning, 含義為正在部署底層系統.並且角色也從Pending轉移到roles下面了.

技術分享圖片

部署完ubuntu14.04以後,Fuel會繼續部署Openstack, 這裏是使用Puppet Master 利用SSH協議的SCP命令將Openstack組件部署到node的.

技術分享圖片

狀態已經更新為deploying.

技術分享圖片

經過漫長的等待,如下圖顯示,已經成功安裝部署了節點.

技術分享圖片

點擊Horizon 進行登錄, 默認用戶名密碼都是admin.

技術分享圖片

技術分享圖片

完畢…現在大家可以體驗OpenstackMitaka版本了.

轉載自:http://blog.51cto.com/11988833/1840826

使用Fuel 9.0快速部署Openstack Mitaka(其實也就用了五六個小時吧)