云主机深入了解
1、云主机在计算节点以进程方式运行
2、监听vnc的端口,vnc默认端口从5900开始, 多台云主机,端口递增
3、云主机桥接网卡,与宿主机联通网络
提示:在openstack环境下,所有计算节点主机的桥接网卡名称都一样。
4、云主机保存路径
/var/lib/nova/instances
上图中 f82388eb-38d0-4543-ac0e-7edda97d615e 是一台云主机的ID
- console.log 控制台日志
- disk 虚拟磁盘
- disk.info 虚拟磁盘信息
- libvirt.xml libvirt生成的KVM配置文件
上图中_base目录下的 8fe5c03a30c01c4a94f3bbee2b3530d6d2e53557 是镜像
5、云主机磁盘
创建后的云主机磁盘,查看它的大小只有2.2M
我们当时分配了1G磁盘,实际上这个disk文件保存与原始镜像文件不同的部分,这样可以节省空间,增加启动速度。
使用qemu命令进行详细查看,虚拟大小1G
disk.info记录磁盘的路径
6、云主机metadata使用以及原理
通过管理员账号查看网络,可以看到192.168.137.100地址分配给dhcp
控制节点上ip netns li
可以看到启动一个namespace
ip netns exec qdhcp-cc9d7710-d82e-4109-9412-56ae02a18d7d ip ad li
192.168.137.100、169.254.169.254是在这里面配置的。
- 云主机如何从dhcp获取这些信息?
根据etc/neutron/dhcp_agent.ini配置文件enable_isolated_metadata = true 实现
同时我们可以查看到namespace上启动80端口,用于云主机访问metadata,获取信息
ip netns exec qdhcp-cc9d7710-d82e-4109-9412-56ae02a18d7d netstat -ntlp
- 云主机上查看
在云主机上执行curl http://169.254.169.254/2009-04-04/meta-data
curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key找到上传的mykey
- 如何配置metadata
1)使用工具cloud-init 2)自己写脚本实现
备注:官方提供的镜像cirros是包含了cloud-init,镜像启动后获取秘钥。如果自己做一个镜像,需要通过cloud-init或者脚本获取秘钥。