启动实例
所有操作均在控制节点上完成。
建立虚拟网络
网络选项一
实例将通过提供商的第二层网络连接到外部网络。
admin
以及其他特权用户必须建立该类型网络。
网络拓扑图:
网络连接图:
建立网络与子网
导入 admin
环境变量:
|
|
建立网络:
|
|
建立子网:
|
|
- 将
START_IP_ADDRESS
和END_IP_ADDRESS
替换为需要的IP
段;- 将
DNS_RESOLVER
替换为需要的DNS
服务器IP
地址;- 将
PROVIDER_NETWORK_GATEWAY
替换为目的网关;- 将
PROVIDER_NETWORK_CIDR
替换为目标网络的CIDR
地址,如192.168.1.0/24
。
网络选项二
实例将通过 DHCP
分配到内部子网段的 IP
地址,并能够通过 NAT
连接外部网络。外部网络主机需要通过浮动 IP
才能够访问到实例。
在建立自服务网络前必须先建立提供商网络(即网络选项一)。
网络拓扑图:
网络连接图:
建立网络与子网
导入 demo
用户环境变量:
|
|
建立网络:
|
|
建立子网:
|
|
- 将
DNS_RESOLVER
替换为需要的DNS
服务器IP
地址;- 将
SELFSERVICE_NETWORK_GATEWAY
替换为目的网关;- 将
SELFSERVICE_NETWORK_CIDR
替换为目的网络的CIDR
地址,如172.16.1.0/24
。
新建路由
导入 demo
环境变量:
|
|
新建路由:
|
|
设置路由
将自服务网络中的子网接入路由:
|
|
设置路由网关:
|
|
测试路由
导入 admin
环境变量:
|
|
查看网络命名空间:
|
|
应该能看到一个
qrouter
命名空间和两个qdhcp
命名空间。
查看网关 IP
:
|
|
测试连通性:
|
|
将
GATEWAY_IP
替换成上一步中输出的IP
。
新建虚拟主机类型
新建 m1.nano
:
|
|
新建密钥对
导入 demo
环境变量:
|
|
生成密钥对:
|
|
将公钥添加至密钥对:
|
|
查看密钥对:
|
|
添加安全组规则
允许 ICMP
通信:
|
|
若不打开可能会
ping
不通虚拟机。
允许 SSH
连接:
|
|
启动实例
导入 demo
用户环境变量:
|
|
查看虚拟主机类型:
|
|
查看镜像状态:
|
|
查看可用网络:
|
|
查看安全组信息:
|
|
启动基于提供商网络(网络选项一)的实例:
|
|
将
IMAGE_NAME
,PROVIDER_NET_ID
更改为需要选用的配置。
启动基于自服务网络(网络选项二)的实例:
|
|
将
IMAGE_NAME
,SELFSERVICE_NET_ID
更改为需要选用的配置。
实例无法启动: 错误信息:InvalidURL: Failed to parse: http:controller:9292 错误原因:控制节点
/etc/nova/nova.conf
中[glance]
部分的api_servers
的值有误。 解决方案:补全HTTP
协议头,将http:
改写为http://
。
查看实例启动状态:
|
|
实例启动错误
status:ERROR
: 错误信息:VirtualInterfaceCreateException: Virtual Interface creation failed 错误原因:libvirt
再启动之前会等待neutron
确认插件情况。这使得libvirt
驱动在真正的虚拟机启动之前使用实例事件机制去等待neutron
的VIF
信息。等待超时后,就会报虚拟机启动错误。 解决方案:在计算节点的/etc/nova/nova.conf
的[DEFAULT]
部分中增加:然后重新启动
openstack-nova-compute
即可。
登录实例
通过 VNC 登入
|
|
将
INSTANCE_NAME
替换成自己的实例名称。
通过给出的 URL
登录实例。
通过命令行登入
查看网络情况:
|
|
查看虚拟网络中的命名空间:
|
|
通过指定命名空间执行命令登入:
|
|
需要将
NETNS_NAME
,USER
和SERVER_IP_ADDRESS
更换成目标服务器的信息。
验证网络连通性
将
GATEWAY_IP
改为当前加入网络的网关IP
。
CirrOS
启动卡在 further output written to /dev/ttys0 错误信息:further output written to /dev/ttys0 错误原因:无法获取网卡IP
解决方案:在计算节点上运行sudo systemctl restart openstack-compute neutron-linuxbridge-agent
即可。
实例无法联网: 错误信息:获取不到
IP
错误原因:更改了nova-compute
模块后没有重启计算节点上的neutron-linuxbridge-agent
服务。 解决方案:在计算节点上运行sudo systemctl restart openstack-compute neutron-linuxbridge-agent
即可。
实例无法
ping
通域名: 错误信息:ping: bad address ’triplez.cn’ 错误原因:初始化的DNS
服务不可用。 解决方案:移除原来子网中设置的DNS
服务器,新增8.8.8.8
和9.9.9.9
公共DNS
服务器。
添加浮动 IP
仅针对自服务网络(网络选项二)。
生成浮动 IP
:
|
|
将生成的浮动 IP
绑定到目标实例 selfservice-instance
上:
|
|
将
FLOATING_IP
改为生成的浮动IP
地址。
在控制节点上验证网络连通性:
|
|
将
FLOATING_IP
改为生成的浮动IP
地址。
总结
启动实例是一个比较综合的工作,需要之前安装的四个基础模块的互相配合才能够如我们预期般运行。OpenStack
本是一个解耦的系统,然而我们在部署时,需要将其重新耦合起来。出问题也是很正常的。还是要有耐心对待,仔细写配置文件,出错看日志文件,相信能够解决大多数问题。
共勉。
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。