openstack 介绍:

OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。

Openstack包含三大项:计算 网络 存储 

openstack主要目标是来简化资源的管理和分配,把计算 网络 存储。三大项虚拟成三大资源池,例如需要计算资源我这里可以提供,需要网络资源这里也可以提供以及存储资源的需求,对外提供api,通过api进行交互。
openstack的设计基本上是按照亚马逊进行设置的,我们可以将openstack理解为开源版本的aws。因为它很多地方都参考亚马逊进行操作的,而且openstack的很多api跟亚马逊是相通的。

计算资源:管理cpu和内存
存储资源:存储数据
网络资源:网络资源这块,最近比较火的就是SDN,软件定义网络,真正生产使用的很少。青云的sdn做的比较好

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
内存:2GB
网络:两台机器都是桥接模式
磁盘:40GB
额外:勾选vt-x

IP地址如下。同时可以ping通百度,dns和网关自行设置

控制节点

192.168.1.2

计算机节点

192.168.1.3

两台机器主机名和系统版本

注意,主机名是在openstack一经确定就不能随意更改,所以要提前规划好


[root@linux-node1 ~]# hostname --fqdn
linux-node1.shi.com
[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.1.2 linux-node1 linux-node1.shi.com
192.168.1.3 linux-node2 linux-node2.shi.com

[root@linux-node2~]# hostname --fqdn
linux-node2.shi.com
[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.1.2 linux-node1 linux-node1.shi.com
192.168.1.3 linux-node2 linux-node2.shi.com

[root@node2 ~]#
保证两台机器可以访问公网
[root@node1 ~]# ping www.baidu.com
PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
64 bytes from 180.97.33.107 (180.97.33.107): icmp_seq=1 ttl=54 time=12.8 ms
....
[root@node2 ~]# ping www.baidu.com
PING www.a.shifen.com (180.97.33.108) 56(84) bytes of data.
64 bytes from 180.97.33.108 (180.97.33.108): icmp_seq=1 ttl=54 time=18.2 ms
....


关闭selinux(2个节点都需要执行)
[root@node1 ~]# setenforce 0
[root@node1 ~]# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

关闭防火墙
[root@node1 ~]# systemctl stop firewalld.service
[root@node1 ~]# systemctl disable firewalld.service

设置时间同步

在 node1 上配置( 只有 centos7 能用, 6 还用 ntp)
[root@node1 ~]# yum install -y chrony
[root@node1 ~]# vi /etc/chrony.conf
allow 192.168/16 #允许那些服务器和自己同步时间
[root@node1 ~]# systemctl enable chronyd.service    #开机启动
[root@node1 ~]# systemctl start chronyd.service
[root@node1 ~]# timedatectl set-timezone Asia/Shanghai   #设置时区
[root@node1 ~]# timedatectl status
      Local time: Fri 2017-07-21 16:01:45 CST
  Universal time: Fri 2017-07-21 08:01:45 UTC
        RTC time: Fri 2017-07-21 08:01:45
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@node1 ~]#

node2 上配置

[root@node2 src]#  yum install -y chrony
[root@node2 src]# vi /etc/chrony.conf
server 192.168.1.2 iburst #只留一行
[root@node2 src]#  systemctl enable chronyd.service
[root@node2 src]#  systemctl start chronyd.service
[root@node2 src]#  timedatectl set-timezone Asia/Shanghai
[root@node2 src]# chronyc sources


基础软件包安装

基础软件包需要在所有的OpenStack节点上进行安装,包括控制节点和计算节点。

1.安装EPEL仓库

[root@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.CgRu4D: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:epel-release-7-10                ################################# [100%]

2.安装OpenStack仓库,这里安装的是M版本的。

[root@node1 ~]#  yum install -y centos-release-openstack-mitaka

3.安装OpenStack客户端  

[root@node1 yum.repos.d]# yum install -y python-openstackclient




Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐