OpenStack基礎環境(一)
openstack介紹
openstack是一個雲平臺管理的項目,它不是一個軟件。也就是說我們可以使用openstack
來管理我們一個數據中心大量資源池。它裏面包含了很多子項目
openstack包含三大項:計算
網絡
存儲
openstack主要目標是來簡化資源
的管理和分配,把計算
網絡
存儲
。三大項虛擬成三大資源池
,例如需要計算資源我這裏可以提供,需要網絡資源這裏也可以提供以及存儲資源的需求,對外提供api
,通過api
進行交互
openstack的設計基本上是按照亞馬遜
進行設置的,我們可以將openstack
理解為開源版本的aws
。因為它很多地方都參考亞馬遜
進行操作的,而且openstack
的很多api
跟亞馬遜是相通的。
openstack火起來的原因首先是apache
旗下的開源軟件,第二它是由python
進行編寫
(因為python比較簡單,深受技術人員的喜歡)
openstack官方網站:
openstack版本介紹
openstack版本是每6
個月發布一次,每次版本的順序按照A-Z
進行排序。
那麽我們應該如何選擇版本呢?
我們選擇版本的時候,除了新版本的那些功能不得不用,那我們可以選擇新的版本。其實我們可以選擇稍微落後的一個版本。上述圖不夠準確,現在已經達到N版。國內openstack是從E班開始火的。因為E版本當時是比較完善的,國內openstack最火的時候是在G版的時候。現在國內不論是傳統行業還是互聯網行業都在使用openstack
openstack架構
服務名稱 | 項目名稱 | 描述 |
---|---|---|
Dasgviard | Horizon | 基於Openstack API接口使用diango開發的Web管理 |
Compute | Nova | 通過虛擬化技術提供計算資源池 |
Networking | Neutron | 實現了虛擬機的網絡資源管理。 |
Storage (存儲) | ||
Object Storage | Swift | 對象存儲,適用於“一次寫入、多次讀取” |
Block Storage | Cinder | 塊存儲,提供存儲資源池 |
Share | Services (共享服務) | |
Identify Service | Keystone | 認證管理 |
Image Service | Glance | 提供虛擬鏡像的註冊和存儲管理 |
Telemetry | Ceilometer | 提供監控和數據采集、計量服務 |
Higher-level Services (高層服務) | ||
Orchestration | Heat | 自動化部署的組件 |
Database Service | Trove | 提供數據庫應用服務 |
解釋:這裏面所有的服務都是圍繞著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
的管理界面了
默認有一個http
的api
,我們如果想監控 可以使用http的api進行監控。裏面基本上想監控的東西都有,可以通過腳本來獲取通過url
來判斷等。
本文出自 “一盞燭光” 博客,謝絕轉載!
OpenStack基礎環境(一)