2017年5月11日

ブロードバンドタワーで Scality RING を担当しているポールです。
今回は scaldisk identify コマンドという RING 6 で追加された、目視での内蔵ドライブ識別に役立つ機能を紹介します。

Scality RING は標準的な IAサーバで動作する Software Defined Storage なので、ハードウェアに特化した機能は基本的にはないのですが、この機能は別です。サーバ内蔵ドライブを識別するには、サーバごとに異なる機能を呼び出す必要があるからです。では、なぜこのような機能が必要になるのか、ということなのですが、、、こういうシチュエーションを想像してみてください。(前提が無理やりな感もありますが、そこはご容赦ください)

  • ハードディスクの交換を行う作業員が、サーバの目の前に行った時に、どのドライブもハードウェアの故障を示すアンバーのLED点灯がありません。そのため、どのドライブを交換すればよいか見当がつきません。もちろん、壊れていないドライブを無理やり交換するわけにはいきません。
  • 作業員が依頼側に電話し、どのドライブを交換すればよいか、確認します。
  • 一方で、ハードディスクの交換を依頼した側の担当者は Scality RING の管理だけを担当していて、サーバのコンフィグを細かく把握していません。ssd1, disk3 などの RING 側で認識している名称は把握していますが、それらがサーバのどのスロットに搭載されたドライブなのかを把握していません。
  • おもむろに、電話口から意外な答えが。。。「実は依頼した私も、交換すべきドライブがどのスロットに搭載されているのかはわからないのですが、今からドライブの LED を点灯させますので、LED が点灯したドライブを交換してください!」
  • 直後にドライブの LED が点灯し、無事ハードディスクの交換が実施されました。めでたしめでたし。。。

このようなシチュエーションは、全体を把握しきれていない夜間の運用担当者が、誰かに確認して進めることもできず、、、というような無理やりな状況でしか起こりえないかもしれませんが、あまり細かな突っ込みは考えず、無理やり想像を膨らませていただければ幸いです。

さて、次はシチュエーションではなく技術的な前提ですが、サーバ内蔵ドライブの LED を点灯(もしくは点滅)させる機能というのは、元々は RAID Card 側に備えられている機能です。scaldisk identify コマンドは、RAID Card を制御するベンダーごとのユーティリティを使って、LED の点灯を行います。そのため、対応する RAID Card の種類が限定されています。以下、RING のマニュアルから抜粋します。

RAID Card Plugin Requirement
HPE SmartArray PX(4|2)X The python-scaldisk-lsm-plugin package must be installed from the Scality repository. The libstoragemgmt packages it depends on are included in the repository as third-party software for CentOS 6 and 7, but hpssacli/ssacli software (version 2.60-19.0 is currently available) must be downloaded from the HPE website and installed separately. Note: the first plugin listed on the HPE website may not be the most recent version.
Dell PERC H730/H830 The python-scaldisk-perccli-plugin package must be installed, available in the Scality repository starting with RING 6.4.2 . The perccli software (version 1.17.10-1 is currently available) must be downloaded from Dell’s site and installed separately.
LSI RAID cards configured through the storcli command The python-scaldisk-storcli-plugin package must be installed. The storcli software (version 1.21.06 is currently available) must be downloaded from the Broadcom website and installed separately.

3種類のサーバに対応しています。要するに、HPE ProLiant シリーズと DELL PowerEdge シリーズ、および LSI 社(現 Broadcom 社)製 RAID Card を搭載したサーバ、という分類になります。

ということで、せっかくなので、私も急ぎ使えるサーバを集めて3種類を試してみることにしました。次の3サーバです。

Server RAID Card RAID Card ユーティリティ
HPE Apollo 4200 G9 Smart Array P840ar hpssacli-2.40-13.0
DELL PowerEdge R730xd PERC H730P Mini perccli-1.11.03-1
Fujitsu PRIMERGY RX200 S8 RAID Ctrl SAS 6G 1GB (D3116C) storcli-1.21.06-1

それぞれに RING 6.4.2 をインストールし、対応したプラグイン(python-scaldisk–plugin) を導入して scaldisk identify を試しました。コマンドの文法は次のようになります。

usage: scaldisk identify [-h] (-d DISK | -m MOUNTPOINT | -p) [-D DIRECTORY]
                         [--on] [--off]

-d で指定するディスク名は、ssd1, disk3, g1disk2 などの RING で使用する名称を指定します。-m で指定する場合は、/scality/ssd1, /scality/disk3, /scality/g1disk2 などのマウントポイントを指定します。-p は OOS_PERM (Out Of Service PERManent)のマークがつけられたディスクすべて、を意味します。–on が点灯、–off が消灯です。RAID Card 側で認識している識別情報を使わずに済むのが重要なポイントになります。

試してみたところ、Apollo 4200 G9 と PowerEdge R730xd のパターンは、scaldisk identify が問題なく動きました。ただし LED 点灯のしかたが異なります。Apollo の場合、元々は点灯していなかった青色LEDが点灯しますが、PowerEdge では元々緑色で点灯していたLED が緑色で点滅(blink)する、という違いがありました。どちらもアクセスLEDとは別のLEDです。写真を載せようかとも思ったのですが、PowerEdge のLED 点滅を1枚の写真にするのは難しいので、文字の説明で完結させておきます。

一方で、RX200 S8 のパターンは、scaldisk identify が動作しませんでした。理由は、搭載している RAID Card が識別用の LED 点灯機能をもっていない(!)ということです。この辺りは実際に試してみるまでわかりずらい点だと思います(実際私は気付けませんでした)。HPEサーバおよびDELLサーバ以外では、まず RAID Card に識別用LEDの機能があることを確認してください。いざというときに使えるか使えないかで、どれほどの差があるかは正直微妙なところですが、ピンポイントで役に立つことがあるかもしれず、、、という辺りだと思います。

最後に、この LED 点灯に関する最重要なポイントを書いておきます。

LED 点灯は、ドライブ識別用の機能ですが、一度 LED を点灯させたあとに、今どのドライブ(もしくはスロット)のLEDが点灯しているのか、調べる方法がありません。??? と思った方向けにもう少し噛み砕いて説明すると、LED を点灯させるコマンドと、消灯させるコマンドはあるのですが、どのLEDが点灯しているのか(もしくは点灯していないのか)をRAIDコントローラは教えてくれない、ということです。なので、点灯していることを確認するにはサーバの目の前まで行っての目視が必要です(!)。また、リモートから消灯した状態に全体をもれなくリセットするためには、すべてのドライブについてLEDを消灯させる必要があります。

実際のところ、私はこのことに気づくまで検証を甘く考えていたのですが、LED 点灯の現実に気付き、テストのためにDCを3日間訪問することになりました。自社のDCはたまたま電車で数駅の比較的近所なのでよかったのですが、地理的に離れた場所にサーバを設置している場合は非現実的なテストになりかねませんので、くれぐれもご注意ください。

本ブログの情報につきましては、自社の検証に基づいた結果からの情報提供であり、
品質保証を目的としたものではございません。

投稿者: ポール

ブロードバンドタワーで Scality RING を担当。ストレージ業界の知り合いからはポールと呼ばれているが、本人も由来はよくわからない。得意領域はデータベースとストレージ。