#1. はじめに
SoftLayerはBare Metal Serverが利用できるというのが非常に特徴的であり、サポートにリクエストしてBIOS設定も変更することができます(例えばブートシーケンスを変更する、Hyper-Threadingを無効にする、等)。ただし、BIOSパスワードがないとBIOS設定は見れないし、そもそもBIOSパスワードが分かっていても、BIOS設定をGUI画面から全比較していくのは非常に大変な作業です。そこで、BIOS設定情報を何とかテキスト形式で採取しようというのが、この記事の趣旨です。
#2. Supermicro アップデートマネージャ (SUM)とは
SoftLayerのBare Metal ServerはSupermicroのマザーボードを利用しています。よってSupermicro提供の便利なツールが使えると良さそう・・・と思って見つけたのがSupermicro アップデートマネージャ (SUM)です。以下の記事でも紹介されていますが、要はSupermicro製のマザーボードであればBIOSの設定や情報取得ができるようです。
http://tech.blog.ccmp.jp/2015/12/supermicro-update-manager.html
本来は有償版のようですが、下記サイトから評価版をリクエストできるようです。
評価版といえども、特に有償版と違って機能差はないようです。
https://www.supermicro.com/solutions/SMS_SUM.cfm
#3. SUMのインストール方法
今回は、同一アカウント内に、対象の物理サーバーとは別に仮想サーバー(CentOS6.8)をプロビジョニングし、そこにSUMを導入してみます。っていうか、ファイルを展開するだけです。
# tar -zxvf sum_1.6.0_Linux_x86_64_20151106.tar.gz
# cd sum_1.6.0_Linux_x86_64
#4. Sumを使ってBIOS情報を取得してみる
SoftLayerのCustomer Portalでは、物理サーバーのIPMI情報はDevice Details -> Remote Mgmtから確認することができます。以下の例だと、IPMIのManagement IPが10.132.2.248であり、ユーザーはrootであることが分かります。(パスワードも確認できますが、ここでは隠しています)
以下の-pのところは、パスワードを指定してください。残念ながら権限が少ないというエラーが出てしまっていますね。
sum -i {IPMIのアドレス} -u root -p {IPMIのパスワード} -c GetCurrentBiosCfgTextFile --file {出力ファイル名}
# ./sum -i 10.132.2.248 -u root -p ******** -c GetCurrentBiosCfgTextFile --file current.txt
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2015/11/06) (x86_64)
Copyright©2015 Super Micro Computer, Inc. All rights reserved
********************************<<<<<ERROR>>>>>*********************************
ExitCode = 87
Description = IPMI standard error.
Program Error Code = 260.2
Error message:
root privileges are limited. Only users with the Administrator level
privileges can perform OOB tasks.
********************************************************************************
#5. チケットを起票し、rootユーザーの権限を強くしてもらう。
仕方がないので、例えば以下のようなチケットを発行し、rootユーザーに対して権限を強くしてもらいます。ちなみに、rootユーザーよりADMINユーザーの方が権限が強いのですが、ADMINユーザーはSoftLayerの中の人用なので、rootユーザーをADMINユーザー相当に強くしてもらうというリクエストを発行します。
Title: Add the admin privileges to the IPMI root user
Contents: Could you please change our IPMI root users privileges on these servers to administrator, because we are sometimes requested to use stronger privileges when we access IPMI ?
#6. Sumを使ってBIOS情報を取得してみる(再挑戦)
# ./sum -i 10.132.2.248 -u root -p ******** -c GetCurrentBiosCfgTextFile --file 10.132.2.248.txt
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2015/11/06) (x86_64)
Copyright©2015 Super Micro Computer, Inc. All rights reserved
..........
File "10.132.2.248.txt" is created.
今度はうまくいったようです。例えば、以下の結果からHyper-ThreadingやAES-NIが有効になっていることが分かりますね!
# less 10.132.2.238.txt
#Please refer to SUM User's guide '4.1 Format of BIOS Settings Text File' for usage.
[Advanced|Boot Feature]
Quiet Boot=01 // Please enter the value in 2 hexadecimal digits. Default value is <<<01>>>
AddOn ROM Display Mode=01 // *01 (Force BIOS), 00 (Keep Current)
Bootup NumLock State=01 // *01 (On), 00 (Off)
Wait For "F1" If Error=01 // 00 (Disabled), *01 (Enabled)
INT19 Trap Response=01 // *01 (Immediate), 00 (Postponed)
Re-try Boot=00 // *00 (Disabled), 01 (Legacy Boot), 02 (EFI Boot)
Watch Dog Function=00 // *00 (Disabled), 01 (Enabled)
Power Button Function=01 // *01 (Instant Off), 00 (4 Seconds Override)
Restore on AC Power Loss=02 // 00 (Stay Off), 01 (Power On), *02 (Last State)
[Advanced|CPU Configuration]
Clock Spread Spectrum=00 // Please enter the value in 2 hexadecimal digits. Default value is <<<00>>>
Hyper-Threading (ALL)=00 // 01 (Disable), *00 (Enable)
Cores Enabled=00 // Please enter the value in 2 hexadecimal digits. Default value is <<<00>>>
Execute Disable Bit=01 // 00 (Disable), *01 (Enable)
PPIN Control=01 // 00 (Unlock/Disable), *01 (Unlock/Enable)
Hardware Prefetcher=01 // *01 (Enable), 00 (Disable)
Adjacent Cache Prefetch=01 // *01 (Enable), 00 (Disable)
DCU Streamer Prefetcher=01 // *01 (Enable), 00 (Disable)
DCU IP Prefetcher=01 // *01 (Enable), 00 (Disable)
Direct Cache Access (DCA)=02 // 00 (Disable), 01 (Enable), *02 (Auto)
X2APIC=00 // *00 (Disable), 01 (Enable)
X2APIC_OPT_OUT Flag=00 // *00 (Disable), 01 (Enable)
AES-NI=01 // 00 (Disable), *01 (Enable)
Intel Virtualization Technology=01 // 00 (Disable), *01 (Enable)
(以下略)
#7. その他情報取得方法
# ./sum -i 10.132.2.238 -u root -p xxxxxxxx -c GetBiosInfo
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2015/11/06) (x86_64)
Copyright©2015 Super Micro Computer, Inc. All rights reserved
....
Managed system...........10.132.2.238
Board ID.............0844
BIOS build date......2015/12/17
# ./sum -i 10.132.2.248 -u root -p xxxxxxxx -c GetBMcInfo
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2015/11/06) (x86_64)
Copyright©2015 Super Micro Computer, Inc. All rights reserved
....
Managed system...........10.132.2.248
BMC type.............X10_ATEN
BMC version..........03.26
# ./sum -i 10.132.2.248 -u root -p xxxxxxxx -c GetBMcCfg --file 10.132.2.248_bmccfg.txt
Supermicro Update Manager (for UEFI BIOS) 1.6.0 (2015/11/06) (x86_64)
Copyright©2015 Super Micro Computer, Inc. All rights reserved
.........
.............................
File "10.132.2.248_bmccfg.txt" is created
# grep X10 10.132.2.248_bmccfg.txt
<BoardPartNum>X10DRU-i+</BoardPartNum>