我正在使用libvirt在Openstack环境之外引导cirros虚拟机。 在启动时,VM检查元数据二十次,这为启动时间增加了很多延迟。
环比“净”上涨至6.14
检查http://169.254.169.254/2009-04-04/instance-id 1/20失败:上升6.18。 请求失败 失败2/20:上升18.32。 请求失败 失败3/20:上涨30.38。 请求失败 4/20失败:上升42.44。 请求失败 [剪断]
我正在使用cirros-0.3.3。
我可以使用cloud-init或其他一些机制来禁用元数据查找吗?
经过几天的研究,我能够回答自己的问题。 您必须将“ds = nocloud”作为内核选项传递给VM。
这是我做的。
#!/ bin / sh的 导出VM_NAME = cirros $$ IMAGES_BASE =的/ var / lib中/ libvirt的/图像 cp $ IMAGES_BASE / cirros / cirros-0.3.0-i386-blank.img $ IMAGES_BASE / $ VM_NAME.img virt-install -r 256 \ -n $ VM_NAME \ --vcpus = 1 \ - import\ - 自动启动 \ --memballoon virtio \ --network bridge = virbr0 \ --boot kernel = $ IMAGES_BASE / cirros / cirros-0.3.0-i386-vmlinuz,initrd = $ IMAGES_BASE / cirros / cirros-0.3.0 -i386-initrd,kernel_args =“console = / dev / ttyS0 ds = nocloud” \ --disk $ IMAGES_BASE / $ VM_NAME.img \ --noautoconsole
内核,initrd和空白映像包含在下载页面上的UEC版本的cirros中。
更新 – 另一种方法是编辑/ etc / cirros-init / config。 更改DATASOURCE_LISTvariables。 这种方法需要更新虚拟机映像,所以我更喜欢使用内核的参数方法。 文件/ etc / cirros-init / config存在于cirros-0.3.3中,而不是cirros-0.3.0。 我没有检查其他版本。
您可能感兴趣: https : //github.com/eprasad/virt-cirros 。 虚拟化平台友好的cirros形象