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