Category Archives: サーバ - Page 2

ネットワーク上にあるhpサーバのiLO IPアドレスとライセンスを収集するスクリプト


hpサーバをリモートから制御するために使用するiLO。
稼働させたあとにIPアドレスを確認するのがめんどくさい。
そういう場合に、総当たりでiLOのIPアドレスを確認するスクリプトがあった。

NachoTech Blogの「How to find all the iLO’s on your network」にあるfindilosである。

早速ダウンロードして実行してみる。

[root@adserver ~]# ./findilos 172.17.17.0/24
Scanning...

--------------- ------ -------- ------------ -------------------------
iLO IP Address  iLO HW iLO FW   Server S/N   Server Model
--------------- ------ -------- ------------ -------------------------
172.17.17.xxx   N/A    1.26     CN71xxxMxx   ProLiant DL360 G7

1 iLOs found on network target 172.17.17.0/24

[root@adserver ~]#

iLO HWのモデル名は拾ってくれない。
blogのコメントを確認していくと、元のスクリプトはiLO-2までしか対応しておらず、その後のバージョンについてはコメント欄にある修正を実施すれば良いようだ。

また、iLO Advanceを買っている場合に、そのライセンスコードを表示するための案も提示されていた。
ただ、スクリプト例は汚い実装となっていて、せっかくの元スクリプトを活かしていない形だったので、元スクリプトの実装に従ってライセンスを表示するバージョンを作成した。

その実行例がこちら

[root@adserver ~]# ./findilos 172.17.17.0/24
Scanning...

--------------- ------ -------- ------------ ------------------------- -------------------- -----------------------------
iLO IP Address  iLO HW iLO FW   Server S/N   Server Model              iLO Edition          iLO Licence Key
--------------- ------ -------- ------------ ------------------------- -------------------- -----------------------------
172.17.17.xxx   iLO-3  1.26     CN71xxxMxx   ProLiant DL360 G7         iLO 3 Advanced       xxxxx-xxxxx-xxxxx-xxxxxx-xxxxx

1 iLOs found on network target 172.17.17.0/24

[root@adserver ~]#

スクリプトの修正例は以下

#!/bin/bash
#
# findilos - Search a local network segment for iLOs
#            The iLO is the Integrated Lights-Out management processor
#            used on HP ProLiant and BladeSystem servers
#
scriptversion="1.0"
#
# Author: iggy@nachotech.com
#
# Website: http://blog.nachotech.com
#
# Requires: tr sed expr curl nmap
#
# Tested with: Nmap 4.20, curl 7.17.1, RHEL4
#
# Note: Discovery of an iLO is dependent upon the Virtual Media port
#       being set to the default of 17988.  If this has been changed
#       by the iLO administrator, then this script will NOT find it.
#
#       Also, if the iLO XML Reply Data Return has been Disabled by
#       the iLO administrator, this script will not be able to
#       gather any information about the server.  It will still be
#       discovered, but all you will see is its IP address.
#

# GLOBAL VARIABLES

scriptname="findilos"
iloips="/tmp/tmpilos.$$"
iloxml="/tmp/tmpiloxml.$$"
ilohwvers="/tmp/tmpilohwvers.$$"

declare -i ilosfound=0

# FUNCTIONS

function parseiloxml {
  fgrep "$1" $iloxml > /dev/null 2>&1
  if [ $? -ne 0 ]
  then
    # tag not found in xml output, return empty string
    parsedstring="N/A"
  else
    # tag was found - now we parse it from the output
    tempstring=$( cat $iloxml | tr -d -c [:print:] | sed "s/^.*<$1>//" | sed "s/<.$1.*//")
    # trim off leading and trailing whitespace
    parsedstring=`expr match "$tempstring" '&#91; \t&#93;*\(.*&#91;^ \t&#93;\)&#91; \t&#93;*$'`
  fi
}

function is_installed {
  which $1 > /dev/null 2>&1
  if [ $? -ne 0 ]
  then
    printf "\nERROR: %s not installed.\n\n" $1
    exit 255
  fi
}

# MAIN

# check for tools that we depend upon

is_installed tr
is_installed sed
is_installed expr
is_installed curl
is_installed nmap

# check syntax - should have 1 and only 1 parameter on cmdline

if [ $# -ne 1 ]; then
  printf "%s %s ( http://blog.nachotech.com/ )\n" $scriptname $scriptversion
  printf "Usage: %s {target network specification}\n" $scriptname
  printf "TARGET NETWORK SPECIFICATION:\n"
  printf "  Can pass hostnames, IP addresses, networks, etc.\n"
  printf "  Ex: server1.company.com, company.com/24, 192.168.0.1/16, 10.0.0-255.1-254\n"
  printf "EXAMPLE:\n"
  printf "  %s 16.32.64.0/22\n" $scriptname
  exit 255
fi

iprange=$1

# prepare lookup file for iLO hardware versions

cat > $ilohwvers << EOF
iLO-1 shows hw version ASIC:  2
iLO-2 shows hw version ASIC:  7
iLO-3 shows hw version ASIC: 8
iLO-3 shows hw version ASIC: 9
iLO-4 shows hw version ASIC: 12
iLO-4 shows hw version ASIC: 16
i-iLO shows hw version T0
EOF

#
# scan a range of IP addresses looking for an
# open tcp port 17988 (the iLO virtual media port)
#

printf "Scanning..."

nmap -n -P0 -sS -p 17988 -oG - $iprange | fgrep /open/ | awk '{print $2}' > $iloips

printf "\n\n"

#
# open and read the list of IP addresses one at a time
#

exec 3< $iloips

echo "--------------- ------ -------- ------------ ------------------------- -------------------- -----------------------------"
echo "iLO IP Address  iLO HW iLO FW   Server S/N   Server Model              iLO Edition          iLO Licence Key"
echo "--------------- ------ -------- ------------ ------------------------- -------------------- -----------------------------"

while read iloip <&3 ; do
  ilosfound=$ilosfound+1
  #
  # attempt to read the xmldata from iLO, no password required
  #
  curl --proxy "" --fail --silent --max-time 3 http://$iloip/xmldata?item=All > $iloxml

  #
  # parse out the Server model (server product name)
  # from the XML output
  #

  parseiloxml SPN;  servermodel=$parsedstring
  parseiloxml SBSN; sernum=$parsedstring
  parseiloxml PN;   ilotype=$parsedstring
  parseiloxml FWRI; ilofirmware=$parsedstring
  parseiloxml HWRI; ilohardware=$parsedstring

  ilohwver=$(grep "$ilohardware" $ilohwvers|awk '{print $1}')
  if [ "$ilohwver" == "" ]; then
    ilohwver="N/A"
  fi

  if [ "$sernum" == "" ]; then
    sernum="N/A"
  fi

  # add start
  curl --proxy "" --fail --silent --max-time 3 http://$iloip/xmldata?item=CpqKey > $iloxml
  parseiloxml LNAME; ilomodel=$parsedstring
  parseiloxml KEY; ilokey=$parsedstring
  # add end

  printf "%-15s %-6s %-8s %-12s %-25s %-20s %-30s\n" $iloip "$ilohwver" "$ilofirmware" "$sernum" "$servermodel" "$ilomodel" "$ilokey"

done

printf "\n%d iLOs found on network target %s.\n\n" $ilosfound $iprange

rm -f $iloips $iloxml $ilohwvers

exit 0

Cavium社のサーバ向け64bit ARM CPU「ThunderX2」


台湾で開催中のCOMPUTEXにて、サーバ向け64bit ARM CPUというのが発表された。

プレスリリース「64-bit Arm Cpus
Cavium Announces ThunderX2™

ThunderX2™ ARM Processors」という製品ページも公開されている。

ざらっと読んでの特徴

・自社開発のARMコアを使用(Cortexシリーズを使っていない)
・アーキテクチャはARMv8
・2.5GHzで動作する24コア~48コアのCPU
・2CPU構成も可
・DDR3/DDR4のメモリを1TB以上も対応可能(まずは1TBまでサポートらしい)
・10Gb/40GbのEthernet、SATA v3インタフェース、PCIeインタフェースを多数対応可
・用途に応じた4種類のラインナップも用意
 それぞれ、各用途に応じたオフロード処理機構的なものを組み込んでいる
 ・ThunderX2 CP: ComPute prosessorsでクラウドコンピューティング向けで仮想処理とか特化
 ・ThunderX2 ST: STorage processorsでNASヘッド/ストレージヘッド向け
 ・ThunderX2 SC: SeCure processorsで暗号化処理が絡むセキュリティ機器/Firewall/ロードバランサなど向け
 ・ThunderX2 NT: NeTwork Centric Workload Optimized processorsなんだがCPシリーズとの差がよく分からない
・対応OSは、Ubuntu 16.04 LTS以降、SUSE SLES SP2以降、CentOS 7.2以降、FreeBSD 11.0以降
・RedHatは「RedHat Early Access for ARMv8」にて対応

おそらく、GigabytesのServer Barebone一覧にあるThunderX搭載の「2U 12-bay Cavium ARM Rackmount Server R270-T60 (rev. 100)」と「2U 24-bay Cavium ARM Rackmount Server R270-T61 (rev. 100)」などを置き換えていくのだと想定されます。

玄人志向の10GBase-T NIC GbEX-PCIEはTehuti Networks TN9510相当品


玄人志向から10GBase-T対応NIC「GbEX-PCIE」が発売されるらしい。

特徴として「Theui TN4010、Aqrate AQR105を搭載」とあるので、調べてみる。

「Theui TN4010」は、Tehuti Networksの「Tri-speed 10G/1000/100 Single port MAC TN4010」だった。
「Aqrate AQR105」は、Aquantiaの「10GBASE-T/5G/2.5G/1000BASE-T/100BASE-TX PHY AQrate AQR105」だった。

Tehuti NetworksはNICも製造している。
10GBase-Tの1ポートNICは、「TN9210 Triple-speed 10GBase-T Network Adapter Card(pdf)」と「TN9510
5-speed 10GBase-T / NBASE-T Network Adapter Card
(pdf)」の2種類があった。

この2つは採用しているMACが異なる。TN9210はMaravell Alaska 88×3110、TN9510はAQRate AQR105を採用している。

というわけで、TN9510の可能性が高まった。
基板写真を比較してみる。

赤い方が玄人志向、緑がTN9510。
4988755026758-PT01-gbex-pcie
TN9510_2

基板の長さが違うのと、10GBase-Tコネクタの上あたりにチップが取り付けられているというぐらいで、部品配置を含めてほぼ同じであることが分かる。

なぜ、メーカ純正品がヒートシンクなしなのかが、理解に苦しむところ・・・

Product Briefに、ドライバサポートという項目があり、下記が記載されている。
• Microsoft Windows Server 2012,
Microsoft Windows Server 2012 R2
Microsoft Windows Server 2008 R2
Microsoft Hyper-V
Microsoft Windows 10 Pro Insider Preview 64 bit
Microsoft Windows Win 8.1 32/64 bit
Microsoft Windows Win 7 32/64 bit
• Linux 2.6.x, Linux 3.x
• vmware® ESXi 5.x, ESXi 6.0
• Apple OS X 10.10.3 or later

こそこそ対応しているらしいが、ドライバダウンロードページはユーザ情報を入れないと入手できない形になっていて、詳細不明。

FAQに「Windows用のドライバは WHQL certified drivers」と「Tehuti can provide support to customer for having vmware drivers certified.」とあるので、WindowsとVMwareについてはなんとかなりそうな雰囲気。

Linuxについては、2008年に「CVE-2008-1675」としてLinux kernelのtehuti driverに脆弱性が発見されたりしているぐらいなので、なんとかなってるのではないかと推測。
Linux kernelのツリーに「drivers/net/ethernet/tehuti」がありますしね。

hp ProLiant Gen8サーバのiLOをESXiからアップデートする


VMware ESXiサーバとして動作しているhp ProLiant DL380p Gen8サーバのiLOをアップデートした。

まず、ESXi上から、iLOのバージョンと、iLOに割り当てられているIPアドレスを確認するため「hponcfg」コマンドを実行

/tmp # /opt/hp/tools/hponcfg -g
HP Lights-Out Online Configuration utility

Version 4.4-0 (c) Hewlett-Packard Company, 2014
Firmware Revision = 1.40 Device type = iLO 4 Driver name = hpilo
iLO IP Address: 172.17.15.99
Host Information:
                        Server Name: esxi1.osakana.local
                        Server Serial Number: SGH421XXXX
/tmp #

iLOのアップデータファイル CP025110.scexe を、/tmpに配置し、実行権限を与え、実行。

/tmp # chmod a+x CP025110.scexe
/tmp # ./CP025110.scexe
OS Version found  [5.5.0]
sh: 6.0=./ESXi_5.5: unknown operand
./CP025110.scexe: Okay process the path [./ESXi_5.5 6.0]
sh: 6.0: unknown operand
./CP025110.scexe:  Update flash engine from ./ESXi_5.5 6.0
sh: 6.0/clean_target_location.sh: unknown operand
sh: 6.0/copy_FE_to_target_location.sh: unknown operand
Copy Flash Engine files from [./ESXi_5.5 6.0] to [/tmp/sctmpdir4924713]
cp: './ESXi_5.5' and './ESXi_5.5' are the same file
cp: can't stat '6.0/*': No such file or directory

iLO Flasher v1.0.2-2 for VMware ESXi (Jan  7 2014)
(C) Copyright 2002-2014 Hewlett-Packard Development Company, L.P.
Firmware image: ./ilo4_203.bin
Current iLO 4 firmware version  1.40; Serial number ILOSGH421XXXX

Component XML file: ./CP025110.xml
./CP025110.xml reports firmware version 2.03
This operation will update the firmware on the
iLO 4 in this server with version 2.03.
Continue (y/N)?y
Current firmware is  1.40 (Jan 14 2014 00:00:00)
Firmware image is 0x1001b1c(16784156) bytes
Committing to flash part...
******** DO NOT INTERRUPT! ********
Flashing is underway... 100 percent programmed. \
Succeeded.
***** iLO 4 reboot in progress (may take up to 60 seconds.)
***** Please ignore console messages, if any.
iLO 4 still rebooting. Try again...
iLO 4 reboot completed.
/tmp #

firmwareのバージョンが上がっていることを確認。

/tmp #  /opt/hp/tools/hponcfg -g
HP Lights-Out Online Configuration utility

Version 4.4-0 (c) Hewlett-Packard Company, 2014
Firmware Revision = 2.03 Device type = iLO 4 Driver name = hpilo
iLO IP Address: 0.0.0.0
Host Information:
                        Server Name: esxi1.osakana.local
                        Server Serial Number: SGH421XXXX
/tmp #

・・・と、実行が早すぎたようで、DHCPで割り当てているIPアドレスが「0.0.0.0」となっている。
時間をおいて再実施

/tmp #  /opt/hp/tools/hponcfg -g
HP Lights-Out Online Configuration utility

Version 4.4-0 (c) Hewlett-Packard Company, 2014
Firmware Revision = 2.03 Device type = iLO 4 Driver name = hpilo
iLO IP Address: 172.17.15.99
Host Information:
                        Server Name: esxi1.osakana.local
                        Server Serial Number: SGH421XXXX
/tmp #

これで、問題なしですね。

NVDIMM と ULLtraDIMM


じつは、これ、夏頃にNVDIMMとULLtraDIMMの違いについて調べたことがあったんだけど、ニッチすぎるし、この見解が正しいのか自信が無かったのでお蔵入りにしていたコンテンツです。

SK Hynix、世界初の16GB DDR4不揮発性DIMM」と、いま、NVDIMMが注目されているようなので、公開してみます。


マザーボード上のDIMMスロットを、最も応答が速いディスクとして利用するための仕組みとして、「NVDIMM」というものと「ULLtraDIMM」というものがあります。
前者は「Non-Volatile RAM(不揮発メモリ)」を用いたDIMM、後者は、Flashメモリのみを用いたDIMMのSanDiskの商標、となります。

両者は似ているようで、若干異なります。

「Non-Volatile RAM(NVRAM/不揮発メモリ)」といった場合、Flashメモリも含まれますが、「NVRAM」と称した場合の主流は、バッテリー保護機能(BBU)付きのDRAMとなります。
これは、本来であれば電源供給が無くなった時点でデータは消失してしまうDRAMに対して、バッテリーによる保護機能を持たせることで、消失しないようにする、というものです。
保護の方法もいろんな種類がありますが、バッテリーにより保護されている間に、Flashメモリにデータを移し、消失を防ぐ、という手法が一般的です。

「NVDIMM」の場合の保護手法も、おおむね、バッテリー保護中に、Flashメモリに移す、というものになっています。
NVDIMMの場合、通常のDRAMメモリのチップと、Flashメモリのチップを両方基板上に配置しなければならないため、それほど容量が確保できない、という欠点があります。

ULLtraDIMMは、Diablo Technologiesが開発したコントローラを使用して、SanDiskが開発したDIMMスロットに差すSSD(Flashメモリ)となります。
NVDIMMと違い、「ULLtraDIMM」はSanDiskの商標となります。
IBMにOEMしたモノは「IBM eXFlash DIMM」という名称になります。

ULLtraDIMMは比較的大容量が確保できますが、NVDIMMの方と比べると、速度が遅くなります。(DRAM書き込みの方が速い)

DDR3スロット向け
Viking Technology ArxCis-NV(2GB/4GB/8GB)
AGIGARAM DDR3 NVDIMM(2GB/4GB/8GB)
netlistの「NVvault DDR3 NVDIMM」(1GB/2GB/4GB)
SMART Modular Technologiesの「DDR3 NVDIMM」(1GB/2GB/4GB/8GB) いろんなサイズでも出している

DDR4スロット向け
・Viking Technologyからリリース予定
AGIGARAM DDR4 NVDIMM サンプル出荷開始
Micron NVDIMM AGIGRAMと提携
SK Hynixから16GB DDR4 NVDIMM サンプル出荷開始

Vikink Technologyがフラッシュメモリのイベントで使用したスライド「Creating Storage Class Persistent Memory With NVDIMM」が公開されています。

ULLtraDIMMの製品は、以下の2つです
SanDisk ULLtraDIMM SSD(200GB/400GB)
IBM eXFlash memory-channel storage(200GB)

また、NVDIMMやULLtraDIMM以外にもメモリスロットを使用するデバイスとして、「Storage in the DIMM Socket Storage PRESENTATION TITLE GOES HERE in the DIMM Socket」によると、以下の種類があるようです。

・DRAM Modules
  普通のメモリ
・NVDIMM
  不揮発メモリ
・MCS (ULLtraDIMM)
  Memory Channel Storageで、diablo technologyの技術を使って、フラッシュメモリ(NANDメモリ)に記録するモノ
・SATADIMM
  メモリソケットを使うけど、I/Oは普通のSATAを使う
・HDIMM (Hybrid DIMM)
  メモリソケット側のI/Oと、SATA経由のI/Oのどちらも搭載しているもの
・MRAM, ReRAM
  比較的大容量の新規格の不揮発メモリ