生活随笔
收集整理的這篇文章主要介紹了
部署单节点OpenStack
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一.OpenStack詳述
OpenStack簡介
- OpenStack是一個是一個開源的云計算管理平臺項目,是一系列軟件開源項目的組合。通過命令或者基于Web的可視化控制面板來管理IaaS云端資源池(服務(wù)器、存儲和網(wǎng)絡(luò))。它2010年由美國國家航空航天局(NASA)和Rackspace合作研發(fā)。
- 但是至2016年開始OpenStack就已經(jīng)在走下坡路,美國國家航空航天局NASA在2012年停止OpenStack相關(guān)研發(fā)工作,揭開了OpenStack的式微序曲,在此之后,越來越多的IT廠商開始放棄OpenStack:2015年,Rackspace宣布將客戶的業(yè)務(wù)遷移到 AWS 上;2015年10月,惠普宣布關(guān)閉基于OpenStack的公共云服務(wù)Helion;2016年2月,思科宣布將在2018年3月停止基于OpenStack的公共云服務(wù)Intercloud;2016年11月,OpenStack核心成員Mirantis,裁掉了約100名OpenStack開發(fā)者;2017年4月,英特爾決定不再投資OpenStack創(chuàng)新中心。
- 阿里云、亞馬遜AWS、微軟Azure、谷歌GCP,自主研發(fā)的都是互聯(lián)網(wǎng)公司,而選擇OpenStack如IBM、英特爾、華為,包括退出的思科與惠普,都是傳統(tǒng)的IT廠家。
- OpenStack是否式微暫且不說
- OpenStack支持KVM、Xen、Lvc、Docker等虛擬軟件或容器,默認(rèn)為KVM。通過安裝驅(qū)動,也支持Hyper-V和Vmware ESXi,不過有些功能暫時不支持,具體的虛擬機管理器支持矩陣參見網(wǎng)站?http://docs.openstack.org/developer/nova/support-matrix.html
- OpenStack采用Python語言開發(fā),遵循Apache開源協(xié)議,因此相比CloudStack來說,更輕量化,效率更高。OpenStack每半年更新一個版本,截止目前發(fā)布的版本是第21版本OpenStack Ussuri,各個版本的發(fā)行時間表參考網(wǎng)站?https://releases.openstack.org/。
- OpenStack主要任務(wù)是給用戶提供IaaS服務(wù)
IaaS(基礎(chǔ)設(shè)施即服務(wù)):IaaS提供最底層的IT基礎(chǔ)設(shè)施服務(wù),包括處理能力,存儲空間,網(wǎng)絡(luò)資源等,用戶可以從中獲取硬件或者虛擬硬件資源(包括裸機或者虛擬機),之后可以申請到的資源安裝操作系統(tǒng)和其他應(yīng)用程序,一般面向?qū)ο笫荌T管理人員
PaaS(平臺即服務(wù)):是把已經(jīng)安裝好開發(fā)環(huán)境的系統(tǒng)平臺作為一種服務(wù)通過互聯(lián)網(wǎng)提供給用戶。用戶可以在上面安裝其他的應(yīng)用程序,但是不能修改已經(jīng)安裝好的操作系統(tǒng)和運行環(huán)境。一般面向?qū)ο笫情_發(fā)人員,需要了解平臺提供環(huán)境下的應(yīng)用開發(fā)和部署
SaaS(軟件即服務(wù)):SaaS可以直接通過互聯(lián)網(wǎng)為用戶提供軟件和應(yīng)用程序的服務(wù),用戶可以通過和租聘的方式獲取安裝在廠商或者服務(wù)提供商哪里的軟件。一般面向的對象是普通用戶,最常見模式是提供給用戶一組賬號和密碼
OpenStack的組件功能
- OpenStack生態(tài)系統(tǒng)已從“孵化/集成”模式轉(zhuǎn)移到“大帳篷”模式,在此模式下,既保持了對規(guī)模較小的核心項目的關(guān)注,也積極鼓勵在更廣泛的主流生態(tài)環(huán)境中的自由創(chuàng)新,而以前的“孵化/集成”模式只是把孵化成功的項目集成到主流生態(tài)中
- “大帳篷”模式把OpenStack的組件進行分類,目前包括6個核心組件(Nova、Neutron、Swift、Cinder、Keystone、Glance)和14個可選組件,每個組件包含若干個服務(wù),后續(xù)版本中組件分類及數(shù)量都可能會發(fā)生變化,如下所示
| 分類 | 服務(wù) | 組件名稱 | 描述 |
| 核心組件 | 計算服務(wù) | Nova | 管理虛擬機的整個生命周期:創(chuàng)建、運行、掛起、調(diào)度、關(guān)閉、銷毀等。這是真正的執(zhí)行部件。接受 DashBoard 發(fā)來的命令并完成具體的動作。但是 Nova 不是虛擬機軟件,所以還需要虛擬機軟件(如 KVM、Xen、Hyper-v 等)配合 |
| 網(wǎng)絡(luò)服務(wù) | Neutron | 管理網(wǎng)絡(luò)資源,提供/一組應(yīng)用編程接口(API),用戶可以調(diào)用它們來定義網(wǎng)絡(luò)(如 VLAN ),并把定義好的網(wǎng)絡(luò)附加給租戶。Networking 是一個插件式結(jié)構(gòu),支持當(dāng)前主流的網(wǎng)絡(luò)設(shè)備和最新網(wǎng)鉻技術(shù) |
| 對象存儲 | Swift | 是?NoSQL?數(shù)據(jù)庫,類似?HBase,為虛擬機提供非結(jié)構(gòu)化數(shù)據(jù)存儲,它把相同的數(shù)據(jù)存儲在多臺計箅機上,以確保數(shù)據(jù)不會丟失。用戶可通過 RESTful 和 HTTP 類型的 API 來和它通信。這是實際的存儲項目,類似 Ceph,不過在 OpcnStack 具體實施時,人們更愿意采用 Ceph。 |
| 塊存儲 | Cinder | 管理塊設(shè)備,為虛擬機管理 SAN 設(shè)備源。但是它本身不是塊設(shè)備源, 需要一個存儲后端來提供實際的塊設(shè)備源(如 iSCSI、FC等)。 Cinder 相當(dāng)于一個管家,當(dāng)虛擬機需要塊設(shè)備時,詢問管家去哪里獲取具體的塊設(shè)備。它也是插件式的,安裝在具體的 SAN 設(shè)備里。 |
| 認(rèn)證服務(wù) | Keystone | 為其他服務(wù)提供身份驗證、權(quán)限管理、令牌管理及服務(wù)名冊管理。要使用云計算的所有用戶事先需要在 Keystone 中建立賬號和密碼,并定義權(quán)限(注意:這里的“用戶”不是指虛擬機里的系統(tǒng)賬戶,如 Windows 7 中的 Administrator )。另外,OpenStack 服務(wù)(如 Nova、Neutron、Swift、Cinder 等)也要在里面注冊,并且登記具體的 API,Keystone 本身也要注冊和登記 API |
| 鏡像服務(wù) | Glance | 存取虛擬機磁盤鏡像文件,Compute 服務(wù)在啟動虛擬機時需要從這里獲取鏡像文件。這個組件不同于上面的 Swift 和 Cinder,這兩者提供的 存儲是在虛擬機里使用的 |
| 可選組件 | 基于web的管理界面 | Horizon | 提供了一個網(wǎng)頁界面,用戶登錄后可以做這些操作:管理虛擬機、配置權(quán)限、分配 IP 地址、創(chuàng)建租戶和用戶等。本質(zhì)上就是通過圖形化的 操作界面控制其他服務(wù)(如 Compute、Networking 等)。當(dāng)然,如果你熟悉命令,也可以直接采用命令來完成相應(yīng)的任務(wù) |
| 編排 | Heat | 如果要在成千上萬個虛擬機里安裝和配置同一個軟件,該怎么辦?采用 Orchestrates 是一個不錯的主意,它向每個虛擬機里注人一個名叫 heat-cfntools 的客戶端工具,然后就能同時操作很多虛擬機 |
| 大數(shù)據(jù)平臺搭建 | Sahana | 使用戶能夠在 OpenStack 平臺上(利用虛擬機)一鍵式創(chuàng)建和管理 Hadoop 集群,實現(xiàn)類似 AWS 的 EMR(Amazon Elastic MapReduce Service)功能。用戶只需要提供簡單的配置參數(shù)和模板,如版本信息(CDH 版本)、集群拓撲(幾個 Slave、幾個 Datanode)、節(jié)點配置信息(CPU、內(nèi)存)等,Sahara 服務(wù)就能夠在幾分鐘內(nèi)根據(jù)提供的模板快速 部署 Hadoop、Spark 及 Storm 集群。Sahana 是一個大數(shù)據(jù)分析項目 |
| 裸機管理 | Ironic | 把裸金屬機器(與虛擬機相對)加人到資源池中 |
| 消息服務(wù) | Zaqar | Zaqar 為 Web 和移動開發(fā)者提供多租戶云消息和通知服務(wù),開發(fā)人員可以通過 REST API 在其云應(yīng)用的不同組件中通過不同的通信模式(如 生產(chǎn)者/消費者或發(fā)布者/訂閱者)來傳遞消息 |
| 計量 | Ceilometer | 結(jié)合 Aodh、CloudKitty 兩個組件,完成計費任務(wù),如結(jié)算、消耗的 資源統(tǒng)計、性能監(jiān)控等。OpenStack 之所以能管理公共云,一是因為 Ceilometer 的存在,二是因為引人了租戶的概念 |
| 密鑰管理 | Barbican | 是 OpenStack 的密鑰管理組件,其他組件可以調(diào)用 Barbican 對外暴露的 REST API 來存儲和訪問密鑰 |
| 文件系統(tǒng)共享 | Manila | 為虛擬機提供文件共享服務(wù),不過需要存儲后端的配合 |
| ? | ? | | 其他組件:Congress(策略服務(wù))、Designate(DNS 服務(wù))、Freezer(備份及還原服務(wù))、Magnum(容器支持)、Mistral(工作流服務(wù))、Monasca(監(jiān)控服務(wù))、Searchlight(索引和搜索)、Senlin(集群服務(wù))、Solum(APP集成開發(fā)平臺)、Tacker(網(wǎng)絡(luò)功能 虛擬化)、Trove(數(shù)據(jù)庫服務(wù)) |
|
?
OpenStack的優(yōu)勢
- OpenStack在控制性、兼容性、可擴展性、靈活性方面具備有優(yōu)勢,它可能成為云計算領(lǐng)域的行業(yè)標(biāo)準(zhǔn)
- 控制性:完全開源的平臺,模塊化的設(shè)計,提供相應(yīng)的API接口,方便與第三技術(shù)集成,從而滿足自身業(yè)務(wù)需求
- 兼容性:OpenStack兼容其他公有云,方便用戶進行數(shù)據(jù)遷移
- 可擴展性:OpenStack采用模塊化的設(shè)計,支持主流發(fā)行版本的Linux,可以通過橫向擴展,增加節(jié)點、添加資源
- 靈活性:用戶可以根據(jù)自己的需要建立基礎(chǔ)設(shè)施,也可以輕松地為自己的群集增加規(guī)模。OpenStack項目采用Apache2許可,意味著第三方廠家可以重新發(fā)布源代碼
二.部署單節(jié)點OpenStack具體步驟
環(huán)境要求
- 本實驗使用VMware虛擬機,下面是該虛擬機的配置
| 角色 | 系統(tǒng) | 內(nèi)存 | 磁盤 | CPU(啟用虛擬化功能) |
| 客戶端 | CentOS7.6 | 8G | 40G系統(tǒng)盤 150G數(shù)據(jù)盤 | 雙核雙線程 |
注:虛擬機處于NAT模式下,保證能夠正常上網(wǎng)
安裝步驟
systemctl stop firewalld
systemctl disable firewalld ##永久性關(guān)閉setenforce 0
vi /etc/sysconfig/selinux ##永久性關(guān)閉
SELINUX=disabled
- 關(guān)閉NetworkManager服務(wù)
systemctl disable NetworkManager
systemctl stop NetworkManager
##刪除原有的源
cd /etc/yum.repos.d/
rm -rf *##配置YUM源
vim CentOS-Base.repo
[openstack-train]
name=openstack-train
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-train/
enabled=1
gpgcheck=0#[openstack-ocata]
#name=openstack-ocata
#baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-ocata/
#enabled=1
#gpgcheck=0#[openstack-rocky]
#name=openstack-rocky
#baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-rocky/
#enabled=1
#gpgcheck=0[kvm-common]
name=kvm-common
baseurl=https://mirrors.aliyun.com/centos/7/virt/x86_64/kvm-common/
enabled=1
gpgcheck=0[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache
[root@control ~]# yum -y install ntpdate
[root@control ~]# ntpdate ntp.aliyun.com##創(chuàng)建計劃性任務(wù)表,每兩分鐘更新一次時鐘
[root@control ~]# crontab -e
*/2 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
[root@control ~]# systemctl restart crond
[root@control ~]# systemctl enable crond
[root@control ~]# tail -f /var/log/ntpdate.log ###動態(tài)查看更新日志文件,這條命令可以不敲
[root@OpenStack ~]# yum -y install centos-release-openstack-train
[root@OpenStack ~]# yum -y install openstack-packstack
packstack --allinone ##出現(xiàn)如下界面則安裝成功**** Installation completed successfully ******
[root@localhost ~]# cat keystonerc_admin
unset OS_SERVICE_TOKENexport OS_USERNAME=adminexport OS_PASSWORD='ccd4412cb85a4667' ##此為登錄OpenStack密碼export OS_REGION_NAME=RegionOneexport OS_AUTH_URL=http://192.168.43.104:5000/v3export PS1='[\u@\h \W(keystone_admin)]\$ 'export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
[root@localhost ~]#
- 登錄http://192.168.43.104/dashboard/?測試,賬戶為admin,密碼為ccd4412cb85a4667
- 上傳鏡像到本機中,用于在OpenStack中創(chuàng)建系統(tǒng)
- 利用Xftp上傳鏡像到已經(jīng)創(chuàng)建好的數(shù)據(jù)盤中
[root@localhost ~]# source keystonerc_admin
[root@localhost ~(keystone_admin)]# ll
總用量 68
-rw-------. 1 root root 1880 1月 4 16:15 anaconda-ks.cfg
-rw-r--r--. 1 root root 1911 1月 4 17:31 initial-setup-ks.cfg
-rw-------. 1 root root 374 2月 20 16:34 keystonerc_admin
-rw-------. 1 root root 319 2月 20 16:34 keystonerc_demo
-rw-------. 1 root root 51681 2月 20 16:28 packstack-answers-20200220-162837.txt
drwxr-xr-x. 2 root root 6 1月 4 18:05 公共
drwxr-xr-x. 2 root root 6 1月 4 18:05 模板
drwxr-xr-x. 2 root root 6 1月 4 18:05 視頻
drwxr-xr-x. 2 root root 6 1月 4 18:05 圖片
drwxr-xr-x. 2 root root 6 1月 4 18:05 文檔
drwxr-xr-x. 2 root root 6 1月 4 18:05 下載
drwxr-xr-x. 2 root root 6 1月 4 18:05 音樂
drwxr-xr-x. 2 root root 6 1月 4 18:05 桌面
[root@localhost ~(keystone_admin)]# cd /data
[root@localhost data(keystone_admin)]# openstack image create --container-format bare --disk-format iso --public --file CentOS-7-x86_64-DVD-1810.iso ISO_CentOS7.6
+------------------+------------------------------------------------------+
| Field | Value |
+------------------+------------------------------------------------------+
| checksum | 5b61d5b378502e9cba8ba26b6696c92a |
| container_format | bare |
| created_at | 2019-04-27T18:15:22Z |
| disk_format | iso |
| file | /v2/images/9a3469e6-4bde-4544-8fe3-daa909c6682d/file |
| id | 9a3469e6-4bde-4544-8fe3-daa909c6682d |
| min_disk | 0 |
| min_ram | 0 |
| name | ISO_CentOS7.6 |
| owner | c44490a1222c4a23861b4b87147a744c || protected | False |
| schema | /v2/schemas/image |
| size | 4588568576 |
| status | active |
| tags | |
| updated_at | 2019-04-27T18:16:01Z |
| virtual_size | None |
| visibility | public |
+------------------+------------------------------------------------------+
?
?
總結(jié)
以上是生活随笔為你收集整理的部署单节点OpenStack的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。