Openstack介紹
OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發並發起的,以Apache許可證授權的自由軟件和開放源代碼項目。
Openstack包含三大項:計算 網絡 存儲
openstack主要目標是來簡化資源的管理和分配,把計算 網絡 存儲。三大項虛擬成三大資源池,例如需要計算資源我這里可以提供,需要網絡資源這里也可以提供以及存儲資源的需求,對外提供api,通過api進行交互。
openstack的設計基本上是按照亞馬遜進行設置的,我們可以將openstack理解為開源版本的aws。因為它很多地方都參考亞馬遜進行操作的,而且openstack的很多api跟亞馬遜是相通的。
計算資源:管理cpu和內存
存儲資源:存儲數據
網絡資源:網絡資源這塊,最近比較火的就是SDN,軟件定義網絡,真正生產使用的很少。青雲的sdn做的比較好
命名從A開始。
E版開始,在國內開始有用了,此時功能比較簡陋,G版用的也比較多
I 版 :最后一個支持centos6和python2.6的,I版本以后的都是默認python2.7開始的了
業界使用openstack做公有雲的有:金山雲,樂視雲,京東雲,攜程,惠普雲,華為,IBM
阿里雲,青雲,騰訊雲都是自己開發的
openstack由很多組件構成。分別扮演不同的功能
1)計算(Compute,代號為“Nova”)
根據需求提供虛擬的服務器。Rackspace和HP公司提供商業雲計算服務正是建立在Nova之上,在Mercado Libre和NASA(Nova項目的起源地)內部也是使用的Nova。
2)對象存儲(Object Storage,代號為“Swift”)
提供的對象存儲服務,允許對文件進行存儲或者檢索(但不是通過掛載文件服務器上目錄的方式來實現)。
目前已經有好幾家公司開始提供基於Swift的商業存儲服務,這些公司包括KT公司、Rackspace公司(Swift項目的發源地)和Internap公司,
而且,有很多大公司內部也使用Swift來存儲數據。
3)塊存儲(Block Storage,代號為“Cinder”)
為虛擬化的客戶機提供持久化的塊存儲服務。該組件項目的很多代碼最初是來自於Nova之中(就是the nova-volume service)。
不過請注意,這是塊存儲(或者volumes),而不是類似於*S或者CIFS文件系統,Cinder在最新的“Folsom”版本OpenStack中才加入的一個全新的項目。
4)鏡像(Image,代號為“Glance”)
提供了一個虛擬磁盤鏡像的目錄和存儲倉庫,可以提供對虛擬機鏡像的存儲和檢索
5)網絡(Network,代號為“Neutron”)
在接口設備之間提供“網絡連接即服務”的服務,
該服務允許用戶創建自己的網絡,然后添加網絡接口設備。
6)身份認證(Identity,代號為“Keystone”)
為OpenStack上的所有服務提供身份驗證和授權。它還提供了在特定OpenStack雲服務上運行的服務的一個目錄。
7)控制面板(Dashboard,代號為“Horizon”)
為OpenStack的所有服務提供一個模塊化的基於Web的用戶界面。使用這個Web圖形界面,可以完成雲計算平台上的大多數的操作,如啟動客戶機、分配IP地址、設置訪問控制權限等。
實驗環境准備
實驗環境機器准備
Vmware Workstation 虛擬機系統2個 系統版本:centos7.1.1503 x86_64 內存:4GB 網絡:兩台機器都是nat 磁盤:40GB 額外:勾選vt-x
IP地址如下。同時保證NAT之后可以ping通百度,dns和網關自行設置
兩台機器主機名和系統版本
注意,主機名是在openstack一經確定就不能隨意更改,所以要提前規划好
[root@linux-node1 ~]# hostname --fqdn linux-node1.nmap.com [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [root@linux-node1 ~]# [root@linux-node2 ~]# hostname --fqdn linux-node2.nmap.com [root@linux-node2 ~]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [root@linux-node2 ~]#
保證兩台機器可以訪問公網
[root@linux-node1 ~]# ping www.baidu.com -c 2 PING www.a.shifen.com (115.239.211.112) 56(84) bytes of data. 64 bytes from 115.239.211.112: icmp_seq=1 ttl=128 time=5.40 ms 64 bytes from 115.239.211.112: icmp_seq=2 ttl=128 time=35.9 ms --- www.a.shifen.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 5.408/20.697/35.986/15.289 ms [root@linux-node1 ~]# [root@linux-node2 ~]# ping www.baidu.com -c 2 PING www.a.shifen.com (115.239.210.27) 56(84) bytes of data. 64 bytes from 115.239.210.27: icmp_seq=1 ttl=128 time=5.02 ms 64 bytes from 115.239.210.27: icmp_seq=2 ttl=128 time=3.03 ms --- www.a.shifen.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 3.034/4.031/5.029/0.999 ms
兩台機器配置好主機名解析
[root@linux-node1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.11 linux-node1 linux-node1.nmap.com 192.168.56.12 linux-node2 linux-node2.nmap.com [root@linux-node1 ~]#
控制節點和計算節點同步時間,這里去同步阿里雲的時間服務器,很多時候,時間不一致無法創建虛擬機
[root@linux-node2 ~]# ntpdate time1.aliyun.com
當然也可以設置控制節點為時間服務器,讓計算節點來同步
[root@linux-node2 ~]# yum install chrony -y Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Package chrony-2.1.1-4.el7.centos.x86_64 already installed and latest version Nothing to do [root@linux-node2 ~]#
控制節點修改配置文件,允許的客戶端范圍
[root@linux-node1 ~]# vim /etc/chrony.conf [root@linux-node1 ~]# grep allow /etc/chrony.conf allow 192.168/16 [root@linux-node1 ~]#
啟動時間服務,並設置開機啟動
[root@linux-node1 ~]# systemctl enable chronyd.service [root@linux-node1 ~]# systemctl start chronyd.service [root@linux-node1 ~]# systemctl status chronyd.service
設置時區,檢查時間
[root@linux-node1 ~]# timedatectl set-timezone Asia/Shanghai [root@linux-node1 ~]# timedatectl status Local time: Wed 2017-02-15 22:46:00 CST Universal time: Wed 2017-02-15 14:46:00 UTC RTC time: Wed 2017-02-15 14:46:00 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a [root@linux-node1 ~]# date Wed Feb 15 22:46:10 CST 2017 [root@linux-node1 ~]#
基礎軟件包安裝
基礎軟件包需要在所有的OpenStack節點上進行安裝,包括控制節點和計算節點。
1.安裝EPEL倉庫
[root@linux-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm Retrieving http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm warning: /var/tmp/rpm-tmp.yt2iBS: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:epel-release-7-9 ################################# [100%] [root@linux-node1 ~]# cd /etc/yum.repos.d/ [root@linux-node1 yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo epel.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Vault.repo epel-testing.repo
2.安裝OpenStack倉庫,這里安裝的是M版本的。
root@linux-node1 yum.repos.d]# yum install -y centos-release-openstack-mitaka Loaded plugins: fastestmirror epel/x86_64/metalink | 6.1 kB 00:00:00 epel | 4.3 kB 00:00:00 (1/3): epel/x86_64/group_gz | 170 kB 00:00:00 (2/3): epel/x86_64/updateinfo | 735 kB 00:00:01 (3/3): epel/x86_64/primary_db | 4.5 MB 00:00:36 Loading mirror speeds from cached hostfile * base: mirrors.163.com * epel: mirror01.idc.hinet.net * extras: mirrors.163.com * updates: mirrors.163.com Installed: centos-release-openstack-mitaka.noarch 0:1-5.el7 Dependency Installed: centos-release-ceph-hammer.noarch 0:1.0-5.el7.centos centos-release-qemu-ev.noarch 0:1.0-1.el7 centos-release-storage-common.noarch 0:1-2.el7.centos centos-release-virt-common.noarch 0:1-1.el7.centos Complete! [root@linux-node1 yum.repos.d]# ls CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo CentOS-Ceph-Hammer.repo CentOS-OpenStack-mitaka.repo epel.repo CentOS-CR.repo CentOS-QEMU-EV.repo epel-testing.repo CentOS-Debuginfo.repo CentOS-Sources.repo [root@linux-node1 yum.repos.d]#
3.安裝OpenStack客戶端
[root@linux-node1 ~]# yum install -y python-openstackclient Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.163.com * epel: mirror.premi.st * extras: mirrors.163.com * updates: mirrors.163.com Package python-openstackclient-2.3.0-1.el7.noarch already installed and latest version Nothing to do [root@linux-node1 ~]#
4.安裝openstack SELinux管理包
生產中,我們盡量關閉selinux,如果不關閉selinux,這個服務會幫我們把openstack的selinux配置好
[root@linux-node1 ~]# yum install -y openstack-selinux Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.163.com * epel: mirror.premi.st * extras: mirrors.163.com * updates: mirrors.163.com Package openstack-selinux-0.7.13-2.el7.noarch already installed and latest version Nothing to do [root@linux-node1 ~]#