生活随笔
收集整理的這篇文章主要介紹了
部署单节点OpenStack
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.OpenStack詳述
OpenStack簡介
- OpenStack是一個是一個開源的云計算管理平臺項目,是一系列軟件開源項目的組合。通過命令或者基于Web的可視化控制面板來管理IaaS云端資源池(服務器、存儲和網絡)。它2010年由美國國家航空航天局(NASA)和Rackspace合作研發。
- 但是至2016年開始OpenStack就已經在走下坡路,美國國家航空航天局NASA在2012年停止OpenStack相關研發工作,揭開了OpenStack的式微序曲,在此之后,越來越多的IT廠商開始放棄OpenStack:2015年,Rackspace宣布將客戶的業務遷移到 AWS 上;2015年10月,惠普宣布關閉基于OpenStack的公共云服務Helion;2016年2月,思科宣布將在2018年3月停止基于OpenStack的公共云服務Intercloud;2016年11月,OpenStack核心成員Mirantis,裁掉了約100名OpenStack開發者;2017年4月,英特爾決定不再投資OpenStack創新中心。
- 阿里云、亞馬遜AWS、微軟Azure、谷歌GCP,自主研發的都是互聯網公司,而選擇OpenStack如IBM、英特爾、華為,包括退出的思科與惠普,都是傳統的IT廠家。
- OpenStack是否式微暫且不說
- OpenStack支持KVM、Xen、Lvc、Docker等虛擬軟件或容器,默認為KVM。通過安裝驅動,也支持Hyper-V和Vmware ESXi,不過有些功能暫時不支持,具體的虛擬機管理器支持矩陣參見網站?http://docs.openstack.org/developer/nova/support-matrix.html
- OpenStack采用Python語言開發,遵循Apache開源協議,因此相比CloudStack來說,更輕量化,效率更高。OpenStack每半年更新一個版本,截止目前發布的版本是第21版本OpenStack Ussuri,各個版本的發行時間表參考網站?https://releases.openstack.org/。
- OpenStack主要任務是給用戶提供IaaS服務
IaaS(基礎設施即服務):IaaS提供最底層的IT基礎設施服務,包括處理能力,存儲空間,網絡資源等,用戶可以從中獲取硬件或者虛擬硬件資源(包括裸機或者虛擬機),之后可以申請到的資源安裝操作系統和其他應用程序,一般面向對象是IT管理人員
PaaS(平臺即服務):是把已經安裝好開發環境的系統平臺作為一種服務通過互聯網提供給用戶。用戶可以在上面安裝其他的應用程序,但是不能修改已經安裝好的操作系統和運行環境。一般面向對象是開發人員,需要了解平臺提供環境下的應用開發和部署
SaaS(軟件即服務):SaaS可以直接通過互聯網為用戶提供軟件和應用程序的服務,用戶可以通過和租聘的方式獲取安裝在廠商或者服務提供商哪里的軟件。一般面向的對象是普通用戶,最常見模式是提供給用戶一組賬號和密碼
OpenStack的組件功能
- OpenStack生態系統已從“孵化/集成”模式轉移到“大帳篷”模式,在此模式下,既保持了對規模較小的核心項目的關注,也積極鼓勵在更廣泛的主流生態環境中的自由創新,而以前的“孵化/集成”模式只是把孵化成功的項目集成到主流生態中
- “大帳篷”模式把OpenStack的組件進行分類,目前包括6個核心組件(Nova、Neutron、Swift、Cinder、Keystone、Glance)和14個可選組件,每個組件包含若干個服務,后續版本中組件分類及數量都可能會發生變化,如下所示
| 分類 | 服務 | 組件名稱 | 描述 |
| 核心組件 | 計算服務 | Nova | 管理虛擬機的整個生命周期:創建、運行、掛起、調度、關閉、銷毀等。這是真正的執行部件。接受 DashBoard 發來的命令并完成具體的動作。但是 Nova 不是虛擬機軟件,所以還需要虛擬機軟件(如 KVM、Xen、Hyper-v 等)配合 |
| 網絡服務 | Neutron | 管理網絡資源,提供/一組應用編程接口(API),用戶可以調用它們來定義網絡(如 VLAN ),并把定義好的網絡附加給租戶。Networking 是一個插件式結構,支持當前主流的網絡設備和最新網鉻技術 |
| 對象存儲 | Swift | 是?NoSQL?數據庫,類似?HBase,為虛擬機提供非結構化數據存儲,它把相同的數據存儲在多臺計箅機上,以確保數據不會丟失。用戶可通過 RESTful 和 HTTP 類型的 API 來和它通信。這是實際的存儲項目,類似 Ceph,不過在 OpcnStack 具體實施時,人們更愿意采用 Ceph。 |
| 塊存儲 | Cinder | 管理塊設備,為虛擬機管理 SAN 設備源。但是它本身不是塊設備源, 需要一個存儲后端來提供實際的塊設備源(如 iSCSI、FC等)。 Cinder 相當于一個管家,當虛擬機需要塊設備時,詢問管家去哪里獲取具體的塊設備。它也是插件式的,安裝在具體的 SAN 設備里。 |
| 認證服務 | Keystone | 為其他服務提供身份驗證、權限管理、令牌管理及服務名冊管理。要使用云計算的所有用戶事先需要在 Keystone 中建立賬號和密碼,并定義權限(注意:這里的“用戶”不是指虛擬機里的系統賬戶,如 Windows 7 中的 Administrator )。另外,OpenStack 服務(如 Nova、Neutron、Swift、Cinder 等)也要在里面注冊,并且登記具體的 API,Keystone 本身也要注冊和登記 API |
| 鏡像服務 | Glance | 存取虛擬機磁盤鏡像文件,Compute 服務在啟動虛擬機時需要從這里獲取鏡像文件。這個組件不同于上面的 Swift 和 Cinder,這兩者提供的 存儲是在虛擬機里使用的 |
| 可選組件 | 基于web的管理界面 | Horizon | 提供了一個網頁界面,用戶登錄后可以做這些操作:管理虛擬機、配置權限、分配 IP 地址、創建租戶和用戶等。本質上就是通過圖形化的 操作界面控制其他服務(如 Compute、Networking 等)。當然,如果你熟悉命令,也可以直接采用命令來完成相應的任務 |
| 編排 | Heat | 如果要在成千上萬個虛擬機里安裝和配置同一個軟件,該怎么辦?采用 Orchestrates 是一個不錯的主意,它向每個虛擬機里注人一個名叫 heat-cfntools 的客戶端工具,然后就能同時操作很多虛擬機 |
| 大數據平臺搭建 | Sahana | 使用戶能夠在 OpenStack 平臺上(利用虛擬機)一鍵式創建和管理 Hadoop 集群,實現類似 AWS 的 EMR(Amazon Elastic MapReduce Service)功能。用戶只需要提供簡單的配置參數和模板,如版本信息(CDH 版本)、集群拓撲(幾個 Slave、幾個 Datanode)、節點配置信息(CPU、內存)等,Sahara 服務就能夠在幾分鐘內根據提供的模板快速 部署 Hadoop、Spark 及 Storm 集群。Sahana 是一個大數據分析項目 |
| 裸機管理 | Ironic | 把裸金屬機器(與虛擬機相對)加人到資源池中 |
| 消息服務 | Zaqar | Zaqar 為 Web 和移動開發者提供多租戶云消息和通知服務,開發人員可以通過 REST API 在其云應用的不同組件中通過不同的通信模式(如 生產者/消費者或發布者/訂閱者)來傳遞消息 |
| 計量 | Ceilometer | 結合 Aodh、CloudKitty 兩個組件,完成計費任務,如結算、消耗的 資源統計、性能監控等。OpenStack 之所以能管理公共云,一是因為 Ceilometer 的存在,二是因為引人了租戶的概念 |
| 密鑰管理 | Barbican | 是 OpenStack 的密鑰管理組件,其他組件可以調用 Barbican 對外暴露的 REST API 來存儲和訪問密鑰 |
| 文件系統共享 | Manila | 為虛擬機提供文件共享服務,不過需要存儲后端的配合 |
| ? | ? | | 其他組件:Congress(策略服務)、Designate(DNS 服務)、Freezer(備份及還原服務)、Magnum(容器支持)、Mistral(工作流服務)、Monasca(監控服務)、Searchlight(索引和搜索)、Senlin(集群服務)、Solum(APP集成開發平臺)、Tacker(網絡功能 虛擬化)、Trove(數據庫服務) |
|
?
OpenStack的優勢
- OpenStack在控制性、兼容性、可擴展性、靈活性方面具備有優勢,它可能成為云計算領域的行業標準
- 控制性:完全開源的平臺,模塊化的設計,提供相應的API接口,方便與第三技術集成,從而滿足自身業務需求
- 兼容性:OpenStack兼容其他公有云,方便用戶進行數據遷移
- 可擴展性:OpenStack采用模塊化的設計,支持主流發行版本的Linux,可以通過橫向擴展,增加節點、添加資源
- 靈活性:用戶可以根據自己的需要建立基礎設施,也可以輕松地為自己的群集增加規模。OpenStack項目采用Apache2許可,意味著第三方廠家可以重新發布源代碼
二.部署單節點OpenStack具體步驟
環境要求
- 本實驗使用VMware虛擬機,下面是該虛擬機的配置
| 角色 | 系統 | 內存 | 磁盤 | CPU(啟用虛擬化功能) |
| 客戶端 | CentOS7.6 | 8G | 40G系統盤 150G數據盤 | 雙核雙線程 |
注:虛擬機處于NAT模式下,保證能夠正常上網
安裝步驟
systemctl stop firewalld
systemctl disable firewalld ##永久性關閉setenforce 0
vi /etc/sysconfig/selinux ##永久性關閉
SELINUX=disabled
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##創建計劃性任務表,每兩分鐘更新一次時鐘
[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 ###動態查看更新日志文件,這條命令可以不敲
[root@OpenStack ~]# yum -y install centos-release-openstack-train
[root@OpenStack ~]# yum -y install openstack-packstack
packstack --allinone ##出現如下界面則安裝成功**** 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中創建系統
- 利用Xftp上傳鏡像到已經創建好的數據盤中
[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 |
+------------------+------------------------------------------------------+
?
?
總結
以上是生活随笔為你收集整理的部署单节点OpenStack的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。