Solaris 11.4 on SuperMicro X10SDV-4C-TLN4F

背景

SuperMicroの X10SDV-4C-TLN4F で Solaris 11.4 が動作したのでメモしておきます。

www.supermicro.com

私の家の自宅サーバはかれこれ14年ほどSolarisです。主な用途はNASなので、NAS専用機にしてもいいのですが、ZFSのpoolを脈々とスケールアップしてきたので(ZFSなら簡単)、わざわざ移行するのが面倒なのと、そもそもSolarisを使うこと自体が目的化しているので、敢えて他のOSに乗り換える理由が見当たりません。

最初に自宅サーバSolarisにしたのは2005年なので、Solaris 10 が出てすぐくらいのときですね。 shakemid.hatenablog.com

2008年にAtomプロセッサが出たときにSolarisを動かしてました。 shakemid.hatenablog.com

2009年からOpenSolarisを使ってました。なつかしす。 shakemid.hatenablog.com

2012年に自宅サーバXeonにしていました。このときは VMware ESXi 上で Solaris 11 を動かしてましたが、その後、ベアメタルにしていました。 shakemid.hatenablog.com

Solarisは2018年に出た11.4が現時点の最新バージョンで、今も進化しています。しかも、少なくとも2034年までサポートが継続されることが決まっており、安心して使えるOSだといえます。 https://blogs.oracle.com/solaris/oracle-solaris-114-released-for-general-availabilityblogs.oracle.com

SolarisOracle DBなどと同じOTNライセンスの元、個人用途や開発用途では無償で使用できます。現実的に、自宅で使える商用UNIXSolarisだけじゃないでしょうか。 www.oracle.com

マザーボード選定の経緯

要件は↓のような感じです。

  1. 小型がいいのでMini-ITX
  2. CPUはXeon
  3. なるべく省電力で
  4. IPMIでリモート管理ができて
  5. 10G NIC が付いてて
  6. 当然Solarisが動くこと

この条件だと選択肢はほぼ SuperMicro しか残りません。昔から、Solarisが動くハードウェアを探すのはLinuxより難しいですが、SuperMicro の X10SDV シリーズはSolarisで動作確認が行われているというアドバンテージがあります。今回の目当ての X10SDV-4C-TLN4F は厳密にはテストされていないようですが、ほとんど同じ構成のものがテストOKなので大丈夫だろうと思いました。 www.supermicro.com

ちなみに、1世代後の X11SDV シリーズはなぜかSolarisでテストされていませんでした。 www.supermicro.com

SuperMicroに問い合わせてみたところ、「俺たちSolarisでテストするのやめたんだ」という回答が返ってきました。悲しいorz

From: Technical Support <Support@supermicro.com>
Subject: RE: Does X11SDV series support Solaris 11?

Hi,

We stop validating Solaris OS on our new boards.

Thanks,


-----Original Message-----
To: Technical Support <Support@supermicro.com>
Subject: Does X11SDV series support Solaris 11?

Hi,

I am interested in running Solaris 11 on X11SDV series, such as X11SDV-8C-TLN2F.
But it does not seem to be tested yet, according to following page.
https://www.supermicro.com/support/resources/OS/skylake-d.cfm
Are there any plan testing X11SDV series with Solaris 11?

Regards,

X11SDVシリーズでもたぶんSolarisは動作すると思うのですが、このシリーズに搭載されている Xeon D-2100 シリーズは、Xeon D-1500 シリーズよりかなり消費電力が上がっていて、低消費電力のモデルがないので、1世代前のX10SDVシリーズを選ぶことにしました。

https://www.servethehome.com/wp-content/uploads/2018/02/Intel-Embedded-CPUs-4C-and-16C-Model-Power-Consumption-Q1-2018.jpg

www.servethehome.com

Xeonにこだわらなければ、DenvertonコアのAtomプロセッサが搭載されている、A2SDiシリーズもいいんじゃないかと思います。 www.supermicro.com

NICの選定もなかなか難しくて、安価な10G NICによく搭載されているAquantiaのチップはSolaris用のドライバがないので、安心なのはIntel X550系のチップになります。Xeon DシリーズやDenvertonコアのAtomは10G NICが統合されているので、Solarisでも動く可能性が高いと思いました。

現時点で、自宅サーバSolarisを使うなら、SuperMicroのマザーボードは鉄板だと思います。

購入情報

2019/2の時点で、日本での価格は\79,100でした。それに対して、米Amazon.comでは$485で、送料を含めても日本円で約62,000円と、それなりに内外価格差があったので、Amazon.comで買うことにしました。近年、個人輸入の敷居は劇的に下がっている感じがします。

価格.com - SUPERMICRO X10SDV-4C-TLN4F 価格比較

f:id:shakemid:20190223231934p:plain

Amazon.com: Supermicro X10SDV-4C-TLN4F Mini-ITX Motherboard : Electronics

f:id:shakemid:20190223230949p:plain

マザーボードとしてはかなり高価ですが、XeonIntelの10G NICが乗ってると思えば、むしろ安く思えてきます。若干感覚が麻痺しているような気もしますが、気のせいということにしましょう。

10G NIC の認識

Solaris 11.4を入れてみて、起動までは問題なくできましたが、10G NICを認識していませんでした。 10G NICを認識させるには、一手間必要でした。

dladmで、1GのNICしか見えていません。

$ dladm show-phys
LINK            MEDIA         STATE      SPEED  DUPLEX    DEVICE
net0            Ethernet      up         1000   full      igb0
net1            Ethernet      unknown    0      unknown   igb1

prtdiagでは Intel X557-AT2 Ethernet という名前で見えています。

$ prtdiag -v
System Configuration: Supermicro Super Server
BIOS Configuration: American Megatrends Inc. 2.0a 10/12/2018
BMC Configuration: IPMI 2.0 (KCS: Keyboard Controller Style)

==== Processor Sockets ====================================

Version                          Location Tag
-------------------------------- --------------------------
Intel(R) Xeon(R) CPU D-1518 @ 2.20GHz CPU1

==== Memory Device Sockets ================================

Type        Status Set Device Locator      Bank Locator
----------- ------ --- ------------------- ----------------
DDR4        in use 0   DIMMA1              P0_Node0_Channel0_Dimm0
DDR4        empty  0   DIMMA2              P0_Node0_Channel0_Dimm1
DDR4        empty  0   DIMMB1              P0_Node0_Channel1_Dimm0
DDR4        empty  0   DIMMB2              P0_Node0_Channel1_Dimm1

==== On-Board Devices =====================================
 ASPEED Video AST2400
 Intel i350 Ethernet #1
 Intel i350 Ethernet #2
 Intel X557-AT2 Ethernet #1
 Intel X557-AT2 Ethernet #2

==== Upgradeable Slots ====================================

ID  Status    Type             Description
--- --------- ---------------- ----------------------------
1   available Unknown          M.2 PCI-E 3.0 X4
1   available PCI Express Gen3 x16 SLOT7 PCI-E 3.0 X16

scanpciで見ると、Vendor ID は 0x8086、Device ID は 0x15ad のようです。Intelの Vendor ID は製品名にちなんで 8086 なのですね。

# scanpci
...
pci bus 0x0003 cardnum 0x00 function 0x00: vendor 0x8086 device 0x15ad
 Intel Corporation Ethernet Connection X552/X557-AT 10GBASE-T

pci bus 0x0003 cardnum 0x00 function 0x01: vendor 0x8086 device 0x15ad
 Intel Corporation Ethernet Connection X552/X557-AT 10GBASE-T

こちらのサイトでも確認できます。 pci-ids.ucw.cz

似たようなことを聞いている人がいて、ixgbeドライバで動くんじゃないかとのことなので、ドライバをattachできればよさそうな感じがします。 https://community.oracle.com/thread/4163075community.oracle.com

PCI ID が 8086,15ad のデバイスに、ixgbeドライバをattachする手順は以下のようになります。

/etc/driver_aliases に以下の行を追加します。

ixgbe "pciex8086,15ad"

バイスを再構成します。

# touch /reconfigure
# init 6

もしくは

# reboot -- -r

再起動後、無事に 10G NIC が認識されるようになりました。

$ dladm show-phys
LINK            MEDIA         STATE      SPEED  DUPLEX    DEVICE
net0            Ethernet      up         1000   full      igb0
net1            Ethernet      unknown    0      unknown   igb1
net3            Ethernet      unknown    0      unknown   ixgbe1
net4            Ethernet      up         10000  full      ixgbe0

ドライバがattachされているのがわかります。

$ grep ixgbe /etc/path_to_inst
"/pci@0,0/pci8086,6f06@2,2/pci15d9,15ad@0" 0 "ixgbe"
"/pci@0,0/pci8086,6f06@2,2/pci15d9,15ad@0,1" 1 "ixgbe"
$ prtconf -D
System Configuration:  Oracle Corporation  i86pc
Memory size: 16282 Megabytes
System Peripherals (Software Nodes):
...
        pci8086,6f06, instance #3 (driver name: pcieb)
            pci15d9,15ad, instance #0 (driver name: ixgbe)
            pci15d9,15ad, instance #1 (driver name: ixgbe)
...

余談ですが、Solaris 11.4 から path_to_inst は sysobj という仕組みで管理されるようになったようです。いろいろ変わってますね。

docs.oracle.com

というわけで、無事に 10G NIC を使えるようになりました。めでたしめでたし。

現状の構成

現状の自宅サーバの構成は以下のような感じです。この構成で消費電力はだいたい50W前後です。電気代は月800円くらいになるようです。

種別 品名
Case Fractal Design Core 500
Power Corsair SF450 CP-9020104-JP (SFX 450W)
MB SuperMicro X10SDV-4C-TLN4F
CPU Intel Xeon D-1518 (On Board)
Memory SanMax SMD4-U16G48M-24R (DDR4-2400 16GB Micron)
Storage SanDisk 120GB SSD, Western Digital 6TB HDD x2
OS Solaris 11.4 x86

NASとしては若干パワフルすぎますが、Solarisサーバを手元に置いておきたいという手段と目的が入れ替わった状態なのでそれでよいのです。

冷却の注意

このマザーボードファンレスですが、ファンレスで運用するのはほぼ不可能と思った方がよいです。ケースファンだけで冷却できるかなと思いましたがぜんぜん無理で、アイドル状態でも80℃を超えて温度が上昇してしまう状態でした。

さすがにこれではダメなので、CPUのヒートシンクにファンを取り付けることにしました。6cm角がちょうどよいサイズのようです。 このマザーボードはファンの回転数をPWMだけで制御しており、PWM非対応のファン(3pinのもの)だと全力で回転してしまいます。 6cm角で、PWM対応となるとほとんど選択肢がなく、安心の山洋電機製のものを選びました。

↓のような、PWM非対応のファンをPWM対応にするアダプタを使うのもありだと思います。

工作能力が足りないので、↓のような感じで、ビスと輪ゴムで固定しました。見た目はいまいちですが、冷却は充分にできているようです。 f:id:shakemid:20190223104026j:plain

ファン付きの、X10SDV-4C+-TLN4F(型番に+が付いてる)というモデルもありますが、このファンはかなりうるさいらしいので、好みに合わせてという感じで。 www.maple-rice.com