《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova
感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正!
假设转载。请保留作者信息。
博客地址:http://blog.csdn.net/qq_21398167
原博文地址:http://blog.csdn.net/qq_21398167/article/details/46385651
初始化Nova
(1).安装nova:
[root@openstack ~]# yum -y installopenstack-nova
(2).创建nova数据库:
[root@openstack ~]# openstack-db--init --service nova
创建User,定义Services和 API Endpoints
(1).编写脚本:
[root@openstack ~]# vi/root/config/nova-user.sh
#!/bin/sh
my_ip=10.1.1.2
keystone user-create --name=nova--pass=service --email=nova@example.com
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:
[root@openstack ~]# sh/root/config/nova-user.sh
配置nova服务:
(1).改动/etc/nova.conf配置文件:
[root@openstack ~]# 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路径,设置文件夹权限:
[root@openstack ~]# cp -r/var/lib/nova/ /openstack/lib/
[root@openstack ~]# chown -R nova:nova/openstack/lib/nova/
(2).配置libvirtd服务。删除virbr0
启动libvirt服务:
[root@openstack ~]# service libvirtdstart
查看net-list,发现default:
[root@openstack ~]# virsh net-list
Name State Autostart Persistent
--------------------------------------------------
default active yes yes
删除default,即virbr0:
[root@openstack ~]# virsh net-destroydefault
Network default destroyed
[root@openstack ~]# virsh net-undefinedefault
Network default has been undefined
重新启动libvirtd服务,设置开机自启动:
[root@openstack ~]# service libvirtdrestart
[root@openstack ~]# chkconfig libvirtdon
(3).启动nova相关服务。设置开机自启动
[root@openstack ~]# service messagebusstart
[root@openstack ~]# chkconfigmessagebus on
启动nova服务,採用network网络服务:
[root@openstack ~]# serviceopenstack-nova-api start
[root@openstack ~]# serviceopenstack-nova-cert start
[root@openstack ~]# serviceopenstack-nova-consoleauth start
[root@openstack ~]# serviceopenstack-nova-scheduler start
[root@openstack ~]# serviceopenstack-nova-conductor start
[root@openstack ~]# serviceopenstack-nova-novncproxy start
[root@openstack ~]# serviceopenstack-nova-compute start
[root@openstack ~]# service openstack-nova-networkstart
[root@openstack ~]# chkconfigopenstack-nova-api on
[root@openstack~]# chkconfig openstack-nova-cert on
[root@openstack~]# chkconfig openstack-nova-consoleauth on
[root@openstack~]# chkconfig openstack-nova-scheduler on
[root@openstack~]# chkconfig openstack-nova-conductor on
[root@openstack~]# chkconfig openstack-nova-novncproxy on
[root@openstack~]# chkconfig openstack-nova-compute on
[root@openstack~]# chkconfig openstack-nova-network on
nova測试:
(1).创建网络:
[root@openstack~]# nova network-create vmnet --fixed-range-v4=10.1.1.0/24--bridge-interface=br1 --multi-host=T
[root@openstack ~]#novanetwork-list
[root@openstack ~]# nova-manage network list
(2).设置安全组:
[root@openstack~]# nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
[root@openstack~]# 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查看实例状态
[root@bdpe11 ~(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).创建虚拟机实例:
查看可用镜像:
[root@openstack~]# nova image-list
创建虚拟机实例:
[root@openstack~]# nova boot --flavor 1 --image centos6.4 vm01
查看虚拟机实例执行状态:
[root@openstack ~]# novalist
+--------------------------------------+--------------------------------------------+--------+------------+-------------+-----------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------------------------------------------+--------+------------+-------------+-----------------+
| f754afe1-784f-41d0-9139-a05d25eaca20| vm01 | ACTIVE | - | Running | vmnet=10.1.1.2 |
+--------------------------------------+--------------------------------------------+--------+------------+-------------+-----------------+
測试虚拟机实例连通性:
[root@openstack ~]# 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
《4》CentOS7.0+OpenStack+kvm云平台部署—配置Nova的更多相关文章
- 《3》CentOS7.0+OpenStack+kvm云平台部署—配置Glance
感谢朋友支持本博客,欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免,欢迎指正. 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- 《5》CentOS7.0+OpenStack+kvm云平台的部署—组态Horizon
感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip
之前在测试环境(centos7.2)上部署了openstack云平台(完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建),openstack在neutron组网 ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置
继上一篇博客介绍了完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建,本篇继续讲述后续部分的内容 1 虚拟机相关1.1 虚拟机位置介绍 openstack上创建的 ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建
公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像
在部署openstack云平台环境的时候,需要上传镜像到glance. 首先下载iso镜像,这里下载了centos6.5镜像,放到/usr/local/src目录下然后用OZ工具制作openstack ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(5)--问题解决
一.[root@openstack-server ~]# nova listERROR (CommandError): You must provide a username or user id v ...
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小
前面提到过openstack环境部署及创建虚拟机的完整过程,然后有时候会发现创建的虚拟机规格太小,满足不了业务需求:亦或是虚拟机规格太大,容易造成资源浪费.于是就有了在线拉伸虚拟机规格的需求.所以,今 ...
- CloudFoundry 云平台部署
CloudFoundry云平台部署 CloudFoundry(TheOpenSourceCloudOperatingSystem)距离发布已经一年多了作为第一个开源的PaaS平台日臻成熟.在这一年里C ...
随机推荐
- JNDI support differences between Tibco EMS and ActiveMQ
Introduction Recently our team was working on Veracity Quick Start sprint, when I was trying to migr ...
- Android 禁止软键盘自动弹出
Android系统对EditText这个控件有监听功能,如果某个Activity中含有该控件,就会自动弹出软键盘让你输入,这个看似人性化的方案有 时候并不被用户喜欢的,所以在有些情况下要禁用该功能.这 ...
- CC++初学者编程教程(9) Windows8.1安装VS2013并捆绑QT与编程助手
我们在Windows8.1安装VS2013并捆绑QT与编程助手需要下列文件. 2. 在虚拟机中开启Windows8.1 3.然后选择VS2013的安装镜像. 4.将镜像复制到虚拟机. 5.我们装载这个 ...
- 图片文件,图片文件流和BASE64加密字符串之间的转换,以及图片的BASE64加密字符串再jsp上如何显示
http://blog.csdn.net/sidongxue2/article/details/43036373
- poj1477---搭积木
#include<stdio.h> #include<stdlib.h> int main() { int n,i; int bricks[55],set=0; while(s ...
- 查询无序列表中第K小元素
当需要在无需列表中寻找第k小的元素时,一个显然的方法是将所有数据进行排序,然后检索k个元素.这种方法的运行时间为O(n log(n)). 无序列表调用分区函数将自身分解成两个子表,其长度为i和n-i. ...
- Struts 2.3.4.1完整示例
[系统环境]Windows 7 Ultimate 64 Bit [开发环境]JDK1.6.21,Tomcat6.0.35,MyEclipse10 [其他环境]Struts2.3.4.1 [项目描述]S ...
- Android创建启动画面[转]
每个Android应用启动之后都会出现一个Splash启动界面,显示产品的LOGO.公司的LOGO或者开发者信息.如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥 ...
- java中文乱码解决之道(五)—–java是如何编码解码的
原文出处:http://cmsblogs.com/?p=1491 在上篇博客中LZ阐述了java各个渠道转码的过程,阐述了java在运行过程中那些步骤在进行转码,在这些转码过程中如果一处出现问题就很有 ...
- 图片延迟加载技术-Lazyload的应用
我们在浏览图片量非常大的页面时,像淘宝商城商品展示.必应图片搜索这类网站,图片的加载非常流畅,其中就应用了图片延迟加载技术.本文讲解Lazyload图片加载插件,当我们打开页面时,首先在屏幕可视区域加 ...