起動時に仮想マシンがローカルネットワークに接続するのに時間がかかる問題が発生しました。
次のコマンドを使用して仮想マシンを作成します。
virt-install \
--connect qemu:///system \
--name demo \
--noautoconsole \
--disk path=/demo.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback \
--disk path=/base.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback \
--import \
--vcpus 1 \
--virt-type kvm \
--ram 256 \
--hvm \
--os-type linux
systemd
Ubuntu 14.04.4 LTSを実行しているホストからマシンを作成すると、すべてがうまく機能します。スクリプトを実行する前に、仮想マシンが起動してLANに接続されます。ただし、ホストシステムがDebian 8.5を実行している場合は、systemd
ネットワークリソースを実際に使用する前に仮想マシンを接続してスクリプトの実行を開始するのに時間がかかります。
デバッグ中に次のスクリプトを作成しました。
#!/bin/bash
date >> /ping.log
ping -c 3 -W 3 "192.168.1.7" >> /ping.log
date >> /ping.log
curl google.com >> ping.log
date >> /ping.log
以下はそのsystemd
構成です。
[Unit]
Description=Demo
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/demo-init
[Install]
WantedBy=multi-user.target
マシンが起動すると、ping.log
次の内容が含まれます。
Tue Jul 19 12:57:56 UTC 2016
PING 192.168.1.7 (192.168.1.7) 56(84) bytes of data.
From 192.168.1.35 icmp_seq=1 Destination Host Unreachable
From 192.168.1.35 icmp_seq=2 Destination Host Unreachable
From 192.168.1.35 icmp_seq=3 Destination Host Unreachable
--- 192.168.1.7 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2001ms
pipe 3
Tue Jul 19 12:57:59 UTC 2016
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
[...]
</BODY></HTML>^M
Tue Jul 19 12:58:16 UTC 2016
以下を示します。
ping
失敗する、- 接続に20秒かかります。
これと比較して、Ubuntuホストで同じマシンを実行すると、次のものが保存されますping.log
。
Tue Jul 19 13:18:12 UTC 2016
PING 192.168.1.7 (192.168.1.7) 56(84) bytes of data.
64 bytes from 192.168.1.7: icmp_seq=1 ttl=64 time=2.27 ms
64 bytes from 192.168.1.7: icmp_seq=2 ttl=64 time=0.711 ms
64 bytes from 192.168.1.7: icmp_seq=3 ttl=64 time=5.47 ms
--- 192.168.1.7 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.711/2.819/5.472/1.981 ms
Tue Jul 19 13:18:14 UTC 2016
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
[...]
</BODY></HTML>^M
Tue Jul 19 13:18:14 UTC 2016
ここで:
ping
成功した- 実際に操作を実行するのにかかる時間は2秒かかります
ping
。
実際のホスト(DebianとUbuntu)はハードウェアが異なるため(NICの数が異なる)構成を比較するのは困難です。ただし、仮想マシンはDebianがプリインストールされているのと同じ基本ディスクに基づいて、まったく同じ方法で展開され、次の機能があります/etc/network/interfaces
。
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.35
netmask 255.255.240.0
network 192.168.0.0
broadcast 192.168.3.255
gateway 192.168.1.1
dns-nameservers 192.168.1.3 192.168.1.4 8.8.8.8 8.8.4.4
2つの質問があります。
そのような大きな遅延が発生するのはなぜですか?
私は誤解しましたか?目標
network-online.target
?スクリプトを実行するときに基本的な接続を保証すると思います。そうではありませんが、これの目的は何ですか?