周有利
摘要:云平臺包括三個層次的服務,分別是:基礎設施級服務,平臺級服務,軟件級服務。描述OpenStack云平臺架構(gòu)及其核心組件的相互關(guān)系 ;OpenStack旗下包含了一組由社區(qū)維護的開源項目,它們分別是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。筆者就OpenStack單節(jié)點平臺搭建跟大家探討
關(guān)鍵詞:單節(jié)點;OpenStack;搭建
中圖分類號:TP311.5 文獻標識碼:A 文章編號:1009-3044(2016)28-0060-03
在開源服務器操作系統(tǒng)Ubuntu上搭建一個開源的 Openstack云計算平臺,集成nova、keystone、glance等云平臺組件,提供以服務方式啟動、停止Openstack云計算服務,提供以Web界面來管理鏡像等資源。
要求能夠根據(jù)給定的云計算設備和分配的IP地址,制定Openstack云計算平臺規(guī)劃方案,能夠依據(jù)制定的規(guī)劃方案在指定節(jié)點安裝Ubuntu操作系統(tǒng),安裝MySQL數(shù)據(jù)庫管理系統(tǒng),創(chuàng)建數(shù)據(jù)庫,集成nova、keystone、glance等云平臺組件到Openstack云計算平臺,能夠以Web界面來操作Openstack云計算平臺。
1 控制節(jié)點系統(tǒng)及環(huán)境安裝
1.1 準備安裝環(huán)境和軟件
ubuntu-12.04-server-amd64.iso
1.2 設置 root 權(quán)限
# sudo passwd root
就可以給 root 設置一個密碼。直接用 root 運行。
1.3 設置網(wǎng)絡
本文檔中的配置,是將 eth0 作為公網(wǎng)及管理網(wǎng)絡和網(wǎng)橋虛擬網(wǎng)絡。
單節(jié)點的情況下,網(wǎng)絡控制器(運行nova-network)與計算(運行nova-compute,或者更確切的說,運行虛擬機實例)部署在一個主機。在這樣情況下,我們就不要依賴控制點與計算機節(jié)點之間的通信,可以降低入門者的難度,為以后的深入研究打下基礎。
單網(wǎng)卡時,我們可以使用一種混雜模式, public網(wǎng)絡的接口 和flat網(wǎng)絡的接口作為單節(jié)點的網(wǎng)絡接口 。不過建立的網(wǎng)絡與雙網(wǎng)卡類似,都分為flat網(wǎng)絡和public網(wǎng)絡。使用單網(wǎng)卡,需要建立eth0模式, 在nova.conf中使public_interface和flat_interface的接口。并且重啟網(wǎng)絡,讓修改生效:
# /etc/init.d/networking restart
1.4 安裝 OS
Openstack 開始部分、基本部分都是來自Stackops, 我們在搭建Openstack的服務平臺的時候。通常下載一個iso,安裝通用的ubuntu系統(tǒng),然后運轉(zhuǎn)建立到普通的的web,在運行過程中不斷的調(diào)整配置參數(shù),我們在運行過程中不斷的對chef分布調(diào)整。更新源里的包,更新系統(tǒng)。 注意先后順序,調(diào)整數(shù)據(jù)包。
1.5 配置 SecureCRT
sshd_config 是 ssh 的配置文件,其中有一個選項PermitRootLogin 用來配置是否允許 root 用戶登錄,默認的without-password 表示不允許使用密碼進行全登錄認證,yes 則是允許 root 登錄。
1.6 安裝 bridge
# apt-get install bridge-utils
重啟網(wǎng)絡或者重啟一下機器都可以:
# /etc/init.d/networking restart
1.7 設置 NTP
Network Time Protocol(NTP)是用來使計算機時間同步化的一種協(xié)議,它可以使計算機對其服務器或時鐘源(如石英鐘,GPS 等等)做同步化,它可以提供高精準度的時間校正(LAN 上與標準間差小于1 毫秒,WAN 上幾十毫秒),且可借由加密確認的方式來防止惡毒的協(xié)議攻擊。
2 安裝 mysql 和創(chuàng)建相關(guān)數(shù)據(jù)庫
OpenStack 云平臺的組件:nova,keystone,glance,都需要數(shù)
據(jù)庫。
2.1 安裝 mysql
安裝過程中,會提示輸入 root 密碼。(設置為 openstack)
# apt-get install -y mysql-server python-mysqldb 耗時長
2.2 安裝 phpmyadmin(mysql 數(shù)據(jù)庫的管理軟件)
安裝 phpmyadmin,是為了可以比較方便管理數(shù)據(jù)庫:
# apt-get install phpmyadmin
安裝的時候,首先出現(xiàn)圖形化界面,選擇第一個 apache(按空格鍵,出現(xiàn)*符號,表示已經(jīng)選中);接著提示是輸入 mysql 數(shù)據(jù)庫root 用戶的密碼。
2.3 創(chuàng)建數(shù)據(jù)庫
nova 數(shù)據(jù)庫, 管理員:novadbadmin, 密碼是:openstack
glance 數(shù)據(jù)庫, 管理員:glancedbadmin, 密碼是:openstack
keystone 數(shù)據(jù)庫, 管理員:keystonedbadmin,密碼是:openstack
3 安裝和配置 keystone(認證服務)
OpenStack中的所有組件可以稱為服務,比如keystone、swift、nova等,服務的功能多有不同,swift負責存儲數(shù)據(jù)對象,nova管理計算實例的生命周期,keystone為其他服務提供認證和授權(quán)等,而有些服務是屬于共享范疇的,比如Keystone,為OpenStack中的所有其他服務管理者endpoint的目錄,并負責認證和授權(quán)。 理解為訪問OpenStack中所有服務的請求都需要通過keystone的認證和授權(quán), Keystone守衛(wèi)者的功能比較突出,進入其中的訪客都需要經(jīng)過的檢查,認可了才可以進入其中。 系統(tǒng)的概括Keystone職責為:
1)跟蹤用戶及其權(quán)限
2)提供可用服務及它們API端點的目錄
基本過程為:
1) 安裝 keystone
2)配置 keystone
3)創(chuàng)建服務
# keystone service-create --name keystone --type identity
--description OPENSTACK Identity Service
4)驗證安裝
安裝完后對用戶名和密碼進行設置驗證
4 安裝和配置 glance
4.1 安裝軟件
利用apt install安裝glance
4.2 配置glance-api-paste.ini
# vi編輯修改文件參數(shù)
admin_tenant_name = %租戶服務名稱%
admin_user = %用戶名%
admin_password = %服務密碼 %
4.3 設置 / glance-registry-paste.ini參數(shù)
# vi / 存儲目錄下的glance-registry-paste.ini文件
修改方式和上面租戶的修改方式一樣
4.4 配置/etc/glance/glance-registry.conf
# vi /etc/glance/glance-registry.conf
4.5 配置/etc/glance/glance-api.conf
# vi /etc/glance/glance-api.conf
4.6 同步數(shù)據(jù)庫
先安裝 phpmyadmin ,因為glance 需要手工同步數(shù)據(jù)庫 , 確認 glance 數(shù)據(jù)庫內(nèi)容為空。
#顯示版本號
# glance-manage 顯示版本名稱
重啟服務:
# service glance-api restart 激活系統(tǒng),
運行以下命令,沒有任何的輸出。表示正常。
# glance index
# glance --version
輸出結(jié)果:glance 2012.1
4.7 下載鏡像并上傳(可以上傳本地鏡像,不用下載。)
上傳鏡像:
# glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true
container_format=ovf disk_format=qcow2 <
/root/precise-server-cloudimg-amd64-disk1.img
上傳完鏡像后,運行
# glance index
就可以看到上傳的 image。
5 nova安裝和服務配置
5.1 安裝和設置nova及參數(shù)
使用apt-get命令安裝以下組件: install nova-api、nova-cert、nova-common、nova-compute-kvm、nova-doc、nova-network、nova-objectstore、nova-scheduler、nova-volume、python-nova、python-novaclient、nova-consoleauth、python-novnc、novnc
5.2 配置 /etc/nova/nova.conf(重點)
# vi /etc/nova/nova.conf
5.3 配置/etc/nova/api-paste.ini
# vi /etc/nova/api-paste.ini
5.4 停止和重啟 nova 相關(guān)服務
5.5 同步數(shù)據(jù)庫
# nova-manage db sync
如出現(xiàn)圖示中,則為正常。
創(chuàng)建網(wǎng)絡
再重啟相關(guān)服務:
5.6 檢查 nova 服務
# nova list
# nova image-list
# nova floating-ip-create
#nova-manage service list
(state 的狀態(tài)為笑臉表示該服務正常)
6 安裝和配置 Dashbaord UI 界面
6.1 安裝 dashbaord
# apt-get install libapache2-mod-wsgi openstack-dashboard
6.2 重啟服務
# service apache2 restart
這個時候,就可以登錄 dashboard:
http://192.168.1.110
user:admin password:openstack
以下部分不用執(zhí)行:
添加用戶角色到租戶中:
1)添加環(huán)境變量
# echo "export MYSQL_URL=192.168.1.110" >>.bashrc
# echo "export MYSQL_USERNAME=keystonedbadmin" >>.bashrc
# echo "export MYSQL_PASSWORD=openstack" >>.bashrc
# echo "export MYSQL_DATABASE=keystone" >>.bashrc
2)使環(huán)境變量生效
# source .bashrc // 重新加載配置文件
3)調(diào)用編寫python 腳本
我們在實際開發(fā)過程中會感覺到Java會比Python寫得快。當你都掌握Java和Python這兩門腳本編寫方法之后。會感覺兩者各有長處,有的時候發(fā)現(xiàn)用Python寫這類程序的速度比用Java還要快。其實用Python在處理簡短程序與操作系統(tǒng)的交互編程工作方面感覺更加省時省力。
7 結(jié)束語
作為一名走上工作崗位十幾年的計算機方向的教師,雖然已經(jīng)具備了一定的專業(yè)知識技能,但是對于新的知識,新技能,新技術(shù)的學習上,存在有一定的差距。深深感受到技術(shù)的進步,社會的發(fā)展,IT行業(yè)的飛速發(fā)展。通過這段時間的學習, 通過培訓幾門課程的學習,收獲很大,以前一些“云計算”認識模糊的問題,現(xiàn)在搞清楚了,從前對于“大數(shù)據(jù)”模糊概念,現(xiàn)在有了深切的體驗,如今也找到了理論支持,更為重要的是,我深深體會到,IT技術(shù)確是一門藝術(shù),一門大學問,值得我用一生的精力去鉆研。通過培訓,我得到了很大的收獲。
參考文獻:
[1] 熊振華. 基于OPENSTACK云存儲技術(shù)的研究[D]. 長春: 吉林大學, 2014.
[2] 鄭路路. 基于OpenStack的資源調(diào)度算法研究[D]. 北京: 北京工業(yè)大學, 2014.
[3] 王霄飛. 基于OpenStack構(gòu)建私有云計算平臺[D]. 廣州: 華南理工大學, 2012.
[4] 陳恂. OpenStack平臺的虛擬機調(diào)度關(guān)鍵技術(shù)研究[D]. 杭州: 杭州電子科技大學, 2014.
[5] 付勛. 基于OpenStack的云平臺調(diào)度算法設計與實現(xiàn)[D]. 北京: 北京郵電大學, 2014.
[6] 余海濤. 基于OpenStack開源云平臺的網(wǎng)絡模型研究[D]. 長春: 吉林大學, 2014.