このエントリーをはてなブックマークに追加

DELL OMSA 2

先日の DELL OMSA の続き。いただいたコメントに、すばりな情報が公開されていたので、試してみました。

具体的には、/etc/redhat-release を次のように書き換える手順がやっていませんでした。DELL OMSA のセットアップシェルスクリプトでは、RHEL5 かどうか判定しているので CentOS 5.2 でも RHEL5 に見せかけることが必要です。CentOS release 5.2 という部分は、変更する必要もないのでそのままにしておいたほうがよいでしょう。

— /etc/redhat-release-org 2009-09-18 22:42:23.000000000 +0900
+++ /etc/redhat-release 2009-09-19 21:30:08.000000000 +0900
@@ -1 +1 @@
-CentOS release 5.2 (Final)
+CentOS release 5.2 (Final Tikanga)

これで、DELL OMSA の tarball を使う前にDellLinuxWikiに書かれている DELL が公式に提供している yum リポジトリを使ってできるのかなと試してみたところ、srvadmin-all というパッケージが見つかりません。ちょうど、友人も同じような DELL サーバをもっていて試してもらったところ、ちゃんちょ srvadmin-all というパッケージでインストールできたとのこと。友人の DELL サーバと比較すると、僕の DELL サーバの違いは、次の点です。

  • DELL サーバの機種が R200 でなく、R300
  • DRAC カードを搭載している
  • yum のバージョンが新しい

bootstrap.cgi の内容を見てみると、やっていることをいたって単純で /etc/yum.repos.d に dell-omsa-hwindep と dell-omsa-hw という yum リポジトリの設定を追加しているだけの様子。
srvadmin-all というメタパッケージは、dell-omsa-hwindep という yum リポジトリにある様子で、次の URL で取得している。

http://linux.dell.com/repo/hardware/latest/mirrors.cgi?osname=el$releasever&basearch=$basearch&sys_ven_id=$sys_ven_id&sys_dev_id=$sys_dev_id&dellsysidpluginver=$dellsysidpluginver

sys_ven_id と sys_dev_id と dellsysidpluginver という変数は、yum-dellsysid という yum プラグインで展開しているっぽい。展開されている具体的にな URL を調べる方法は分からなかったが、R300 の場合 smbios-utils というパッケージに含まれている /usr/sbin/getSystemId というコマンドで機種 ID を調べることができる。
smbios-utils というパッケージは、linux.dell.com で提供されているので、CentOS 5.x の場合は RHEL5 の RPM をインストールすればよい。

$ sudo /usr/sbin/getSystemId
Libsmbios version: 2.2.17
Product Name: PowerEdge R300
Vendor: Dell Inc.
BIOS Version: 1.2.0
System ID: 0x020F
Service Tag: XXXXXX
Express Service Code: XXXXXXXXZ
Asset Tag:
Property Ownership Tag:

System ID が 0x020F だということが分かるので、DELL OMSA 6.1 Linux Reposioty にずらっとあるディレクトリの中から、R300 の場合 system.ven_0x1028.dev_0x020f が選ばれて x86_64 が選択される仕組みになっているのだと思う。ここには、srvadmin-all というメタパッケージがある。

原因を調べてみたが局よく分からなかったし、すべてのサーバから linux.dell.com の yum リポジトリを参照するのはやめたいと思って、DELL OMSA の tarball を使うことにした。

DELL OMSA の最新版は 6.1 なので、tarball をダウンロードする。

$ wget http://ftp.us.dell.com/sysman/OM_6.1.0_ManNode_A00.tar.gz

ダウンロードした tarball を展開すると、その中に setup.sh があるので root 権限で実行する。なお、パラメータをつけないとライセンスの確認やインストールするコンポーネントの選択画面が表示されてしまうので、次のようにすべてのコンポーネントをインストールして時動的に起動するように実行すると便利。

$ sudo setup.sh –express –autostart

ちなみに DELL OMSA をインストールするには、次のパッケージが必要なので事前にインストールしておく必要がある。

  • compat-libstdc++-33
  • curl-devel
  • libxml2-devel
  • smbios-utils

setup.sh では、機種を判定しつつ、DRAC が搭載しているかもチェックして必要な RPM のみをインストールしてくれる。
インストール先は、/opt/dell 以下にインストールする。なお、DELL OMSA をアンインストールしたい場合は、展開したファイルの中の linux/supportscripts/srvadmin-uninstall.sh を実行すればいい。

DELL OMSA が起動すると、1311 ポートで https 経由で DELL OMSA の管理画面からサーバの情報を閲覧することができる。管理画面のアカウントは、CentOS 側のユーザ認証を PAM 経由で行っているので、CentOS に登録してあるユーザでログインすることができる。外部に接続しているサーバの場合には、セキュリティに注意したほうがよい。

DELL OMSA の管理画面の使い方は、この公式日本語ドキュメントを読んでみたほうがよい。

DELL OMSA は、GUI / CLI の二つの形式で、サーバに搭載されているデバイスやその状態を見ることができる。例えば、次のような情報を見ることができる。

  • 搭載 CPU の種類
  • メモリスロットごとのメモリ搭載容量
  • ハードウェア RAID の状態
  • ファンの回転数
  • 電源ユニットの状態
  • 温度
  • 電圧
  • DRAC

SNMP にも対応している。これでもかというくらいハードウェアの情報を取得できる。GUI は、次のような画面(公式日本語ドキュメントより)。

CLI のリファレンスは、ここにあって /opt/dell/srvadmin/oma/bin/ にインストールされている。

CLI で mpt-status を使用せずにハードウェア RAID の状態を取得できるか調べてみたところ、GUI の情報CLI の情報があった。
CLI で、ハードウェア RAID の状態を取得するには、omreport コマンドを使うとできる様子。
まず、使い方を見てみる。

$ sudo /opt/dell/srvadmin/oma/bin/omreport storage -?
Command Description
adisk Display array disk(s) properties. DEPRECATED: please use pdisk
pdisk Display physical disk(s) properties.
vdisk Display virtual disk(s) properties.
controller Display controller(s) properties.
enclosure Display enclosure properties.
battery Display battery properties.
globalinfo Display global storage properties.
connector Display connector properties.

battery があるってことは、BBU も搭載できるハードウェア RAID があるのかもしれない。コントローラ ID を調べる必要があるので、次のコマンドを実行する。

$ sudo /opt/dell/srvadmin/oma/bin/omreport storage controller
Controller SAS 6/iR Adapter (Slot 1)

Controllers
ID : 0
(以下、略)

物理ディスクの状態を取得してみる。

$ sudo /opt/dell/srvadmin/oma/bin/omreport storage pdisk controller=0
List of Physical Disks on Controller SAS 6/iR Adapter (Slot 1)

Controller SAS 6/iR Adapter (Slot 1)
ID : 0:0:0
Status : Ok
Name : Physical Disk 0:0:0
State : Online
Failure Predicted : No
(以下、略)

おぉー、mpt-status を使わなくてもハードウェア RAID の状態を取得できた。Status の部分をチェックするスクリプトを書くと nagios で監視することができそう。

他にも omreport コマンドを使うことでハードウェアの情報を取得できる。

$ sudo /opt/dell/srvadmin/oma/bin/omreport -?

omreport Reports component properties.

The available command(s) are:

Command Description
about Product and version properties.
system System component properties.
rac Command not supported. Use the racadm utility.
chassis Chassis component properties.
storage Display storage component properties.

rac というのは DRAC のことで、DRAC にはアクセスするには racadm ユーティリティを使うみたい。なるほど、これは便利。
こんなにできると DRAC は必要なかったのかもしれない。

ということで、DELL OMSA をすべての物理サーバに導入するために、次のような puppet マニフェストを書いてみた。次の点がポイントになっている。

  • dell-omsa というパッケージは、DELL OMSA の tarball をインストールするだけの独自パッケージ
  • tarball だけにしている理由は、tarball で約 104MB もあるので展開した RPM を作ったら約 1.1GB の RPM になってしまったから
  • /etc/redhat-release は、CentOS のバージョンが違うことがあってファイルの置き換えはできないので sed で頑張ってみた

class dell {
file { “/etc/redhat-release”:
content => “$operatingsystem release $operatingsystemrelease (Final Tikanga)”,
}

package { “dell-omsa”:
notify  => File[“/opt/dell-omsa/setup”],
}

file { “/opt/dell-omsa/setup”:
ensure => directory,
notify => Exec[“dell-omsa-extract”],
}

exec { “dell-omsa-extract”:
command     => “tar xzf /opt/dell-omsa/dell-omsa.tar.gz -C /opt/dell-omsa/setup”,
notify      => Exec[“dell-omsa-setup”],
require     => File[“/etc/redhat-release”],
refreshonly => true,
}

exec { “dell-omsa-setup”:
command     => “/opt/dell-omsa/setup/setup.sh –express –autostart”,
refreshonly => true,
}
}

あとは、GUI でも見れるようにプロキシ経由して設定する予定。

自作サーバもよいけれど、メーカーのサーバだとこういったソリューションが用意されていれて、それはそれで便利だと思った。

# 2009.09.22 追記

いただいたコメントをもとに puppet の manifest を修正しました。

tarbar を展開するリソースは作った方が便利かもしれない。

# 2009.09.23 追記

puppet の manifest を再修正した。

3 Comments

  • perezvon

    Tuesday, 9/22/2009

    /etc/redhat-releaseのところは

    file {
    “/etc/redhat-release”:
    content => “CentOS release 5.2 (Final Tikanga)”
    }

    でいいのでは。

  • perezvon

    Tuesday, 9/22/2009

    あとmkdirも

    file {
    “/opt/dell-omsa/setup”:
    ensure => directory
    }

    でいいと思う。

  • naoya

    Tuesday, 9/22/2009

    > perezvon さん

    /etc/redhat-release は、CentOS release 5.3 のときもあるので、わざわざこうしています。

    mkdir のところは、たしかにそのほうがよいですね。

Comments are closed.