ShinobiLayer: Bare Metal ServerでRAID構成を確認する(LSI MegaRAID/AVAGO MegaRAID編）

#はじめに
SoftLayerのBare Metal Serverでは、注文時にウィザードを使って自由にRAID構成を組むことができます。RAIDカードとしては、AdaptecやLSI MegaRAIDなどが使われているようですが、**執筆時点での東京DCでは**、後者のLSI MegaRAIDが選択されている傾向があるように思います。
そこで、このLSI MegaRAIDで構成されたストレージを実環境で確認する方法を紹介したいと思います。

2015/04/09追記: Adaptec RAIDについては、http://qiita.com/testnin2/items/e30e75e3399b6ac79101 を参照のこと。
2016/07/19追記： LSI MegaRAIDは、AVAGO MegaRAIDに改名されています。

#1. カスタマーポータルでの確認（執筆時では非推奨）
Devices -> Device List から該当サーバーを選択すると、下記のようなシステム構成を確認することができます。Drive Controller(RAID Controller)としてLSI製のものが使われているのは分かりますが、詳細がよく分かりません。
![RAID_01.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/4d30c04a-270e-6b9f-086b-bd194236f8a7.jpeg)

また、このConfiguration画面左上の"Modify Device Configuration"を選択することで、RAIDが使われていることは分かりますが、結局どういうRAID構成になっているのかが分かりません。*しかも、（少なくとも本執筆時点では）本当はRAID5の筈なのにRAID0が選ばれてしまっているようにも見えてしまいます。。。*
![RAID_02.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/b6acb240-9b9b-eff3-4fd5-8a403925b360.jpeg)

SoftLayerはちょうど希望の製品に対する在庫がなかった場合は、購入時の構成をupgradeして提供してくれることがあります。例えば500GB SATAの在庫がない時には、1TBのSATAを同額で割り当ててくれます。問題は、（少なくとも本執筆時点では）実際は1TBのSATAであってもCustomer Portalでは購入した500GB SATA x 2のままで表示されてしまっていることです。500GB SATA x 2でRAID1構成を注文したつもりが、OSからは1TBとして認識されているため、RAID0で500GB x 2を渡されたんじゃないかと不安に思う人もいるでしょう（実際は、500GBのHDDの在庫が無かったために、1TB x 2でRAID1を提供しているかもしれない）。

自環境について正しく構成を理解することは、システム管理の上で必須です。というので、あまりCustomer Portalからは詳細な構成内容は分からないので、下記以降の方法で確認したほうが良いでしょう。

#2. IPMIを使ったMegaRAID Configuration Utilityによる確認例
SoftLayerのBare Metal ServerではIPMIを使って起動時のコンソールを確認することができます。IPMI Consoleの起動方法は[こちら](http://qiita.com/testnin2/items/921f89b4ba139f0386ba)をご参照下さい。サーバー起動時に下記の画面で、**Ctrl+R**を押せば
![MegaRaid01_Cntrl_R.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/3015ebca-4059-259b-8187-18a3a14f006d.jpeg)

LSI MegaRAIDにおける構成の詳細を確認することができます。4つのディスクを使ってRAID5で構成されていますね！
![MegaRaid02.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/b4a96795-1b2b-5f70-89f3-9ef9bbdeeda6.jpeg)

また、各々のディスクはSATAが利用されていることが確認できます。
![MegaRaid03.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/03752982-2889-fca8-bd71-afa51a246da0.jpeg)

（2016/07/19追記。製品名がLSI MegaRAIDからAVAGO MegaRAIDに変更されています）また、FirmwareバージョンはPropertiesタブから確認可能です。以下の例の場合は、4.650.00-6121が導入されていることが分かります。
![20160719_MegaRaid07.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/b33dd907-2688-be34-daf2-8d60e51e2727.jpeg)


#3. コマンドによる確認例

いやいや、、、毎回IPMIでコンソール画面にログインして確認するなんて面倒なんだけど、、、という方にはOSからRAIDユーティリティーコマンドを実行して確認することも可能です。RAID環境を構築したサーバーには、こうしたユーティリティーが同梱されています。

####1. OSコマンドでRAID Controller情報の確認する

```
# parted -l
Model: LSI MR9361-8i (scsi)
Disk /dev/sda: 2999GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  269MB   268MB   ext2                  boot
 2      269MB   1343MB  1074MB  linux-swap(v1)
 3      1343MB  2999GB  2998GB  ext4
```
```
# dmesg |grep -i LSI
scsi0 : LSI SAS based MegaRAID driver
scsi 0:0:0:0: Direct-Access     LSI      MR9361-8i        4.22 PQ: 0 ANSI: 5
scsi 0:2:0:0: Direct-Access     LSI      MR9361-8i        4.22 PQ: 0 ANSI: 5
```
```
# lspci |grep -i RAID
03:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)
```

####2. storcli64コマンドでRAID環境概要を確認する

一般には、各社からRAIDカードの管理ユーティリティーツールが提供されていますが、もし
LSI MegaRAIDを使用しているのであれば、`/opt/MegaRAID/storcli/storcli64`というツールがOS上に導入されている筈なので、これを使って更に詳細を確認していきましょう。ただし、VMware環境では、[こちら](http://qiita.com/testnin2/items/cf0a6846240b7e955a4b)を参照してstorcliコマンドを別途導入する必要があります。

```
# /opt/MegaRAID/storcli/storcli64 show
Status Code = 0
Status = Success
Description = None

Number of Controllers = 1
Host Name = xxxxx.xxxxx.com
Operating System  = Linux2.6.32-504.8.1.el6.x86_64

System Overview :
===============

--------------------------------------------------------------------
Ctl Model   Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS  EHS ASOs Hlth
--------------------------------------------------------------------
  0 9361-8i     8   4   1     0   1     0 Opt On  1&2 Y      3 Opt
--------------------------------------------------------------------

Ctl=Controller Index|DGs=Drive groups|VDs=Virtual drives|Fld=Failed
PDs=Physical drives|DNOpt=DG NotOptimal|VNOpt=VD NotOptimal|Opt=Optimal
Msng=Missing|Dgd=Degraded|NdAtn=Need Attention|Unkwn=Unknown
sPR=Scheduled Patrol Read|DS=DimmerSwitch|EHS=Emergency Hot Spare
Y=Yes|N=No|ASOs=Advanced Software Options|BBU=Battery backup unit
Hlth=Health|Safe=Safe-mode boot

```

この結果から、

* Controller: 0番
* RAIDカードの型番: 9631-8i
* 物理ディスクの数(PD): 4
* ホットスペアの有無: 有

などが確認できます（コマンド結果の下に表の説明が書かれているので、この内容が参考になります）

####3. storcli64で全てのコントローラの情報を確認する

```
# /opt/MegaRAID/storcli/storcli64 /call show
Generating detailed summary of the adapter, it may take a while to complete.

Controller = 0
Status = Success
Description = None

Product Name = LSI MegaRAID SAS 9361-8i
Serial Number = SV43828293
SAS Address =  500605b00993a960
PCI Address = 00:03:00:00
System Time = 02/04/2015 02:32:56
Mfg. Date = 09/17/14
Controller Time = 02/04/2015 02:32:56
FW Package Build = 24.2.1-0044
BIOS Version = 6.14.05.3_4.16.08.00_0x06030504
FW Version = 4.220.80-3557
Driver Name = megaraid_sas
Driver Version = 06.803.01.00-rh1
Vendor Id = 0x1000
Device Id = 0x5D
SubVendor Id = 0x1000
SubDevice Id = 0x936C
Host Interface = PCIE
Device Interface = SAS-12G
Bus Number = 3
Device Number = 0
Function Number = 0
Drive Groups = 1

TOPOLOGY :
========

------------------------------------------------------------------------
DG Arr Row EID:Slot DID Type  State BT     Size PDC  PI SED DS3  FSpace
------------------------------------------------------------------------
 0 -   -   -        -   RAID5 Optl  N  2.728 TB dflt N  N   none N
 0 0   -   -        -   RAID5 Optl  N  2.728 TB dflt N  N   none N
 0 0   0   252:0    24  DRIVE Onln  N  931.0 GB dflt N  N   none -
 0 0   1   252:1    21  DRIVE Onln  N  931.0 GB dflt N  N   none -
 0 0   2   252:2    22  DRIVE Onln  N  931.0 GB dflt N  N   none -
 0 0   3   252:3    23  DRIVE Onln  N  931.0 GB dflt N  N   none -
------------------------------------------------------------------------

DG=Disk Group Index|Arr=Array Index|Row=Row Index|EID=Enclosure Device ID
DID=Device ID|Type=Drive Type|Onln=Online|Rbld=Rebuild|Dgrd=Degraded
Pdgd=Partially degraded|Offln=Offline|BT=Background Task Active
PDC=PD Cache|PI=Protection Info|SED=Self Encrypting Drive|Frgn=Foreign
DS3=Dimmer Switch 3|dflt=Default|Msng=Missing|FSpace=Free Space Present

Virtual Drives = 1

VD LIST :
=======

------------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC     Size Name
------------------------------------------------------------
0/0   RAID5 Optl  RW     No      RWBD  -   2.728 TB RAID5-A
------------------------------------------------------------

Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency

Physical Drives = 4

PD LIST :
=======

--------------------------------------------------------------------------
EID:Slt DID State DG     Size Intf Med SED PI SeSz Model               Sp
--------------------------------------------------------------------------
252:0    24 Onln   0 931.0 GB SATA HDD N   N  512B ST1000NM0033-9ZM173 U
252:1    21 Onln   0 931.0 GB SATA HDD N   N  512B ST1000NM0033-9ZM173 U
252:2    22 Onln   0 931.0 GB SATA HDD N   N  512B ST1000NM0033-9ZM173 U
252:3    23 Onln   0 931.0 GB SATA HDD N   N  512B ST1000NM0033-9ZM173 U
--------------------------------------------------------------------------

EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded


Cachevault_Info :
===============

------------------------------------
Model  State   Temp Mode MfgDate
------------------------------------
CVPM03 Optimal 27C  -    2014/08/03
------------------------------------

```

####4. 全てのコントローラに所属する全てのvirtual drive情報を確認する
```
# /opt/MegaRAID/storcli/storcli64 /call/vall show
Controller = 0
Status = Success
Description = None


Virtual Drives :
==============

------------------------------------------------------------
DG/VD TYPE  State Access Consist Cache sCC     Size Name
------------------------------------------------------------
0/0   RAID5 Optl  RW     No      RWBD  -   2.728 TB RAID5-A
------------------------------------------------------------

Cac=CacheCade|Rec=Recovery|OfLn=OffLine|Pdgd=Partially Degraded|dgrd=Degraded
Optl=Optimal|RO=Read Only|RW=Read Write|B=Blocked|Consist=Consistent|
R=Read Ahead Always|NR=No Read Ahead|WB=WriteBack|
AWB=Always WriteBack|WT=WriteThrough|C=Cached IO|D=Direct IO|sCC=Scheduled
Check Consistency


```


storcli64には他にも色々なオプションがある（例えば 単にshowではなくshow allにするとより詳細を確認できる）ので、興味があれば幾つか試してみてください。

#終わりに
WindowsだとGUIになっていたり、AdaptecのRAIDカードだと`arcconf`コマンドだったりとか、環境によって取得方法はありますが、どちらにしてもRAID使用時にはRAID utilityコマンドが環境に同梱されているので、それらのツールを使って構成を事前に確認しておくことは重要そうです。