实验室需要做一个大数据平台项目,临时接下需要部署实验室云平台的任务,由于之前没有接触过相关技术,仅以此篇作为纪录文,记录一下我的openstack的初步学习以及搭建过程。

1.openstcak及其组件的简要介绍

Openstack是一个开源的云计2016-02-25几个主要的组件组合起来完成具体工作。

计算(Compute:Nova。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。

对象存储(Object Storage):Swift。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,为Cinder提供卷备份服务。自Austin版本集成到项目中

镜像服务(Image Service):Glance。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。自Bexar版本集成到项目中。

身份服务(Identity Service):Keystone为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、Groups、Roles。自Essex版本集成到项目中。

网络&地址管理(Network):Neutron。提供云计算的网络虚拟化技术,为OpenStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术,如OpenvSwitch。自Folsom版本集成到项目中。

块存储 (Block Storage)Cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。自Folsom版本集成到项目中。

UI 界面 (Dashboard)Horizon。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。

数据库服务(Database Service:Trove。为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。

2.openstack的搭建过程

本文主要介绍了在三台服务器上搭建opentack平台并使用dashboard创建虚拟机的的过程。Openstack分为三个节点:控制节点、网络节点和计算节点。

      安装步骤参考链接所指的文章

https://github.com/xidianpanpei/OpenStack-Havana-Install-Guide-CN-OVS_MutliNode/blob/master/OpenStack_Grizzly_Install_Guide.rst

     上述链接所指的文章已经很好地介绍了openstack Havana的安装过程,在安装过程中最重要的就是细心和谨慎。稍有不慎,敲错指令就会导致后期无法运行成功。还有一个要注意的点就是IP地址的规划

节点角色

NICs

控制节点

Eth0(10.82.83.175),Eth1(192.168.0.107)

网络节点

Eth0(10.82.83.177),Eth1(192.168.0.108)

计算节点

Eth0(10.82.83.179),Eth1(192.168.0.109)

Eth0是外网地址,Eth1是内网地址,因此在配置的过程中需要对配置信息做相应地修改。

3.openstack启动和使用云主机

参考文章:http://www.chenshake.com/openstack-havana-dashboard-to-test-and-use/

4.openstack镜像和密码

在后期,可能会用到许多不同的镜像,这里对镜像进行一些总结。

  1. 虚拟机登录方式

对Openstack来说:访问虚拟机提供了两种方式,ssh方式和Dashboard的console。Console方式,相当于你服务器前面直接登陆。有些虚拟机镜像处于安全考虑,不允许root的账号直接远程ssh登陆。

  1. Cirror镜像

是openstack开发的测试镜像,因为他比较小,只有10M

镜像介绍:https://launchpad.net/cirros

镜像的地址: https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.imgCirros,是可以使用用户名和密码登陆,也可以使用密钥登陆。user:cirros,password:cubswin:)

  1. Ubuntu镜像

下载地址

http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img

这个是非常有名的镜像,大家用来测试也比较多。这个镜像默认是无法使用密码登陆,只能使用密钥登陆。所以你在console,也是无法登陆到虚拟机。

默认的用户名是:ubuntu,你需要使用密钥才能登陆。

如果你希望console可以登陆,那么在启动云主机处的创建后填入如下脚本:

这个时候,创建完的虚拟机,在console,就可以用 user:ubuntu,pass:ubuntu 登陆,不需要密钥。

不过这个时候,你还是无法通过ssh访问虚拟机,因为ssh默认设置是禁用密码认证,所以你需要多做点工作。

#!/bin/sh
passwd ubuntu<<EOF
ubuntu
ubuntu
EOF
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service ssh restart

这样你就可以使用ssh登陆到虚拟机,不需要通过console。

  1. CentOs镜像

国内用CentOS比较多,不过在Openstack上的CentOS image,以前都只能自己去制作。这个需要一个大家信任的第三方来完成。以下两个链接是教你如何制作镜像

http://catn.com/labs/centos-images/

http://catn.com/2013/04/18/building-a-virtual-machine-image-for-centos/

也可以用别人做好的现成的image,其镜像下载地址:

http://mirror.catn.com/pub/catn/images/qcow2/centos6.4-x86_64-gold-master.img

镜像账号:(user:root;pass:changeme1122)

你是可以在创建虚拟机的时候,直接把这个root的密码修改。默认是运行root登陆。

不过这个image,没有集成cloud-init。导致你看到的虚拟机名字,不是你设置的计算机名。

5.运行虚拟机会崩溃的解决方案

在安装完平台后,一定要对MTU进行设置。

编辑 /etc/neutron/dhcp_agent.ini

dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf

创建一个 /etc/neutron/dnsmasq-neutron.conf

dhcp-option-force=26,1400

重启服务

service neutron-dhcp-agent restart

  1. 如何排错

在安装过程中,出现错误是家常便饭,所以一定要学会如何排错。OpenStack的部署过程遇到的问题可归纳总结为配置文件问题、配置步骤缺失等,因为通常计算机不会犯错,犯错的只有人类……

故障通常有以下几种情况:

1.时间同步问题,两(多)个节点间时间不同步数据库问题,权限问题,数据库缺失,表结构不存在(数据库建立表结构时出错),用户名密码错误等

2.软件包没有正确安装,例如国外的源网络存在波动或网站存在故障或网站临时修改了源的路径等都会导致软件包安装出现重大错误,而安装的人却没有发现

3.配置文件中配置出错,这种错误最为常见,往往一个不易引人注意的错误就会出现问题,例如把0写成o,把1写成l,service写成server等

4.网络接口地址用错,控制节点上的endpoint-list发现public url用的是错误地址,如本地环回地址而不是管理接口地址

5.服务用户缺失,一般由软件bug或软件安装不正确导致,如以前有rabbitmq需要的rabbitmq不存在,导致rabbitmq的guest密码不可修改等问题。

6.文件权限问题,如配置文件在更换后没有配置文件权限,例如本来是root:nova的文件所有者,被换成了root:root,一定会出现服务无法正常运行的问题。

通常排错方法总结如下:

1.检查软件日志和系统日志,这是第一步就要做的,如果没有生成软件日志就考虑查看系统日志,可以将/var/log/messages文件清空再 执行一下相关的命令,查看此文件中的日志,可以在执行命令后没有生成日志的情况下使用此方法解决这一问题(在今天的故障排除中具有关键作用)。

最后推荐一个我在学习过程中觉得写的不错的博客:

http://www.chenshake.com/cloud-computing/

搭建好的云平台:

搭建Openstack云平台的更多相关文章

  1. 干货 | 手把手教你搭建一套OpenStack云平台

    1 前言 今天我们为一位朋友搭建一套OpenStack云平台. 我们使用Kolla部署stein版本的OpenStack云平台. kolla是用于自动化部署OpenStack的一个项目,它基于dock ...

  2. 干货|带你体验一次原生OpenStack云平台发放云主机的过程

    一个执着于技术的公众号 1 前言 上一章节我们完成了OpenStack云平台的搭建工作,今天就带大家一起学习下如何发放一台云主机 点击查看:如何搭建一套OpenStack云平台 2 发放OpenSta ...

  3. 轻松搭建Windows8云平台开发环境

    原文:轻松搭建Windows8云平台开发环境 Windows Store应用是基于Windows 8操作系统的新一代Windows应用程序,其开发平台以及运行模式和以往传统平台略有不同.为了帮助更多开 ...

  4. OpenStack云平台网络模式及其工作机制

    转自:http://openstack.csdn.net/content.html?arcid=2808381 OpenStack云平台网络模式及其工作机制 网络,是OpenStack的部署中最容易出 ...

  5. openStack 云平台管理节点管理网口流量非常大 出现丢包严重 终端总是时常中断问题调试及当前测试较有效方案

    tuning for Data Transfer hosts connected at speeds of 1Gbps or higher <一.本次OpenStack系统调试简单过程简单记录& ...

  6. openStack云平台虚拟桌面galera mysql 3节点集群实例实战 调试完成

    被复制节点: /usr/local/mysql/bin/mysqld_safe --wsrep_cluster_address=gcomm:// >/dev/null &复制节点01: ...

  7. Centos7搭建OpenNebula云平台

    OpenNebula概述 OpenNebula是专门为云计算打造的开源系统,用户可以使用Xen.KVM.VMware等虚拟化软件一起打造企业云.利用OpenNebula可以轻松构建私有云.混合云.公开 ...

  8. OpenStack——云平台部署

    一.配置网络 准备:安装两台最小化的CentOS7.2的虚拟机,分别添加两张网卡,分别为仅主机模式和NAT模式,并且计算节点设置为4G运行内存,50G硬盘 1.控制节点--配置网络 控制节点第一个网卡 ...

  9. OpenStack云平台的网络模式及其工作机制

    网络,是OpenStack的部署中最容易出问题的,也是其结构中难以理清的部分.经常收到关于OneStack部署网络方面问题和OpenStack网络结构问题的邮件.下面根据自己的理解,谈一谈OpenSt ...

随机推荐

  1. openStack镜像制作

    参考链接: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/OpenStack/page/Creating ...

  2. Hibernate day03笔记

      Hibernate的关联关系映射:(多对多) 多对多的配置: 步骤一创建实体和映射: Student: public class Student {     private Integer sid ...

  3. ubuntu14.04安装pycurl报错: __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

    Collecting pycurl== (from -r requirement.txt (line )) Downloading http://pypi.doubanio.com/packages/ ...

  4. 深入理解JS异步编程四(HTML5 Web Worker)

    >Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面. 一:如何使用Worker We ...

  5. JS 計算文本域還能輸入多少個字符

    //輸入計數 //count:能輸入的數據總量    function Calculation(v, count) {        var span = $(v).next();        va ...

  6. css3伸缩布局属性总结

    http://www.css88.com/book/css/properties/flex/flex-basis.htm http://c7sky.com/dive-into-flexbox.html ...

  7. Linux C学习笔记07--管道通信

    管道通信属于进程间通信的一种方式,使用方便,但是局限是父进程与子进程间的通信,下面是调试好的代码. 程序父进程创建2个管道,分别用于父进程写数据--子进程读数据和子进程写数据--父进程读数据: #in ...

  8. mysql分区查询

    SELECT *FROM INFORMATION_SCHEMA.partitions WHERE table_name='表名' and table_schema='数据库名'

  9. Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

      本文Blog地址:http://www.cnblogs.com/fesh/p/3766656.html   本文对Hadoop-2.2.0源码进行重新编译(64位操作系统下不重新编译会有版本问题) ...

  10. Python-类的概念及使用1

    1.类:用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. #!/usr/bin/python # -*- coding: UTF-8 -*- cl ...