Browse Tag: dell infra

DELL OMSA

DELL から OMSA(OpenManage Server Administrator) という Linux 向けに DELL サーバを管理ツールがあるが、CentOS 5.3 x86_64 でインストールできる人がいるので、もう一度初心に返って試してみた。

まず、セットアップする方法は、DellLinuxWiki を参照した。この Wiki をみると、CentOS は「You must have missed the note under “Supported Operating Systems” 🙂 」とあるが RHEL 5 Update 2 がサポートされているので動くはず。

$ wget -q -O – http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | sudo bash

srvadmin-all というパッケージがあるはずなので、確認してみる。

$ sudo yum install srvadmin-all

No package srvadmin-all available.
Nothing to do

OMSA のパッケージがない、bootstrap.cgi を実行すると GPG キーや yum リポジトリが定義されているので、yum リポジトリを見てみる。

$ sudo cat /etc/yum.repos.d/dell-omsa-repository.repo

[dell-omsa-indep]
name=Dell OMSA repository – Hardware independent
type=rpm-md
mirrorlist=http://linux.dell.com/repo/hardware/latest/mirrors.cgi?osname=el$releasever&basearch=$basearch&dellsysidpluginver=$dellsysidpluginver
gpgcheck=1
gpgkey=http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-dell
http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-libsmbios
enabled=1
failover=priority
bootstrapurl=http://linux.dell.com/repo/hardware/latest/bootstrap.cgi

[dell-omsa-specific]
name=Dell OMSA repository – Hardware specific
type=rpm-md
mirrorlist=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
gpgcheck=1
gpgkey=http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-dell
http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-libsmbios
enabled=1
failover=priority
bootstrapurl=http://linux.dell.com/repo/hardware/latest/bootstrap.cgi

mirrorlist の URL 脳内補完してブラウザで「http://linux.dell.com/repo/hardware/latest/mirrors.cgi?osname=el5&basearch=x86_64&dellsysidpluginver=1」としたら、「http://linux.dell.com/repo/hardware/latest/platform_independent/rh50_64/」が返ってきた。たしかに RPM がいくつかあるけれど、srvadmin-all という RPM がない。

さらに調べてみると、どうやらサーバを買ったときに付属していた CD-ROM に入っているっぽい。CD-ROM なんて捨ててしまったよと思ったら、どうやら DELL のサポートサイトからダウンロードできるらしい。http://ftp.us.dell.com/sysman/ をブラウザでみてみると、ファイル一覧が表示された。OM_* で探してみると、最新版は 6.1.0 だったのでダウンロードした。

$ mkdir om

$ cd om

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

$ tar xf OM_6.1.0_ManNode_A00.tar.gz

$  sudo ./setup.sh

Unsupported Operating System. Can not proceed….

うーん、だめか。もしかして別の方法があるのかもと思って調べてみると、こんな情報があった。

$ wget -q -O – http://linux.dell.com/repo/software/bootstrap.cgi | sudo bash
$ wget -q -O – http://linux.dell.com/repo/hardware/bootstrap.cgi | sudo bash

$ sudo yum install srvadmin-all

No package srvadmin-all available.
Nothing to do

やはり、該当パッケージがない。このメールと同じ現象なんだけれど。

CentOS で DELL OMSA をインストールできる方法を教えてほしい!!!

DELLサーバのハードウェア RAID カードの状態を取得する方法

DELL サーバのハードウェア RAID カード (SAS6iR) の状態を CentOS 5.3 x86_64 で取得する方法を調査してみてやっとできたのでブログに公開しておきます。

まず、試したサーバは DELL PowerEdge R300 という Xeon L5410 x 1、8GB RAM です。このサーバに DELL 製のハードウェア RAID カードが搭載されています。

いろいろとネット情報の調査したところ、やっとこのブログが見つかりました。まさにピンポイントで、mpt-status コマンドをインストールすればよいみたいでした。

まず、mpt-status をコンパイルするには、カーネルの SRPM が必要なのでダウンロードしてきてインストールします。updates に該当するカーネルがない場合は kernel パッケージをアップグレードしておきます。

$  wget http://mirror.centos.org/centos/5/updates/SRPMS/kernel-`uname -r`.src.rpm

$ sudo rpm -i kernel-`uname -r`.src.rpm

そうすると、/usr/src/redhat/SPECS/kernel-2.6.spec がインストールされます。kernel をビルドするために必要なパッケージをインストールしてからビルドします。

$ sudo yum -y install gcc rpm-build redhat-rpm-config unifdef

$ sudo rpmbuild -bp –target=$(uname -m) /usr/src/redhat/SPECS/kernel-2.6.spec

ビルドが終了したら、mpt-status をダウンロードして展開します。

$ wget http://www.drugphish.ch/~ratz/mpt-status/mpt-status-1.2.0.tar.bz2

$ tar jxf mpt-status-1.2.0

mpt-status をビルドするために Makefile を次のように変更します。

— ./Makefile-org      2009-07-13 12:10:14.000000000 +0900
+++ ./Makefile  2009-07-13 12:10:37.000000000 +0900
@@ -4,6 +4,7 @@
KERNEL_PATH_B  := /lib/modules/`uname -r`/build
KERNEL_PATH_S  := /lib/modules/`uname -r`/source
CFLAGS         := -Iincl -Wall -W -O2 \
+                       -I${KERNEL_PATH}/include \
-I${KERNEL_PATH}/drivers/message/fusion \
-I${KERNEL_PATH_B}/drivers/message/fusion \
-I${KERNEL_PATH_S}/drivers/message/fusion

mpt-status をビルドします。

$  make KERNEL_PATH=/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.`uname -i`

ビルドしたら、make install して mpt-status コマンドをインストールして modprobe mptctl すれば使えるようになりますが、他にも RAID が組んであるサーバがあったので RPM にしてみました。

mpt-status の配布サイトに昔のバージョンの SRPM があるのでこれをダウンロードしてきて、インストールします。

$  wget http://www.drugphish.ch/~ratz/mpt-status/RPMS/1.1.6/mpt-status-1.1.6-0.el4.src.rpm

$ sudo rpm -i mpt-status-1.1.6-0.el4.src.rpm

インストールされた mpt-status の SPEC ファイルを次のように変更します。

— mpt-status.spec-org 2006-03-08 17:44:30.000000000 +0900
+++ mpt-status.spec     2009-07-13 21:44:32.000000000 +0900
@@ -1,7 +1,7 @@
Summary: MPT Fusion raid inquiry tool
Name: mpt-status
-Version: 1.1.6
-Release: 0.el4
+Version: 1.2.0
+Release: 0
License: GPL
Group: Applications/System
URL: http://www.drugphish.ch/~ratz/mpt-status/
@@ -13,14 +13,18 @@
Source: http://www.drugphish.ch/~ratz/mpt-status/mpt-status-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root

+Patch0: mpt-status-makefile.patch
+
%description
mpt-status give informations about raid status for LSI Fusion controllers.
This is quite a modified version to the original mpt-status-1.0 package.
%prep
-%setup
+%setup -q
+
+%patch0 -p1

%build
-%{__make}
+%{__make} KERNEL_PATH=/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.%{_arch}

%install
%{__rm} -rf %{buildroot}
@@ -34,8 +38,18 @@
%doc doc/*
%{_sbindir}/mpt-status

+%post
+lsmod | grep mptsas >/dev/null
+if [ “$?” = “0” ]; then
+    echo modprobe mptctl >> /etc/rc.modules
+    chmod +x /etc/rc.modules
+fi
+

mpt-status-makefile.patch というパッチは、さきほど作成した mpt-status の Makefile 用のパッチです。さらに自動的に mpt-status を認識させるために post セクションも追加しています。mpt-status の RPM を作成したらサーバを再起動します。

さっそく、mpt-status を実行してみます。

$ sudo mpt-status

ioc0 vol_id 0 type IM, 2 phy, 465 GB, state OPTIMAL, flags ENABLED
ioc0 phy 1 scsi_id 9 ATA      ST3500320NS      MA08, 465 GB, state ONLINE, flags NONE
ioc0 phy 0 scsi_id 1 ATA      ST3500320NS      MA08, 465 GB, state ONLINE, flags NONE

$ sudo mpt-status -n -s

vol_id:0 OPTIMAL
phys_id:1 ONLINE
phys_id:0 ONLINE
scsi_id:1 100%
scsi_id:0 100%

ちゃんと動いているようです。あとは、実際にホットスワップのハードディスクをファイルオーバーさせて mpt-status の状態がどう変わればよいかをチェックすればよさそうです。

mpt-status.c を見ると、次の状態が定義されています。

  • MISSING
  • NOT_COMPATIBLE
  • FAILED
  • INITIALIZING
  • OFFLINE_REQUESTED
  • FAILED_REQUESTED
  • OTHER_OFFLINE
  • UNKNOWN

念のため、mpt-status の README を読んでおくといいと思います。

あとは、自動的に監視できるように cron や snmp や nagios-nrpe でチェックするのがいいと思います。

ハードウェア RAID も壊れることがあるので、どのメーカーのハードウェア RAID を使っていてもちゃんと監視するように設定したいものです。

他にも DELL から提供されている OMSA (Open Manage Server Administrator) というパッケージを使うとできるらしいのですが、CentOS 5.3 x86_64 ではインストールすることができませんでした。

DELL ラックサーバの選び方

仕事では、おもに DELL 製の 1U ラックサーバを使っているけれど、この度サービスが成長してきてサーバの増設が必要になってきた。そこでいい機会なので、今まで検討したことがない機種を含めてさまざまなパターンの見積りをたくさんとって検討してみた。

具体的には、次の機種で検討した。

ちなみに今まではサーバの用途にまったく関係なく、次のような同じスペックのサーバを使っていた。

まず、それぞれのラックサーバの特徴をまとめてみる。かなり個人的な主観も含まれているので、実際の仕様は、DELL の公式ページでチェックしたほうがいいです。

最初にコストパフォーマンスにすぐれているというか単に一番安い R200。

  • 3 機種の中でももっとも安くかえる(Celeron だとオンライン価格 49,800 円)
  • Core 2 Duo を選択する場合は、R300 と比べて R200 の方が安い(ただし Core 2 Duo の型番は違う)
  • 最大 RAM 容量は 8GB まで、スロット数は 4 つ
  • トランセンドのバルク RAM が使えるので、8GB にするには 22,000 円程度のコストで増設可能
  • ネットワーク経由で遠隔から電源のオフオンを制御できる DRAC というカードがあるけれど、R200 は DRAC4 という古いバージョンのものしかサポートされていない(電源のオフオンはできるので充分だけれど)
  • R200 に DRAC4 をつけると、仕様によってオンボードの VGA から信号が出力されないのですこしはまる(これはかなりはまってテクニカルサポートに問い合わせて対応してもらった)
  • DRAC4 は、DRAC5 に比べてすこし高い(DRAC4 はだいだい 22,000 円くらいで、DRAC5 はだいだい 12,000 円くらいだった)
  • 筐体が小さいので、一人でもラックにマウントしやすい(奥行きは R300 の 2/3 程度)
  • レールキットを一番シンプルなのにするとコストは安いけれど、そのレールキットだとマシンをメンテするときにラックからはずさないとできない

次は、R300。

  • Xeon クアッドコア低電圧版である L5410 を選択することができる(R200 の Xeon クアッドコアと消費電力を比較したけれどそれほど大きくは違っていなかった)
  • 最大 RAM 容量は 24GB まで、スロット数は 6 つ
  • トランセンドのバルク RAM を使うことができない(実際に試したら、警告音がなって起動しなかった)
  • RAM は、DELL 純正品の選択肢しかないので若干高い
  • ホットスワップ対応のハードディスクを取り付ける選択肢がある
  • R200 と比べてでかく重いので、一人でマウントするのはちょっと危険
  • 電源スイッチまわりがかっこよく、LED も薄い青でかなり高級な感じがする(笑)フロントカバーもかっこいい(必要なく買っていないけれど)

そして、1950 III。

  • 2CPU 搭載可能
  • 最大 RAM 容量は 64GB まで、スロット数は 8 つ(ということは 8GB x 8 にしないと 64GB にはならないが、オンラインで見積りをしてみると素敵な価格になりますた!)
  • コスト的には、今はまだまだ手が出せないかなぁ

あとどのモデルのハードディスクもまだ SSD の選択肢がなく、SATA か SAS の選択になって SAS では 15,000 回転のハードディスクを選択することができるというのが特徴。

さて、今回新しいサーバを選択しようと思ったのは、実際に運用してみた結果、いろいろな問題点に気がついたから。具体的には、次のとおり。

  • ロードバランサー(LVS + keepalived) に、Xeon クアッドコアはもったいなさすぎるし、RAM も 5GB もいらないなぁ(ニコニコ大百科では、EeePC で動いていると言っているし)
  • ロードバランサーはもっと低スペックにして、ウェブサーバにまわしたいなぁ
  • マスターデータベースサーバは、バックアップサーバがないけれど念のため RAID にしておきたいなぁ
  • データベースサーバ(特にスレーブ)は、将来のことを考えて RAM をたくさん積みたいし、ディスクは早いほうがいいな

そんなことを考えつついろいろと見積りをとってみた結果、個人的に次のようなことが分かった。

  • CPU に Xeon クアッドコアを選ぶと約10万くらい上乗せされるので、Xeon クアッドコアを選ぶときは R300 とそれほどコストパフォーマンスが変わらないので、R200 に比べて R300 の方が低電圧版であることを考えるとお得
  • CPU を Core 2 Duo にするなら、R200 の方がコストパフォーマンスがいい
  • DELL 純正メモリがかなり高価だという思っていたけれど、それほど大きく値段が変わらない(時期や購入数にとって割引されたりするとほとんど変わらなくなるし、RAM を自分で増設するコストも考えるとバルク RAM はむしろ割高になる傾向になる)
  • ハードディスクで SAS 15000 回転を選択した場合は、R200 に比べて R300 の方が安い
  • ハードディスクで SATA 1TB 7200 回転 x 2 を純正品で購入するとかなり高いなぁ(個人的に計算したら 2 万円くらい違うが、バルクのハードディスクを買ってしまうとサーバにとりつけるためのネジを自分で用意しないといけないし保証も受けられないという問題があるので難しいけれど)
  • SATA も SAS もそれほどコストに差はないので容量などの兼ね合いで決めるのがよい

こんなことが分かってきた。そこで、現状すでに稼働しているサーバを最大限に使うこと、そしてすこし先のことを考えて、現段階の結論としてサーバの用途ごとにスペックを次のように分けていくことにした。

  • ロードバランサー
  • R200: CPU Core 2 Duo E7300, 82GB RAM (28GB x 4)、ディスクレス
  • ウェブサーバ
  • R200: Xeon X3330, 4GB RAM, SATA 160GB 7,200 RPM x 1
  • マスターデータベースサーバ
  • R200: Xeon X3330, 8GB RAM, SATA 1TB 7,200 RPM x 2
  • スレーブデータベースサーバ
  • R300: Xeon L5410, 8GB RAM, SAS 300GB 15,000 RPM x 1

とはいっても実は今はウェブサーバとスレーブサーバが同居しているという構成でこのままウェブサーバを増やしていくとレプリケーションの負荷も大きくなっていることは考えられるので上の基本構成をふまえつつ、サーバの負荷をちゃんとモニタリングしてサーバの台数をなるべく少なくおさえつつ、かつリソースを最大限に有効活用したインフラを構築していこう。

# 追記(2009/04/09)
– R200 で Xeon Quad Core を選択した場合、R300 で Xeon Quad Core と選択するのと比べてコストパフォーマンスがあまりよくないことが判明(具体的には1万円から2万円くらいしか変わらない)
– R200 で遠隔で BIOS 操作やリブートができる DRAC4 はとても扱いにくく(CentOS 上からアップデートできない、ビデオの出力に制限があるなど)、R300 の DRAC5 の方が圧倒的に扱いやすくて遠隔操作もしやすい
– SC1435 という AMD Opteron プロセッサのモデルのコストパフォーマンスがとてもよいが、DRAC を接続できないという短所がある(はてなでは、SC1435 を 80 台近く導入しているとのこと)
– これらのことから考えると、R200 の変わりに SC1435(CPU x 2) を選択することに方針を変更することにした
– SC1435 は、CPU x 2 なので、Xen で仮想化して投入する
– ロードバランサーのメモリを増やして memcached + repcached をのせる予定