使用Fuel 9.0快速部署Openstack Mitaka(其實也就用了五六個小時吧)
關於什麽是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(其實也就用了五六個小時吧)