CentOS 6 の KVM ゲストへ virsh console で接続するための考え方を確認します。仮想マシンがネットワーク不通になった時でも、シリアルコンソールが使えると復旧作業がしやすくなります。
virsh console が必要になる場面
- ネットワーク設定を誤って SSH できなくなった
- iptables や SELinux の変更で接続できない
- 起動時のメッセージを確認したい
- GUI なしのサーバーゲストを管理したい
KVM ゲストに SSH できる時は意識しにくいですが、障害時の復旧経路としてシリアルコンソールは重要です。
ゲスト側の設定
CentOS 6 では、シリアルコンソールを使うために /etc/inittab や grub の設定を確認します。
grep ttyS0 /etc/inittab
grep console /boot/grub/grub.conf
cat /etc/securetty | grep ttyS0ttyS0 でログインできるように、getty、カーネル起動オプション、securetty を確認します。
設定例
S0:2345:respawn:/sbin/agetty ttyS0 115200 vt100
console=tty0 console=ttyS0,115200n8
echo ttyS0 >> /etc/securettyroot ログインを許可するかどうかは運用方針によります。復旧用に便利ですが、管理経路としての扱いには注意が必要です。
ホスト側から接続する
virsh list --all
virsh console guest01virsh console から抜ける時は、通常 Ctrl + ] を使います。接続できない場合は、ゲスト XML 側に serial / console デバイスがあるかを確認します。
virsh dumpxml guest01 | grep -A5 -E "serial|console"virsh console で何も表示されない時
virsh console を実行しても何も表示されない場合、ゲスト OS 側でシリアルコンソールが有効になっていないことが多いです。KVM ホスト側だけでなく、ゲスト側の grub.conf、/etc/inittab、/etc/securetty を確認します。
- kernel 行に
console=ttyS0,115200n8があるか /etc/inittabで ttyS0 の getty が起動するか- root ログインするなら
/etc/securettyに ttyS0 があるか - ゲスト XML に serial / console デバイスがあるか
grep console /boot/grub/grub.conf
grep ttyS0 /etc/inittab
grep ttyS0 /etc/securetty
virsh dumpxml guest01 | grep -A5 -E "serial|console"virsh console から抜ける方法
virsh console に接続した後、抜け方が分からなくなることがあります。通常は Ctrl + ] でコンソールから抜けます。SSH セッションを閉じる前に、この操作を把握しておくと安心です。
virsh console guest01シリアルコンソールは、ネットワーク設定を壊した時の復旧経路です。普段使わなくても、いざという時に使える状態になっているかを事前に確認しておく価値があります。
まとめ
CentOS 6 KVM ゲストでは、SSH 以外の復旧経路として virsh console を用意しておくと安全です。ゲスト側の getty、grub、securetty、ホスト側の console デバイスを合わせて確認します。
関連する記事
- CentOS 6 サーバー管理ガイド
CentOS 6 系の記事を役割別に確認できるハブページです。 - CentOS 6 リリースと KVM への移行
CentOS 6 時代の仮想化基盤の変化を確認します。 - CentOS 6 ネットワーク設定
ネットワーク不通時の切り分けにも関係します。
参考書籍
CentOS 6 のような古い Linux サーバー記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。
Amazon で見る
