libvirt API を使ってkvm ホストサーバから仮想マシンのコンソールに接続する

仮想マシンの設定で、シリアルコンソールに接続できる設定をするだけ。(物理サーバにメンテ用でシリアルコンソール接続する設定等と基本的に同じ)

仮想マシン: SL 6.2 の例

  • /etc/securetty
echo "ttyS0" >> /etc/securetty
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
kernel パラメータの末尾に"console=tty0 console=ttyS0,115200n8r" を追加

serial とkernelのspeedの値はあわせておくこと。

RHEL5系でupstartじゃなくてSysVinitの場合は

  • /etc/inittab
S0:2345:respawn:/sbin/agetty -h 115200 ttyS0 vt100

設定後に仮想マシン再起動(SysVinitの場合はinit q)

この状態でkvmのホストサーバからvirsh consoleで接続。終了する際はCtrl + ] (telnet 閉じる時と同じ)

# virsh console hoge
Connected to domain hoge
エスケープ文字は  ^] です

Scientific Linux release 6.2 (Carbon)
Kernel 2.6.32-220.4.1.el6.x86_64 on an x86_64

hoge login: root
Password:
Last login: Mon Apr  2 23:13:18 on ttyS0
[root@hoge ~]# exit
logout

Scientific Linux release 6.2 (Carbon)
Kernel 2.6.32-220.4.1.el6.x86_64 on an x86_64

hoge login:
## Ctrl + ] でvirsh console終了

さくらインターネットVPSコンソール設定を参考にした。