IPMIとは
IPMIとはサーバ機を遠隔からOSに関わらず監視、操作するインターフェイス規格のこと。
これを使用するにはまずハードウェアが対応していることが前提である上、それなりの設定が必要となる。
そしてこのIPMIデバイスにアクセスするためのソフトウェアがIPMIToolである。
version2から Serial over IP(sol) をサポートするようになったようなのでコンソールログインもできる。
IPMIの設定
IPMIを使用するにはいくつかの設定が必要となる。これは下記のように階層化されている。
- BIOSレベルの入出力設定
- BootLoaderレベルの入出力設定
- Kernelレベルの入出力設定
- OSレベルの入出力設定
ほとんどシリアルコンソールの設定と同じなので下記リンクが参考になる。
- Remote Serial Console HOWTOhttp://www.linux.or.jp/JF/JFdocs/Remote-Serial-Console-HOWTO/index.html
BIOSの設定
以下を設定するとPCのPOST(電源セルフテスト)からBIOSのスタートアップ、セットアップの入出力を管理LANポートに渡せる。
BIOS Setupを立ち上げて[Server]-[Console Redirection]に移動する。 以下のように設定する。
- BIOS Redirection Port : [Serial Port B]
- ACPI Redirection Port : [Serial Port B]
- Baud Rate [115.2K]
- Terminal Type : [VT100+]
- Flow Control [CTS/RTS]
GRUBの設定
以下の設定をするとブートローダー(ここではGRUB)のスタートアップ、メニューの入出力を管理LANポートに渡せる。
/boot/grub/grub.conf
default=0 timeout=5 serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=5 serial console #splashimage=(hd0,0)/boot/grub/splash.xpm.gz
textしか出力できないのでsplashimageはコメントアウトする。
続いてOSの入出力を管理LANポートに渡す設定。
title CentOS (2.6.18-128.1.10.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-128.1.10.el5 module /vmlinuz-2.6.18-128.1.10.el5xen ro root=/dev/sda2 module /initrd-2.6.18-128.1.10.el5xen.img
ここでコンソールをどこに出力するかの設定をしている。
xenカーネルを使うと、本来IPMIで使うttyS1をxenconsoleに奪われてしまう。これを回避するには
上記のようにxencons=ttyS2などと明記する必要がある。とにかくttyS0, ttyS1 以外にする。
!!! 上の設定をしてもOSの起動メッセージが見れない。しかし xenカーネルではない普通のカーネルなら同様の設定でも見れる。
title CentOS (2.6.18-128.el5) root (hd0,0) kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/1 initrd /initrd-2.6.18-128.el5.img
grub設定が悪いのか、xenカーネル自体がシリアル出力未対応でビルドされたのか、まだ不明。
OS上での設定
clsではCENTOS 5を用いているが、多くのLinuxでも同様の設定と思われる。
/etc/inittab に
# Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2
上のような記述があるのでそこに
co:2345:respawn:/sbin/agetty 19200 ttyS1 vt100-nav
を追加する。
/etc/securetty に
ttyS1
を追加。
また、下記のドライバを読み込む必要がある。
- ipmi_devintf
- ipmi_si
- ipmi_msghandler
- 8250
上の3つについてはyumでOpenIPMI、OpenIPMI-tools、OpenIPMI-devel、OpenIPMI-libsをインストールし、root権限で
chkconfig ipmi on
としておけば自動で読み込まれる。
8250については/etc/rc.localに
modprobe 8250
と書くことで自動化した。
これらのドライバがどう読み込まれているのかを知るためにはdmesgを使うと良い。
[root@cls002 ~]# dmesg | grep 8250 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
正常な状態では上記のようになる。
この8250ドライバは、GRUBの設定でttyS1をxen consoleに奪われないようにしないと読み込めないのでそこに注意する。
ちなみに、下記がxen consoleにttyS1を奪われているなど、何らかの理由で8250ドライバが正常に働いていない状態。
こうなるとIPMIToolのコンソールアクセスが出来ない。
# dmesg |grep 8250 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled 8250_pnp: Unknown symbol serial8250_unregister_port 8250_pnp: Unknown symbol serial8250_register_port Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
管理LANポートのIPアドレスなどの設定
ipmitoolというオープンソースのツールを用いる。
インストールはyumで。
# yum install -y OpenIPMI OpenIPMI-devel OpenIPMI-tools
ipmitoolの使い方はmanしてもぐぐっても、あまり分からなかったので、ここでは判明した分だけを載せる。以下の例はcls180のもの。他のclsも同様に設定できる。
まずは現在の管理LANポートの状態を取得。
[root@cls180 ~]# ipmitool lan print Set in Progress : Set Complete Auth Type Support : NONE MD5 PASSWORD Auth Type Enable : Callback : NONE MD5 PASSWORD : User : NONE MD5 PASSWORD : Operator : NONE MD5 PASSWORD : Admin : NONE MD5 PASSWORD : OEM : NONE MD5 PASSWORD IP Address Source : DHCP Address IP Address : 10.10.49.180 Subnet Mask : 255.255.255.0 MAC Address : 00:16:17:c3:55:e1 SNMP Community String : public IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10 Default Gateway IP : 10.10.49.254 802.1q VLAN ID : Disabled 802.1q VLAN Priority : 0 RMCP+ Cipher Suites : 0,1,2,3 Cipher Suite Priv Max : Not Available
次に、IPアドレスの取得方法の設定。
[root@cls180 ~]# ipmitool lan set 2 ipsrc lan set <channel> ipsrc <source> none = unspecified static = static address (manually configured) dhcp = address obtained by BMC running DHCP bios = address loaded by BIOS or system software
4つから選択できるが、ここではstaticにしてみる。
[root@cls180 ~]# ipmitool lan set 2 ipsrc static
再度、状態を表示させ確認する。
[root@cls180 ~]# ipmitool lan print ----------略---------- IP Address Source : Static Address IP Address : 192.168.1.1 Subnet Mask : 255.255.255.0 MAC Address : 00:16:17:c3:55:e1 SNMP Community String : public IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10 Default Gateway IP : 0.0.0.0 ---------略-----------
IPアドレス、サブネットマスク、ゲートウェイの設定は以下。
[root@cls180 ~]# ipmitool lan set 2 ipaddr 10.10.49.180 Setting LAN IP Address to 10.10.49.180 [root@cls180 ~]# ipmitool lan set 2 netmask 255.255.255.0 Setting LAN Subnet Mask to 255.255.255.0 [root@cls180 ~]# ipmitool lan set 2 defgw ipaddr 10.10.49.254 Setting LAN Default Gateway IP to 10.10.49.254
ipmitoolのユーザー設定
ipmitoolを使用するユーザーの設定をする。
ユーザー関連のコマンド群
[root@cls180 ~]# ipmitool user User Commands: summary [<channel number>] list [<channel number>] set name <user id> <username> set password <user id> [<password>] disable <user id> enable <user id> priv <user id> <privile level> [<channel number>] test <user id> <16|20> [<password]>
ユーザーリストは以下。
[root@cls180 ~]# ipmitool user list ID Name Callin Link Auth IPMI Msg Channel Priv Limit 4 administrator true false false Unknown (0x0)
上のは全くの初期状態なので、適当なユーザーとパスワードを設定しなければならない
ipmitoolで遠隔から電源ON,OFF、コンソールログインなど
注意事項
clsの管理LANポートは10.10.49.0/24のネットワークにいる。遠隔からこれにアクセスするには操作するマシンも
10.10.49.0/24のネットワークにいなければならない。現在はfutenmaだけを参加させている。
[root@futenma ~]# ifconfig eth1.60 eth1.60 Link encap:Ethernet HWaddr 00:13:21:C8:64:E2 inet addr:10.10.49.200 Bcast:10.10.49.255 Mask:255.255.255.0 inet6 addr: fe80::213:21ff:fec8:64e2/64 Scope:Link
なので、以下、ipmitoolを使用するにはまずfutenmaにログインする。
[user@ibook ~]# ssh futenma.ie.u-ryukyu.ac.jp
- ユーザー 説明では
-U administrator
としているが、これはサーバ班用なので、その他の人は
-U os
として下さい。
- IPアドレス
-H 10.10.49.180
これはcls180のIPアドレスです。他のclsにアクセスする場合は第四フィールドを変更してください。
-H 10.10.49.[1~180]
- セッションsolセッションは同時に1ユーザーしか張れません。
使い方
ipmitoolでclsの電源を切るには
[root@futenma ~]# ipmitool -I lanplus -H 10.10.49.180 -U administrator power soft
電源を入れるには
[root@futenma ~]# ipmitool -I lanplus -H 10.10.49.180 -U administrator power on
再起動するには
[root@futenma ~]# ipmitool -I lanplus -H 10.10.49.180 -U administrator power reset
コンソールログインするには
[root@futenma ~]# ipmitool -I lanplus -H 10.10.49.180 -U administrator sol activate
抜ける時は、 enter→~(チルダ)→.(ドット)
特に最後のコンソールログインは、clsにsshできない、pingすら通らない、といった状況で非常に役にたつ。
さらにBIOSの設定、GRUBの設定をちゃんとやっていれば、BIOSセットアップも遠隔から行える。
参考リンク
- IPMItool 公式サイトhttp://ipmitool.sourceforge.net/
- Remote Serial Console HOWTO #日本語http://www.linux.or.jp/JF/JFdocs/Remote-Serial-Console-HOWTO/index.html