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

阿里云,青云,腾讯云都是自己开发的

私有云以vmware为主

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地址、设置访问控制权限等。

实验环境准备


实验环境机器准备

  1. Vmware Workstation
  2. 虚拟机系统2
  3. 系统版本:centos7.1.1503 x86_64
  4. 内存:4GB
  5. 网络:两台机器都是nat
  6. 磁盘:40GB
  7. 额外:勾选vt-x

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

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

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

  1. [root@linux-node1 ~]# hostname --fqdn
  2. linux-node1.nmap.com
  3. [root@linux-node1 ~]# cat /etc/redhat-release
  4. CentOS Linux release 7.1.1503 (Core)
  5. [root@linux-node1 ~]#
  6.  
  7. [root@linux-node2 ~]# hostname --fqdn
  8. linux-node2.nmap.com
  9. [root@linux-node2 ~]# cat /etc/redhat-release
  10. CentOS Linux release 7.1.1503 (Core)
  11. [root@linux-node2 ~]#

保证两台机器可以访问公网

  1. [root@linux-node1 ~]# ping www.baidu.com -c 2
  2. PING www.a.shifen.com (115.239.211.112) 56(84) bytes of data.
  3. 64 bytes from 115.239.211.112: icmp_seq=1 ttl=128 time=5.40 ms
  4. 64 bytes from 115.239.211.112: icmp_seq=2 ttl=128 time=35.9 ms
  5.  
  6. --- www.a.shifen.com ping statistics ---
  7. 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
  8. rtt min/avg/max/mdev = 5.408/20.697/35.986/15.289 ms
  9. [root@linux-node1 ~]#
  10.  
  11. [root@linux-node2 ~]# ping www.baidu.com -c 2
  12. PING www.a.shifen.com (115.239.210.27) 56(84) bytes of data.
  13. 64 bytes from 115.239.210.27: icmp_seq=1 ttl=128 time=5.02 ms
  14. 64 bytes from 115.239.210.27: icmp_seq=2 ttl=128 time=3.03 ms
  15.  
  16. --- www.a.shifen.com ping statistics ---
  17. 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
  18. rtt min/avg/max/mdev = 3.034/4.031/5.029/0.999 ms

  

两台机器配置好主机名解析

  1. [root@linux-node1 ~]# cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.56.11 linux-node1 linux-node1.nmap.com
  5. 192.168.56.12 linux-node2 linux-node2.nmap.com
  6. [root@linux-node1 ~]#

控制节点和计算节点同步时间,这里去同步阿里云的时间服务器,很多时候,时间不一致无法创建虚拟机

  1. [root@linux-node2 ~]# ntpdate time1.aliyun.com

  

当然也可以设置控制节点为时间服务器,让计算节点来同步

  1. [root@linux-node2 ~]# yum install chrony -y
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.aliyun.com
  5. * extras: mirrors.aliyun.com
  6. * updates: mirrors.aliyun.com
  7. Package chrony-2.1.1-4.el7.centos.x86_64 already installed and latest version
  8. Nothing to do
  9. [root@linux-node2 ~]#

控制节点修改配置文件,允许的客户端范围

  1. [root@linux-node1 ~]# vim /etc/chrony.conf
  2. [root@linux-node1 ~]# grep allow /etc/chrony.conf
  3. allow 192.168/16
  4. [root@linux-node1 ~]#

启动时间服务,并设置开机启动

  1. [root@linux-node1 ~]# systemctl enable chronyd.service
  2. [root@linux-node1 ~]# systemctl start chronyd.service
  3. [root@linux-node1 ~]# systemctl status chronyd.service

设置时区,检查时间

  1. [root@linux-node1 ~]# timedatectl set-timezone Asia/Shanghai
  2. [root@linux-node1 ~]# timedatectl status
  3. Local time: Wed 2017-02-15 22:46:00 CST
  4. Universal time: Wed 2017-02-15 14:46:00 UTC
  5. RTC time: Wed 2017-02-15 14:46:00
  6. Time zone: Asia/Shanghai (CST, +0800)
  7. NTP enabled: yes
  8. NTP synchronized: yes
  9. RTC in local TZ: no
  10. DST active: n/a
  11. [root@linux-node1 ~]# date
  12. Wed Feb 15 22:46:10 CST 2017
  13. [root@linux-node1 ~]#

 

基础软件包安装


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

1.安装EPEL仓库

  1. [root@linux-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
  2. Retrieving http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
  3. warning: /var/tmp/rpm-tmp.yt2iBS: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
  4. Preparing... ################################# [100%]
  5. Updating / installing...
  6. 1:epel-release-7-9 ################################# [100%]
  7. [root@linux-node1 ~]# cd /etc/yum.repos.d/
  8. [root@linux-node1 yum.repos.d]# ls
  9. CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo epel.repo
  10. CentOS-CR.repo CentOS-fasttrack.repo CentOS-Vault.repo epel-testing.repo

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

  1. root@linux-node1 yum.repos.d]# yum install -y centos-release-openstack-mitaka
  2. Loaded plugins: fastestmirror
  3. epel/x86_64/metalink | 6.1 kB 00:00:00
  4. epel | 4.3 kB 00:00:00
  5. (1/3): epel/x86_64/group_gz | 170 kB 00:00:00
  6. (2/3): epel/x86_64/updateinfo | 735 kB 00:00:01
  7. (3/3): epel/x86_64/primary_db | 4.5 MB 00:00:36
  8. Loading mirror speeds from cached hostfile
  9. * base: mirrors.163.com
  10. * epel: mirror01.idc.hinet.net
  11. * extras: mirrors.163.com
  12. * updates: mirrors.163.com
  13. Installed:
  14. centos-release-openstack-mitaka.noarch 0:1-5.el7
  15.  
  16. Dependency Installed:
  17. centos-release-ceph-hammer.noarch 0:1.0-5.el7.centos
  18. centos-release-qemu-ev.noarch 0:1.0-1.el7
  19. centos-release-storage-common.noarch 0:1-2.el7.centos
  20. centos-release-virt-common.noarch 0:1-1.el7.centos
  21.  
  22. Complete!
  23. [root@linux-node1 yum.repos.d]# ls
  24. CentOS-Base.repo CentOS-fasttrack.repo CentOS-Vault.repo
  25. CentOS-Ceph-Hammer.repo CentOS-OpenStack-mitaka.repo epel.repo
  26. CentOS-CR.repo CentOS-QEMU-EV.repo epel-testing.repo
  27. CentOS-Debuginfo.repo CentOS-Sources.repo
  28. [root@linux-node1 yum.repos.d]#

3.安装OpenStack客户端  

  1. [root@linux-node1 ~]# yum install -y python-openstackclient
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.163.com
  5. * epel: mirror.premi.st
  6. * extras: mirrors.163.com
  7. * updates: mirrors.163.com
  8. Package python-openstackclient-2.3.0-1.el7.noarch already installed and latest version
  9. Nothing to do
  10. [root@linux-node1 ~]#

4.安装openstack SELinux管理包
生产中,我们尽量关闭selinux,如果不关闭selinux,这个服务会帮我们把openstack的selinux配置好

  1. [root@linux-node1 ~]# yum install -y openstack-selinux
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.163.com
  5. * epel: mirror.premi.st
  6. * extras: mirrors.163.com
  7. * updates: mirrors.163.com
  8. Package openstack-selinux-0.7.13-2.el7.noarch already installed and latest version
  9. Nothing to do
  10. [root@linux-node1 ~]#

  

openstack--1--基础环境搭建的更多相关文章

  1. Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

    [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...

  2. EXT 基础环境搭建

    EXT 基础环境搭建使用 Sencha CMD 下载地址 https://www.sencha.com/products/extjs/cmd-download/ Sencha CMD 常用命令 API ...

  3. IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  4. Spark环境搭建(上)——基础环境搭建

    Spark摘说 Spark的环境搭建涉及三个部分,一是linux系统基础环境搭建,二是Hadoop集群安装,三是Spark集群安装.在这里,主要介绍Spark在Centos系统上的准备工作--linu ...

  5. 【1】windows下IOS开发基础环境搭建

    一.目的 本文的目的是windows下IOS开发基础环境搭建做了对应的介绍,大家可根据文档步骤进行mac环境部署: 二.安装虚拟机 下载虚拟机安装文件绿色版,点击如下文件安装 获取安装包:       ...

  6. Maven 学习笔记(一) 基础环境搭建

    在Java的世界里,项目的管理与构建,有两大常用工具,一个是Maven,另一个是Gradle,当然,还有一个正在淡出的Ant.Maven 和 Gradle 都是非常出色的工具,排除个人喜好,用哪个工具 ...

  7. (一)Hyperledger Fabric 1.1安装部署-基础环境搭建

    在学习和开发hyperledger fabric的时候遇到了一些坑,现将自己的一些总结和心得整理如下,以期对大家有所帮助.本次使用的宿主机环境:ubuntu,版本:Ubuntu 16.04.3 LTS ...

  8. hadoop3.1.0 window win7 基础环境搭建

    https://blog.csdn.net/wsh596823919/article/details/80774805 hadoop3.1.0 window win7 基础环境搭建 前言:在windo ...

  9. HyperLedger Fabric 1.4 基础环境搭建(7)

    学习了前面几章理论知识后,本章开始介绍实践操作,先介绍Fabric基础环境搭建,采用的操作系统为Centos 7 64位,依次介绍Docker安装.Docker-Compose安装.GO语言环境安装. ...

  10. dos基础+环境搭建基础理论

    dos基础 市面上两大操作系统 windows.*nix(unix.linux.mac.bsd(安全性比较高)) 后三种都属于unix的衍生版本 linux是为了兼容unix开发的,最后开放了源代码 ...

随机推荐

  1. μC/OS-II在Microblaze上的移植与使用专题--“安富利杯”赛灵思FPGA设计技巧与应用创新博文大赛参赛作品

    reference:http://xilinx.eetrend.com/d6-xilinx/blog/2010-05/682.html   随着集成电路设计与制造技术的发展,FPGA芯片的容量越来越大 ...

  2. Zabbix4.0添加端口和进程监控

    一:Zabbix设置主动模式: vim /etc/zabbix/zabbix_agent.conf Server=192.168.1.10 #被动模式的serverip地址,如果设置纯被动模式,可以注 ...

  3. alpha通道与混合技术

    Alpha其作用是要实现一种半透明效果. 假设一种不透明的东西颜色是A,另一种透明的东西颜色是B,那么透过B去看A,看上去的颜色C就是B与A的混合颜色.设置B的透明度为alpha(取值为0-1,0为完 ...

  4. NioEventLoopGroup的构造函数

    loop是对thread的封装,里面记录一个selector 一套打完,看下来,就是loopgroup里面一个loop的数组,每一个loop在 new的时候,传入了selector(第二个箭头), 第 ...

  5. 禁止textarea拉伸

    添加css属性: style="resize:none" ;

  6. aapt获取包名和activity,启动app

    1.android sdk的环境安装好了之后,在build-tools\** 的目录下找到aapt.exe,将这个路径设置环境变量,添加到path下 2.在cmdl里面输入:aapt,出现以下内容就是 ...

  7. udp协议和socketserver模块

    #基于udp协议通讯的套接字# 数据报协议# 一个recvfrom对应一个sendto 一一对应 无粘包产生 # 服务端:# import socket# server=socket.socket(s ...

  8. Java学习笔记8(面向对象3:接口)

    接口的概念: 接口是功能的集合,同样可以看最做事一种数据类型,是比抽象类更为抽象的"类”. 接口之描述所应该具备的方法,并没有具体实现,具体的实现有接口的实现类(相当于接口的子类)来完成.这 ...

  9. wx小程序修改swiper 点的样式

    <swiper class="swiper-box" indicator-dots="{{ indicatordots }}" autoplay=&quo ...

  10. MySQL中的修改表操作

    一.增加表的列 语法:alter table 表名 add(           增加列定义          ); 实例: #增加列 alter table text add( text_num ) ...