Openstack云计算项目实施

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openstack云计算项目实施相关的知识,希望对你有一定的参考价值。


 

 Openstack 云计算架构

技术分享图片 

 

Version Icehouse 项目实施

 



 

目录




1

前言 .............................................................................................


2

环境说明 ........................................................................................



2.1

硬件环境说明 ...........................................................................



2.2

软件环境说明 ...........................................................................



2.3

网络规划和 IP 地址规划 ..........................................................


3

安装前准备 ....................................................................................



3.1

系统安装说明 ...........................................................................



3.2

主机配置 ..................................................................................



3.3

YUM 源 ........................................................................................




3.3.1

软件网络源下载并处理 ..................................................




3.3.2

配置软件源 ....................................................................




3.3.3

安装 Apache 并启动服务 ..............................................


4

开始部署 openstack .....................................................................



4.1

部署控制节点 .........................................................................




4.1.1

安装 openstack-packstack ..............................................




4.1.2

部署 ...........................................................................




4.1.3

网桥配置 ......................................................................



4.2

部署扩展节点 .........................................................................




4.2.1

配置 ...........................................................................




4.2.2

部署 ...........................................................................


5

安装后日常运维...........................................................................



 


5.1

创建网络 .........................................................................




5.1.1

创建外网 ................................................................




5.1.2

创建子网 ................................................................




5.1.3

创建内网 ................................................................




5.1.4

创建并编辑路由 ..........................................................



5.2

制作镜像 .........................................................................




5.2.1

制作 linux 镜像(RHEL6.4) ...............................................



5.3

上传镜像以及创建实例 .........................................................




5.3.1

实例和外网的连通 ........................................................




5.3.2

云主机分区调整 ..........................................................




5.3.3

增加云主机访问带宽 ....................................................



5.4

云主机应用扩展 ..................................................................


6

扩展服务 ...............................................................................


7

日常问题排查与解决 ...................................................................



7.1

准备工作遇到的问题 .............................................................




7.1.1

物理主机分区问题 ........................................................




7.1.2

网络规划问题 ...........................................................



7.2

部署环境遇到的问题 .............................................................




7.2.1

扩展节点出现异常 ........................................................



7.3

后期运维遇到的问题 .............................................................


8

注意事项 ...............................................................................


9

资源下载 .....................................................................................



 

10 小结 

 

11 参考文档 


 

 

 

 

前言

 

 

 

本文是 Openstack Icehouse 版本详细的安装部署说明,本文的安装只涉及到单独的控制节点和计算节点,并不包含单独网络网络节点。

 

 

 

 

环境说明

 

 

2.1 硬件环境说明

 

服务器编号

CPU

内存 G

硬盘 G

RAID








001

2*E5-2403

32

2*300

RAID1



8 核、超线程





002











003

4*E7-4830

32

2*300

RAID1



8 核、超线程





004


4*840

RAID5








 

 


2.2 软件环境说明

 

 

查看硬件环境之上的系统版本和内核参数

 

# rpm -qa centos-release

centos-release-6.6.e16.centos.12.2.x86_64

 

# uname -a

Linux YUN-11 2.6.32-504.3.3.e16.x86_64 #1SMP Web Dec 17 01:55:02 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

 

 

 

2.3 网络规划和 IP 地址规划


技术分享图片 

服务器

主机名

角色

网卡信息






1U   

YUN-10

YUM /ntp 服务器

eth0 192.168.0.100

eth1 10.0.0.10






浪潮服务器 

YUN-11

控制节点

eth2 192.168.0.101

eth1 10.0.0.11






浪潮服务器 

YUN-12

扩展节点

eth2 192.168.0.102

eth1 10.0.0.12







 

浪潮服务器 

YUN-13

扩展节点

eth1 192.168.0.103

eth0 10.0.0.13






浪潮服务器

YUN-14

扩展节点

eth3 192.168.0.104

eth2 10.0.0.14







网关 192.168.0.1

掩码 255.255.255.0



 

ip192.168.0.100-192.168.0.106


 

安装前准备

 

3.1 系统安装说明

 

说明一:

选择时区亚洲-上海

 


说明二:

分区时选择Use All Space

 

因为 Openstack 云主机磁盘大小对应/ 分区的大小,另外 linux 分区默认情况下/home 分区比较大,而/ 分区太小,要按实际情况把/home分区调小,把/ 分区调大

 

说明三:

安装模式选择Minimal


 

3.2 主机配置

配置 1:网络配置

 

按照地址规划,给服务器配置相应的 IP 地址测试主机之间的连通状况

 

配置 2hosts 文件配置

 

以主机 YUN-11 为例

 

# vi /etc/hosts

添加下面内容

127.0.0.1 YUN-11

 

其他主机依次做修改

 


3.3 YUM


3.3.1 软件网络源下载并处理

 

 在一台可以连通网络的 linux 主机上下载网络软件源,因为网络软件源过大,所以这里要求 linux 主机磁盘不能太小(50G 以上就行),网速必须要快,在根目录下下载,因为安装是在 CentOS 发行版下进行,所以首先将 CentOS 的源拿到本地。

 

# wget -S -c -r -np -L http://mirrors.163.com/centos/6/--accept=rpm,gz,xml

 

 

下载 OpenStack-Icehouse 版本的包

wget -c -r -np --reject=html,gif,A,D -nH http://repos.fedorapeople. org/repos/openstack/openstack-icehouse/epel-6/

 


下载 puppet

# wget -S -c -r -np -L https://yum.puppetlabs.com/el/6/.

 

 

下载 epel test 相关包

# wget -S -c -r -np -L http://dl.fedoraproject.org/pub/epel/testing/6/.

 

下载 epel

# wget -S -c -r -np -L http://dl.fedoraproject.org/pub/epel/6/.

 


下载 foreman

# wget -S -c -r -np -L http://yum.theforeman.org/plugins/1.5/el6/

# wget -S -c -r -np -L http://yum.theforeman.org/release/1.5/el6/

 


过程会持续很长时间


下载完成后需要删除安装过程用不着的软件

# cd /yum.puppetlabs.com/el/6/devel

# rm -rf SRPMS

# rm -rf i386

 

# cd /dl.fedoraproject.org/pub/epel/testing/6/

# rm -rf SRPMS

# rm -rf i386

# rm -rf ppc64

 

# cd /dl.fedoraproject.org/pub/epel/6/

# rm -rf SRPMS

# rm -rf i386

# rm -rf ppc64


# cd /yum.theforeman.org/plugins/1.5/el6/

# rm -rf source

 

# cd /yum.theforeman.org/release/1.5/el6/

# rm -rf source


 

3.3.2 配置软件源


在四个物理节点上做下列操作


# cd /etc/yum.repos.d

 

# mv CentOS-Base.repo CentOS-Base.repo.bak

 

上传 CentOS6-Base-163.repo  epel-release-6-8.noarch.rpm  rdo-release-icehouse-4.noarch.rpm 到该目录下

 

# rpm -ivh epel-release-6-8.noarch.rpm

 

# rpm -ivh rdo-release-icehouse-4.noarch.rpm

 

 

编辑目录下面的五个 repo 文件

 

# mv CentOS6-Base.repo  CentOS-Base.repo

 

# vi CentOS-Base.repo

 

内容如下

 

[base]

 

name=CentOS-$releasever - Base

 

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas

 

earch&repo=os

 

baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/os/$

 

basearch/

 

gpgcheck=1

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


 

#released updates

 

[updates]

 

name=CentOS-$releasever - Updates

 

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas

 

earch&repo=updates

 

baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/upda

 

tes/$basearch/

 

gpgcheck=1

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

 

 

 

#additional packages that may be useful

 

[extras]

 

name=CentOS-$releasever - Extras

 

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas

 

earch&repo=extras

 

baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/extra

 

s/$basearch/

 

gpgcheck=1

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

 

#additional packages that extend functionality of existing packages [centosplus]



 

name=CentOS-$releasever - Plus

 

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas

 

earch&repo=centosplus

 

baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/cent

 

osplus/$basearch/

 

gpgcheck=1

 

enabled=0

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

 

#contrib - packages by Centos Users

 

[contrib]

 

name=CentOS-$releasever - Contrib

 

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas

 

earch&repo=contrib

 

baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/contr

 

ib/$basearch/

 

gpgcheck=1

 

enabled=0

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

 

 

# vi epel.repo

 

内容如下



 

[epel]

 

name=Epel Repository

 

baseurl=http://192.168.0.100/dl.fedoraproject.org/pub/epel/6/$basearch

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs

 

enabled=1

 

gpgcheck=0

 

 

 


[epel-testing]

 

name=Epel-testing Repository

 

baseurl=http://192.168.0.100/dl.fedoraproject.org/pub/epel/testing/6/$b

 

asearch

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs

 

enabled=1

 

gpgcheck=0

 

 

 

# vi foreman.repo

 

内容如下

 

[foreman]

 

name=Foreman stable

 

baseurl=http://192.168.0.100/yum.theforeman.org/releases/1.5/el6/x86_

 

64


 

enabled=1

 

gpgcheck=0

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman

 

 

 

 

[foreman-plugins]

 

name=Foreman stable - plugins

 

baseurl=http://192.168.0.100/yum.theforeman.org/plugins/1.5/el6/x86_

 

64

 

enabled=1

 

gpgcheck=0

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman

 

 

 


# vi puppetlabs.repo

 

内容如下

 

[puppetlabs-products]

 

name=Puppet Labs Products - $basearch

 

baseurl=http://192.168.0.100/yum.puppetlabs.com/el/6/products/$base

 

arch

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs

 

enabled=1

 

gpgcheck=0


 



[puppetlabs-deps]

 

name=Puppet Labs Dependencies - $basearch

 

baseurl=http://192.168.0.100/yum.puppetlabs.com/el/6/dependencies/$

 

basearch

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs

 

enabled=1

 

gpgcheck=0

 

 

 


[puppetlabs-devel]

 

name=Puppet Labs Devel - $basearch

 

baseurl=http://192.168.0.100/yum.puppetlabs.com/el/6/devel/$basearch

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs

 

enabled=1

 

gpgcheck=0

 

 

 

 

# vi rdo-release.repo

 

内容如下

 

[openstack-icehouse]

 

name=OpenStack Icehouse Repository

 

baseurl=http://192.168.0.100/repos.fedorapeople.org/repos/openstack/o

 

penstack-icehouse/epel-6/


 

enabled=1

 

skip_if_unavailable=0

 

gpgcheck=0

 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse

 

priority=98

 

 

 

#yum clean all

 

#yum makecache

 

 

3.3.3 安装 Apache 并启动服务


转到 YUM 源服务器上

 

# yum install -y httpd

 

# service httpd start

 

# chkconfig httpd on

 

# rm -f /etc/httpd/conf.d/welcome.conf(删除 web 欢迎页面)

 

 

把之前处理完成后的软件拷贝到 YUM 源服务器/var/www/html 目录

 

然后把/yum.theforeman.org/release /yum.theforeman.org/plugins

 

录以及目录下的文件放到/yum.theforeman.org 目录下


 

4 开始部署 openstack

 

4.1 部署控制节点

 

4.1.1 安装 openstack-packstack

 

# yum install -y openstack-packstack

 

# yum update

 

# reboot

 

 

4.1.2 部署


packstack --allinone --provision-all-in-one-ovs-bridge=n --provision-d emo=n

 


4.1.3 网桥配置


# vi /etc/syscofnfig/network-scripts/ifcfg-eth2

 

内容如下

 

DEVICE=eth2

 

HWADDR=xx:xx:xx:xx:xx:xx

 

TYPE=OVSPort

 

OVS_BRIDGE=br-ex

 

DEVICETYPE=ovs


 

ONBOOT=yes

 

 

# vi /etc/syscofnfig/network-scripts/ifcfg-br-ex

 

内容如下

 

DEVICE=br-ex

 

DEVICETYPE=ovs

 

TYPE=OVSBridge

 

BOOTPROTO=static

 

IPADDR=192.168.0.101

 

NETMASK=255.255.255.0

 

GATEWAY=10.231.29.1

 

ONBOOT=yes

 

 

vi/etc/syscofnfig/network-scripts/ifcfg-eth1 BOOTPROTO=dhcp

 

to BOOTPROTO=none

 

添加

 

IPADDR=10.0.0.11

 

NETMASK=255.255.255.0

 

 


# vi /etc/neutron/plugin.ini


 

network_vlan_ranges = physnet1(修改)

 

bridge_mappings = physnet1:br-ex(添加)

 

这里需要注意的是添加的内容要靠着左边,不能有空格

 

# ovs-vsctl add-port br-ex eth2

 

(使用不间断重启网络)

 

 

 

4.2 部署扩展节点

 

4.2.1 配置

 

控制节点上

 

# cd /root

 

# vi packstack-answer-xxxx.txt (xxxx 为时间日期序号) CONFIG_NOVA_COMPUTE_PRIVIF=lo

 

to

 

CONFIG_NOVA_COMPUTE_PRIVIF=eth2

 

 

 

 

CONFIG_NOVA_NETWORK_PRIVIF=lo

 

to

 

CONFIG_NOVA_NETWORK_PRIVIF=eth2

 

 

 

 

 

CONFIG_COMPUTE_HOSTS=192.168.0.101


 

to

 

CONFIG_COMPUTE_HOSTS=192.168.0.102192.168.0.103192.168.0.104

 

(这里需要注意的是把 lo 改为 eth2 网卡并不一定使用与其他物理环境,

 

这里指实际应用的第二块网卡,在实际部署时要视情况而定)

 

 

4.2.2 部署

 

packstack --answer-file= packstack-answer-xxxx.txt

 

 

 

 

安装后日常运维

 

维基本的操作都在控制节点上的,较为方便的方式就是在openstack  dashboard(仪表盘)中进行,进入 dashboard 的方式就是直接在浏览器中输入控制节点的 IP 地址。(需要注意的是浏览器选择方面最好选择火狐浏览器或则谷歌浏览器,因为相对于 IE 浏览器而言,前面两个浏览器对于 openstack 的支持性要好,使用 IE 会在打开实例控制台时无法进入,出现No vnc....的错误信息)

 

用户名和密码放在控制节点/root 下,存放在文件名为 keystonerc_admin 的文件中,登陆用户参数为 export OS_USERNAME,密码参数为export OS_PASSWORD


 

5.1 创建网络

 

登陆 dashboard

 

5.1.1 创建外网

 

点击左侧的管理员,选择网络,点击创建网络

 

网络名称:public_network(网络名称为自定义名称)

 

选择项目:admin

 

外部网络打对勾(这一步尤为重要)

 

5.1.2 创建子网


单击创建的网络,再点击创建子网

 

子网名称 :public_subnet

 

网络地址 :10.231.29.0/25

 

激活 DHCP去掉对勾

 

分配地址池:192.168.0.50,192.168.0.106

 

点击已创建

 

 

5.1.3 创建内网

 

项目---网络---网络

 

点击创建网络

 

网络名称:private_network


 

子网名称:private_subnet

 

网络地址:10.10.0.024

 

分配地址池:10.10.0.2,10.10.0.254

 

点击已创建

 


5.1.4 创建并编辑路由


创建路由

 

项目---网络---路由

 

点击新建路由

 

路由名称:router1

 

 

 

编辑路由

 

点击路由---设置网关

 

选择外部网络 public_network

 

增加路由接口

 

点击生成的路由

 

点击增加接口

 

选择子网 private_network


 

5.2 制作镜像

 

5.2.1 制作 linux 镜像(RHEL6.4)

 

环境说明:

 

说明 1

 底层环境是 WIN7+vmware workstation,虚拟机是 Centos6.5 且带有桌面环境(这里需要注意的是安装桌面版的系统是为了制作过程中调用镜像制作的面板)

 

说明 2

 

在 vmware workstation 环境下需要开启 CPU 虚拟化支持选择虚拟机,右键点击-硬件-处理器-优先模式-Intel VT-x/EPT orAMD-V/RVI在优先模式下面的 Intel VT-x/EPT or AMD-V/RVI 打上对勾。

 

 

 

开始制作

 

# yum groupinstall -y Virtualization "Virtualization Client"

 

# yum install -y libvirt

 

# service libvirtd restart

 

# mkdir /openstack-image

 

# cd /openstack-image

 

# qemu-img create -f qcow2 rhel-openstack.img 10G

 

# chown qemu:qemu /openstack-image -R


 

virt-install -n rhelimg -r 1024 --cpu host -c /images/rhel-server-6. 4-x86_64-dvd.iso --disk path=/openstack-image/rhel-openstack.img,de vice=disk,bus=virtio,size=30,format=qcow2 --vnc --vncport=5900 --vncl isten=0.0.0.0 -v

 

 

注意事项:

 

注意事项 1

 

分区,分区的时候只给"/" 根目录分一个区即可,其他都不要。

 

注意事项 2

 

网络设置方面,确保你的网卡 eth0  DHCP 状态的

 

网卡配置如下

 

cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0"

 

BOOTPROTO="dhcp" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet"

 

 

# rm -rf /etc/udev/rules.d/70-persistent-net.rules

 

 

关闭防火墙和 selinux

 

# sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config


 

# service iptables stop && chkconfig iptables off

 

# service ip6tables stop && chkconfig ip6tables off

 

关机

 

 


5.3 上传镜像以及创建实例

 

 

上传镜像

 

项目---Compute---镜像

 

点击创建镜像

 

名称:rhel6.4

 

镜像源:镜像文件

 

镜像文件:选择文件(选择存放镜像的位置)

 

格式化:QCOW2-QEMU 模拟器

 

点击创建镜像

 

 

 

启动云主机

 

在刚创建的镜像后面点击运行

 

云主机名称:YUM-TEST

 

云主机:选择对应的云主机类型

 

网络:private_network

 

点击运行


 

在 dashboard 中创建的实例不能指定创建在哪一个物理主机上,所以一般有项目规划的情况下,都会把实例指定创建在某台物理主机上下面就指定创建实例

 

注:

 

针对 openstack 的操作都是通过特殊途径的,首先在控制节点上,切换到/root 目录下,输入. keystonerc_admin,需要注意的是点和

 

keystonerc_admin 之间必须有空格

 

 

 

 

查看镜像

 

# nova image-list

 


 

查看网络






# nova network-list






+--------------------------------------

+-----------------

+------

+



| ID



| Label

| Cidr |

+--------------------------------------

+-----------------

+------

+



| 8dec0402-6ad7-4390-9c0d-60badaffc718 | public_network

| -

|

| e49ae481-475c-4e36-bdcd-cc0967dab675 | private_network | -

|

+--------------------------------------

+-----------------

+------

+



 

 

注:创建实例需要指定网络

 # nova boot --image fedora --flavor 1 test1 --availability-zone


 

nova:node-1 --nic net-id=e49ae481-475c-4e36-bdcd-cc0967dab675

 

参数说明:

 

fedora:镜像名

 

:级别

 

test1:实例名

 

nova:域名

 

node-1:主机名

 

net-id=e49ae481-475c-4e36-bdcd-cc0967dab675 :网卡 id

 

 


其他部分命令实例:

 

查看集群服务

 

# nova-manage service list

 

查看云主机

 

# nova list

 

查看云主机详细信息

 

# nova show <vm-id>

 

查看集群服务

 

# nova host-list

 

查看集群

 

# nova hypervisor-list

 

查看目标节点资源

 

# nova-manage service describe_resource node2(node2 是对应主机名)


 

 

5.3.1 实例和外网的连通

 

 

添加规则,生成并绑定浮动 ip为了外网的机器能够访问云主机,需要为云主机绑定浮动 IP,另外添加相应服务的规则

 

添加规则(为了能够通过 SSH 方式访问实例)

 

项目---Compute---访问&安全---安全组

 

点击添加规则

 

端口:22

 

点击添加

 

 

 

添加第二个规则(为了能够 PING 通实例)

 

规则:定制 ICMP 规则

 

类型:-1

 

编码:-1

 

点击添加

 

 

 

绑定浮动 IP

 

项目---Compute---访问&安全---浮动 IP

 

点击分配 IP 给项目

 

找到要分配的 IP,点击关联,选择相应的云主机


 

5.3.2 云主机分区调整

 

新建的云主机会有一些问题

 

问题 1

 

没有 swap 分区

 

问题 2

 

根分区太小,大部分空间都没有分配

 

 

 

调整分区

 

增加交换分区

 

首先在外部网络使用 shell 工具通过 ssh 方式登录云主机

 

# fdisk /dev/vda

 

主要命令

 

删除分区

 

新增主分区、扩展分区、逻辑分区

 

显示分区

 

转换分区格式

 

保存分区表

 

Command(m for help):n

 

增加主分区,因为扩展分区不能作为交换分区

 

分区大小除了开始结束范围,还可以用 +16G 这种方式表示。

 

Command(m for help):t

 

82 表示交换分区 id


 

Command(m for help):w

 

保存退出

 

 

 

使分区生效

 

# partprobe

 

如果系统没有此命令,安装 yum install -y parted 或者重启云主机

 

 

 

/dev/vda2 分区格式化为交换分区

 

# mkswap /dev/vda2

 

 

 

挂载交换分区

 

# swapon /dev/vda2

 

注:

 

卸载交换分区

 

# swapoff /dev/vda2

 

 

 

查看交换分区设置成功

 

[[email protected] ~]# free

 


total

used

free

shared

buffers

cached

Mem:

16332544

256196

16076348

0

6440

42460

-/+ buffers/cache:

207296

16125248





 

Swap:  33556428

0

33556428

 

 

 

修改分区表自动挂载 swap 分区

 

# vi /etc/fstab

 

新增一行

 

/dev/vda2 swap swap defaults 0 0

 

 

 

挂载分区到/home(挂载分区到其他目录应该依照实际情况而定,这里以挂载到/home 为例)

 

# fdisk /dev/vda

 

新增扩展分区,新增逻辑分区

 

 

 

格式化分区

 

# mkfs.ext4 /dev/vda5

 

 

 

修改分区表

 

# vi /etc/fstab

 

新增

 

/dev/vda5 /home ext4 defaults 0 2

 

注:

 

最后一个 2  pass 选项


 

pass 选项:

 

不会被 fsck utility 检查

 

1 root 用户应该有最高优先权

 

如果你想被 check 就选择 2

 

 

 

 

# partprobe

 

 

 

5.3.3 增加云主机访问带宽

 

在控制节点

 

# vi /etc/neutron/dhcp_agent.ini

 

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

 

 

 


# vi /etc/neutron/dnsmasq-neutron.conf

 

添加

 

dhcp-option-force=26,1400

 

 

 

在控制节点以及各个云主机上

 

# ethtool -K eth2 tso off

 

# ethtool -K eth2 gro off

 

注:

这里修改的网卡配置对应的网卡依照实际情况而定,例如在控制节点


 

就是指 eth2 网卡

 

 

 

把命令写进启动脚本里(在控制节点以及各新建云主机上操作)

 

# vi /etc/rc.d/rc.local

 

在最后添加

 

ethtool -k eth1 tso off

 

 

 

 

5.4 云主机应用扩展

 

案例 1

 

云主机选择镜像为最小化安装系统的镜像,但是在实际部署云主机之后,发现在部署应用的过程需要桌面环境的支持,这就需要为云主机安装桌面环境。

 

 

 

安装桌面环境:

 

# yum grouplist |more

 

 

 

按需安装软件组

 

# yum groupinstall -y   "Desktop"   "Desktop Platform"   "Desktop

 

Platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graphics Creation Tools" "Input Methods" "X Window System" "Chinese Support [zh]" "Internet


 

Browser"

 

 

 

# vi /etc/inittab

 

修改启动级别为 5

 

重启

 

 

 

客户若想能够远程连接桌面,则需要在云主机端和客户登陆端做部分配置

 

在云主机 Linux 平台安装 VNCServer 服务端软件包

 

# yum -y install vnc *vnc-server*

 

 

 

修改 VNCServer 主配置文件

 

# vi /etc/sysconfig/vncservers

 

复制下面两行并去掉行首注释符,然后修改为

 

VNCSERVERS="1:root" VNCSERVERARGS[1]="-geometry 1024x768" 1024x768 x 不可以改为*

 

 

 

设置 VNCServer 远程连接密码

 

# vncpasswd

 

输入两次相同的密码


 

 

重启 vncserver 服务

 

# service vncserver start

 

 

 

上一步执行完毕会在 root 宿主目录下生成.vnc 开头的隐藏目录,该目

 

录下面的文件就是 root 用户的 VNC 桌面配置文件,编辑 xstartup

 

# vi /root/.vnc/xstartup

 

将最后一行改为

 

gnome &

 

使用 GNOME 桌面

 

(查看是否为 gnome 桌面,用 ps -A 命令查看是否有相关进程)

 

 

 

开启防火墙 VNCServer 端口

 

# vi /etc/sysconfig/iptables

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

 

面添加一行

 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT

 

(这一行不能添加到最后)

 

 

 

 

重启 iptables 服务

 

# service iptables restart


 

然后再客户登陆端做操作,这里以登陆端为 windows 系统为例

 

在 Windows 客户端下打开 http://www.realvnc.com/,下载对应平台的VNC-Viewer 客户端(该文件为绿色软件,无需安装),双击下载下来

 

的文件即可打开

 

 

 

 

打开软件

 

在 VNC Server 一栏输入 192.168.1.78:1(对应的服务器端地址,注意不要丢失)

 

 

 

 

 

扩展服务

 

 

日常问题排查与解决

 

 

7.1 准备工作遇到的问题

 

 

7.1.1 物理主机分区问题

 

 

案例:

 

在物理主机安装系统过程中忘记调整分区,结果在 openstack 部署之后发现 openstack 集群磁盘总量太小,原因是安装系统默认分区/home 分区过大,而/ 分区过小,openstack 集群磁盘识别的是系统/

 

分区


 

解决办法:

 

以控制节点为例

 

查看分区

 

[[email protected]YUN-11 ~]# fdisk -l

 

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

 

 

 

Disk /dev/sda: 299.6 GB, 299563483136 bytes

 

255 heads, 63 sectors/track, 36419 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Sector size (logical/physical): 512 bytes / 512 bytes

 

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

Disk identifier: 0x00000000


 

 

Device Boot /dev/sda1        Start                End            Blocks Id                         System 

                                                                                             1                 36420         292542463+        ee        GPT


Disk /dev/mapper/vg_YUN2-lv_root: 53.7 GB, 53687091200 bytes 

255 heads, 63 sectors/track, 6527 cylinders


 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Sector size (logical/physical): 512 bytes / 512 bytes

 

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

Disk identifier: 0x00000000

 

 

 

 

 


Disk /dev/mapper/vg_YUN2-lv_swap: 16.9 GB, 16894656512 bytes 255 heads, 63 sectors/track, 2053 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Sector size (logical/physical): 512 bytes / 512 bytes

 

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

Disk identifier: 0x00000000

 

 

 

 

 

Disk /dev/mapper/vg_YUN2-lv_home: 228.2 GB, 228241440768 bytes 255 heads, 63 sectors/track, 27748 cylinders

 

Units = cylinders of 16065 * 512 = 8225280 bytes

 

Sector size (logical/physical): 512 bytes / 512 bytes

 

I/O size (minimum/optimal): 512 bytes / 512 bytes

 

Disk identifier: 0x00000000

 

 /dev/mapper/vg_YUN2-lv_root  /dev/mapper/vg_YUN2-lv_home 比较大,但是云主机磁盘使用的是/dev/mapper/vg_YUN2-lv_root 分区

 

 

 

下面对分区做一下调整

卸载/home 分区(如果/home 分区下有文件,需要先备份,这里尤为

 

重要)

 

# umount /home

 

 


检查分区

 

# e2fsck -f /dev/mapper/vg_YUN2-lv_home

 

 

 

调整 home 分区大小

 

# resize2fs -p /dev/mapper/vg_YUN2-lv_home 2G

 

 

 

挂载/home 分区

 

# mount /home

 

 

 

调整/dev/mapper/vg_YUN2-lv_home 大小

 

# lvreduce -L 2G /dev/mapper/vg_YUN2-lv_home

 

 

 

查看分区

 

[[email protected]YUN-11 ~]# df -h


 

Filesystem                                    Size Used Avail Use% Mounted on

 


/dev/mapper/vg_YUN2-lv_root

 

50G 2.2G 45G 5% /


 

tmpfs

16G

4.0K

16G

1%

/dev/shm

/dev/sda2

477M

49M

404M

11%

/boot

/dev/sda1

200M

260K

200M

1%

/boot/efi

 

/srv/loopback-device/swiftloopback

                                                                 1.9G 3.1M 1.8G 1% /srv/node/swiftloopback 

       /dev/mapper/vg_YUN2-lv_home

                                                                 

                                                      1.9G 25M 1.8G 2% /home

 

[[email protected]YUN-11 ~]# vgdisplay


--- Volume group ---


VG Name

vg_YUN2

System ID


Format

lvm2

Metadata Areas

1

Metadata Sequence No

5

VG Access

read/write

VG Status

resizable

MAX LV

0

Cur LV

3

Open LV

3

Max PV

0

Cur PV

1

Act PV

1

VG Size

278.30 GiB

PE Size

4.00 MiB

Total PE

71245

Alloc PE / Size

17340 / 67.73 GiB

Free  PE / Size

53905 / 210.57 GiB

VG UUID

gwRY1M-61we-pric-21Wk-pTyk-2bF9-i5koBQ

--- Volume group ---


VG Name

cinder-volumes

System ID


Format

lvm2

Metadata Areas

1

Metadata Sequence No

1

VG Access

read/write

VG Status

resizable

MAX LV

0

Cur LV

0

Open LV

0

Max PV

0

Cur PV

1

Act PV

1

VG Size

20.60 GiB


 

PE Size

4.00 MiB

Total PE

5273

Alloc PE / Size

0 / 0

Free  PE / Size

5273 / 20.60 GiB

VG UUID

sqfFLq-QOvj-awvz-M5HG-MDj3-5SZE-h4Snlc

 

注意上面粗字体的一行,可以发现已经有 210.57 GiB 空闲空间

 

接下来调整/dev/mapper/vg_YUN2-lv_root 分区

 

# lvextend -L +182.27G /dev/mapper/vg_YUN2-lv_root

 

# resize2fs -p /dev/mapper/vg_YUN2-lv_root

 

再次查看分区





[[email protected]YUN-11 ~]# df -h





Filesystem

Size  Used Avail Use% Mounted on

/dev/mapper/vg_YUN2-lv_root





229G

2.2G

215G

2% /

tmpfs

16G

4.0K

16G

1% /dev/shm

/dev/sda2

477M

49M

404M

11% /boot

/dev/sda1

200M

260K

200M

1% /boot/efi

/srv/loopback-device/swiftloopback




1.9G

3.1M

1.8G

1% /srv/node/swiftloopback

/dev/mapper/vg_YUN2-lv_home





1.9G

25M

1.8G

2% /home

[[email protected]YUN-11 ~]# vgdisplay




--- Volume group ---





VG Name

vg_YUN2



System ID





Format

lvm2




Metadata Areas

1




Metadata Sequence No  6




VG Access

read/write



VG Status

resizable



MAX LV

0




Cur LV

3




Open LV

3




Max PV

0




Cur PV

1




Act PV

1




VG Size

278.30 GiB



PE Size

4.00 MiB



Total PE

71245




 

Alloc PE / Size

64002 / 250.01 GiB

Free

PE / Size

7243 / 28.29 GiB

VG UUID

gwRY1M-61we-pric-21Wk-pTyk-2bF9-i5koBQ

--- Volume group ---


VG Name

cinder-volumes

System ID


Format

lvm2

Metadata Areas

1

Metadata Sequence No

1

VG Access

read/write

VG Status

resizable

MAX LV

0

Cur LV


0

Open LV

0

Max PV

0

Cur PV


1

Act PV


1

VG Size

20.60 GiB

PE Size


4.00 MiB

Total PE

5273

Alloc PE / Size

0 / 0

Free

PE / Size

5273 / 20.60 GiB

VG UUID

sqfFLq-QOvj-awvz-M5HG-MDj3-5SZE-h4Snlc

 

可以看到 root 分区调整的更大了

 

 


7.1.2 网络规划问题

 

在网络规划中最好不要把 openstack 集群内网 IP 地址和物理服务器集群对内服务网卡 IP 地址在同一个网段,容易造成 IP 地址不容易管


 

7.2 部署环境遇到的问题

 

7.2.1 扩展节点出现异常

 

案例 1

 

在扩展节点完成后,发现扩展节点的 NOVA 服务状态是 down

 

提示信息:

 

查看日志控制节点日志/var/log/nova/compute.log

 

AMQP server on <server>:5672 is unreachable: Socket closed

 

原因:

 

在扩展节点之前没有在配置节点上配置网桥

 

 


案例 2

 

扩展节点的过程中出现错误

 

提示信息:

 

192.168.0.101_keystone.pp: [ ERROR ]

 

 

 

Applying Puppet manifests [ ERROR ]

 

 


ERROR : Error appeared during Puppet run: 192.168.0.101_keystone. pp

 

 

 Error: /Stage[main]/Keystone::Roles::Admin/Keystone_user[admin]: Could not evaluate: Execution of '/usr/bin/keystone --os-auth-url http://127.0.0.1:35357/v2.0/ token-get' returned 1: The request you hav e made requires authentication. (HTTP 401)

 

You will find full trace in log /var/tmp/packstack/20150209-133712-oZcG_v/manifests/192.168.0.101_keystone.pp.log

 

Please check log file /var/tmp/packstack/20150209-133712-oZcG_v/o penstack-setup.log for more information

 

 

原因:


在 dashboard 修改登录密码没有在配置文件修改解决办法:

 

# vi packstack-answers-20150130-201639.txt

 

CONFIG_KEYSTONE_ADMIN_PW=hndlyptl(参数之后是重新设置的密码)

 

 

 

 

案例 3

 扩展节点之后,由于实际需要把扩展节点所在的物理主机替换掉,结果在 dashboard 中仍然存在原来的扩展节点

 

解决办法:(以删除节点 YUN-14 为例)

 

在扩展节点上

 

mysql mysql>use nova;

 

mysql> select id,service_id,host_ip from compute_nodes; +----+------------+--------------+


 

| id | service_id | host_ip

|

+----

+------------

+

--------------

+

|

1 |


5 | 192.168.0.101 |

|

2 |


7 | 192.168.0.102 |

|

3 |


8 | 192.168.0.103 |

|

4 |


9 | 192.168.0.104 |

+----

+------------

+

--------------

+

 

4 rows in set (0.00 sec)

 

 

 

mysql> delete from compute_nodes where id=4; Query OK, 1 row affected (0.01 sec)

 

 

mysql> delete from services where host='YUN-14'; Query OK, 1 row affected (0.00 sec)

 

 

 

7.3 后期运维遇到的问题

 

 

 


注意事项


 

注意事项 1

 

在创建网络时,需要开启内网的 DHCP 功能


 


注意事项 2

 

云主机不能修改 IP 地址

 

 

 

注意事项 3

 

在创建完实例之后要查看资源占用情况,确认云主机的创建和资源没有冲突

 

 


注意事项 4

 

对于各节点来说对待防火墙一定要慎重处理,不能关闭控制节点以及计算节点的防火墙

 

 

资源下载

 

 

repo 文件下载链接

 

http://mirrors.163.com/.help/CentOS6-Base-163.repo

 

http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm

 

https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm


 

10 小结

 

 

11 参考文档

 

 

部署 RDO 参考文档

 

https://www.rdoproject.org/Neutron_with_existing_external_network

 

http://www.it165.net/os/html/201410/9532.html

 

 

 

 

网络优化参考文档

 

https://ask.openstack.org/en/question/25306/slow-network-speed-between-vm-and-external/

 

http://www.chenshake.com/how-node-installation-centos-6-4-openstack-havana-ovsgre/


以上是关于Openstack云计算项目实施的主要内容,如果未能解决你的问题,请参考以下文章

Openstack云计算项目实施其二(安装后日常运维)

Openstack 安装部署指南翻译系列 之 概况

每日分享-开源云计算平台OpenStack入门学习资料

OpenStack

北京OpenStack云平台管理

OpenStack部署