OpenStack雲計算與虛擬化—架構篇

  雲計算與虛擬化

雲計算與虛擬化這個概念是什麼時候出現在我們腦海裏的?一開始的亞馬遜雲服務再到阿里巴巴推出的阿里雲,緊接着各大廠商爭先恐後的推出自己的公共雲平臺,騰訊雲,華爲雲,微軟雲等等,那麼究竟什麼是雲服務和虛擬化?

首先解釋什麼是雲計算,雲計算(Cloud Computing)是基於互聯網的相關服務的增加、使用和交付模式,通常涉及通過互聯網來提供動態易擴展且經常是虛擬化的資源。雲是網絡、互聯網的一種比喻說法。過去在圖中往往用雲來表示電信網,後來也用來表示互聯網和底層基礎設施的抽象。因此,雲計算甚至可以讓你體驗每秒10萬億次的運算能力,擁有這麼強大的計算能力可以模擬核爆炸、預測氣候變化和市場發展趨勢。用戶通過電腦、筆記本、手機等方式接入數據中心,按自己的需求進行運算。對雲計算的定義有多種說法。對於到底什麼是雲計算,至少可以找到100種解釋。 現階段廣爲接受的是美國國家標準與技術研究院(NIST)定義:雲計算是一種按使用量付費的模式,這種模式提供可用的、便捷的、按需的網絡訪問, 進入可配置的計算資源共享池(資源包括網絡,服務器,存儲,應用軟件,服務),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務供應商進行很少的交互。

再來說說什麼是虛擬化,虛擬化是指通過虛擬化技術將一臺計算機虛擬爲多臺邏輯計算機。在一臺計算機上同時運行多個邏輯計算機,每個邏輯計算機可運行不同的操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。虛擬化使用軟件的方法重新定義劃分IT資源,可以實現IT資源的動態分配、靈活調度、跨域共享,提高IT資源利用率,使IT資源能夠真正成爲社會基礎設施,服務於各行各業中靈活多變的應用需求。

OK,那麼我們現在就能總結一下,首先雲計算是一種模式而且是通過網絡訪問按需使用,但是雲計算並不等於虛擬化,而虛擬化分爲硬件虛擬化和軟件虛擬化,全虛擬化和半虛擬化

  傳統數據中心所面臨的的問題

爲什麼雲計算與虛擬化這麼火,原因很簡單,按照我們之前傳統的模式,首先和數據中心機房簽訂合同然後自己購買服務器,安裝系統,部署對應的環境,然後出了問題可能還要聯繫機房授權進行維護這是要多麻煩就有多麻煩,其次普片的服務器存在資源利用率低,資源分配不合理的情況,許多公司的架構都遵循一個非常守舊的觀念,那就是一臺服務器就只搭建一個服務,這讓使其CPU的使用資源都是非常的低,這可不是說不好,但是我覺得非常浪費,我們運維人員和架構師就是爲公司省錢並且提高性能的,傳統的模式還有一個自動化能力差的問題,遷移、部署都是非常繁瑣,同時硬件升級的時候還可能需要停機,以上的種種都是成就了雲計算與虛擬化的大功臣啊

  雲計算的分類

雲計算可以概括性的分爲三類:公有云、私有云、混合雲

公有云:使用第三方的雲服務商的產品,如:阿里雲、騰訊雲等

私有云:在自己的機房搭建雲平臺,比如接下來介紹的OpenStack,私有云主要提供了私密的性質,畢竟公有云的數據都是存在別人的地方

混合雲:公有云+私有云=混合雲,爲什麼會有這種模式,舉個簡單的例子,雙十一,偶爾的自己平臺撐不住,這時候依靠別人平臺按需按時去使用

  雲計算的分層

  • Packaged Software

  • Infrastructure as a Service

  • Platfrom as a Service

  • Software as a Service

  OpenStack

OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發併發起的,以Apache許可證授權的自由軟件和開放源代碼項目,這也是爲什麼OpenStack在這麼火的原因,哪怕你只改了其中的一個字母拿去售賣都是合法的,OpenStack是一個開源的雲計算管理平臺項目,由幾個主要的組件組合起來完成具體工作,以Python編程語言編寫,整合Tornado網頁服務器、Nebula運算平臺,使用Twisted軟件框架,遵循Open Virtualization Format、AMQP、SQLAlchemy等標準,而虛擬機器軟件支持包括:KVM、Xen、VirtualBox、QEMU、 LXC 等,項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的雲計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。OpenStack是一個旨在爲公共及私有云的建設與管理提供軟件的開源項目。它的社區擁有超過130家企業及1350位開發者,這些機構與個人都將OpenStack作爲基礎設施即服務(IaaS)資源的通用前端。OpenStack項目的首要任務是簡化雲的部署過程併爲其帶來良好的可擴展性。本文希望通過提供必要的指導信息,幫助大家利用OpenStack前端來設置及管理自己的公共雲或私有云。OpenStack雲計算平臺,幫助服務商和企業內部實現類似於Amazon EC2和S3的雲基礎架構服務(Infrastructure as a Service,IaaS)。OpenStack包含兩個主要模塊:Nova 和 Swift,前者是NASA開發的虛擬服務器部署和業務計算模塊;後者是Rackspace開發的分佈式雲存儲模塊,兩者可以一起用,也可以分開單獨用。OpenStack除了有Rackspace和NASA 的大力支持外,還有包括Dell、Citrix、Cisco、Canonical等重量級公司的貢獻和支持,發展速度非常快,有取代另一個業界領先開源雲平臺Eucalyptus的態勢。

  OpenStack核心項目模塊

  • 計算服務模塊:Nova,一套控制器,用於爲單個用戶或使用羣組管理虛擬機實例的整個生命週期,根據用戶需求來提供虛擬服務。負責虛擬機創建、開機、關機、掛起、暫停、調整、遷移、重啓、銷燬等操作,配置CPU、內存等信息規格。

  • 存儲服務模塊:Cinder,爲運行實例提供穩定的數據塊存儲服務,它的插件驅動架構有利於塊設備的創建和管理,如創建卷、刪除卷,在實例上掛載和卸載卷。

  • 鏡像服務模塊:Glance,一套虛擬機鏡像查找及檢索系統,支持多種虛擬機鏡像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有創建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。

  • 身份驗證模塊:Keystone。爲OpenStack其他服務提供身份驗證、服務規則和服務令牌的功能,管理Domains、Projects、Users、Groups、Roles。

  • 網絡服務模塊:Neutron,提供雲計算的網絡虛擬化技術,爲OpenStack其他服務提供網絡連接服務。爲用戶提供接口,可以定義Network、Subnet、Router,配置DHCP、DNS、負載均衡、L3服務,網絡支持GRE、VLAN。

  • 界面服務模塊:Horizon,OpenStack中各種服務的Web管理門戶,用於簡化用戶對服務的操作,例如:啓動實例、分配IP地址、配置訪問控制等。

[題外話:Openstack不管是版本的命名還是說插件模塊的命名都是非常有趣的,隨緣起名字,就是那麼佛性]

  OpenStack架構

OpenStack因Open而開放,因組件而靈活,因包容而博大。有計算、網絡、對象存儲、塊存儲、身份、鏡像服務、門戶、測量、部署編排、數據庫服務等等組件,有的組件可以根據需要選擇安裝,組網結構也很靈活、多樣。實現了支持接入多種主流虛擬機軟件:KVM、LXC、QEMU、Hyper-V、VMware、XenServer,也可以自行開發插件接入其他的虛擬化軟件。
OpenStack Compute(Nova)是一套控制器,用於爲單個用戶或使用羣組啓動虛擬機實例。它同樣能夠用於爲包含着多個實例的特定項目設置網絡。OpenStack Compute在公共雲處理方面堪與Amazon EC2相提並論;而在私有云方面也毫不遜色於VMware的產品。在公共雲中,這套管理機制將提供預製的鏡像或是爲用戶創建的鏡像提供存儲機制,這樣用戶就能夠將鏡像以虛擬機的形式啓動。
OpenStack 對象存儲(Swift)是一套用於在大規模可擴展系統中通過內置冗餘及容錯機制實現對象存儲的系統。這些對象能夠通過一個REST API或是像Cyberduck這樣可以對接對象存儲API的客戶端加以恢復。
OpenStack鏡像服務 (Glance)是一套虛擬機鏡像查找及檢索系統。它能夠以三種形式加以配置:利用OpenStack對象存儲機制來存儲鏡像;利用Amazon的簡單存儲解決方案(簡稱S3)直接存儲信息;或者將S3存儲與對象存儲結合起來,作爲S3訪問的連接器。OpenStack鏡像服務支持多種虛擬機鏡像格式,包括VMware(VMDK)、Amazon鏡像(AKI、ARI、AMI)以及VirtualBox所支持的各種磁盤格式。鏡像元數據的容器格式包括Amazon的AKI、ARI以及AMI信息,標準OVF格式以及二進制大型數據。
OpenStack的開發週期是每年固定發佈兩個新版本,並且每一個新版軟件發佈時,開發者與項目技術領導者已經在規劃下一個版本的細節。這些開發者來自全球70多個組織,超過1600人。他們採用高級的工具與開發方式,進行代碼查看、持續的集成、測試與開發架構,讓版本在快速成長的同時也能確保穩定性。

  OpenStack環境

OpenStack雖然說是非常的有趣,部署起來也比較簡單,就修改配置文件即可,但是必須規範理解每個的用意,不然就會非常的混亂,下面給大家簡單說明一下環境的規範

域名的解析配置

#配置主機名稱
vim /etc/hostname
controller.kemin-cloud.com

#配置hosts解析
vim /etc/hosts
192.168.137.51  controller.kemin-cloud.com
192.168.137.52  compute.kemin-cloud.com

網絡時間配置

echo "* * * * * ntpdate  -u ntp1.aliyun.com" >> /etc/crontab

OpenStack的Yum倉庫

#直接安裝用於啓用OpenStack倉庫的包
yum install -y centos-release-openstack-ocata
#升級更新內核
yum upgrade
#安裝 OpenStack 客戶端
yum install python-openstackclient
#RHEL和 CentOS 默認啓用 SELinux 。安裝 openstack-selinux 包實現對OpenStack服務的安全策略進行自動管理
yum install openstack-selinux

SQL數據庫

#安裝SQL數據庫
yum install mariadb mariadb-server python2-PyMySQL

#創建並編輯/etc/my.cnf.d/openstack.cnf
vim /etc/my.cnf.d/openstack.cnf
[mysqld]
bind-address = 10.0.0.11
default-storage-engine = innodb
innodb_file_per_table = on
max_connections = 4096
collation-server = utf8_general_ci
character-set-server = utf8

#啓動數據庫服務,並將其配置爲開機自啓
systemctl enable mariadb.service
systemctl start mariadb.service

#初始化數據庫
mysql_secure_installation

消息隊列

#安裝消息隊列服務
yum install rabbitmq-server

#啓動消息隊列服務並將其配置爲隨系統啓動:
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service

#添加openstack用戶:
rabbitmqctl add_user openstack 123

#給openstack用戶配置寫和讀權限:
rabbitmqctl set_permissions openstack ".*" ".*" ".*"

#啓動rabbitmq的web管理界面
rabbitmq-plugins enable rabbitmq_management

這樣子我們就可以通過瀏覽器訪問服務器的15672端口訪問了,不過這裏需要注意的是前面創建的openstack並不能登錄,需要使用guest登錄,密碼也是geust,建議登陸進去後進行密碼修改喲

Memcached緩存服務

#安裝Memcached服務
yum install memcached python-memcached

#編輯/etc/sysconfig/memcached文件修改監聽端口
vim /etc/sysconfig/memcached
OPTIONS="-l 0.0.0.0,::1,controller"

#啓動Memcached服務,並且配置它隨機啓動
systemctl enable memcached.service
systemctl start memcached.service

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章