我正在使用 libvirt 在 Openstack 环境之外启动 cirros VM。在启动时,VM 会检查元数据二十次,这会增加启动时间的延迟。
cirros-ds 'net' 上涨至 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 或其他机制来禁用元数据查找吗?
答案1
经过几天的研究,我终于能够回答自己的问题了。您必须将“ds=nocloud”作为内核选项传递给虚拟机。
以下是我的做法。
/bin/sh #!/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-安装-r 256 \ -n $虚拟机名称 \ --vcpus=1 \ - 进口 \ - 自动启动 \ --memballoon virtio \ --网桥=virbr0 \ --boot 内核=$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" \ --磁盘$IMAGES_BASE/$VM_NAME.img \ --noautoconsole
下载页面上的 UEC 版本的 cirros 中包含内核、initrd 和空白映像。
更新 - 另一种方法是编辑 /etc/cirros-init/config。更改 DATASOURCE_LIST 变量。此方法需要更新 VM 映像,因此我更喜欢使用内核参数方法。文件 /etc/cirros-init/config 存在于 cirros-0.3.3 中,但不存在于 cirros-0.3.0 中。我没有检查其他版本。
答案2
一种选择是启动 VM -> 在 /etc/cirros-init/config 中设置 DATASOURCE_LIST="nocloud" -> 停止 VM 并使用新的映像文件作为将来部署 VM 的参考。
答案3
我找到了方法这里:proxmox-cirros
root@node1:/var/lib/libvirt/images/cirros01# cat cirros.meta
{
"instance-id": "10",
"local-hostname": "cirrabc"
}
root@node1:/var/lib/libvirt/images/cirros01# cat cirros.user
#!/bin/sh
echo DATASOURCE_LIST="nocloud" > /etc/cirros-init/config
root@node1:/var/lib/libvirt/images/cirros01#
安装虚拟机
virt-install \
--name cirros01 \
--vcpus 1 \
--memory 256 \
--disk path=/var/lib/libvirt/images/cirros01/cirros-0.6.2-x86_64-disk.img \
--os-variant cirros0.5.2 \
--import \
--autostart \
--noautoconsole \
--cloud-init user-data="cirros.user",meta-data="cirros.meta"
root@node1:/var/lib/libvirt/images/cirros01# virt-install \
--name cirros01 \
--vcpus 1 \
--memory 256 \
--disk path=/var/lib/libvirt/images/cirros01/cirros-0.6.2-x86_64-disk.img \
--os-variant cirros0.5.2 \
--import \
--autostart \
--noautoconsole \
--cloud-init user-data="cirros.user",meta-data="cirros.meta"
Starting install...
Creating domain... | 0 B 00:00:00
Domain creation completed.
(reverse-i-search)`console': virt-install --name cirros01 --vcpus 1 --memory 256 --disk path=/var/lib/libvirt/images/cirros01/cirros-0.6.2-x86_64-disk.img --os-variant cirros0.5.2 --import --autostart --noauto^Cnsole --cloud-init user-data="cirros.user",meta-data="cirros.meta"
root@node1:/var/lib/libvirt/images/cirros01# virsh console cirros01
Connected to domain 'cirros01'
Escape character is ^] (Ctrl + ])
[ 3.883621] rtc_cmos 00:04: alarms up to one day, y3k, 242 bytes nvram
[ 3.891612] i2c_dev: i2c /dev entries driver
[ 3.894729] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.
[ 3.904391] device-mapper: uevent: version 1.0.3
[ 3.907886] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: [email protected]
[ 3.913469] usb 1-1: New USB device found, idVendor=0627, idProduct=0001, bcdDevice= 0.00
[ 3.918911] usb 1-1: New USB device strings: Mfr=1, Product=3, SerialNumber=10
[ 3.924587] usb 1-1: Product: QEMU USB Tablet
[ 3.927905] usb 1-1: Manufacturer: QEMU
[ 3.930852] usb 1-1: SerialNumber: 28754-0000:00:05.7-1
[ 3.936825] platform eisa.0: Probing EISA bus 0
[ 3.940526] platform eisa.0: EISA: Cannot allocate resource for mainboard
[ 3.945545] platform eisa.0: Cannot allocate resource for EISA slot 1
[ 3.949802] platform eisa.0: Cannot allocate resource for EISA slot 2
[ 3.954222] platform eisa.0: Cannot allocate resource for EISA slot 3
[ 3.959725] platform eisa.0: Cannot allocate resource for EISA slot 4
[ 3.965202] platform eisa.0: Cannot allocate resource for EISA slot 5
[ 3.972678] platform eisa.0: Cannot allocate resource for EISA slot 6
[ 3.976898] platform eisa.0: Cannot allocate resource for EISA slot 7
[ 3.981760] platform eisa.0: Cannot allocate resource for EISA slot 8
[ 3.986244] platform eisa.0: EISA: Detected 0 cards
[ 3.989781] intel_pstate: CPU model not supported
[ 3.993428] ledtrig-cpu: registered to indicate activity on CPUs
[ 3.998071] drop_monitor: Initializing network drop monitor service
[ 4.003633] NET: Registered PF_INET6 protocol family
[ 4.017224] Segment Routing with IPv6
[ 4.019896] In-situ OAM (IOAM) with IPv6
[ 4.022853] NET: Registered PF_PACKET protocol family
[ 4.026170] Key type dns_resolver registered
[ 4.030568] IPI shorthand broadcast: enabled
[ 4.033565] sched_clock: Marking stable (3583548280, 446449499)->(4467855208, -437857429)
[ 4.039047] registered taskstats version 1
[ 4.042058] Loading compiled-in X.509 certificates
[ 4.046995] Loaded X.509 cert 'Build time autogenerated kernel key: 2f86ddc308e15dc6b50c79b07e2324bbca0a5704'
[ 4.054843] Loaded X.509 cert 'Canonical Ltd. Live Patch Signing: 14df34d1a87cf37625abec039ef2bf521249b969'
[ 4.066323] Loaded X.509 cert 'Canonical Ltd. Kernel Module Signing: 88f752e560a1e0737e31163a466ad7b70a850c19'
[ 4.072650] blacklist: Loading compiled-in revocation X.509 certificates
[ 4.077137] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing: 61482aa2830d0ab2ad5af10b7250da9033ddcef0'
[ 4.083946] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2017): 242ade75ac4a15e50d50c84b0d45ff3eae707a03'
[ 4.091586] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (ESM 2018): 365188c1d374d6b07c3c8f240f8ef722433d6a8b'
[ 4.098433] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2019): c0746fd6c5da3ae827864651ad66ae47fe24b3e8'
[ 4.105031] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v1): a8d54bbb3825cfb94fa13c9f8a594a195c107b8d'
[ 4.112289] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v2): 4cf046892d6fd3c9a5b03f98d845f90851dc6a8c'
[ 4.120229] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v3): 100437bb6de6e469b581e61cd66bce3ef4ed53af'
[ 4.127329] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019): c1d57b8f6b743f23ee41f4f7ee292f06eecadfb9'
[ 4.134997] zswap: loaded using pool lzo/zbud
[ 4.138334] Key type .fscrypt registered
[ 4.141358] Key type fscrypt-provisioning registered
[ 4.147730] Key type encrypted registered
[ 4.151612] AppArmor: AppArmor sha1 policy hashing enabled
[ 4.155251] ima: No TPM chip found, activating TPM-bypass!
[ 4.158924] Loading compiled-in module X.509 certificates
[ 4.163577] Loaded X.509 cert 'Build time autogenerated kernel key: 2f86ddc308e15dc6b50c79b07e2324bbca0a5704'
[ 4.170045] ima: Allocated hash algorithm: sha1
[ 4.173455] ima: No architecture policies found
[ 4.176689] evm: Initialising EVM extended attributes:
[ 4.181014] evm: security.selinux
[ 4.183438] evm: security.SMACK64
[ 4.185775] evm: security.SMACK64EXEC
[ 4.188320] evm: security.SMACK64TRANSMUTE
[ 4.191121] evm: security.SMACK64MMAP
[ 4.193678] evm: security.apparmor
[ 4.196189] evm: security.ima
[ 4.198477] evm: security.capability
[ 4.201035] evm: HMAC attrs: 0x1
[ 4.204308] PM: Magic number: 0:746:744
[ 4.207692] RAS: Correctable Errors collector initialized.
[ 4.217577] Freeing unused decrypted memory: 2036K
[ 4.228177] Freeing unused kernel image (initmem) memory: 3244K
[ 4.232435] Write protecting the kernel read-only data: 30720k
[ 4.248257] Freeing unused kernel image (text/rodata gap) memory: 2036K
[ 4.252972] Freeing unused kernel image (rodata/data gap) memory: 1448K
[ 4.326937] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 4.331177] x86/mm: Checking user space page tables
[ 4.400597] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[ 4.404726] Run /init as init process
info: initramfs: up at 3.97
[ 4.535137] virtio_blk virtio2: [vda] 229376 512-byte logical blocks (117 MB/112 MiB)
currently loaded modules: 8021q 8139cp 8390 9pnet 9pnet_virtio ahci cec drm drm_kms_helper e1000 e1000e failover fb_sys_fops garp hid hid_generic ip6_udp_tunnel ip_tables isofs libahci libcrc32c llc mii mrp ne2k_pci net_failover nls_ascii nls_iso8859_1 nls_utf8 pcnet32 qemu_fw_cfg rc_core sctp stp syscopyarea sysfillrect sysimgblt udp_tunnel usbhid virtio_blk virtio_dma_buf virtio_gpu virtio_input virtio_net virtio_rng virtio_scsi x_tables
info: copying initramfs to /dev/vda1
info: initramfs loading root from /dev/vda1
info: /etc/init.d/rc.sysinit: up at 5.04
info: container: none
Starting syslogd: OK
currently loaded modules: 8021q 8139cp 8390 9pnet 9pnet_virtio ahci cec drm drm_kms_helper e1000 e1000e failover fb_sys_fops garp hid hid_generic ip6_udp_tunnel ip_tables isofs libahci libcrc32c llc mii mrp ne2k_pci net_failover nls_ascii nls_iso8859_1 nls_utf8 pcnet32 qemu_fw_cfg rc_core sctp stp syscopyarea sysfillrect sysimgblt udp_tunnel usbhid virtio_blk virtio_dma_buf virtio_gpu virtio_input virtio_net virtio_rng virtio_scsi x_tables
Saving random seed: OK
Starting acpid: OK
mcb [info=/dev/sr0 dev=/dev/sr0 target=tmp unmount=true callback=mcu_drop_dev_arg]: mount '/dev/sr0' '-o,ro' '/tmp/nocloud.mp.tY5JDe'
mcudda: fn=cp dev=/dev/sr0 mp=/tmp/nocloud.mp.tY5JDe : -a /tmp/cirros-ds.W93FYn/nocloud/raw
Starting network: dhcpcd-9.4.1 starting
DUID 00:04:89:58:df:f5:1d:d0:44:2b:86:be:92:d7:ef:55:1d:52
forked to background, child pid 272
OK
Top of dropbear init script
Starting dropbear sshd: OK
GROWROOT: NOCHANGE: partition 1 is size 210911. it cannot be grown
/dev/root resized successfully [took 0.06s]
=== system information ===
Platform: QEMU Standard PC (i440FX + PIIX, 1996)
Container: none
Arch: x86_64
CPU(s): 1 @ na MHz
Cores/Sockets/Threads: 1/1/1
Virt-type: VT-x
RAM Size: 214MB
Disks:
NAME MAJ:MIN SIZE LABEL MOUNTPOINT
sr0 11:0 378880 cidata
vda 252:0 117440512
vda1 252:1 107986432 cirros-rootfs /
vda15 252:15 8388608
=== sshd host keys ===
-----BEGIN SSH HOST KEY KEYS-----
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCIDBgjq7p1/YBQMkTMkJuzjMB2ZexBqq0IfvwloGk2DTmlum635sY0qwhgkg6YkIr9LcCMFj4CjuDjzDl9Ap8+2rJRR62HV2A1mU9RfGa5tM/62Q0w49F/wkh5k6GKw3uYOBVfpbckEMEC2SUx07m0O4DPT6rn3VXBGwLk+w5cKDOeMvm/IrW/qzvH9NwAmZKrnB6aOunhItUHpErJCMObRB9VQfog83MHMsA2qcnyeqI10uoCCYqmOGv5CTHJMVIEEQUQ2dk2gixFde/hDy4dOM56aO4J4Q/vs3nSqym5FbQHcOdGnnPEJqV4HcGNvYnAlEFamda+421hw8AJ+4DP root@cirrabc
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIhLwkp2lWB4M0s2Iy7oGzAa/0w1lCn9jr7szInA+hLMeSVs3fAZWoK/dElOXq7gtHMIf//M8eWwQL5SVLkujvU= root@cirrabc
-----END SSH HOST KEY KEYS-----
=== network info ===
if-info: lo,up,127.0.0.1,8,,
if-info: eth0,up,,8,fe80::5054:ff:fe90:5bf6/64,
ip-route6:fe80::/64 dev eth0 metric 256
ip-route6:multicast ff00::/8 dev eth0 metric 256
=== datasource: nocloud local ===
instance-id: 10
name: N/A
availability-zone: N/A
local-hostname: cirrabc
launch-index: N/A
=== cirros: current=0.6.2 uptime=6.28 ===
=== pinging gateway failed, debugging connection ===
############ debug start ##############
### /etc/init.d/sshd start
Top of dropbear init script
Starting dropbear sshd: remove-dropbear-host-keys already run per instance
FAIL
### ifconfig -a
eth0 Link encap:Ethernet HWaddr 52:54:00:90:5B:F6
inet6 addr: fe80::5054:ff:fe90:5bf6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:798 (798.0 B) TX bytes:522 (522.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1020 (1020.0 B) TX bytes:1020 (1020.0 B)
### route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
### cat /etc/resolv.conf
# Generated by dhcpcd
# /etc/resolv.conf.head can replace this line
# /etc/resolv.conf.tail can replace this line
### gateway not found
### pinging nameservers
### uname -a
Linux cirrabc 5.15.0-71-generic #78-Ubuntu SMP Tue Apr 18 09:00:29 UTC 2023 x86_64 GNU/Linux
### lsmod
Module Size Used by Not tainted
ahci 45056 0
libahci 45056 1 ahci
sctp 393216 2
libcrc32c 16384 1 sctp
ip6_udp_tunnel 16384 1 sctp
udp_tunnel 20480 1 sctp
ip_tables 32768 0
x_tables 53248 1 ip_tables
8021q 36864 0
garp 20480 1 8021q
stp 16384 1 garp
llc 16384 2 garp,stp
mrp 20480 1 8021q
nls_utf8 16384 0
nls_iso8859_1 16384 0
nls_ascii 16384 0
isofs 53248 0
hid_generic 16384 0
usbhid 65536 0
hid 151552 2 hid_generic,usbhid
virtio_rng 16384 0
virtio_gpu 73728 0
virtio_dma_buf 16384 1 virtio_gpu
drm_kms_helper 311296 1 virtio_gpu
syscopyarea 16384 1 drm_kms_helper
sysfillrect 20480 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
cec 61440 1 drm_kms_helper
rc_core 65536 1 cec
drm 622592 2 virtio_gpu,drm_kms_helper
virtio_scsi 24576 0
virtio_net 61440 0
net_failover 20480 1 virtio_net
failover 16384 1 net_failover
virtio_input 20480 0
virtio_blk 20480 1
qemu_fw_cfg 20480 0
9pnet_virtio 20480 0
9pnet 90112 1 9pnet_virtio
pcnet32 45056 0
8139cp 40960 0
mii 16384 2 pcnet32,8139cp
ne2k_pci 20480 0
8390 24576 1 ne2k_pci
e1000e 299008 0
e1000 159744 0
### dmesg | tail
[ 4.797275] EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[ 4.803105] EXT4-fs (vda1): mounting ext3 file system using the ext4 subsystem
[ 4.826148] EXT4-fs (vda1): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[ 5.455071] EXT4-fs (vda1): re-mounted. Opts: (null). Quota mode: none.
[ 5.492786] EXT4-fs (vda1): re-mounted. Opts: (null). Quota mode: none.
[ 5.692271] ISO 9660 Extensions: Microsoft Joliet Level 3
[ 5.693523] ISO 9660 Extensions: RRIP_1991A
[ 5.798172] 8021q: adding VLAN 0 to HW filter on device eth0
[ 6.462167] EXT4-fs (vda1): resizing filesystem from 25600 to 26363 blocks
[ 6.462209] EXT4-fs (vda1): resized filesystem to 26363
### tail -n 25 /var/log/messages
Mar 17 18:43:15 cirros syslog.info syslogd started: BusyBox v1.35.0
Mar 17 18:43:15 cirros daemon.info dhcpcd[270]: dhcpcd-9.4.1 starting
Mar 17 18:43:15 cirros daemon.info dhcpcd[273]: DUID 00:04:89:58:df:f5:1d:d0:44:2b:86:be:92:d7:ef:55:1d:52
Mar 17 18:43:15 cirros daemon.warn dhcpcd[273]: no interfaces have a carrier
Mar 17 18:43:15 cirros daemon.info dhcpcd[273]: eth0: waiting for carrier
Mar 17 18:43:15 cirros daemon.info dhcpcd[273]: eth0: carrier acquired
Mar 17 18:43:15 cirros daemon.info dhcpcd[273]: eth0: IAID 00:90:5b:f6
Mar 17 18:43:15 cirros daemon.info dhcpcd[273]: eth0: adding address fe80::5054:ff:fe90:5bf6
Mar 17 18:43:15 cirros daemon.info dhcpcd[273]: eth0: soliciting an IPv6 router
Mar 17 18:43:16 cirros authpriv.info dropbear[314]: Running in background
Mar 17 18:43:16 cirros daemon.info dhcpcd[273]: eth0: soliciting a DHCP lease
############ debug end ##############
____ ____ ____
/ __/ __ ____ ____ / __ \/ __/
/ /__ / // __// __// /_/ /\ \
\___//_//_/ /_/ \____/___/
http://cirros-cloud.net
login as 'cirros' user. default password: 'gocubsgo'. use 'sudo' for root.
cirrabc login:
答案4
你可能感兴趣:https://github.com/eprasad/virt-cirros. 虚拟化平台友好的 cirros 镜像