搜档网
当前位置:搜档网 › openstack初步部署

openstack初步部署

openstack初步部署
openstack初步部署

openstack 初步部署和测试 (2)

openstack功能 (2)

openstack安装过程 (3)

中心控制节点上的安装: (3)

在计算节点上安装nova (6)

在openstack上开启虚拟机 (7)

手动分配ip地址 (8)

配置逻辑卷 (9)

动态迁移 (10)

镜像管理 (12)

openstack的api (12)

用户管理 (13)

project管理 (14)

account管理 (14)

role管理 (15)

network管理 (15)

image管理 (17)

instance_type/flavors管理 (17)

VM/instance管理 (17)

volume逻辑卷管理 (19)

service 管理 (19)

fixed 固定ip管理 (20)

openstack 初步部署和测试

openstack功能

openstack提供的是一个云平台实现方案,类似于其他的云实现,openstack提供了基于虚拟机的云计算服务(nova);云存储服务(swift),以及镜像服务(glance),在openstack的新版本diablo中还引进了openstack一直缺乏的认证功能(代号为keystone),还提供了改进的web界面管理dashboard(Horizon)。我们这里已经安装的版本是openstack的上一版cactus,提供了一个简单的dashboard可以体验。

下面介绍openstack提供的云计算服务(nova)

openstack官方给出的框架如下:

我们看到openstack的两个核心组件:一个是消息队列Queue,使用的Rabbitmq-serer,另一个是数据库,这里使用的是mysql数据库。nova的5个关键部分:nova-api,nova-compute,nova-network,nova-schedule和nova-volume之间的消息传递都是通过消息队列服务器来完成,它们之间并无数据的传递,并通过数据来记录相关状态。

对镜像服务glance,openstack专门提供了一个glance-api接口,所有镜像服务都是通过这个接口与镜像存储和相关数据库联系的。

nova-api:提供命令接口,包括openstack自身的用户命令(以nova-manage 开头的命令),和EC2中的相关命令(格式为euca-********),其中EC2的命令实现的比较全面一些。

nova-compute:提供云计算的核心服务,在计算节点上必须跑的服务,而且可以在计算节点上只跑nova-compute服务,来支持虚拟机的创建删除迁移等功能,该服务基本上就是对所有虚拟机的相关操作。

nova-network:nova提供的网络服务,负责分配ip地址,配置网关,网桥,修改iptables,创建路由等功能,主要是要完成各个虚拟机之间的连通,以及不同主机上的不同虚拟机的通信问题。

nova-schedule:是nova的一个策略服务器,从消息队列中取出要创建虚拟机消息并决定虚拟机要运行在那个位置上。

nova-volume:nova的逻辑卷管理服务,openstack使用LVM来管理磁盘,并能够把分区挂载到虚拟机上当做一个硬盘使用。

dashboard:openstack提供了一个简易的web界面。dashboard把请求转化为nova-api 能接受的命令。

nova提供的功能主要有以下几个方面:

1.用户管理提供用户账户的管理,包括管理员账户和普通用户账户的管理,这些账户可以创建自己的工程,并创建虚拟机,发布应用等

2.权限管理openstack提供的权限有Cloud Administrator,IT Security,System Administrator,Network Administrator,Developer,Project Manager(创建工程时的默认角色)六种,可以给用户添加或者删除某个角色,但不能创建新的角色

3.项目管理用户可以创建删除项目,添加可访问用户,创建压缩用户证书和环境变量等

4.网络管理给虚拟机提供DHCP或者VLan等网络管理,并能对虚拟机绑定外网ip,实现外网ip的分配回收等管理。

5.镜像管理提供虚拟机镜像上传,存储,注册

6.虚拟机管理提供虚拟机的创建,删除,重启,迁移等操作,

7.虚拟机类型管理创建虚拟机时需要制定虚拟机类型,虚拟机类型规定了内存,cpu,硬盘等信息。

8.逻辑卷管理使用LVM创建逻辑卷,并绑定到虚拟机上,显示为增加的硬盘。openstack安装过程

中心控制节点上的安装:

安装有脚本安装和手动安装,这里进行手动安装,系统ubuntu10.04 LTS

首先要配置nova包仓库,需要先安装python-software-properties,才能添加apt仓库,如果是用PXE方式安装的系统,那么ubuntu 源配置的应该都不对,需要重新配置,/etc/apt/sources.list 文件,并apt-get update

sudo apt-get install python-software-properties

添加nova包源

sudo add-apt-repository ppa:nova-core/release

再更新

sudo apt-get update

安装消息队列服务器,Rabbitmq

sudo apt-get install -y rabbitmq-server

安装python依赖文件,这里需要python版本在2.7一下,否则会报错。ubuntu11.10默认安装的python3.0,版本过高。

sudo apt-get install -y python-greenlet python-mysqldb

安装nova包,其中需要的一些依赖文件将被自动安装

sudo apt-get install -y nova-common nova-doc python-nova nova-api

sudo apt-get install -y nova-network nova-objectstore nova-scheduler nova-compute 安装工具支持,euca2ools和unzip

sudo apt-get install -y euca2ools unzip

重启机器,因为安装过程中出现过系统崩溃的情况,还不明原因,所以安装还是要谨慎一些。

安装数据库mysql,期间需要输入访问密码。

sudo apt-get install -y mysql-server

编辑/etc/mysql/https://www.sodocs.net/doc/3a7238161.html,f,修改‘bind-address' 从127.0.0.1到0.0.0.0,就是不仅仅只有本机能登陆该mysql服务器,并重启mysql服务

sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/https://www.sodocs.net/doc/3a7238161.html,f

sudo service mysql restart

创建数据库'nova',数据库名字要和/etc/nova/nova.conf中配置的数据库连接--sql_connection一致。

sudo mysql -uroot -pmysql -e 'CREATE DATABASE nova;'

创建用户nova并授权其对数据库全部控制权

sudo mysql -uroot -pnova -e "GRANT ALL PRIVILEGES ON *.* TO 'nova'@'%' WITH GRANT OPTION;"

给用户nova设置密码例如:novapass

sudo mysql -uroot -pnova -e "SET PASSWORD FOR 'nova'@'%' =PASSWORD('novapass');"

使用用户名nova和密码novapass可以登录数据库

配置网络,这里配置了两块网卡。但用到的就只有eth0,而eth1就做一个备选的网口。在安装的openstack中并没有用到,但openstack支持双网卡配置,修改/etc/network/interface 如下:

auto br100

iface br100 inet static

bridge_ports eth0

bridge_stp off

bridge_maxwait 0

bridge_fd 0

address 192.168.1.10

netmask 255.255.255.0

gateway 192.168.1.253

auto eth1

iface eth1 inet static

address 192.168.1.17

netmask 255.255.255.0

gateway 192.168.1.253

重启网络服务

/etc/init.d/networking restart

修改openstack配置文件/etc/nova/nova.conf如下:

-dhcpbridge_flagfile=/etc/nova/nova.conf

--dhcpbridge=/usr/bin/nova-dhcpbridge

--logdir=/var/log/nova

--state_path=/var/lib/nova

--lock_path=/var/lock/nova

--verbose=1

--s3_host=192.168.1.10

--rabbit_host=192.168.1.10

--osapi_host=192.168.1.10

--cc_host=192.168.1.10

--FAKE_subdomain=ec2

--ec2_host=192.168.1.10

--ec2_url=http://192.168.1.10:8773/services/Cloud

--sql_connection=mysql://nova:novapass@192.168.1.10/nova

#--image_service=nova.image.glance.GlanceImageService

#--glance_host=192.168.1.10

#--glance_port=9292

--network_manager=https://www.sodocs.net/doc/3a7238161.html,work.manager.FlatDHCPManager

--flat_network_dhcp_start=172.16.0.2

--fixed_range=172.16.0.0/24

--iscsi_ip_prefix=192.168.1

--bridge_interface=br100

--flat_network_bridge=br100

--flat_interface=eth0

--flat_injected=False

--num_networks=100

#--public_interface=eth1

--network_size=256

--routing_source_ip=192.168.1.10

--libvirt_type=kvm

--use_syslog=true

--connection_type=libvirt

重启nova所有服务

restart libvirt-bin; restart nova-network; restart nova-compute;

restart nova-api; restart nova-objectstore; restart nova-scheduler 查看nova-network是否启动起来了,安装过程中有时会起不来,查看dnsmasq是否启动了,它使用的端口是53端口,一次安装过程中由于已经开启了bind9服务,占用了53端口,需要杀掉bind9进程。dnsmasq服务是给虚拟机提供网络相关服务用的。

同步数据库nova,openstack会在nova数据库中建一些表

/usr/bin/nova-manage db sync (直接用nova-manage db sync 也可以)创建管理员用户:nova (名字随意,参数admin表示是管理员账户)

/usr/bin/nova-manage user admin nova

返回EC2_ACCESS_KEY 和EC2_SECRET_KEY

创建工程(项目),需要制定工程名字和创建者。

/usr/bin/nova-manage project create novaproject nova

创建虚拟机网络

/usr/bin/nova-manage network create 172.16.0.1/24 1 256

注意:其中172.16.0.1/24必须在nova.conf中配置的--fixed_range 的范围内,1表

示创建1个网络,256表示每个网络有多少个ip。

上述创建的用户,工程和网络都会记录在数据库nova中。

创建证书

mkdir –p ~/creds目录随意

nova-manage project zipfile novaproject nova ~/creds/novacert.zip

这个命令会在~/creds文件夹中创建novacert.zip文件,里面压缩了记录用户认证和环

境变量的一些文件。解开这个文件

unzip ~/creds/novacert.zip -d ~/creds/

在文件夹creds下会看到cacert.pem cert.pem novarc pk.pem这几个文件,其中

novarc记录的是环境变量,其他的是一些认证文件

source ~/creds/novarc 就会注册该环境变量,当然也可以加到.bashrc中。

授权对结算节点上的虚拟机的访问,要使用使用euca-authorize命令

euca-authorize -P icmp -t -1:-1 default 授权ping

euca-authorize -P tcp -p 22 default 授权ssh

注意:如果ping不通虚拟机的话,需要看一下dnsmasq服务,当你有虚拟机在运行的情况下,(当然,到现在为止,还没有开启一个虚拟机),要检查是否有两个

dnsmasq服务在运行中,如果不是,运行下面命令:

killall dnsmasq

service nova-network restart

在计算节点上安装nova

在计算节点上只需要一个nova-compute服务启动就行了,所以只需要安装nova-compute 服务。

修改/etc/nova/nova.conf文件(基本上与控制节点上的一样),当然一些配置网络的参数就不需要了。必须要配置消息队列服务器地址,网络服务器地址,数据库地址,控制中心地址等

再配置网桥,因为nova使用的是br100作为网桥,所以/etc/network/interfaces 如下:

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto br100

iface br100 inet static

bridge_ports eth0

bridge_stp off

bridge_maxwait 0

bridge_fd 0

address xxx.xxx.xxx.xxx

netmask xxx.xxx.xxx.xxx

gateway xxx.xxx.xxx.xxx

重启网络服务

/etc/init.d/networking restart

配置完nova.conf ,和网络之后,重启nova-compute 和libvirt-bin

restart libvirt-bin; service nova-compute restart

为了避免KVM的问题和nova的访问权限,修改下面权限

chgrp kvm /dev/kvm

chmod g+rwx /dev/kvm

在计算节点上要配置一个iptables ,因为在计算节点上没有启动nova-api服务,配置一个nat,跳转到nova-api上,这样UEC镜像才能取得正确的数据。

# iptables -t nat -A PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $NOV A_API_IP:8773

测试计算节点服务是否已经在控制节点上生效,运行下面命令

nova-manage service list

ubuntu10 nova-scheduler enabled :-) 2011-11-04 08:47:56

ubuntu10 nova-network enabled :-) 2011-11-04 08:48:00

ubuntu10 nova-compute enabled :-) 2011-11-04 08:47:59

ubuntu10 nova-volume enabled :-) 2011-11-04 08:47:57

ubuntu12 nova-compute enabled :-) 2011-11-04 08:48:02

ubuntu12 nova-scheduler disabled XXX 2011-11-02 04:50:16

这里不仅需要服务是enabled,而且需要:-) +时间,这个时间表示最近的一次服务是否开启测试的时间(最后一次心跳时间)

如果一切正常,那么两台机器之间的通信就没有问题了

在openstack上开启虚拟机

发布镜像

uec-publish-tarball ubuntu-10.10-server-uec-i386.tar.gz mybucket

返回三个值,ami,aki,ari

创建一个ssh登录keypair,在这之前需要先source ~/creds/novarc 也就是要把环境变量配置好,因为这个命令要把一些环境变量配置为ssh登录keypair。

euca-add-keypair mykey > mykey.priv 名字随意

修改keypair.priv权限,太高权限出错

chmod 600 mykey.priv

开启一个虚拟机

euca-run-instances ami-g06qbntt -k mykey -t m1.tiny

查看虚拟机列表

euca-describe-instances

找到刚建的虚拟机,如果已经授权过了对虚拟机的访问,则ping 其ip ,ssh登录测试,一般都会失败,可能是程序bug,但也有正常的时候,这时要检查一下dnsmasq是否开启了两个服务,若不是killall dnsmasq ;service nova-network restart。

可以查看/var/lib/nova/instances/instance-******/console.log

一般还不行,查看ip ad sh,查看br100中两个ip的位置,如果物理机ip在第一位,那么一般都不会ping通虚拟机,这时要删掉这两个ip,在分别加上,先加虚拟机网络的网关ip,再加物理机ip。

先删掉br100上的两个ip地址

删掉172的网段

ip addr del 172.16.0.1 dev br100

再删掉br100上的192网段

ip addr del 192.168.1.10 dev br100

然后再添加172网段,(先添加的显示在第一位)

ip addr add 172.168.0.1/24 brd 172.16.0.255 dev br100

然后再添加192网段,通过ip ad sh 显示:172在192的前面

ip addr add 192.168.1.10/24 brd 192.168.1.255 dev br100

然后检查ip ad sh ,虚拟机网段要在第一位

重启服务

再次新建个虚拟机,基本上就能ping通,也能ssh 登录上了,这个问题太让人费解了当然在删除ip的过程中,会把一些默认路由也删掉了。

停止一个虚拟机命令:

euca-terminate-instances i-1b0bh8n

手动分配ip地址

开启一个虚拟机后,openstack会自动为其分配一个ip地址,可以理解为固定ip地址(fixed_ips),openstack中还存在浮动ip地址(floating_ips),利用浮动ip,可以手动给虚拟机分配ip地址,内网和外网的都可以,同样要使用浮动ip地址也是要先建立浮动ip的地址池。

nova-manage floating create [hostname] [cidr]:为特定主机创建特定的浮动地址,可以是一个ip地址,也可以是一个子网。

nova-manage floating destroy [hostname] [cidr]:删除特定主机上的某浮动ip

nova-manage floating list 显示浮动ip列表

创建好浮动ip地址池后可以用下面命令从池中获取一个ip地址。

euca-allocate-address

返回一个浮动ip地址池中的ip地址,然后就能分配这个ip地址给虚拟机

euca-associate-address -i [instance_id] [floating_ip]

这样就绑定floating_ip到instance_id,可以ping和ssh测试一下

当要把这个ip地址与虚拟机解除绑定时,运行

euca-disassociate-address[floating_ip]

解除浮动ip和虚拟机的绑定。

euca-deallocate-address [floating_ip]

返回一个ip,这个ip返回到ip池里,而且euca-allocate-addressk可以再次分配这个ip给其他虚拟机使用。

配置逻辑卷

安装lvm,openstack使用lvm管理逻辑卷,建立的逻辑卷可以分给虚拟机,在虚拟机看来是一块硬盘。openstack需要nova-volume服务。

安装lvm2和nova-volume

apt-get install lvm2 nova-volume

可以用一块单独的分区,也可以用一个回环设备做个测试,这里使用的是回环设备测试dd if=/dev/zero of=/tmp/nova-volumes.img bs=1M seek=10000 count=0

losetup --show -f /tmp/nova-volumes.img

vgcreate nova-volumes /dev/loop0这里创建nova-volume逻辑卷组,openstack默认接下来需要开启iscsitarget服务,安装iscsitarget时,默认并没有启动,做如下两步:sed -i ‘s/false/true/g’/etc/default/iscsitarget

service iscsitarget start

查看iscsitarget服务有没有启动起来,有时就启动不起来,可以试一试下面的命令:/etc/init.d/open-iscsi start

一次排错,在运行完这条命令之后就可以启动iscsitarget服务了。。。。

继续配置nova-volume,重启nova-volume服务。

service nova-volume restart

nova-manage service list

可以看到nova-volume服务已经启动成功

由于前面已经用LVM建立了一个逻辑卷组nova-volumes,这里直接用这个卷组创建逻辑卷,并绑定到虚拟机上,euca2ools命令:euca-create-volume euca-attach-volume euca-detach-volume euca-delete-volume euca-describe-volumes

euca-create-volume -s 1 -z nova -s:大小单位G, -z 区域,一般是nova

euca-describe-volumes 可以显示创建的逻辑卷

给虚拟机绑定磁盘(逻辑卷)

euca-attach-volume vol-0000000e -i i-00000027 -d /dev/vdb

vol-0000000e :逻辑卷id

-i 实例id,也就是虚拟机id

-d 显示在虚拟机中的设备名称,如果虚拟机已经有了vda 、vdb ,那么这里就是/dev/vdc

然后登录虚拟机i-00000027 用命令fdisk -l ,发现多了块磁盘/dev/vdb

euca-detach-volume euca-delete-volume 分别用来解绑逻辑卷,和删除逻辑卷

动态迁移

更新系统,升级硬件等都需要用到动态迁移,文件夹: NOV A-INST-DIR/instances/ (一般是/var/lib/nova/instances/)需要mount到共享存储上,这里用的是NFS。

首先要保证主机之间ping主机名时能够相互ping通。

ping hostA

ping hostB

ping hostC

安装nfs:

apt-get install nfs-kernel-server

在中心机上配置/etc/exports,添加内容如下:

/var/lib/nova/instances ubuntu10/255.255.255.0(rw,sync,fsid=0,no_root_squash)

/etc/init.d/nfs-kernel-server restart

修改文件/etc/default/nfs-common

设置NEED_IDMAPD =yes

重启/etc/init.d/nfs-kernel-server restart

/etc/init.d/idmapd restart

这里用到了idmapd这个进程,如果不配置该进程的话,那么共享目录里的在客户端看不到共享文件的所属主和组,也不是nogroup,而是一个很大的数字,这样在nfs客户端是改不了文件所属主和组的,必须要配置idmapd这个进程,并开启该服务,如果这个服务没配置好开启,那么会出现"unable to set user and group to 107:114 on /var/lib/nova/instanc***" Remote I/O error"。

配置nfs客户端

修改文件/etc/fstab 添加内容如下:

ubuntu10:/ /var/lib/nova/instances nfs4 defaults 0 0

配置了nfs4,所以ubuntu10后面直接用"/"

在两台机器上配置libvirt-bin

点10上

修改/etc/libvirt/libvirtd.conf 文件如下:

改前: #listen_tls = 0

改后: listen_tls = 0

改前: #listen_tcp = 1

改后: listen_tcp = 1

添加: auth_tcp = "none"

修改/etc/init/libvirt-bin.conf

改前: exec /usr/sbin/libvirtd $libvirtd_opts

改后: exec /usr/sbin/libvirtd -d -l

修改/etc/default/libvirt-bin

改前:libvirtd_opts=" -d"

改后:libvirtd_opts=" -d -l"

然后重启libvirt-bin

在客户机上挂载

# mount -a -v

如果失败可以试着关一下防火墙

ls -ld NOV A-INST-DIR/instances/

挂载成功就可以试着迁移一下了,运行下面命令,查看各个机器上服务状态,需要是enable +":-)"都存在。

nova-manage service list

ubuntu10 nova-scheduler enabled :-) 2011-11-04 08:47:56

ubuntu10 nova-network enabled :-) 2011-11-04 08:48:00

ubuntu10 nova-compute enabled :-) 2011-11-04 08:47:59

ubuntu10 nova-volume enabled :-) 2011-11-04 08:47:57

ubuntu12 nova-compute enabled :-) 2011-11-04 08:48:02

ubuntu12 nova-scheduler disabled XXX 2011-11-02 04:50:16

前5个服务是正常的

如果ubuntu10和ubuntu12上的compute服务都开启,并且中心控制机ubuntu10上的其他服务都正常,查看一下compute节点上的资源情况

nova-manage service update_resource ubuntu12

迁移虚拟机

nova-manage vm live_migration i-00000003 ubuntu12

顺利的话迁移成功。

否则,查看nova-scheduler.log和nova-manage.log以及ubuntu12上的nova-compute.log 日志,看哪里出错了。

首先在测试共享目录的时候在客户机上nova-compute.log可能会出现,

permission denied '/var/lib/nova/instance/tmp_OXirt'

而在nfs服务器上的nova-scheduler.log

RemoteError: UnboundLocalError local variable 'filename' referenced before assignment 那么权限问题,修改目录权限

共享目录中把权限改了

chmod 777 /var/lib/nova/instances

再次运行迁移命令,出现下面

但是euca-describe-instances时,发现可能并没有迁移

继续查看compute节点上的nova-compute.log

unable to set user and group to 107:114 on /var/lib/nova/instanc***" Remote I/O error"。

依然是权限问题,不能够修改文件所属主,

解决这个问题就是要配置好idmap服务。

然后迁移,又出现错误

直接把console.log(/var/lib/nova/instances/instance-****/console.log)文件权限改为777,再次迁移,安装过程中在这一步就可以迁移了。

所以这里遗留的问题就是,每次迁移都要修改console.log权限。

同属于这一个问题的另一个现象是,当在compute节点上直接开启一个虚拟机时,直接失败,日志中的问题和上面一样。同样更改console.log权限为666,再次reboot该虚拟机,发现虚拟机正常启动起来了。所以这两个问题应该都是权限问题。

论坛中也说这是两台机器中用户nova的uid不一样造成的,说是在装openstack时,先安装nova,再安装mysql和rabbitmq就行了,应该是要求两台机器安装的顺序必须是一样的才行。

镜像管理

openstack提供了自己的镜像服务器glance。这里没有使用glance,用的是默认的镜像服务存储objectstore

openstack支持自己新建虚拟机镜像,并支持windows镜像,制作镜像目前没有做过任何镜像。

openstack的api

openstack提供了两套api,一个是openstack自己的api,大多都以nova-manage开头,另一个是euca2ools提供的Api,大多以"euca-"为前缀。

输入nova-manage ,会看到还有下面这些二级命令

user

account

project

role

shell

vpn

fixed

floating

network

vm

service

db

volume

instance_type

image

flavor

从这些命令中,我们可以看到nova-manage都管理了哪些功能。

再看一下euca2ools命令:

euca-add-group euca-describe-images

euca-add-keypair euca-describe-instances

euca-allocate-address euca-describe-keypairs

euca-associate-address euca-describe-regions

euca-attach-volume euca-describe-snapshots

euca-authorize euca-describe-volumes

euca-bundle-image euca-detach-volume

euca-bundle-vol euca-disassociate-address

euca-confirm-product-instance euca-download-bundle

euca-create-snapshot euca-get-console-output

euca-create-volume euca-modify-image-attribute

euca-delete-bundle euca-reboot-instances

euca-delete-group euca-register

euca-delete-keypair euca-release-address

euca-delete-snapshot euca-reset-image-attribute

euca-delete-volume euca-revoke

euca-deregister euca-run-instances

euca-describe-addresses euca-terminate-instances

euca-describe-availability-zones euca-unbundle

euca-describe-groups euca-upload-bundle

euca-describe-image-attribute euca-version

另外在发布镜像的时候,用到uec的命令。

uec-publish-tarball $image [bucket-name] [hardware-arch]

用户管理

创建管理员用户

用法:nova-manage user admin name [access] [secret]

其中access 和secret可选,没有的话系统会自动生成一个。

创建普通用户

用法:nova-manage user create name [access] [secret]

access和secret可选

删除一个存在的用户

用法:nova-manage user delete username

显示一个用户的accesskey和secretkey

用法:nova-manage user exports username

显示所有用户

用法:nova-manage user list

修改用户的secretkey,accesskey,和管理员标志

用法:nova-manage user modify name access secret is_admin

is_admin:是否改为管理员,取值'T' 或者'F'

任何参数留空(表示为'')就会忽略掉这个参数的修改

例如:nova-manage user modify test1 '' secret '' 表示修改test1的密码为secret 废除一个用户证书

用法:nova-manage user revoke userid

project管理

添加一个用户到一个project

用法:nova-manage project add project_id user_id

创建一个project

用法:nova-manage project create name project_manager [description]

nama :project id

project_manager :一个user id,作为project 管理者

[description] :可选,描述信息

删掉一个存在的project

用法:nova-manage project delete projectname

获取一个用户和它对应的project的环境变量,返回一个novarc(默认)文件

用法:nova-manage project environment project_id user_id [filename='novarc] project 列表

用法:nova-manage project list

修改一个project

用法:nova-manage project modify name project_manager [description]

修改该project的project管理员为新的user,使新的用户拥有projectmanager角色显示一个project的相关信息

nova-manage project quota project_id [key] [value]

例如:root@ubuntu10:~# nova-manage project quota testproject

metadata_items: 128

gigabytes: 1000

floating_ips: 10

instances: 10

volumes: 10

cores: 20

从一个project中移除一个user

用法:nova-manage project remove project_id user_id

删除与某个project相关的数据(如网络地址等)

用法:nova-manage project scrub project_id

把用户的userid和projectid及其相关证书,压缩到一个文件中

用法:nova-manage project zipfile project_id user_id [filename='nova.zip']

例如:nova-manage project zipfile testproject test1 creds/novatest1.zip account管理

功能类似于project管理,不太明白它们之间的区别

nova-manage account add 添加用户到project

nova-manage account create 创建一个新的project

nova-manage account delete 删除project

nova-manage account environment 生成一个环境变量文件

nova-manage account list 显示project

nova-manage account modify 修改一个project的管理员

nova-manage account quota 设置或者显示定额

nova-manage account remove 从一个project中删除某个用户

nova-manage account scrub 删除与一个project相关的数据,例如网络等。。

nova-manage account zipfile 把登录project的用户证书压缩到.zip

role管理

openstack的用户角色有六种,分别是Cloud Administrator(cloudadmin 云管理员),IT Security(itsec ,it安全管理),System Administrator (sysadmin,系统管理),Network Administrator(netadmin,网络管理员),Developer(开发者),Project Manager(projectmanager, 创建工程时的默认角色,工程管理员)

给一个用户添加某个角色

用法:nova-manage role add user role [project]

若指定project,那么就是添加project上的角色

判断一个用户是否有某个角色

用法:nova-manage role has user role [project]

判断user是否具有role角色,如果指定了project,那么只有当user拥有全局角

色和project角色时,才返回真,对于判断角色projectmanager,必须指定project.

删除一个用户的角色

用法:nova-manage role remove user role [project]

若指定project,那么就是删除user在project上的这个角色

network管理

创建用于分配的ip地址池,类似于虚拟机内网。

用法:nova-manage network create fixed_range=FLAG, [num_networks=FLAG],

[network_size=FLAG], [vlan_start=FLAG],

[vpn_start=FLAG], [fixed_range_v6=FLAG]

例如:nova-manage network create 172.16.0.1/24 1 256

创建172.16.0.1/24内的1个网络,256个ip地址

其他的参数目前还没用过。

显示创建的网络

用法:nova-manage network list

删除一个网络

用法:nova-manage network delete network

fixed_range :就是上面list时显示的

例如:nova-manage network delete 172.16.0.1/24

注意:如果删除网络,并不会把数据库中的fixed_ips表的ip地址删掉,需要手动删除。

上面是固定ip的管理,下面是floating ip(浮动ip?)的管理

创建一定范围内的浮动ip,可以是一个,也可以是一组。

用法:nova-manage floating create host ip_range

例如:nova-manage floating create ubuntu10 192.168.1.20/32

删除一个浮动ip,或者一组浮动ip

用法:nova-manage floating delete ip_range

列出所有浮动ip

用法:nova-manage floating list

分配并关联ip到实例,基本上要用Euca2ools命令

能手动分配的ip都是放在floating ip 地址池中中,通过create命令创建,之后就可以分配一个浮动ip给你的project,并自动从可用floating ip 地址池中移除,使用euca-allocate-address 这个命令,可以获得一个在地址池中的ip,然后就可以绑定它到一个虚拟机上。

获得一个可绑定的ip地址

用法:euca-allocate-address

返回一个浮动ip地址池中的ip

关联一个floating ip 到instance

用法:euca-associate-address -i instance_id floating_ip

当你想把一个floating ip从虚拟机中收回,并放回到浮动ip地址池中时,要先来解除ip与实例的关联,然后用再收回到地址池中以便其他虚拟机使用。

解除浮动ip与虚拟机的绑定

用法:euca-disassociate-address floating_ip

把解除绑定的浮动ip放回地址池中

用法:euca-deallocate-address floating_ip(文档中是这个命令,但是这个命令并不存在,目前版本经试验用的是euca-release-address)来把ip返回到ip池中,以便其他人用用法:euca-release-address floating_ip

分配公网ip地址,openstack compute使用NAT来支持公网ip。

必需吧这一个ip或者一些ip块添加到floating ip ,(nova-manage floating create 命令),分配方法类似上面,例如:

nova-manage floating create my-hostname 68.99.26.170/31

euca-allocate-address 68.99.26.170

euca-associate-address -i i-00000001 68.99.26.170

确保安全组已打开

root@my-hostname:~# euca-describe-groups

GROUP admin-project default default

PERMISSION admin-project default ALLOWS icmp -1 -1

FROM CIDR 0.0.0.0/0

PERMISSION admin-project default ALLOWS tcp 22 22

FROM CIDR 0.0.0.0/0

确保NAT 规则添加到iptables,这个会自动完成。

-A nova-network-OUTPUT -d 68.99.26.170/32 -j DNAT --to-destination 10.0.0.3 -A nova-network-PREROUTING -d 68.99.26.170/32 -j DNAT --to-destination10.0.0.3

-A nova-network-floating-snat -s 10.0.0.3/32 -j SNAT --to-source 68.99.26.170 键入ip addr 去核对公共地址,例子中是68.99.26.170,已经被加入到你的公共接口中

image管理

镜像管理openstack提供了下面几个命令

nova-mange image all_register

convert

image_register

kernel_register

ramdisk_register

但目前用的都是做好的镜像,上面那些命令还没用到,自己制作的镜像可能会用到。现在是直接用uec命令:uec-publish-tarball 来发布镜像。

用法:uec-publish-tarball $image [bucket-name] [hardware-arch]

bucket-name 镜像仓库名字

hardware-arch 硬件参数

例如:uec-publish-tarball ubuntu-10.10-server-uec-i386.tar.gz mybucket x86_64

这个命令将会返回三个参数emi,eri,eki

emi : eucalyptus machine image 镜像ID

eri:eucalyptus ramdisk image

eki : eucalyptus kernal image

Amazon 也有相似的参数,命名为ami,ari ,aki

openstack也是沿用ami ,ari ,aki 的表示

列出发布的镜像

用法:euca-describe-images

instance_type/flavors管理

实例类型管理,openstack使用这个实例类型来规定一个虚拟机所具有的cpu数,内存,硬盘大小等相关参数。一个虚拟机是和一个instance_type绑定在一起的。

创建一个instanc_type/flavors

用法:nova-manage instance_type create name memory vcpus local_gb flavorid [swap] [rxtx_quota] [rxtx_cap]

列出一个所有创建的实例类型

用法:nova-manage instance_type list

删掉一个实例类型

用法:nova-manage instance_type delete name

只是在数据库中标记了一下,表示该实例类型被删除了

VM/instance管理

对于虚拟机的管理,openstack提供的命令并不多,只有如下两个

用法:nova-manage vm list 列出所有的虚拟机实例

用法:nova-mange vm live_migration vm_id dest 动态迁移虚拟机vm_id到·目标主机上dest

大多虚拟机管理的命令都是euca2ools命令。

在开启虚拟机时需要一个keypair,这个keypair会在创建虚拟机时注册到虚拟机上,用于ssh登录时的用户认证。添加keypair的命令是:

euca-add-keypair keypair_name

注意这个命令创建的keypair需要使用这些环境变量EC2_URL, EC2_ACCESS_KEY, EC2_SECRET_KEY, EC2_CERT, EC2_PRIVATE_KEY, S3_URL, EUCALYPTUS_CERT等,这些环境变量都存储在novarc文件中,需要先source一下。

例如:euca-add-keypair mykey>mykey.priv

mykey 是keypair 名字,会记录在数据库中,用于创建实例等用途,mykey.priv 记录了这些内容,用于ssh登录,同时要更改mykey.priv权限,ssh规定的。

chmod 600 mykey.priv

下面开启一个虚拟机实例

euca-run-instances [-n, --instance-count count] [-g, --group group_name] [-k, --key keyname] [--addressing addressing] [-t, --instance-type instance_type] [-z, --availability-zone zone] [--kernel kernel_id] [--ramdisk ramdisk_id] [-h, --help] [--version] [--debug] image_id

-n: 要运行实例的数量

-g; 实例运行的的安全组

-k: keypair 名字

--addressing 寻址方式(例如private)

-t :实例类型

-z: 实例可以运行的zone

--kernel :发布实例时使用的kernel ID

--ramdisk :发布实例时使用的ramdisk ID

image_id :必须填的,上传的镜像id

例如:euca-run-instances ami-0000000c -k mykey -t m1.small

mykey就是上面创建的keypair,m1.small是一个instance_type

列出运行的虚拟机实例

euca-describe-instances

nova-manage vm list

登录虚拟机实例,需要先授权端口

euca-authorize -P icmp -t -1:-1 default 授权ping

euca-authorize -P tcp -p 22 default 授权访问22端口

ssh -i mykey.priv root@172.16.0.4

mykey.priv:就是前面生成的mykey,priv,记录的是keypair

如果ping不通或者ssh登录不上,可以检查一下dnsmasq这个进程,在有虚拟机开启的情况下,有两个dnsmasq进程,如果不是这么回事,那么运行:

killall dnsmasq

service nova-network restart

停掉一个虚拟机实例:

euca-terminate-instance i-00000027

volume逻辑卷管理

对于逻辑卷管理,openstack只提供了两个命令

nova-manage volume delete 删掉这个id的volume

nova-manage volume reattach 重新绑定这个volume到先前的那台虚拟机,一般是在主机重启后运行这个命令

其他的都是用euca2ools命令,而且基本上用euca2ools命令也就足够了。

Nova-volume 是openstack在linux上使用LVM的iSCSI 解决方案,注意一个volume 一次只能绑定到一个实例。

首先使用LVM创建一个逻辑卷组:nova-volumes,这是nova默认使用的逻辑卷组,创建逻辑卷等操作,都是操作的这个逻辑卷组。创建这个逻辑卷组已在安装过程中说明。

创建一个volume

euca-create-volume -S, --size size | --snapshot snapshot_id -z zone [-h, --help] [--version] [--debug]

-s --size volume 的大小(单位:GB)

--snapshot :用来创建volume的snapshot Id,size 和snapshot id 必须要其中一个- z --zone 创建volume的可用zone

例如:euca-create-volume -s 1 -z nova

显示所有逻辑卷

euca-describe-volumes

绑定volume

euca-attach-volume -i, --instance instance_id -d, --device device [-h, --help] [--version] [--debug] volume_id

-i :实例id

-d:设备名字,在虚拟机中显示,如果虚拟机中有了/dev/vda,/dev/vdb,那么这里是/dev/vdc volume_id :创建的volume_id

例如:euca-attach-volume vol-00000009 -i i-00000008 -d /dev/vdc

解除绑定的volume id

euca-detach-volume

删除一个volume

euca-delete-volume

service 管理

nova-manage service describe_resource 显示某主机资源(vcpu/memery/disk)nova-manage service disable 停止某服务

nova-manage service enable 开始某服务

nova-manage service list 显示某主机开启的服务,及其状态

nova-manage update_resource 更新主机资源(vcpu/memery/disk)

fixed 固定ip管理

列出某个主机上所有的固定ip

用法:nova-manage fixed list [hostname]

新版本的openstack还提供了nova-manage fixed reserve 命令和unreserve命令,reserve ip 就是把该ip地址reserved位置1,这样在分配ip时,就不会分配该ip地址。目前安装的版本需要到数据库中手动更改fixed_ip表中的reserved位。

openstack的dashboard利用的是Python Web 框架Django来完成的,可以在此基础上再做深入开发,新版的dashboard增加更多功能。

当然可以开发自己的dashboard。

OpenStack安装文档

OpenStack Nova安装手册 作者: yz 日期: 2011-11-27 版本: v0.3 网址: https://www.sodocs.net/doc/3a7238161.html,

目录 实验环境 (3) 架构部署 (3) 服务器系统安装 (3) 控制节点安装 (4) NTP时钟服务安装 (4) MYSQL数据库服务安装 (4) RABBITMQ消息队列服务安装 (5) NOVA服务安装 (5) GLANCE镜像存储服务安装 (5) KEYSTONE、noVNC、Dashboard服务相关依赖包安装 (5) KEYSTONE认证服务安装 (5) https://www.sodocs.net/doc/3a7238161.html,PUTE扩展库安装 (8) OPENSTACKX扩展库安装 (8) PYTHON-NOVACLIENT扩展库安装 (8) QUANTUM模块安装 (9) OPENSTACK-DASHBOARD控制面板安装 (9) noVNC服务安装 (11) NOVA服务配置 (12) GLANCE镜像存储服务配置 (14) noVNC服务配置 (15) 计算节点安装 (16) NTP时钟同步配置 (16) NOVA服务安装 (16) NOVA服务配置 (17) DASHBOARD使用基础 (20) 建立Keypairs (20) 建立安全组 (20) 启动实例 (21) 通过VNC连接实例 (22) 为实例分配外网IP (23)

实验环境 硬件: DELL R410(1台) CPU:Intel(R) Xeon(R) CPU E5620 @ 2.40GHz * 2 内存:16GB 硬盘:300GB 网卡:Broadcom Corporation NetXtreme II BCM5716 Gigabit Ethernet * 2 DELL R710(1台) CPU:Intel(R) Xeon(R) CPU E5606 @ 2.13GHz * 2 内存:32GB 硬盘:250GB 网卡:Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet * 4 系统: Ubuntu Server 11.04 x64 Openstack版本: Diablo 4 release(2011.3) 架构部署 机器型号/主机名外网IP 内网IP 作用 R410/r410-control1 60.12.206.111 192.168.1.2 控制节点 R710/r710-compute1 60.12.206.99 192.168.1.3 计算节点1 实例网段为10.0.0.0/24,floating ip为60.12.206.114,实例网段桥接在内网网卡上,网络模式采用FlatDHCP 服务器系统安装 1.Ubuntu server 11.04 x64使用默认安装方式 2.服务器外网使用eth0 3.服务器内网使用eth1 4.除apache及noVNC外,所有服务均监听内网IP

OpenStack的架构详解

OpenStack的架构详解 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 1. OpenStack是什么 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageService(Glance)。 OpenStackCompute[1],为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(thecloudthroughusersandprojects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于AmazonEC2和RackspaceCloudServers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于WebAPI的功能。 OpenStackObjectStorage[2],是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。 OpenStackImageService[1],是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTfulAPI允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStackObjectStorage的对象存储系统,直接用Amazon'sSimpleStorageSolution(S3)存储,用带有ObjectStore的S3间接访问S3。 三个项目的基本关系如下图1-1所示:

openstack安装、配置过程中常见问题及解决办法

openstack安装、配置过程中常见问题及解决办法: by-lilin == 问题一:由于网络节点只有2个物理网卡,当给网络节点配置虚拟子网(10.10.10.52,10.20.20.52)时,无法ping通计算节点网络(10.10.10.53/54/55,10.20.20.53/54/55)== 解决方法: 在网络节点其中一个物理网卡eth0安装虚拟网卡,构建虚拟vlan,实现同一个网卡分配2个不同网段的IP地址(10.10.10.52和10.20.20.52)。 安装步骤如下所示: **安装vlan(vconfig)和加载8021g模块: # aptitude install vlav # modprobe 8021g # lsmod |grep -i 8021q **使用linux cvonfig命令配置vlan(在eth0网卡上虚拟两个vlav端口,端口号为5、7): # vconfig add eth0 5 Added VLAN with VID == 5 to IF -:eth0 # vconfig add eth0 7 Added VLAN with VID == 7 to IF -:eth0 **设置VLAN的REORDER_HDR参数,默认就行了: # vconfig set_flag eth0.5 1 1 Set flag on device -:eth0.5:- Should be visible in /proc/net/vlan/eth0.5 # vconfig set_flag eth0.7 1 1 Set flag on device -:eth0.7:- Should be visible in /proc/net/vlan/eth0.7 **可以使用cat /proc/net/vlan/eth0.5查看eth0.5参数: # cat /proc/net/vlan/eth0.5 eth0.5 VID: 5 REORDER_HDR: 1 dev->priv_flags: 1 total frames received 623 total bytes received 32353 Broadcast/Multicast Rcvd 606 total frames transmitted 71 total bytes transmitted 9420 Device: eth0 INGRESS priority mappings: 0:0 1:0 2:0 3:0 4:0 5:0 6:0 7:0 EGRESS priority mappings:

OpenStack部署运维方案

OpenStack 部署运维方案

目录 1.OpenStack 简介 (3) 2.Openstack私有云平台概况 (4) 3.OpenStack 部署方案 (6) 4.OpenStack 各组件配置 (8) 5.OpenStack 底层依赖软件版本、配置以及性能调优 (14) 6.运维经验 (17)

本文介绍了基于OpenStack 开发的云计算管理平台,以及在开发、运营、维护过程中遇到的问题和经验分享。作为大型互联网公司,IT 基础架构需要支撑包括生产、开发、测试、管理等多方面的需要,而且需求和请求的变化几乎每天都存在,需要内部的IT 基础架构能够足够灵活和健壮来满足各部门和团队的实际需要。 1.OpenStack 简介 OpenStack 是一个开源的IaaS 实现,它由一些相互关联的子项目组成,主要包括计算、存储、网络。 OpenStack 兼容一部分AWS 接口,同时为了提供更强大的功能,也提供OpenStack 风格的接口(RESTFul API)。和其他开源IaaS 相比,架构上松耦合、高可扩展、分布式、纯Python 实现,以及友好活跃的社区使其大受欢迎。 OpenStack 的主要子项目有: ? Compute(Nova)提供计算虚拟化服务,是OpenStack 的核心,负责管理和创建虚拟机。它被设计成方便扩展,支持多种虚拟化技术,并且可以部署在标准硬件上。 ? Object Storage(Swift)提供对象存储服务,是一个分布式,可扩展,多副本的存储系统。? Block Storage(Cinder),提供块存储服务,为OpenStack 的虚拟机提供持久的块级存储设备。支持多种存储后端,包括Ceph,EMC 等。 ? Networking(Neutron)提供网络虚拟化服务,是一个可拔插,可扩展,API 驱动的服务。? Dashboard 提供了一个图形控制台服务,让用户方便地访问,使用和维护OpenStack 中的资源。

openstack安装及应用碰到的问题

搭建时,创建rabbitmaq用户失败? 这个要看自己的hostname与命令行显示的主机名是否一致。 服务启动失败。 主要检查配置文件是否有错误,还有指定链接是否有问题。 虚拟机反应速度慢? 这个要看BIOS中虚拟化是否开启,在Nova.conf中libvirt下的virt-type=qemu的话不开启虚拟化也是可以建虚拟机的,但是反应速度真的很慢。将BIOS中的虚拟化开启,然后将virt-type=kvm就可以了。(egrep “vmx | svm”/proc/cpuinfo 这个只是显示CPU是否支持虚拟化,但是不是开启虚拟化) 负载均衡lbaas? 首先要安装lbaas的软件包,用yum search lbaas 查看lbaas有哪些软件包,安装以后更改配置文件, /etc/neutron/services/loadbalancer/haproxy/lbaas_agent.ini Linux Bridge interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver Open vSwitch interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver 选择自己使用的路由方式,填写在default下。 在/etc/neutron/neutron.conf 中default下的service_plugins后加入,neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2 在 /etc/neutron/neutron_lbaas.conf中service provider下加入service_provider = LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDr iver:default 。 重启neutron服务(最后用systemctl restart neutron*) 更改/etc/openstack-dashboard/local-settings中的OPENSTACK_NEUTRON_NETWORK选项中的enable_lb 为true。 重启HTTP服务。在dashboard里的网络里就可以看到负载均衡的选项了。

centos7安装配置openstack-kilo(详细部署实施版)

######################################安装service之前##################### 1.安装openstack-selinux和SQL数据库 RHEL and CentOS enable SELinux by default. Install the openstack-selinux package toautomatically manage security policies for OpenStack services: yum install openstack-selinux yum install mariadb mariadb-server MySQL-python 2.配置mariadb:Create and edit the /etc/my.cnf.d/mariadb_openstack.cnf file [mysqld] bind-address = 192.168.142.13  [mysqld] default-storage-engine = innodb innodb_file_per_table collation-server = utf8_general_ci init-connect = 'SET NAMES utf8' character-set-server = utf8 3.重启服务 systemctl enable mariadb.service systemctl start mariadb.service 4.加强mariadb数据库安全,这是root账户密码  mysql_secure_installation 5.安装信息队列

2019年OpenStackOcata单点部署教程

OpenStack Ocata版本单点部署 姓名: 日期:

目录 1 OpenStack安装环境搭建....................................... 错误!未定义书签。 CenOS 7初始配置 .................................................................. 错误!未定义书签。 基础环境配置 .......................................................................... 错误!未定义书签。 2 Keystone—认证服务 .............................................. 错误!未定义书签。 概述 .......................................................................................... 错误!未定义书签。 keystone安装与配置............................................................... 错误!未定义书签。 创建域/项目/用户/角色........................................................... 错误!未定义书签。 keystone功能验证................................................................... 错误!未定义书签。 创建客户端认证脚本 .............................................................. 错误!未定义书签。 3 Glance—镜像服务 .................................................. 错误!未定义书签。 概述 .......................................................................................... 错误!未定义书签。 glance安装与配置................................................................... 错误!未定义书签。 glance功能验证....................................................................... 错误!未定义书签。 4 Nova—计算服务..................................................... 错误!未定义书签。 概述 .......................................................................................... 错误!未定义书签。 controller节点安装与配置 ..................................................... 错误!未定义书签。 compute节点安装与配置 ....................................................... 错误!未定义书签。 nova功能验证 ......................................................................... 错误!未定义书签。 5 Neutron—网络服务 ................................................ 错误!未定义书签。 概述 .......................................................................................... 错误!未定义书签。 controller节点安装与配置 ..................................................... 错误!未定义书签。 neutron功能验证..................................................................... 错误!未定义书签。 6 Horizon—前台界面 ................................................ 错误!未定义书签。 概述 .......................................................................................... 错误!未定义书签。

openstack部署与管理-fuel介绍

OpenStack部署与管理之 Fuel介绍 成胜 汉柏科技有限公司

内容 Fuel简介 Fuel架构 Fuel功能 Fuel扩展 2

OpenStack部署 OpenStack发展很猛,很多朋友都很认同,为了解决OpenStack部署的问题,让安装,配置变得更加简单易用,很多公司都投入人力去做这个。说到部署,肯定和OS有关,对于OpenStack来说,无非就是Ubuntu还是CentOS,当然也会和OpenStack版本有关。 其实部署工具,最麻烦的地方,不是软件的配置和安装,而是网络。用户的网络情况太多,还有OpenStack本身的网络也很复杂。

部署工具: RDO: REDHAT出品,支持Redhat、CentOS等系统。RDO基于puppet部署各个组件,支持单节点或多节点部署,在Redhat系操作系统上使用非常方便。 devstack: 这个应该是最老的Fuel简介了,可以用来快速部署一个OpenStack测试环境,基于git最新代码部署服务,并将所有服务都起在screen中,不适合生产环境直接使用。 Fuel: Mirantis出品,支持在ubuntu和centos上通过web界面配置并部署OpenStack,应该是目前最为直观的Fuel简介。支持自动发现部署节点,并部署 OpenStackHA,对OpenStack作健康检查等。

Mirantis 一家很牛逼的OpenStack服务集成商,他是社区贡献排名前5名中唯一一个靠软件和服务吃饭的公司(其他分别是Red Hat, HP, IBM, Rackspace)。相对于其他几个社区发行版,Fuel的版本节奏很快,平均每两个月就能提供一个相对稳定的社区版。

openstack安装详解

Centos6.4 Openstack 部署 官方推荐环境配置: Step 0: Prerequisites Software:Red Hat Enterprise Linux (RHEL) 6.4, or the equivalent version of one of the RHEL-based Linux distributions such as CentOS, Scientific Linux, etc., or Fedora 19 or later. See also RDO repository info for details on required repositories. Please name the host with a fully qualified domain name rather than a short-form name to avoid DNS issues with Packstack. Hardware: Machine with at least 2GB RAM, processors with hardware virtualization extensions, and at least one network adapter. 看了人家的要求果断放弃6.3,弃暗投明6.4 环境部署:VM+Centos6.4(64bit)(免费的水用谁知道它的好^_^) 看了源代码版的安装虚拟机的一篇配置方法(照抄了)

应用(没用的都关了吧,省的更新一大推没用的,留一个firfox足以) 因为要用到mysql数据库(Mysql全起之,嘿嘿)

Openstack搭建

Openstack 云平台配置文档 一基本系统安装 1.Controller: a)硬件: i.CPU: 4核Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz ii.内存:4G iii.硬盘:500G b)系统: Ubuntu11.04 Server 2.Node: a)硬件: i.CPU: 4核Intel(R) Core(TM) i5 CPU 750 @ 2.67GHz ii.内存:4G iii.硬盘:500G b)系统: Ubuntu11.04 Server 二安装Openstack Nova 1.配置网络: a)Controller: i. b)Node: i. 2.配置网桥 a)Controller:

i. ii.重启网络b)Node: i. ii.重启网络

3.NTP同步 a)sudo ntpdate https://www.sodocs.net/doc/3a7238161.html, 4.安装配置数据库(Controller) a)OpenStack Nova 需要数据库的支持,这里选用MySQL i.Sudo apt-get install mysql-server b)修改MySQL绑定地址,以便其他的节点服务器也能访问这个数据库: i.Sudo vi /etc/mysql/my.conf ii.#bind-address=127.0.0.1 -> bing-address =0.0.0.0 iii.Sudo /etc/init.d/mysql restart c)创建一个名为nova的数据库,并设置root从任何IP访问的权限和密码: i.Sudo mysql –uroot –pfdse –e ‘CREATE DATABASE nova;’ ii.Sudo mysql –uroot –pfdse –e “GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’WITH GRANT OPTION;” iii.Sudo mysql –uroot –pfdse –e “SET PASSWORD FOR ‘root’@’%’= PASSWORD(‘fdse’);” 5.安装Glance镜像服务(Controller) a)Sudo apt-get install glance 6.安装OpenStack Nova a)Controller: i.Sudo apt-get install rabbitmq-server nova-common nova-doc python-nova nova-api nova-network nova-volume nova-objectstore nova-scheduler nova-compute ii.Sudo apt-get install –y euca2ools iii.Sudo apt-get install –y unzip b)Node i.Sudo apt-get install –y nova-compute nova-volume python-nova nova-common vlan ii.Sudo apt-get install –y unzip iii.Sudo apt-get install –y euca2ools

OpenStack newton部署

OpenStack newton部署一、环境 共需要2台主机 192.168.100.181 controller为控制节点和计算节点 192.168.100.182 compute1为计算节点 安装centos7.2 关闭防火墙(控制节点和计算节点都做) 关闭selinux /etc/sysconfig/selinux SELINUX=disabled setenforce 0 关闭iptables systemctl start firewalld.service systemctl stop firewalld.service systemctl disable firewalld.service 下面的表格给出了需要密码的服务列表以及它们的关系:

1.控制节点服务器 控制节点共配置2块网卡 eth1:192.168.100.181 eth2:不设置ip为trunk模式 添加/etc/hosts 设置NTP服务 # yum install chrony 编辑/etc/chrony.conf allow192.168.100.0/24 允许192.168.100.0网段访问 启动NTP服务 # systemctl enable chronyd.service # systemctl start chronyd.service # timedatectl set-timezone Asia/Shanghai 设置时区# timedatectl status 查看时区

安装openstack源及软件包 yum install centos-release-openstack-newton yum upgrade yum install python-openstackclient yum install openstack-selinux yum install mariadbmariadb-server python2-PyMySQL yum install rabbitmq-server yum install memcached python-memcached yum install openstack-keystone httpdmod_wsgi yum install openstack-glance yum install openstack-nova-apiopenstack-nova-conductor openstack-nova-console openstack-nova-novncproxyopenstack-nova-scheduler yum install openstack-nova-compute yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridgeebtablesipset yum install openstack-dashboard 开启nova用户的登录权限. usermod -s /bin/bash nova 生成秘钥(各个计算节点执行) 控制节点也需要互信 su– nova /usr/bin/ssh-keygen -t rsa /usr/bin/ssh-keygen -t dsa 所有计算节点均配置 cat<< EOF > ~/.ssh/config Host * StrictHostKeyChecking no UserKnownHostsFile=/dev/null EOF 分发ssh到各个计算节点 computer1 scp id_dsa.pub 192.168.100.181:/var/lib/nova/.ssh/id_dsa.pub3 scp id_rsa.pub 192.168.100.181:/var/lib/nova/.ssh/id_rsa.pub3 controller(192.168.100.181): cat id_dsa.pub id_dsa.pub2 id_rsa.pub id_rsa.pub2 id_rsa.pub3 id_dsa.pub3 >authorized_keys chmod 644 authorized_keys scpauthorized_keys computer1:/var/lib/nova/.ssh

Openstack安装部署手册

Openstack安装部署手册 Havana版本

目录 1.环境 (4) 2.组件整体结构 (4) 3.环境准备 (5) 3.1. 网卡配置 (5) 3.2. 修改主机名 (5) 3.3. 安装mysql 数据库 (5) 4.安装openstack包 (6) 4.1. 安装openstack 单元包 (6) 4.2. 安装Messaging server (6) 5.安装keystone认证服务 (6) 5.1. 创建openstack keystone 与数据库的连接 (6) 5.2. 定义一个授权令牌 (6) 5.3. 配置创建密钥与证书 (7) 5.4. 启动keystone (7) 5.5. 定义用户租客和roles (7) 5.6. 创建服务与定义API endpoint (8) 6.配置glance (9) 6.1. 安装glance 组建 (9) 6.2. 创建glance数据连接 (9) 6.3. keystone下定义名为glance的用户 (9) 6.4. 添加glance roles (9) 6.5. 配置imgae的服务的身份验证 (9) 6.6. 添加凭证到/etc/glance/glance-api-paste.ini 和/etc/ (10) 6.7. glance/glance-registry-paste.inifiles.两个文件 (10) 6.8. keysotne创建glance 服务 (10) 6.9. 启动glance服务 (11) 6.10. 校验glance服务 (11) 7.安装nova 组建 (12) 7.1. 配置nova数据连接 (12) 7.2. keysotne创建nova user (12) 7.3. 添加roles (12) 7.4. 配置计算服务的身份验证 (13) 7.5. keysotne创建nova service (13) 7.6. 创建endpoint (13)

Openstack架构详解

OpenStack的架构 1.OpenStack是什么 OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。 OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStack Compute (Nova),OpenStack Object Storage(Swift),以及OpenStack Image Service(Glance)。 OpenStack Compute[1],为云组织的控制器,它提供一个工具来部署云,包括运行实例、管理网络以及控制用户和其他项目对云的访问(the cloud through users and projects)。它底层的开源项目名称是Nova,其提供的软件能控制IaaS云计算平台,类似于Amazon EC2和Rackspace Cloud Servers。实际上它定义的是,与运行在主机操作系统上潜在的虚拟化机制交互的驱动,暴露基于Web API的功能。 OpenStack Object Storage[2],是一个可扩展的对象存储系统。对象存储支持多种应用,比如复制和存档数据,图像或视频服务,存储次级静态数据,开发数据存储整合的新应用,存储容量难以估计的数据,为Web应用创建基于云的弹性存储。 OpenStack Image Service[1],是一个虚拟机镜像的存储、查询和检索系统,服务包括的RESTful API允许用户通过HTTP请求查询VM镜像元数据,以及检索实际的镜像。VM镜像有四种配置方式:简单的文件系统,类似OpenStack ObjectStorage的对象存储系统,直接用Amazon'sSimple Storage Solution (S3)存储,用带有Object Store的S3间接访问S3。 三个项目的基本关系如下图1-1所示: 2.云服务提供商的概念架构 OpenStack能帮我们建立自己的IaaS,提供类似Amazon Web Service的服务给客户。为实现这一点,我们需要提供几个高级特性: a)允许应用拥有者注册云服务,查看运用和计费情况; b)允许Developers/DevOps folks创建和存储他们应用的自定义镜像; c)允许他们启动、监控和终止实例; d)允许Cloud Operator配置和操作基础架构 这四点都直击提供IaaS的核心,现在假设你同意了这四个特性,现在就可以将它们放

OpenStack安装部署管理中常见问题解决方法OpenStackLiteFAQ

OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ) 一、网络问题-network 更多网络原理机制可以参考《OpenStack 云平台的网络模式及其工作机制》。 1.1、控制节点与网络控制器区别OpenStack 平台中有两种类型的物理节点,控制节点和计算节点。控制节点包括网络控制、调度管理、api 服务、存储卷管理、数据库管理、身份管理和镜像管理等,计算节点主要提供nova-compute 服务。控制节点的服务可以分开在多个节点,我们把提供nova-network 服务的节点称为网络控制器。1.2、OpenStack 中nova-network 的作用OpenStack 的网络由nova-network(网络控制器)管理,它会创建虚拟网络,使主机之间以及与外部网络互相访问。OpenStack 的API 服务器通过消息队列分发nova-network 提供的命令,这些命令之后会被nova-network 处理,主要的操作有:分配ip 地址、配置虚拟网络和通信。1.3、OpenStack 中Flat 与FlatDHCP 区别Flat(扁平):所有实例桥接到同一个虚拟网络,需要手动设置网桥。FlatDHCP:与Flat(扁平)管理模式类似,这种网络所有实例桥接到同一个虚拟网络,扁平拓扑。不同的是,正如名字的区别,实例的ip 提供dhcp 获取(nova-network 节点提供dhcp 服务),而且可以自动帮助建立网桥。1.4、OpenStack 中Flat 与vLAN 区别在两种Flat 模式里,网络控制器扮演默认网关的角色,实例都被分配了公共的IP 地址(扁平式结构,都在一个桥接网络里)。vLAN 模式功能丰富,很适合提供给企业内部部署使用。但是,需要支持vLAN 的switches 来连接,而且相对比较复杂,在小范围实验中常采用FlatDHCP 模式。1.5、OpenStack 中网络流向是怎样的,都经过网络控制器吗多节点时,网络控制器与计算节点分别在不同主机,普通部署方式下(不是multi_host),只有nova-network 控制网络,而它仅仅在控制节点运行。因此,所有计算节点的实例都需要通过控制节点来与外网通信。可以通过multi_host 等高可用性部署方式改变这个单点故障问题。 1.6、OpenStack 单网卡怎么配置?配置好服务器的网络(混杂模式);

openstack搭建参考

Openstack配置 ———(只作参考) 数据库打不开时,做这些处理。 (计算节点)主机名:Controller :eth0 (DHCP)eth1:192.168.153.11 eth2:192.168.6.222 (控制节点)主机名:nova:eth0 (DHCP)eth1:192.168.153.13 eth2:192.168.6.223 配置IP。 [root@ Controller ~]# cd /etc/sysconfig/network-scripts/ [root@ Controller ~]#Vim ifcfg-eth1 DEVICE=eth1 HWADDR=00:0C:29:AE:E1:1B TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.153.13 NATMASK=255.255.255.0 GATEWAY=192.168.153.1 修改主机名:[root@ Controller ~]# vim /etc/sysconfig/network(主机名重启才生效)NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME= Controller(主机名)

添加显示行号使用vim时。# vim /etc/vimrc (在最后一行添加这些内容):set number 192.168.153.11 192.168.6.222(控制节点) [root@ Controller ~]# vim /etc/sysconfig/network [root@ Controller ~]#hostname [root@ Controller ~]# vim /etc/vimrc [root@ Controller ~]# vim /etc/hosts 添加内容:格式为:IP 主机号 192.168.153.11 Controller 192.168.6.222 Controller

Openstack部署手册

目录 一、服务器配置 (2) 二、组件安装 (5) 三、数据库安装配置 (6) 四、Keystone配置 (7) 五、glance配置 (11) 六、nova配置 (13) 七、dashboard配置 (19) 八、镜像制作 (19) 附件一:配置文件 (20) 附件二:安装错误处理 (33)

一、服务器配置 1、下载ubuntu 12.04. 服务器版本。 地址:https://www.sodocs.net/doc/3a7238161.html,//precise/ubuntu-12.04-beta2-server-amd64.iso

2、安装OS 操作系统最小化安装,只需要安装ssh server,其他组件不需要。 操作系统安装好需要更新源里的包、系统。确保装的是最新版本的包。命令如下: apt-get update apt-get upgrade 注:更新时网络代理配置如下: root@ubuntu:/opt# cat /etc/apt/apt.conf Acquire::http::Proxy "http://133.64.81.236:8080/"; 3、root权限 zhang@ubuntu:~$ sudo passwd [sudo] password for zhang: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 4、网络配置 root@ubuntu:/opt# cat /etc/network/interfaces # This file describes the network interfaces available on your system

OpenStack Compute节点安装

OpenStack Compute调研及安装

目录 1. OpenStack调研 (3) 1.1 虚拟化简介 (3) 1.1.1 纯软件虚拟化 (3) 1.1.2 完全虚拟化 (3) 1.2 OpenStack Compute简介 (4) 1.2.1 Nova概念 (4) 1.2.2 Nova服务架构 (5) 1.2.3 Nova运行 (5) 2. OpenStack Compute安装 (6) 2.1 实验环境 (6) 2.2 Nova安装过程 (6) 2.3安装OpenStack基于Web的管理控制台 (9) 2.5 Nova存储管理 (10) 2.6问题及可能的解决方案 (11)

1. OpenStack调研 1.1 虚拟化简介 虚拟化是一个广义的术语,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。目前比较流行的虚拟化技术主要分为纯软件虚拟化和完全虚拟化两方面。 1.1.1 纯软件虚拟化 在纯软件虚拟化解决方案中VMM(Virtual Machine Monitor)在软件套件中的位置是传统意义上操作系统所处的位置,而操作系统的位置是传统意义上应用程序所处的位置;客户操作系统很多情况下是通过VMM来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。 纯软件虚拟化的工作原理是这样的,所谓虚拟机是对真实计算环境的抽象和模拟,而VMM需要则为每个虚拟机分配一套数据结构来管理它们状态,VMM 调度虚拟机时将其部分状态恢复到主机系统中。主机处理器直接运行Guest OS 的机器指令,由于Guest OS运行在低特权级别,当访问主机系统的特权状态时,权限不足导致主机处理器产生异常,将运行权自动交还给VMM。此外,外部中断的到来也会导致VMM的运行。VMM可能需要先将该虚拟机的当前状态写回到状态数据结构中,分析虚拟机被挂起的原因,然后代表Guest OS执行相应的特权操作。最后VMM将运行权还给Guest OS,Guest OS从上次被中断的地方继续执行,或处理VMM “塞入”的虚拟中断和异常。这种经典的虚拟机运行方式被称为Trap-And-Emulate,虚拟机对于Guest OS完全透明,Guest OS不需要任何修改,但是VMM 的设计会比较复杂,系统整体性能受到明显的损害。 1.1.2 完全虚拟化 现阶段较为流行的完全虚拟化方法使用名为hypervisor的一种软件,即在虚拟服务器和虚拟化技术底层硬件之间建立一个抽象层。完全虚拟化是处理器密集型技术,因为它要求hypervisor管理各个虚拟服务器,并让它们彼此独立。hypervisor需要具有捕获CPU指令的能力,并为指令访问硬件控制器和外设充当中介。

相关主题