web-dev-qa-db-ja.com

再起動後、GoogleにアクセスできないVM

Google Cloudを再起動しましたVMになり、ssh経由でアクセスできなくなりました。ログから以下のメッセージが表示されます-

Sep 26 21:51:02  NetworkManager[1300]: <info>  [1569523862.8802] dhcp4 (eth0): canceled DHCP transaction
Sep 26 21:51:34  NetworkManager[1300]: <info>  [1569523894.8143] device (eth0): state change: ip-config -> failed (reason 'ip-config-unavailable', sys-iface-state: 'managed')
Sep 26 21:51:34  NetworkManager[1300]: <info>  [1569523894.8148] manager: NetworkManager state is now DISCONNECTED
Sep 26 21:51:34  NetworkManager[1300]: <warn>  [1569523894.8151] device (eth0): Activation: failed for connection 'System eth0'
Sep 26 21:51:34  NetworkManager[1300]: <info>  [1569523894.8153] device (eth0): state change: failed -> disconnected (reason 'none', sys-iface-state: 'managed')```

3
Martin Karari

エラーメッセージは、dhclientが正常に実行できなかったことを示しています。ログにはdhcp4 (eth0): client pid XXXX exited with status 127のようなものもありましたか?または、そうでない場合、dhcp4に関連する他のログエントリはありますか?

エラーexited with status 127が発生したと想定して、解決策を提案します。 (別のエラーがある場合はお知らせください。回答を編集します。)

ネットワーク接続がないため、シリアルコンソールからVMにログインし、rootへのSudoアクセスを持つユーザーアカウントのパスワードで認証する必要があります。

終了コード127は、プログラムが実行できなかったことを意味します。どうして?まあ、それを試してください:dhclientコマンドを実行して何が起こるか見てください:

#> Sudo dhclient --help
dhclient: error while loading shared libraries: libdns-export.so.1102: cannot open shared object file: No such file or directory

わかりました、この場合、dhclientは必要なライブラリをロードできません。 Googleを検索すると この古いredhatバグ が見つかるかもしれません。これは、ライブラリをldconfigに再リンクすることで問題が修正されたことを示唆しています:

#> Sudo /sbin/ldconfig

その後、dhclientは正常に実行されます。

#> Sudo dhclient --help
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
[…]

次に、NetworkManagerの再起動が成功します。

#> Sudo systemctl restart NetworkManager.service

そして、ネットワークが稼働しています:

#> ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=1.98 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=0.258 ms
2
Quinn Comendant

インスタンスの起動時にネットワークスタックが失敗するのは、VMの起動ディスクが100%使用されているためです。

解決策は、ディスクのサイズを大きくすることです。

必要な手順を詳しく説明するこの記事を書きました。

ルートファイルシステムのサイズ変更

0
John Hanley

以下は一時的に私の問題を修正します。

(i)シリアルコンソール経由でVMにログインします。ログインを表示するには、戻るボタンをクリックする必要がある場合があります。

(ii)VMメモリとディスク領域に問題がないことを確認します。`df-hなどのツールを使用してディスク領域を確認できます。十分でない場合は、次のようにしてください John Hanley 上記のチュートリアルでそれを増やします。すべてが正常で、唯一のネットワークが失敗している場合は、ステップiiiに進みます。

(iii)CentOSでNetworkManagerを無効にしてネットワークを手動で設定するには、次のようにします。

systemctl stop NetworkManager
systemctl disable NetworkManager
ifconfig eth0 <internal_ip> netmask 255.255.255.0
route add default gw <your-cloud-gateway>

上記の後、あなたはあなたのGoogle VMへの完全なアクセス権を持っています、しかし、あなたはVMは他のVMから見えません、あなたは以下のようにrouteコマンドを使用してこれを設定する必要があります

route add <other-VM-internal-IP> netmask 0.0.0.0 gw <you-cloud-gateway>

すべてのVM仮想サーバーから見えるようにしたい場合は、上記のことを行う必要があります。

この修正は一時的なものであり、再起動時に設定が失われる可能性があるため、起動時にこれらのコマンドを/etc/rc.localに配置して実行することができます。

免責事項:私はあまり経験がありませんが、上記は、メーデーがあり、永続的な解決策を探すときにクライアントにサービスを迅速に復旧させる必要がある重要なサーバーを修正する方法でした。

0
Martin Karari