1. 程式人生 > >OpenStack基礎環境(一)

OpenStack基礎環境(一)

楊文 軟件 數據中心 title 雲平臺

openstack介紹

 openstack是一個雲平臺管理的項目,它不是一個軟件。也就是說我們可以使用openstack來管理我們一個數據中心大量資源池。它裏面包含了很多子項目

技術分享

openstack包含三大項:

計算 網絡 存儲
  openstack主要目標是來簡化資源的管理和分配,把計算 網絡 存儲。三大項虛擬成三大資源池,例如需要計算資源我這裏可以提供,需要網絡資源這裏也可以提供以及存儲資源的需求,對外提供api,通過api進行交互
  openstack的設計基本上是按照
亞馬遜進行設置的,我們可以將openstack理解為開源版本的aws。因為它很多地方都參考亞馬遜進行操作的,而且openstack的很多api跟亞馬遜是相通的。
  openstack火起來的原因首先是
apache旗下的開源軟件,第二它是由python進行編寫
(因為python比較簡單,深受技術人員的喜歡)

openstack官方網站:

http://www.openstack.org

openstack版本介紹

技術分享

openstack版本是每6個月發布一次,每次版本的順序按照A-Z進行排序。
那麽我們應該如何選擇版本呢?
  我們選擇版本的時候,除了新版本的那些功能不得不用,那我們可以選擇新的版本。其實我們可以選擇稍微落後的一個版本。上述圖不夠準確,現在已經達到N版。國內openstack是從E班開始火的。因為E版本當時是比較完善的,國內openstack最火的時候是在G版的時候。現在國內不論是傳統行業還是互聯網行業都在使用openstack

openstack架構

技術分享

服務名稱項目名稱描述
DasgviardHorizon基於Openstack API接口使用diango開發的Web管理
ComputeNova通過虛擬化技術提供計算資源池
NetworkingNeutron實現了虛擬機的網絡資源管理。



Storage (存儲)

Object StorageSwift對象存儲,適用於“一次寫入、多次讀取”
Block StorageCinder塊存儲,提供存儲資源池



ShareServices (共享服務)
Identify ServiceKeystone認證管理
Image ServiceGlance提供虛擬鏡像的註冊和存儲管理
TelemetryCeilometer提供監控和數據采集、計量服務



Higher-level Services (高層服務)

OrchestrationHeat自動化部署的組件
Database ServiceTrove提供數據庫應用服務

技術分享

解釋:這裏面所有的服務都是圍繞著VM進行提供服務的,虛擬機需要什麽資源,我們就提供什麽資源

  我們可以將服務分為兩大類,一個是服務的提供者,一個是服務的消費者。提供者是我可以提供某個服務,消費者是我可以用到這個服務。
  openstack默認是沒有
創建虛擬機的功能,是通過調用KVM來創建虛擬機還可以調用esxi來創建虛擬機,總之openstack沒有創建虛擬機的功能都是通過調用其他服務來進行操作。openstack就是一個框架,它可以調用其他的服務,所以openstack也就是一個管理平臺

Openstack服務介紹

MySQL:為各個服務提供數據存儲
RabbitMq:為各個服務之間通信提供認證和服務註冊
Keystone:為各個服務器之間通訊提供認證和服務註冊
Glance:為虛擬機提供鏡像管理
Nova:為虛擬機提供計算資源
Neutron:為虛擬機提供網絡資源

Openstack環境準備-MySQL、RabbirMQ

中文文檔:http://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/
提示:這個中文文檔是直接翻譯過來的,所以會有很多不通順的地方

特別提示:環境請和我保持一致!!!!!!!!保持一致!保持一致!保持一致!
本次我們安裝Openstack M版,M版是在2016-4月發布的

環境

[[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# uname -r3.10.0-327.36.2.el7.x86_64[[email protected] ~]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.56.11 linux-node1.abcdocker.com192.168.56.12 linux-node2.abcdocker.com

安裝時間同步

[[email protected] ~]# yum install ntpdate -y[[email protected] ~]# ntpdate time1.aliyun.com[[email protected] ~]# timedatectl set-timezone Asia/Shanghai  #設置時區另一種設置時區方法[[email protected] ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

提示: 生產環境中必須保證openstack節點時間同步,如果時間不同步是無法創建虛擬機的

openstack基礎軟件包安裝

基礎軟件包需要在所有的Openstack節點上進行安裝,包括控制節點和計算節點
1、安裝EPEL倉庫

[[email protected] ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

2、安裝Openstack倉庫

[[email protected] ~]# yum install -y centos-release-openstack-mitaka#安裝完成後會在/etc/yum.repos.d/下生成CentOS-OpenStack-mitaka.repo

3、安裝Openstack客戶端

[[email protected] ~]#  yum install -y python-openstackclient提示:會把openstack常用的客戶端都進行安裝

4、安裝openstack SELinux管理包

yum install -y openstack-selinux

如果我們沒有進行關閉selinux openstack-selinux就會自動幫我們設置

技術分享

RabbitMq在openstack幾大用處
1.做服務之間相互通訊的工具
2.信息同步(異步執行)
如果沒有
RabbitMq服務之間將無法進行通訊

提示:如果是生產環境,數據庫是需要做備份的,否則數據庫一掛數據將會丟失,openstack也將無法進行提供服務

安裝數據庫

[[email protected] ~]# yum install -y mariadb mariadb-server python2-PyMySQLcentos7 默認安裝mysql 會在/etc/my.cnf裏面includedir /etc/my.cnf.d/ 所以我們需要將配置文件放在這個目錄下就可以生效[[email protected] ~]# cd /etc/my.cnf.d/[[email protected] my.cnf.d]# vim openstack.cnf[mysqld]bind-address = 192.168.56.11   #監聽的IP地址(也可以寫0.0.0.0)default-storage-engine = innodb  #默認存儲引擎[innodb]innodb_file_per_table       # 使用獨享表空間max_connections = 4096          #最大連接數是4096 (默認是1024)collation-server = utf8_general_ci  #數據庫默認校對規則character-set-server = utf8 #默認字符集

啟動數據庫

[[email protected] ~]# systemctl start mariadb[[email protected] ~]# systemctl enable mariadbCreated symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

啟動後我們需要進行檢查

為了保證數據庫服務的安全性,運行mysql_secure_installation腳本。特別需要說明的是,為數據庫的root用戶設置一個適當的密碼。

[[email protected] ~]# mysql_secure_installation#它會幫我們刪除測試數據庫等

數據庫安裝完成後我們需要給我們後面所要用到的服務創建用戶並進行授權

創建認證服務的數據庫並進行授權

[[email protected] ~]# mysql -uroot -p123456創建keystone數據庫create database keystone;grant all on keystone.* to [email protected] identified by ‘keystone‘;grant all on keystone.* to [email protected]%‘ identified by ‘keystone‘;

創建鏡像數據庫並進行授權

創建glance數據庫create database glance;grant all on glance.* to [email protected]%‘ identified by ‘glance‘;grant all on glance.* to [email protected] identified by ‘glance‘;

創建虛擬化數據庫並進行授權

創建nova數據庫create database nova;grant all on nova.* to [email protected] identified by ‘nova‘;grant all on nova.* to [email protected]%‘ identified by ‘nova‘;

因為Nova有2個項目,所以我們要創建2個數據庫
創建nova-api數據庫

create database nova_api;grant all on nova_api.* to [email protected] identified by ‘nova_api‘;grant all on nova_api.* to [email protected]%‘ identified by ‘nova_api‘;

提示:nova_api是新版本才有

創建網絡資源管理數據庫

create database neutron;grant all on neutron.* to [email protected]%‘ identified by ‘neutron‘;grant all on neutron.* to [email protected] identified by ‘neutron‘;

刷新

flush privileges;

安裝消息隊列rabbitmq

[[email protected] ~]# yum install rabbitmq-server -y消息隊列的端口是5672

啟動消息隊列服務並將其配置為隨系統啟動:

[[email protected] ~]# systemctl enable rabbitmq-server.service[[email protected] ~]# systemctl start rabbitmq-server.service

因為我們一會要使用openstack,所以我們在rabbitmq上創建一個openstack用戶

[[email protected] ~]# rabbitmqctl add_user openstack openstack[[email protected] ~]# rabbitmqctl add_user用戶 密碼

openstack用戶讀寫權限

[[email protected] ~]# rabbitmqctl set_permissions openstack ".*" ".*" ".*".*分別代表配置、寫入、讀取

提示:如果rabbitmq沒有啟動說明主機名沒有解析

開啟rabbitmq監控插件
rabbitmq有很多插件,我們可以使用rabbitmq-plugins list查看可用插件
rabbitmq_management插件提供一個web界面,所以我們要將它開啟

[[email protected] ~]# rabbitmq-plugins enable rabbitmq_managementrabbitmq啟動之後會監聽15672

技術分享

訪問路徑:http://ip:15672
默認Username:guest
默認Password:guest

示例圖
技術分享

提示:這裏不能使用openstack用戶進行登陸,因為我們如果想使用openstack用戶進行登陸還需要在web頁面進行授權

現在我們就進行rabbitmq的管理界面了
技術分享

默認有一個httpapi,我們如果想監控 可以使用http的api進行監控。裏面基本上想監控的東西都有,可以通過腳本來獲取通過url來判斷等。

技術分享


本文出自 “一盞燭光” 博客,謝絕轉載!

OpenStack基礎環境(一)