四、创建云主机
-
一台云主机成功创建或启动需要依赖OpenStack中的各种虚拟资源,如CPU、内存、硬盘等。如果需要云主机丽娜姐外部网络,还需要网络、路由器等资源。如果需要外部网络访问云主机,那么还需要配置浮动IP。因此,在创建云主机之前,首先要保证所需的资源已经配置完成
-
本章实验中,使用默认的实例类型m1.tiny(1个CPU、512内存、1GB根分区磁盘),新创建网络private,并通过路由器my_route将虚拟机所在的private网络(同时执行NAT转换)到外部网络public,创建云主机并使其可以访问外部网络
-
在实验过程中,创建了云主机之后,如果某页面无法打开,可观察虚拟机内存使用情况,必要时增加些内存,再继续进行实验
4.1、创建网络
-
在控制台中依次点击“项目>网络>网络”按钮。在右边区域默认存在公有网络public
-
单击右上角“+创建网络”按钮,在弹出的网络界面中,输入网络名称为“private”,保持默认的复选框状态,单击“下一步”
-
在子网信息页面,输入子网名称、网络地址等参数,网关IP字段如果保持为空,表示网关是使用该网络的第一个地址,即x.x.x.x为网关地址。如果不希望该网络中的虚拟机通过该网络访问其他网络,可勾选“禁用网关”,单击“下一步”按钮
-
在子网详情页面中,可以配置DHCP,向该网络中的云主机自动分配IP地址。如需要DHCP,勾选 “激活DHCP”,分配地址池栏中,输入需要分配IP地址的范围, 首地址和末尾地址以逗号分隔,DNS服务器中输入需要分配的DNS地址,这通常是网络中真实的DNS服务器地址。单击“创建”按钮
-
完成网络创建操作后,在网络列表页面中会显示已经创建成功的网络
4.2、创建路由
-
创建路由的目的是为了云主机所在的私有网络和外网络所在的公有网络之间实现进行信息的转发,让云主机可以访问外部网络
-
在控制台中依次单击“项目>网络>路由”按钮
-
单击右上角的“+新建路由”按钮,在弹出的新建路由页面,填写路由名称my_route,外部网络选择默认的公有网络public,复选框保持默认,完成后单击“新建路由”按钮
-
在路由列表页面可以看到之前创建的路由器(虚拟路由器),新的路由器创建完成后默认存在一个外部接口,并关联到外部网路中。除此之外,还需要添加一个接口并关联到内部网络private,从而实现两个网络之间的转发数据
-
点击右边区域的路由器名称“my_route”超链接,进入路由器详细信息页面。在弹出的路由器详细信息页面中,单击“接口”标签,就会弹出“接口”选项卡的内容
-
单击上面图片中“+增加接口”按钮,在弹出的增加接口页面,选择子网为之前创建的private私有网络,IP地址栏可以留空,默认为private网络的网关地址(192.168.93.2)。完成后单击“提交”按钮
-
完成创建网络和创建路由之后,再次查看网络拓扑
-
依次单击“项目>网络>网络拓扑”按钮,在右边的网络拓扑区域已经多了一个私有网络,并且私有网络和公有网络之间通过路由器连接
-
至此,完成了网络资源的配置
4.3、创建云主机
- 完成网络和路由部分的配置以后,下面开始创建第一台云主机
- 核实镜像的大小,依次单击“项目>计算>镜像”按钮,可以看到cirrors镜像的大小仅为273字节。如果使用此镜像创建云主机,则会报错,所以首先要上传制作正确的镜像
-
点击右侧的“+创建镜像”,在弹出的页面内填写镜像信息。镜像名称填写“cirrors01”,镜像源通过“浏览”的方式选择到cirros-0.5.1-x86-disk.img,镜像格式选择“QCOW2”,将镜像的可见性选为“公有”,最后点击“创建镜像”
-
镜像创建完成后,大小为15M左右,远大于273K
-
完成镜像的创建后,下面开始创建云主机。依次单击“项目>计算>实例”按钮,在右边区域中没有任何实例存在。创建云主机需要单击右上角“创建实例”按钮
-
在弹出的创建实例的“详情”页面,填写实例名称为“test”,其他字段保持默认设置,并单击“下一项”按钮
-
在“源”页面,选择源一栏中通过下来菜单选择“镜像”,填写好卷大小,并单击页面下方列出的可用镜像“cirrors01”右边的上箭头,完成后单击“下一步”按钮
-
在“实例类型”页面,选择资源占用最少的实例类型,单击页面下方名称为“m1.tiny”的实例类型右边的上箭头,完成后单击“下一项”按钮
-
在“网络”页面中,选择云主机连接的私有网络。单击之前创建的名称为“private”网络右边的箭头,保证private网络置于可分配。后续的步骤保持默认即可,最后直接点击“创建实例”按钮创建云主机
-
在弹出的实例列表页面中,可以看到已创建的云主机。创建实例有一个过程需要执行块设备映射等操作,主要看硬件和网络的性能,可能需要等待几十秒,最后看到成功运行
五、宿主机开启路由转发
[root@openstack ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@openstack ~]# sysctl -p
net.ipv4.tcp_keepalive_intvl = 1
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_time = 5
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
net.ipv4.ip_forward = 1
六、管理云主机并测试连通性
-
云主机启动成功后,单击云主机test中“创建快照”按钮右边的下拉菜单,并选择“控制台”按钮
-
在弹出的控制台页面中,单击“点击此处只显示控制台”超连接,进入云主机的控制台页面。如果控制台显示黑屏,同时按下“Ctrl+Alt”按钮即可
-
根据控制台提示信息,输入登录用户名:cirros,密码:gocubsgo。如果进入$提示符的shell终端,说明已经成功登录
-
在云主机控制台中运行ifconfig命令,从命令输出结果中可以看到,云主机已经通过private网路中的DHCP自动获取到IP地址192.168.93.182
-
在云主机上测试连接baidu.com和Winodws本地IP的连通性
################################################################
注意:如果ping外网不通,请检查ifcfg-br-ex配置文件并查看宿主机br-ex网卡是否启动。如果没有启动,需要执行以下命令启动
[root@openstack ~]# ifconfig br-ex 172.24.4.1 netmask 255.255.255.0 up注意:再次测试,如果还是ping外网不同,检查Linux虚拟机是否开启了路由转发策略。若没有开启,可执行以下命令开启
[root@openstack ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@openstack ~]# sysctl -p
################################################################