利用5台伺服器搭建openstack
㈠ OpenStack是什麼,OpenStack詳解
(1)官方的解釋相信大家都已經了解了,不了解也沒有關系。現在從常識的角度來給大家解釋和說明。
OpenStack是一個雲平台管理的項目,它不是一個軟體。這個項目由幾個主要的組件組合起來完成一些具體的工作。
OpenStack是一個旨在為公共及私有雲的建設與管理提供軟體的開源項目,OpenStack被公認作為基礎設施即服務(簡稱IaaS)資源的通用前端。
如果這些還不明白,那麼從另外的角度給大家介紹:
首先讓大家看下面兩個圖就很簡單明了了:
此圖為openstack的登錄界面
下面是openstack的一個管理界面
從這兩個圖,相信有一定開發經驗,就能看出openstack是什麼了。可以說他是一個框架,甚至可以從軟體的角度來理解它。如果不明白,就從傳統開發來講解。不知道你是否了解oa,erp等系統,如果不了解可以到網上去找,資料一大把。他和oa,erp有什麼不同。很簡單就是openstack是用做雲計算的一個平台,或則一個解決方案。它是雲計算一個重要組成部分。
上面對openstack有了一個感性的認識。
(2)openstack能幹什麼。
大家都知道阿里雲平台,網路雲平台,而阿里雲平台據傳說就是對openstack的二次開發。對於二次開發相信只要接觸過軟體的都會明白這個概念。不明白的自己網上去查一下。也就是說openstack,可以搭建雲平台,什麼雲平台,公有雲,私有雲。現在網路在招聘的私有雲工程師,應該就是這方面的人才。
(3)openstack自身都包含什麼
以下是5個OpenStack的重要構成部分:
l Nova – 計算服務
l Swift – 存儲服務
l Glance – 鏡像服務
l Keystone – 認證服務
l Horizon – UI服務
圖1 OpenStack基本構架
下圖展示了Keystone、Dashboard二者與其它OpenStack部分的交互。
下面詳細介紹每一個服務:
(一)OpenStack計算設施—-Nova Nova是OpenStack計算的彈性控制器。OpenStack雲實例生命期所需的各種動作都將由Nova進行處理和支撐,這就意味著Nova以管理平台的身份登場,負責管理整個雲的計算資源、網路、授權及測度。雖然Nova本身並不提供任何虛擬能力,但是它將使用libvirt API與虛擬機的宿主機進行交互。Nova通過Web服務API來對外提供處理介面,而且這些介面與Amazon的Web服務介面是兼容的。
功能及特點
l 實例生命周期管理
l 計算資源管理
l 網路與授權管理
l 基於REST的API
l 非同步連續通信
l 支持各種宿主:Xen、XenServer/XCP、KVM、UML、VMware vSphere及Hyper-V
OpenStack計算部件
l Nova彈性雲包含以下主要部分:
l API Server(nova-api)
l 消息隊列(rabbit-mq server)
l 運算工作站(nova-compute)
l 網路控制器(nova-network)
l 卷管理(nova-volume)
l 調度器(nova-scheler)
API伺服器(nova-api)
API伺服器提供了雲設施與外界交互的介面,它是外界用戶對雲實施管理的唯一通道。通過使用web服務來調用各種EC2的API,接著API伺服器便通過消息隊列把請求送達至雲內目標設施進行處理。作為對EC2-api的替代,用戶也可以使用OpenStack的原生API,我們把它叫做「OpenStack API」。
消息隊列(Rabbit MQ Server)
OpenStack內部在遵循AMQP(高級消息隊列協議)的基礎上採用消息隊列進行通信。Nova對請求應答進行非同步調用,當請求接收後便則立即觸發一個回調。由於使用了非同步通信,不會有用戶的動作被長置於等待狀態。例如,啟動一個實例或上傳一份鏡像的過程較為耗時,API調用就將等待返回結果而不影響其它操作,在此非同步通信起到了很大作用,使整個系統變得更加高效。
運算工作站(nova-compute)
運算工作站的主要任務是管理實例的整個生命周期。他們通過消息隊列接收請求並執行,從而對實例進行各種操作。在典型實際生產環境下,會架設許多運算工作站,根據調度演算法,一個實例可以在可用的任意一台運算工作站上部署。
網路控制器(nova-network)
網路控制器處理主機的網路配置,例如IP地址分配,配置項目VLAN,設定安全群組以及為計算節點配置網路。
卷工作站(nova-volume)
卷工作站管理基於LVM的實例卷,它能夠為一個實例創建、刪除、附加卷,也可以從一個實例中分離卷。卷管理為何如此重要?因為它提供了一種保持實例持續存儲的手段,比如當結束一個實例後,根分區如果是非持續化的,那麼對其的任何改變都將丟失。可是,如果從一個實例中將卷分離出來,或者為這個實例附加上卷的話,即使實例被關閉,數據仍然保存其中。這些數據可以通過將卷附加到原實例或其他實例的方式而重新訪問。
因此,為了日後訪問,重要數據務必要寫入卷中。這種應用對於數據伺服器實例的存儲而言,尤為重要。
調度器(nova-scheler)
調度器負責把nova-API調用送達給目標。調度器以名為「nova-schele」的守護進程方式運行,並根據調度演算法從可用資源池中恰當地選擇運算伺服器。有很多因素都可以影響調度結果,比如負載、內存、子節點的遠近、CPU架構等等。強大的是nova調度器採用的是可插入式架構。
目前nova調度器使用了幾種基本的調度演算法:
隨機化:主機隨機選擇可用節點;
可用化:與隨機相似,只是隨機選擇的范圍被指定;
簡單化:應用這種方式,主機選擇負載最小者來運行實例。負載數據可以從別處獲得,如負載均衡伺服器。
(二)OpenStack鏡像伺服器—-GlanceOpenStack鏡像伺服器是一套虛擬機鏡像發現、注冊、檢索系統,我們可以將鏡像存儲到以下任意一種存儲中:
本地文件系統(默認)
l OpenStack對象存儲
l S3直接存儲
l S3對象存儲(作為S3訪問的中間渠道)
l HTTP(只讀)
功能及特點
提供鏡像相關服務
Glance構件
l Glance控制器
l Glance注冊器
(三)OpenStack存儲設施—-Swift
Swift為OpenStack提供一種分布式、持續虛擬對象存儲,它類似於Amazon Web Service的S3簡單存儲服務。Swift具有跨節點百級對象的存儲能力。Swift內建冗餘和失效備援管理,也能夠處理歸檔和媒體流,特別是對大數據(千兆位元組)和大容量(多對象數量)的測度非常高效。
功能及特點
l 海量對象存儲
l 大文件(對象)存儲
l 數據冗餘管理
l 歸檔能力—–處理大數據集
l 為虛擬機和雲應用提供數據容器
l 處理流媒體
l 對象安全存儲
l 備份與歸檔
l 良好的可伸縮性
Swift組件
l Swift賬戶
l Swift容器
l Swift對象
l Swift代理
l Swift RING
Swift代理伺服器
用戶都是通過Swift-API與代理伺服器進行交互,代理伺服器正是接收外界請求的門衛,它檢測合法的實體位置並路由它們的請求。
此外,代理伺服器也同時處理實體失效而轉移時,故障切換的實體重復路由請求。
Swift對象伺服器
對象伺服器是一種二進制存儲,它負責處理本地存儲中的對象數據的存儲、檢索和刪除。對象都是文件系統中存放的典型的二進制文件,具有擴展文件屬性的元數據(xattr)。
注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是並沒有有效測試證明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同樣能運行良好。不過,XFS被認為是當前最好的選擇。
Swift容器伺服器
容器伺服器將列出一個容器中的所有對象,默認對象列表將存儲為sqlite文件(譯者註:也可以修改為MySQL,安裝中就是以MySQL為例)。容器伺服器也會統計容器中包含的對象數量及容器的存儲空間耗費。
Swift賬戶伺服器
賬戶伺服器與容器伺服器類似,將列出容器中的對象。
Ring(索引環)
Ring容器記錄著Swift中物理存儲對象的位置信息,它是真實物理存儲位置的實體名的虛擬映射,類似於查找及定位不同集群的實體真實物理位置的索引服務。這里所謂的實體指賬戶、容器、對象,它們都擁有屬於自己的不同的Rings。
(四)OpenStack認證服務(Keystone)
Keystone為所有的OpenStack組件提供認證和訪問策略服務,它依賴自身REST(基於Identity API)系統進行工作,主要對(但不限於)Swift、Glance、Nova等進行認證與授權。事實上,授權通過對動作消息來源者請求的合法性進行鑒定。如下圖所示:
Keystone採用兩種授權方式,一種基於用戶名/密碼,另一種基於令牌(Token)。除此之外,Keystone提供以下三種服務:
l 令牌服務:含有授權用戶的授權信息
l 目錄服務:含有用戶合法操作的可用服務列表
l 策略服務:利用Keystone具體指定用戶或群組某些訪問許可權
認證服務組件
服務入口:如Nova、Swift和Glance一樣每個OpenStack服務都擁有一個指定的埠和專屬的URL,我們稱其為入口(endpoints)。
l 區位:在某個數據中心,一個區位具體指定了一處物理位置。在典型的雲架構中,如果不是所有的服務都訪問分布式數據中心或伺服器的話,則也稱其為區位。
l 用戶:Keystone授權使用者
譯者註:代表一個個體,OpenStack以用戶的形式來授權服務給它們。用戶擁有證書(credentials),且可能分配給一個或多個租戶。經過驗證後,會為每個單獨的租戶提供一個特定的令牌。[來源:http://blog.sina.com.cn/s/blog_70064f190100undy.html]
l 服務:總體而言,任何通過Keystone進行連接或管理的組件都被稱為服務。舉個例子,我們可以稱Glance為Keystone的服務。
l 角色:為了維護安全限定,就雲內特定用戶可執行的操作而言,該用戶關聯的角色是非常重要的。
譯者註:一個角色是應用於某個租戶的使用許可權集合,以允許某個指定用戶訪問或使用特定操作。角色是使用許可權的邏輯分組,它使得通用的許可權可以簡單地分組並綁定到與某個指定租戶相關的用戶。
l 租間:租間指的是具有全部服務入口並配有特定成員角色的一個項目。
譯者註:一個租間映射到一個Nova的「project-id」,在對象存儲中,一個租間可以有多個容器。根據不同的安裝方式,一個租間可以代表一個客戶、帳號、組織或項目。
(五)OpenStack管理的Web介面—-Horizon
Horizon是一個用以管理、控制OpenStack服務的Web控制面板,它可以管理實例、鏡像、創建密匙對,對實例添加卷、操作Swift容器等。除此之外,用戶還可以在控制面板中使用終端(console)或VNC直接訪問實例。總之,Horizon具有如下一些特點:
l 實例管理:創建、終止實例,查看終端日誌,VNC連接,添加卷等
l 訪問與安全管理:創建安全群組,管理密匙對,設置浮動IP等
l 偏好設定:對虛擬硬體模板可以進行不同偏好設定
l 鏡像管理:編輯或刪除鏡像
l 查看服務目錄
l 管理用戶、配額及項目用途
l 用戶管理:創建用戶等
l 卷管理:創建卷和快照
l 對象存儲處理:創建、刪除容器和對象
l 為項目下載環境變數
㈡ 對於openstack很模糊,想用它來搭建一個分布式的平台,在網路上搜到的都是概念性的東西和安裝,請問:
OpenStack是一個旨在為公共及私有雲的建設與管理提供軟體的開源項目。它的社區擁有超過130家企業及1350位開發者,這些機構與個人都將OpenStack作為基礎設施即服務(簡稱IaaS)資源的通用前端。OpenStack項目的首要任務是簡化雲的部署過程並為其帶來良好的可擴展性。本文希望通過提供必要的指導信息,幫助大家利用OpenStack前端來設置及管理自己的公共雲或私有雲。
內容詳解
OpenStack包括數個由社區維護的項目,具體情況我將在後文中詳加闡述。
● OpenStack Compute (Nova)是一套控制器,用於為單個用戶或使用群組啟動虛擬機實例。它同樣能夠用於為包含著多個實例的特定項目設置網路。OpenStack Compute在公共雲處理方面堪與Amazon EC2相提並論;而在私有雲方面也毫不遜色於VMware的產品。在公共雲中,這套管理機制將提供預制的鏡像或是為用戶創建的鏡像提供存儲機制,這樣用戶就能夠將鏡像以虛擬機的形式啟動。
● OpenStack 對象存儲(Swift)是一套用於在大規模可擴展系統中通過內置冗餘及容錯機制實現對象存儲的系統。這些對象能夠通過一個REST API或是像Cyberck這樣可以對接對象存儲API的客戶端加以恢復。
● OpenStack鏡像服務 (Glance)是一套虛擬機鏡像查找及檢索系統。它能夠以三種形式加以配置:利用OpenStack對象存儲機制來存儲鏡像;利用Amazon的簡單存儲解決方案(簡稱S3)直接存儲信息;或者將S3存儲與對象存儲結合起來,作為S3訪問的連接器。OpenStack鏡像服務支持多種虛擬機鏡像格式,包括VMware(VMDK)、Amazon鏡像(AKI、ARI、AMI)以及VirtualBox所支持的各種磁碟格式。鏡像元數據的容器格式包括Amazon的AKI、ARI以及AMI信息,標准OVF格式以及二進制大型數據。
最近根據投票結果納入「核心」項目集團的新成員是一項代號為「Keystone」的身份服務以及一套基於Django的儀錶板介面,後者的代號為「Horizon」。本文中的儀錶板示例也來源於這一項目。
初窺門徑
嘗試探索OpenStack Compute最為合適的起點莫過於devstack.org站點,它為開發人員或是概念驗證者們提供了一套腳本化安裝方案。來自docs.openstack.org的OpenStack入門教程同樣具備一步步詳細的指示,幫助我們在Ubuntu 11.10中設定OpenStack Compute、鏡像服務以及多合一對象存儲的安裝。如果大家擁有一台自己的伺服器,並打算利用它搞一些概念驗證工作,那麼 點擊此處 可以獲取一套專門供裸機使用的StackOps安裝系統。有了它,我們可以通過CD或者USB記憶棒完成OpenStack的安裝。
各位還可以利用docs.openstack.org上提供的對象存儲管理員指南或者OpenStack Compute管理員指南中的安裝說明,設置出生產級別的OpenStack對象存儲集群或是OpenStack Compute雲。
OpenStack的使用
安裝結束之後,接下來我們就要看看如何利用部分安全功能,通過儀錶板介面或是命令行啟動OpenStack Compute實例。我還將展示面向對象存儲的、用於通過塊存儲備份鏡像或者視頻的介面。
登錄到儀錶板介面
OpenStack的儀錶板是安裝在運行著Nova API服務的節點中的。通過這套儀錶板,大家應該可以看出Nova API實例的URL與有效儀錶板的證書一樣,也包括用戶名及密碼。
只要有了用戶名與密碼,大家可以利用OpenStack儀錶板實現許多功能。首先,通過雲管理員分配給我們的用戶名及密碼登錄到儀錶板中。
登錄之後,可以看到伺服器使用量與每台伺服器的當前狀態,如圖一。
圖一
大家也可以點擊查看哪些伺服器處於終止狀態。請注意,這里的正常運行時間並不會顯示每套單獨伺服器的狀態。
用戶儀錶板左側的菜單提供的是我們所能執行的儀錶板操作選項,所發出的命令通過API傳遞至終端。系統面板(也就是頁面最上方的菜單)提供另一套視圖,使得管理員能夠監控使用狀態、檢查雲中正在運行的服務並管理用戶及項目的配額。
㈢ 如何用伺服器搭建openstack
1、配置ntp伺服器,打開文件/etc/ntp.conf增加以下三行內容,目的是讓本伺服器時間與外部伺服器時間同步。如果不能訪問外網,NTP伺服器將使用本機硬體時鍾作為第二選擇。
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
然後重啟NTP使配置生效:
service ntp restart
2、配置網路vi /etc/network/interfaces並重啟服務
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.0.0.10
netmask 255.255.255.0
service network restart
3、配置/etc/hosts
10.19.194.109 controller
10.19.194.124 compute1
4、安裝mysql及相關組件配置
# apt-get install python-mysqldb mysql-server
(1)配置/etc/mysql/my.cnf的bind-address
[mysqld]
...
bind-address = 0.0.0.0
(2)、重啟mysql資料庫,檢測和一些資料庫安全設置
# service mysql restart
# mysql_install_db
# mysql_secure_installation 命令
root@ubuntu:~# mysql_secure_installation 配置密碼等參數
5、安裝Ubuntu雲存檔Havana,用於支持openstack穩定的ubuntu,然後更新ubuntu
(1)安裝Havana
# apt-get install python-software-properties
# add-apt-repository cloud-archive:havana
(2)更新系統及重啟
# apt-get update && apt-get dist-upgrade
# reboot
6、消息服務安裝
# apt-get install rabbitmq-server
如需要更改默認密碼,可使用以下命令
# rabbitmqctl change_password guest RABBIT_PASS
㈣ openstack 需要多少台伺服器
我只知道有一個控制節點和一個計算節點
㈤ 安裝openstack需要多少台伺服器
Nova控制服務IaaS核通Nava服務進行IaaS調度管理執行nova安裝配置腳本安裝完通啟nova 調度、控制服介面等服務驗證否安裝確我安裝配置功面通Nova調度控制理解新手沒少求指導
㈥ 怎樣利用OpenStack搭建虛擬雲桌面
國外基於openstack的雲桌面對於國內來說並不適用,考慮到國內的復雜的行業及應用場景,選擇一款通用型的雲桌面產品很重要。隨著虛擬化雲計算技術的成熟和廣泛應用,桌面雲已經成為當下終端管理的典型解決方案,能夠解決包括簡化運維、連續可用、提升效率、降低成本以及安全合規等在內的傳統終端運維的諸多難題。目前桌面雲的運用已經比較廣泛和成熟了,就技術來說,以下一代雲桌面為代表的主流技術架構的融合成為了新的趨勢,就行業來說,教育、醫療、政企、金融、能源、製造、軍隊等行業都已經實現覆蓋。
㈦ 學習搭建openstack雲計算平台,需要有哪些知識基礎
會Python編程語言
熟悉Tornado網頁伺服器、Nebula運算平台
使用過Twisted軟體框架
了解Open Virtualization Format、AMQP、SQLAlchemy等標准
了解虛擬化軟體更好:KVM、Xen、VirtualBox 、QEMU、 LXC 等
㈧ 如何快速部署OpenStack環境
OpenShit是一款能夠在Ubuntu14.04系統上快速部署Openstack的小工具,它使用Shell腳本和Python腳本完成對Openstack各組件的安裝和配置.並且可以方便的更改配置參數重新配置,重啟服務清空資料庫等等.利用命令可以進行完全的自動化安裝和配置.以下是OpenShit的地址
OpenShit命令介紹
./openshit.sh <--all|service_name> start|stop|restart
可對各個(或者全部)Openstack組件進行啟動,停止,重啟操作.
./openshit.sh <--all|service_name> install|uninstall|download
可對Openstack各個組件進行 安裝,卸載,下載包 操作
./openshit.sh <--all|service_name> config
可以配置組建建立資料庫, 原先的配置文件在config-backup文件夾中按照時間備份起來,使用rollback.sh腳本可以方便的回滾配置文件改動
./openshit.sh <--all|service_name> clean
可以清除服務的資料庫, 若服務出問題了可以直接清掉資料庫然後重新config
接下來我們使用OpenShit在Ubuntu14.04上部署OpenStack.這里有幾個小要求:
1. Ubuntu14.04分區一定要有足夠的空間.OpenStack在創建實例的時候會使用分區的空間,空間不夠則無法創建實例.測試用Ubuntu14.04分了100G,足夠使用了.
2. 建議最好是新裝的ubuntu分區.如果裝過神馬DevStack沒裝成功一堆垃圾留在系統庫里再用OpenShit不成功那就不好意思了.
不多說現在開始
1.安裝git, 使用git下載openshit
git clone https://github.com/windworst/openshit.git.
2.修改配置文件setting.conf.
裡面有很多密碼:資料庫密碼,服務密碼.默認的可以更改,不改也沒什麼.
改變網路配置.配置文件內IP值都設置稱自己的IP, 網卡設置成自己的網卡(默認為eth0).
3.配置文件修改完成後開始安裝
./openshit.sh --all install.
這個命令會 問你是否需要配置軟體源, 第一次使用openshit請選擇y, 所以命令可以這樣寫:
echo y | ./openshit.sh --all install
4.一段時間後安裝完成,請輸入
./openshit.sh --all config
會根據setting.conf的值修改各個組件的配置文件以及資料庫配置.
5.完成後
運行source admin-env.sh; nova service-list 查看服務狀態若都為up安裝成功
在瀏覽器內打開 http://localhost/horizon即可看到Openstack管理界面輸入密碼可登陸
現在OpenStack成功部署到了Ubuntu14.04伺服器上.
為了成功運行一個實例,我們需要製作並上傳一個鏡像, 配置網路,啟動實例.
這里製作一個ubuntu14 server 的鏡像
1. 製作鏡像
qemu-img create -f qcow2 ubuntu.img 20G
kvm -cdrom ubuntu-14.04-server-amd64.iso -drive file=ubuntu.img,if=virtio,index=0 -boot d -net nic -net user
這里就是直接從光碟安裝ubuntu14-server了 裝好就行
2.上傳鏡像
在openshit目錄中 執行 source admin-env.sh
執行
glance image-create --name "ubuntu" --file ubunut.img --disk-format qcow2 --container-format bare --is-public True --progress
進度條快速滾過,上傳完成
3. 創建網路
在openshit目錄中 執行 source admin-env.sh (前面執行過了這里就不用執行了)
執行
nova network-create v-net --bridge br100 --multi-host T --fixed-range-v4 10.0.1.0/29
這里 v-net是網路名字 10.0.1.0/29 是網段和要分配的主機數量 不要設置網段跟本網段一樣,否則蛋疼超乎你想像
執行
nova net-list
可以看到剛才創建的網路
4. 創建實例
在web管理端 鏡像 欄內 點 運行 即可創建實例 (會分配剛才創建網路的ip地址)
點擊控制台,可以通過vnc看到虛擬機的屏幕
這里有個問題 虛擬機和主機能互相ping通(需要關掉防火牆),不過無法訪問外網,可能是哪裡沒有設置.