OpenStack雲第二天
在OpenStack第一天文檔翻譯後,丁丁努力堅持每晚抽時間翻譯OpenStack官方網站提供的安裝與部署指南,本文翻譯自官方安裝與部署指南的前四章内容,前四章内容主要是對OpenStack整體安裝步驟以及設計搭建環境進行概述,并未提及具體安裝步驟,但對環境的設計與構思以及安裝需求還是需要大家了解的。希望盡快寫完第三天文檔(安裝認證服務)。
目錄:
一、安裝步驟概述
二、OpenStack術語
三、OpenStack結構
四、安裝環境構思
一、走馬看花-安裝OpenStack預覽
OpenStack Compute與Image服務結合就可以通過REST APIs通路虛拟伺服器與鏡像,Identity服務為OpenStack所有服務提供通用認證服務。如果你需要安裝控制台就必須有Identity服務的支援。OpenStack Object Storage服務不就提供了虛拟鏡像的存儲方式,更是一種基于雲的存儲系統,通過REST API我們可以儲存、還原對象資料比如鏡像或視訊等等。我們先從Identity開始然後是Image與Compute服務,同時會有部署對象存儲的話題。
主要有這麼一些步驟:
1.OpenStack目前支援平台預覽:Red Hat Enterprise Linux, Scientific Linux, CentOS, Fedora, Debian, Ubuntu。
2.安裝Identity服務。
3.配置Identity服務。
4.安裝鏡像服務(Glance)。
5.配置鏡像服務
6.安裝Compute(Nova)。
7.安裝環境假設。
8.配置Compute。
9.使用MySQL建立并初始化Compute資料庫。
10.添加鏡像。
11.安裝對象存儲(Swift)。
12.安裝OpenStack控制台(Dashboard)。
13.通過控制台添加密鑰對。
14.通過控制台啟動鏡像并檢驗整個安裝過程。
Compute與Image安裝需求
硬體:OpenStack元件适用于标準的硬體裝置。以下為滿足Compute、Image、Object Storage服務所需最低配置要求:
<a href="http://manual.blog.51cto.com/attachment/201208/20/3300438_1345506112WhBx.png"></a>
資料庫:OpenStack Compute需要通路PostgreSQL或MySQL資料庫,在安裝OpenStack Compute的過程中你需要安裝這樣的資料庫。Object Storage,容器與賬戶服務需要使用SQLite。
權限:需要使用root或擁有sudo權限的使用者去安裝OpenStack Compute,Image Service以及Object Storage。
NTP協定:你必須安裝一個時間同步程式如NTP,在雲環境中伺服器節點間保持時間同步非常重要。
Compute網絡規劃:
為了是管理者了解通路APIs與虛拟機所需網絡資源與IP規劃,本節将為大家提供網絡規劃的建議。至少千兆網絡是必須的。這裡展示一下單個伺服器的網絡配置。
OpenStack Compute網絡可以使用扁平式網絡,DHCP以及VLAN,運作nova-network的伺服器建議配置雙網卡。
管理類網絡設計:這個網絡用來在雲架構中不同伺服器直接互相通訊,建議可以容納255台主機的IP規劃(CIDR/24)。
公共網絡設計:這個網絡為外網提供連接配接使用,網際網路使用者可以通過這些IP通路雲服務。建議設計8個IP。
虛拟網絡設計:為虛拟機設計私有IP位址。建議CIDR/24。
安裝NTP
保持雲中多台主機的時間同步,你需要安裝NTP軟體,在雲環境的多節點中,以下為伺服器配置的參考模版。
1.安裝軟體
$ sudo yum install –y ntp
2.配置服務端:在雲控制節點上通過修改ntp.conf配置NTP伺服器,然後啟動服務。(原文中未設定服務端的具體設定,可google參考相關資料)
$ sudo service ntpd start
$ sudo chkconfig ntpd on
3.配置NTP用戶端,是compute節點與雲控制節點同步時間,并将以下指令作為計劃任務定期執行。
# ntpdate‘伺服器IP’
# hwclock -w
版本名
每一份OpenStack發行版本都有一個版本名稱,版本名稱按字母順序增加(如:Diablo的下一個版本是Essex)。這些發行版本也有相應的版本号,但這個版本号不同于OpenStack Compute,OpenStack Object Storage的版本号,以下為版本名稱清單:
<a href="http://manual.blog.51cto.com/attachment/201208/20/3300438_1345506113dkcU.png"></a>
從Cactus開始,OpenStack修改為六個月的開發周期,Folsom預計在2012年10月釋出。
代碼名稱
每個OpenStack服務有一個代碼名稱,如鏡像服務(Image Service)代碼名稱為Glance。以下為全部代碼名稱清單:
OpenStack Compute(代碼名稱:Nova)
OpenStack Networking(代碼名稱:Quantum)
OpenStack Object Storage(代碼名稱:Swift)
OpenStack Block Storage(代碼名稱:Cinder)
OpenStack Identity(代碼名稱:Keystone)
OpenStack Image Service(代碼名稱:Glance)
OpenStack Dashboard(代碼名稱:Horizon)
代碼名稱可以用來反應配置檔案與指令工具的名稱,如:認證服務(Identity Service)的配置檔案名稱為keystone.conf。
OpenStack服務與Linux服務
在Linux概念中,一個服務(也被稱為守護程序)表示運作在背景監聽特定端口并響應服務請求的單個程式。而OpenStack服務則表示的是若幹Linux服務的集合,一個OpenStack服務需要開啟多個Linux服務。如nova-compute與nova-scheduler兩個Linux服務負責實施Compute服務。OpenStack還需要依賴與第三方的服務,如資料庫(MySQL)以及消息服務(RabbitMQ、Qpid)。
本文檔中,我們使用服務來表示底層的Linux服務以及高層的OpenStack服務。你需要通過上下文判斷我們所說的服務是OpenStack服務(如:Image)還是Linux服務(如:glance-api)。
存儲:對象,塊,檔案
許多雲計算解決方案都要求使用遠端存儲。而存儲的解決方案一般分為三類:對象存儲、塊存儲以及檔案存儲。
當然有些存儲解決方案同時支援多中類型。如:NexentaStor支援塊存儲與檔案存儲,GlusterFS支援檔案存儲與對象存儲,Ceph Storage支援對象存儲、塊存儲以及檔案存儲。
對象存儲
在OpenStack中對象存儲服務為Swif。
相關的概念:Amazon S3,Rackspace Cloud Files,Ceph Storage。
對于對象存儲,所有的檔案通過均HTTP接口展現。用戶端在使用者層上通路對象存儲,作業系統并不清楚使用者在使用的是遠端存儲。在OpenStack中,Object Storage提供了對象存儲的功能。使用者通過HTTP請求通路和修改檔案。由于對象存儲提供的資料通路接口是一種底層的抽象,是以人們常常會在對象存儲的基礎上建構基于檔案的應用程式。例如,OpenStack Image Server就可以配置使用Object Storage作為後端存儲。從對象存儲提供HTTP接口後,它的另一個應用是作為靜态網站内容(如:圖檔、多媒體檔案等)的内容分發網絡(CDN)解決方案。
塊存儲(SAN)
在OpenStack中提供塊存儲的是nova-volume。
相關概念:Amazon Elastic Block Store(EBS),Ceph RADOS Block Device(RBD),iSCSI
對于塊存儲,檔案通過計算機底層總線展現如SCSI或ATA接口,這些接口可接入網絡。塊存儲是SAN(存儲區域網絡)的同義詞。用戶端通過作業系統裝置層通路資料:使用者像挂載本地磁盤一樣挂載遠端裝置(Linux中挂載指令為mount)。在OpenStack中,nova-volume服務提供了該項功能。
因為是作為本地磁盤加載,是以終端使用者需要建立分區并格式化這些裝置。這種裝置同時僅可被單個使用者挂載使用,是以塊存儲無法用來在虛拟機執行個體間作為共享資料之用。
檔案存儲(NAS)
OpenStack不提供檔案存儲的支援。
相關概念:NFS,Samba/CIFS,GlusterFS,Dropbox,Google Drive
對應檔案存儲,檔案通過分布式的檔案系統協定展現。檔案存儲與NAS(網絡附加存儲)是同義詞。用戶端通過作業系統中的檔案系統層面通路資料:使用者需要挂載遠端檔案系統通路資料。檔案存儲的例子有NFS與GlusterFS。作業系統需要安裝适當的軟體來通路遠端檔案系統。
你可以把OpenStack Compute了解為結合現有Linux技術建構雲計算環境的工具箱。
以下我們通過圖例說明建構OpenStack Compute雲環境的基礎技術。圓形表示構成OpenStack Compute的Linux服務,矩形表示外部元件(不屬于OpenStack項目),實線表示OpenStack元件與外部元件間的互動,虛線表示外部元件之間的互動。所有組成OpenStack Compute的服務都與後端消息隊列(如:RabbitMQ,Qpid)以及後端資料庫(如:MySQL)互動,這種互動圖中沒有連線。同時其他的一些非必須的外部元件技術同樣不在該圖示中展示,如:nova-api,OpenStack Identity以及OpenStack Image服務。
方案1:
<a target="_blank" href="http://blog.51cto.com/attachment/201208/074632432.png"></a>
方案2:
<a target="_blank" href="http://blog.51cto.com/attachment/201208/074648796.png"></a>
如圖所示,多數外部元件可以有很多替代産品。
技術與軟體:
<a href="http://manual.blog.51cto.com/attachment/201208/20/3300438_1345506116f3vT.png"></a>
nova-compute
nova-compute服務依靠虛拟化驅動管理虛拟機。預設驅動為libvirt,可以驅動KVM,但libvirt同樣可以驅動其他hypervisor技術。如果你需要使用Xen雲平台或XenServer,則Xen虛拟化技術使用單獨的驅動。Open-iscsi用來挂載遠端塊裝置,也被稱為卷。Open-iscsi将遠端裝置當作與本地裝置一樣使用。
nova-network
nova-network服務依賴于一些Linux網絡技術,它使用Linux橋接技術來連接配接虛拟機與實體主機。如果是運作在VLAN網絡模式,這些橋裝置可以通過Linux VLAN技術相關聯。iptables負責安全政策實施與NAT功能。DNSmasq用來快速部署DNS伺服器并為虛拟機執行個體配置設定IP位址、DNS等網絡參數。
在未來的OpenStack發行版本中,nova-network的功能将被獨立稱為OpenStack的一個獨立項目,代碼名稱為Quantum。
譯者再次備注一下,OpenStack提供的手冊文檔是2012年4月31日,而目前根據OpenStack官網資訊顯示OpenStack Networking已經是一個獨立的項目了。
nova-volume
預設,nova-volume服務使用LVM建立和管理本地卷,并使用IET或tgt通過iSCSI方式釋出出去。nova-volume同樣可以配置使用其他基于iSCSI的存儲技術。
未來的OpenStack發行版本中,nova-volume的功能将被獨立為OpenStack項目,代碼名稱為Cinder。
openstack-dashboard
openstack-dashboard是基于Django的應用程式,它預設運作在Apache Web伺服器上。你可以使用memcache來改善它的性能。一個基于web的VNC用戶端-novnc,使用novnc連接配接VNC控制台與KVM執行個體連接配接。
OpenStack Compute有大量的配置選項,為了簡化本安裝指南,我們對需要部署的環境做了一些假設。
你已經有了一些安裝有Fedora17,RHEL6.2,Scientific Linux6.1或CentOS6發行版的compute節點。備注OpenStack同樣支援Ubuntu,但本文檔不做說明。
你已經標明了一台作為雲控制節點,它将除nova-compute外的所有服務(RabbitMQ,MySQL,Identity,Image,nova-api,nova-network,nova-scheduler,nova-volume)。
雲控制器的磁盤分區使用的是LVM。
你的雲控制器有一個LVM卷組(VG)名為”nova-volumes”共VM使用,你可以安裝系統的使用建立,也可以在安裝nova服務前使用剩餘空間建立。
確定你的主機名可以被正确的解析,另外如果你使用RabbitMQ作為後端消息隊列或許會遇到些麻煩,Fedora預設使用Qpid作為消息隊列。
192.168.206.130是主機上eth0網卡的主IP位址。
192.168.100.0/24作為虛拟主機的網絡範圍,通過橋接br100連接配接宿主主機。
FlatDHCP with a single network interface.
使用KVM或Xen(XenServer or XCP)作為hypervisor。
未完待續… …
本文轉自丁丁曆險51CTO部落格,原文連結:http://blog.51cto.com/manual/967858 ,如需轉載請自行聯系原作者