《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova

感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正!

假设转载。请保留作者信息。

博客地址:http://blog.csdn.net/qq_21398167

原博文地址:http://blog.csdn.net/qq_21398167/article/details/46385651

初始化Nova

(1).安装nova:

[[email protected] ~]# yum -y installopenstack-nova

(2).创建nova数据库:

[[email protected] ~]# openstack-db--init --service nova

创建User,定义Services和 API Endpoints

(1).编写脚本:

[[email protected] ~]# vi/root/config/nova-user.sh

#!/bin/sh

my_ip=10.1.1.2

keystone user-create --name=nova--pass=service [email protected]

keystone user-role-add --user=nova--tenant=service --role=admin

keystone service-create --name=nova--type=compute --description="Nova Compute Service"

service=$(keystone service-list | awk‘/nova/ {print $2}‘)

keystone endpoint-create--service-id=$service --publicurl=http://$my_ip:8774/v2/%\(tenant_id\)s--internalurl=http://$my_ip:8774/v2/%\(tenant_id\)s--adminurl=http://$my_ip:8774/v2/%\(tenant_id\)s

 (2).执行脚本,创建用户、服务及api endpoint:

[[email protected] ~]# sh/root/config/nova-user.sh

配置nova服务:

(1).改动/etc/nova.conf配置文件:

[[email protected] ~]# vi /etc/nova/nova.conf

[DEFAULT]

my_ip = 10.1.1.2

auth_strategy = keystone

state_path = /openstack/lib/nova

verbose=True

allow_resize_to_same_host = true

rpc_backend =nova.openstack.common.rpc.impl_qpid

qpid_hostname = 10.1.1.2

libvirt_type = kvm

glance_api_servers = 10.1.1.2:9292

novncproxy_base_url =http://10.1.1.2:6080/vnc_auto.html

vncserver_listen = $my_ip

vncserver_proxyclient_address = $my_ip

vnc_enabled = true

vnc_keymap = en-us

network_manager =nova.network.manager.FlatDHCPManager

firewall_driver =nova.virt.firewall.NoopFirewallDriver

multi_host = True

flat_interface = eth0

flat_network_bridge = br1

#public_interface = eth0

instance_usage_audit = True

instance_usage_audit_period = hour

notify_on_state_change = vm_and_task_state

notification_driver =nova.openstack.common.notifier.rpc_notifier

compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler

[hyperv]

[zookeeper]

[osapi_v3]

[conductor]

[keymgr]

[cells]

[database]

[image_file_url]

[baremetal]

[rpc_notifier2]

[matchmaker_redis]

[ssl]

[trusted_computing]

[upgrade_levels]

[matchmaker_ring]

[vmware]

[spice]

[keystone_authtoken]

auth_host = 127.0.0.1

auth_port = 35357

auth_protocol = http

admin_user = nova

admin_tenant_name = service

admin_password = service

因上述配置文件里改动了instances实例存放的位置。还须要作一下操作:

改动instances路径,设置文件夹权限:

[[email protected] ~]# cp -r/var/lib/nova/ /openstack/lib/

[[email protected] ~]# chown -R nova:nova/openstack/lib/nova/

(2).配置libvirtd服务。删除virbr0

启动libvirt服务:

[[email protected] ~]# service libvirtdstart

查看net-list,发现default:

[[email protected] ~]# virsh net-list

Name                State      Autostart    Persistent

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

default             active     yes           yes

删除default,即virbr0:

[[email protected] ~]# virsh net-destroydefault

Network default destroyed

[[email protected] ~]# virsh net-undefinedefault

Network default has been undefined

重新启动libvirtd服务,设置开机自启动:

[[email protected] ~]# service libvirtdrestart

[[email protected] ~]# chkconfig libvirtdon

(3).启动nova相关服务。设置开机自启动

[[email protected] ~]# service messagebusstart

[[email protected] ~]# chkconfigmessagebus on

启动nova服务,採用network网络服务:

[[email protected] ~]# serviceopenstack-nova-api start

[[email protected] ~]# serviceopenstack-nova-cert start

[[email protected] ~]# serviceopenstack-nova-consoleauth start

[[email protected] ~]# serviceopenstack-nova-scheduler start

[[email protected] ~]# serviceopenstack-nova-conductor start

[[email protected] ~]# serviceopenstack-nova-novncproxy start

[[email protected] ~]# serviceopenstack-nova-compute start

[[email protected] ~]# service openstack-nova-networkstart

[[email protected] ~]# chkconfigopenstack-nova-api on

[[email protected]~]# chkconfig openstack-nova-cert on

[[email protected]~]# chkconfig openstack-nova-consoleauth on

[[email protected]~]# chkconfig openstack-nova-scheduler on

[[email protected]~]# chkconfig openstack-nova-conductor on

[[email protected]~]# chkconfig openstack-nova-novncproxy on

[[email protected]~]# chkconfig openstack-nova-compute on

[[email protected]~]# chkconfig openstack-nova-network on

nova測试:

(1).创建网络:

[[email protected]~]# nova network-create vmnet --fixed-range-v4=10.1.1.0/24--bridge-interface=br1 --multi-host=T

[[email protected] ~]#novanetwork-list

[[email protected] ~]# nova-manage network list

(2).设置安全组:

[[email protected]~]# nova secgroup-add-rule default tcp 22 22 0.0.0.0/0

[[email protected]~]# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

openstack里的浮动ip知识点

缺省情况下实例会被赋予固定ip,这时并不能保证实例会立即能够从外面訪问到。一般来说须要配置防火墙来同意公共ip,然后建立一条NAT规则从公共ip到私有ip的映射。

Ag引入了一个叫浮动ip的概念,浮动ip是一些能够从外部訪问的ip列表,通常从isp哪里买来的。

浮动ip缺省不会自己主动赋给实例,用户须要手动从地址池里抓取然后赋给实例。

一旦用户抓去后,他就变成这个ip的全部者。能够任意赋给自己拥有的其它实例。

假设实例死掉了的话,用户也不会失去这个浮动ip。能够随时赋给其它实例。临时不支持为了负载均衡多实例共享一个浮动ip。

而对于固定ip来说。实例启动后获得的ip也是自己主动的,不能指定某一个。所以当一个VM歇菜了。再启动或许固定ip就换了一个。

系统管理员能够配置多个浮动ip池,这个ip池不能指定租户。每一个用户都能够去抓取。

多浮动ip池是为了考虑不同的isp服务提供商,免得某一个isp出故障带来麻烦。

假设执行的是企业云,浮动ip池就是那些ag外的数据中心都能訪问到的ip。

浮动ip机制给云用户提供了非常多灵活性。也给系统管理员降低了安全风险,尽量仅仅让Ag软件去改防火墙会安全些。

浮动 IP

要了解浮动 IP是怎样实现的,首先将一个浮动IP关联到此实例的固定IP。

之前所创建的这个实例的固定IP是10.10.10.2。

在默认池内创建一个浮动IP

要在默认池内创建一个浮动 IP,请执行一下代码:

# nova-manage floating create --ip_range=10.1.1.232/30

要从这个池分派一个浮动 IP,请执行一下代码:

# Nova floating-ip-create
 
创建VM实例
      使用nova image-list查看当前可用的镜像
      使用nova flavor-list查看当前可用的系统类型
使用nova boot创建VM实例。nova boot --flavor [flavor ID | flavor name]  --image [image ID | image name]  [instace_name],比方
nova boot --flavor m1.small --image 5290eb9f-f248-408f-a319-622c4a070ca8 test
创建成功后使用nova list查看实例状态
[[email protected] ~(keystone_admin)]# nova list
+--------------------------------------+-----------+--------+-------------------------------------+
| ID                                   | Name      | Status | Networks                            |
+--------------------------------------+-----------+--------+-------------------------------------+
| dbaded92-b445-4106-a124-607150ff17c5 | Server 47 | ACTIVE | private=192.168.20.2, 192.168.148.1 |
| d9d4bea3-6387-4695-b031-965478623fb6 | Server 48 | ACTIVE | private=192.168.20.4, 192.168.148.2 |
+--------------------------------------+-----------+--------+-------------------------------------+
 

这样。就拥有一个 IP 10.1.1.233。如今将它分配给 ID为8f773639-c04f-4885-9349-ac7d6a799843的实例:

# nova add-floating-ip 8f773639-c04f-4885-9349-ac7d6a799843 10.1.1.233

将浮动IP绑定到公共接口

FLAGS.public_interface 被用来绑定浮动 IP。在执行了 novaadd-floating-ip 命令后。能够看到 public_interface 下就具有了例如以下的浮动
IP:

# ip addr list dev wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 08:11:96:75:91:54 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.90/16 brd 192.168.255.255 scope global wlan0
inet 192.168.1.233/32 scope global wlan0
    inet6 fe80::a11:96ff:fe75:9154/64 scope link 
valid_lft forever preferred_lft forever

NAT 表内针对浮动IP的规则

在此实例获得了 nova-network主机上的一个浮动 IP后。这些规则适用:

-A nova-network-OUTPUT -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
-A nova-network-PREROUTING -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2 
-A nova-network-float-snat -s 10.10.10.2/32 -j SNAT --to-source 192.168.1.233

您会看到该 dNAT规则被用来将此浮动 IP转换成此实例的固定
IP。

假设一个包到达nova-network主机并以浮动IP为目标 IP。则此目标
IP就会被转换。

然后。就会有还有一项sNAT规则会将来自此实例的固定IP的流量转换到此浮动IP。

因为全部从
VM到固定网络之外的流量均被指向网关(是由nova-network的 dnsmasq 进行设置),有了
sNAT规则,出 VM的流量就能够成功标志成来自此浮动IP。

此外,已包装的OUTPUT链内另一个dNAT规则,同意nova-network上的本地过程訪问具有浮动IP的
VM。

使用浮动IP的 Ping VM

要将 VM与浮动 IP Ping在一起,也须要一些规则。

请记住,在此nova-compute主机上,针对每一个实例必须有一个特定链。其内的规则仅仅同意来自固定子集内的IP的流量。假设想要ping一个浮动IP。流量就会被这些规则丢弃,由于ping包的源IP并不在此固定子集内。

显然,须要一个规则以同意icmp流量。

为了加入一个同意 ping的规则,能够使用Ag的安全组规则的概念:

# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

之后,就能够看到在此实例的特定链下多创建了一个规则:

-Anova-compute-inst-1 -p icmp -j ACCEPT

相同的方式。能够对具有浮动 IP的 VM启用 SSH。

 (3).创建虚拟机实例:

查看可用镜像:

[[email protected]~]# nova image-list

创建虚拟机实例:

[[email protected]~]# nova boot --flavor 1 --image centos6.4 vm01

查看虚拟机实例执行状态:

[[email protected] ~]# novalist

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

| ID                                 | Name                                     | Status | Task State | Power State | Networks       |

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

| f754afe1-784f-41d0-9139-a05d25eaca20| vm01                                      | ACTIVE | -         | Running     | vmnet=10.1.1.2  |

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

測试虚拟机实例连通性:

[[email protected] ~]# ping 10.1.1.2

PING 10.1.1.2 (10.1.1.2)56(84) bytes of data.

64 bytes from 10.1.1.2:icmp_seq=1 ttl=64 time=0.057 ms

64 bytes from 10.1.1.2:icmp_seq=2 ttl=64 time=0.037 ms

--- 10.1.1.2 pingstatistics ---

2 packets transmitted, 2received, 0% packet loss, time 1639ms

rtt min/avg/max/mdev =0.037/0.047/0.057/0.010 ms

时间: 2024-10-25 16:07:42

《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova的相关文章

《3》CentOS7.0+OpenStack+kvm云平台部署—配置Glance

初始化Glance (1).安装Glance服务: [[email protected] ~]# yum -y installopenstack-glance (2).创建Glance数据库: [[email protected] ~]# openstack-db--init --service glance (3).修改配置文件中的数据库链接: [[email protected] ~]# openstack-config--set /etc/glance/glance-api.conf DE

《2》CentOS7.0+OpenStack+kvm云平台部署—配置Keystone

(1).安装KeyStone服务: [[email protected]~]# yum -y install openstack-keystone (2).创建keystone数据库,修改配置文件中的数据库链接: [[email protected] ~]#  openstack-db--init --service keystone (3).修改配置文件中的数据库链接: [[email protected]~]#  openstack-config --set /etc/keystone/ke

《5》CentOS7.0+OpenStack+kvm云平台部署—配置Horizon

(1).安装Horizon [[email protected]~]# yum -y install openstack-dashboard (2).修改local_settings文件,将DEBUG= False修改为DEBUG =True [[email protected] ~]# vi/etc/openstack-dashboard/local_settings DEBUG = True -- (3).修改httpd.conf文件,将#ServerNamewww.example.com:

《1》CentOS7.0+OpenStack+kvm云平台部署—基础配置

一.主机分配: 主机名        IP(Static)       系统配置                                      角色 openstack      192.168.1.2    CentOS-7.0-x86_64-desktop     4CPU,16G RAM,300G DISK,2网卡       管理节点/计算节点 node          192.168.1.3    CentOS-7.0-x86_64-desktop    4CPU,16G

完整部署CentOS7.2+OpenStack+kvm 云平台记录(2)---错误排查

在上传镜像或查看镜像的时候,报错: [[email protected] ~]# glance image-list500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500) 测试登陆数据库: [[email protected] ~]# mysql -u glance -h 192.168.1.17 -pEnter

KVM虚拟化平台部署及管理

前言 KVM即Kernel Virtual Machine,最初是由以色列公司Qumranet开发.2007年2月被导入Linux 2.6.20核心中,成为内核源代码的一部分.2008年9月4日,Redhat收购了Qumranet,至此Redhat拥有了自己的虚拟化解决方案,之后便舍弃Xen开始全面扶持KVM,从RHEL6开始KVM便被默认内置于内核中.本文介绍KVM虚拟化平台部署及管理. KVM简介 KVM特点 KVM必须在具备Intel VT或AMD-V功能的x86平台上运行.KVM包含一个

Centos 6.5 KVM 虚拟化平台部署

KVM简介 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中.它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少.KVM目前已成为学术界的主流VMM之一. KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术).是基于硬件的完全虚拟化.而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化.但Xen本身

Centos7.0安装KVM实践

1.背景 近日将主要精力放在Linux下测试MySQL Replication,宿主机安装了Centos7.0系统,需要安装三台虚拟机.因此,尝试了一下在Centos7.0上安装虚机机. 2.安装步骤 (1)yum源安装软件(前提:CPU开启虚拟化) [[email protected] ~]# yum install qemu-kvm libvirt virt-install bridge-utils virt-manager vir-viewer (2)查看模块支持 [[email prot

centos7.0安装kvm

PRE-INSTALL ============================================================= kvm相关安装包及其作用 qemu-kvm 主要的KVM程序包 python-virtinst 创建虚拟机所需要的命令行工具和程序库 virt-manager GUI虚拟机管理工具 virt-top 虚拟机统计命令 virt-viewer GUI连接程序,连接到已配置好的虚拟机 libvirt C语言工具包,提供libvirt服务 libvirt-c