とむむの日々

埼玉県某市に住む「とむむ」の日記です。2008年3月から、関心のあることを書き連ねる日常の記録です。

Ubuntu Server 15.10を単体でブートできるようにする | 「Diginnos Stick DG-STK1B」で自宅サーバを作る その5

f:id:tomumu:20151121093955j:plain

どうも、とむむです。

前回のエントリーで、インストール用に作成したUSBメモリ経由でブートできるようになったが、再起動の度にローカルのドライブを指定するのは煩わしいし、サーバ用途で利用するのであれば、予期せぬ停電等でも自動復旧してもらわないと困る。それに見た目もケーブルだらけで美しくない。

ということで、前回の最後に書いた以下の内容を進めてきたいと思う。

* 起動後のgrubインストール、単体での起動確認、過去サーバとのUNIX Benchmarkの比較

では、はじめよう。

インストールUSBメモリからブートしてgrubのインストール

DELキーを押してBIOSに入り、USBメモリのプライオリティが最も高いことを確認し、前回のエントリーと同じ手順で、まずはブートする。
grubはOS標準のものではダメなので、gitサーバからソースをゲットして32bitのUEFIでも起動できるよう32bitのgrubを作成する。
外部公開されているgrubのgitサーバを利用するので、ネットワークに繋がった状態で作業が必要だ。

  1. USBメモリGRUB画面で、Ctrl + c を押す。
  2. GRUB shellが起動したら、以下を入力する。

    grub> linux (hd1,gpt2)/boot/vmlinuz-4.2.0-16-generic root=/dev/mmcblk0p2
    grub> initrd (hd1,gpt2)/boot/initrd.img-4.2.0-16-generic
    grub> boot

  3. 必要なパッケージをインストールする。

    $ apt-get install autoconf bison flex git make

  4. gitリポジトリからgrubのソースをクローンする。

    $ git clone git://git.savannah.gnu.org/grub.git

  5. 32bit grubを作成する。

    $ cd grub
    $ ./autogen.sh
    $ ./configure --with-platform=efi --target=i386 --program-prefix=""
    $ make -j6

  6. 32bit grubをインストールする。

    $ cd grub-core
    $ sudo ../grub-install -d . --efi-directory /boot/efi/ --target=i386

  7. 念のため、grubツールをインストールする。

    $ sudo apt-get install grub-efi-ia32-bin

  8. 最後にgrubの設定を更新し、再起動する。

    $ sudo update-grub
    $ sudo reboot

以上で完了だ。
再起動後、USBメモリ経由でなく、本体にインストールされたgrub経由で無事に起動してくれば、OKだ。 これで、ようやく本体のみで サーバとして運用できる。
常時ビデオ出力は不要なので、トップ画像のように本体 + 電源 + USB-LANやUSB-WLANのみで運用が可能になる。

自宅サーバベンチマーク勝負!

歴代のサーバで取得しておけば面白かったのだが、最近になって取りはじめたので、3種類(MILLINUX,Rasberry Pi B+,Rasberry Pi 2) と 「Diginnos Stick DG-STK1B」を比較したい。
細かいベンチ結果の差異を見ていくとキリがないので、1スレッドの結果と全スレッドの結果のみとする。

MILLINUX (1CPU: 131.7)

VIA Eden(Nehemiah)というインテル互換CPUを搭載した自宅サーバだ。
詳しくは、こちらのエントリーを見てもらうとして、省電力でそこそこ動くのと、組込用途で作られた製品なので耐久性が高い。
とむむの自宅で24x365日、5年ほど運用しているがビクともしない。(笑)
だが、スペックは低めなのでPHPの重めのフレームワークが実用に耐えなかったり、利用用途は限定されている状況だ。

System: millinux: GNU/Linux
    OS: GNU/Linux -- 2.6.32-74-generic -- #142-Ubuntu SMP Tue Apr 28 10:02:35 UTC 2015
    Machine: i686 (unknown)
    Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
    CPU 0: VIA Nehemiah (1995.0 bogomips)
          MMX

 1 CPU in system; running 1 parallel copy of tests
                                                                    ========
 System Benchmarks Index Score                                         131.7

Rasberry Pi B+ (1CPU: 73.8)

Raspberry Pi ラズベリー・パイ 超小型パソコン MODEL B (PLUS) &専用ケ-ス model B Case(Clear)

新品価格
¥5,480から

名刺サイズのARMベースの省スペースコンピュータだ。 USB-ACで起動するため、非常に省電力だ。
コスト的な制約もあり、かなり性能が低い。   MILLINUXの丁度、半分くらいの性能だが、自宅でセンサー系の情報をロギングする用途で利用する分には十分だ。
ケース込でも1000円程度追加で出せば、Rasberry Pi 2が買えるのでこれから購入を考えている人には、Rasberry Pi 2をオススメしたい。

System: rpi: GNU/Linux
   OS: GNU/Linux -- 3.12.35+ -- #730 PREEMPT Fri Dec 19 18:31:24 GMT 2014
   Machine: armv6l (unknown)
   Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
   CPU 0: ARMv6-compatible processor rev 7 (v6l) (0.0 bogomips)

1 CPU in system; running 1 parallel copy of tests

                                                                   ========
System Benchmarks Index Score                                          73.8

Rasberry Pi 2(1CPU: 178.1 , 4CPU: 463.1)

Raspberry Pi2 Model B ボード&ケースセット (Standard, Clear)-Physical Computing Lab

新品価格
¥6,390から

Rasberry Pi B+ と全く同じ大きさ(ケースも流用可能)で、一見すると変化がないように見える。
スマホタブレットのミッドレンジクラスでも最近では普通に使われるようになってきたARMベースのQuad Core CPUを搭載し、性能は劇的に向上した。
このRasberry Pi 2は、専用に準備されたRasbian以外にも、Windows 10 IoTやARM系CPU用にリリースされている各社のLinux ディストリビューションもそのままインストールできるようになった。
そのあたりも、初代のRasberry Piから利用用途が大きく拡がったと言えよう。
ちなみに、Rasberry Pi 2が登場した際の宣伝で言われた現行のRasberry Piの6倍の性能というのも全く眉唾ものではなく、4スレッドのベンチマークの結果が綺麗に6倍以上になっていた。(笑)
MILLINUXを5000円以下で購入して、長期運用にも耐えてきた実績やアーキテクチャx86ではなく、ARMという点も考慮すると単純比較はできないがケース込でも6500円くらいで約4倍の性能が手軽に手に入るようになり、5年という歳月の進化を考えさせられる。

System: rpi2: GNU/Linux
   OS: GNU/Linux -- 3.18.0-20-rpi2 -- #21-Ubuntu SMP PREEMPT Sun Apr 5 01:56:02 UTC 2015
   Machine: armv7l (armv7l)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

   CPU 1: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

   CPU 2: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

   CPU 3: ARMv7 Processor rev 5 (v7l) (0.0 bogomips)

4 CPUs in system; running 1 parallel copy of tests

                                                                   ========
System Benchmarks Index Score                                         178.1

4 CPUs in system; running 4 parallel copies of tests
                                                                   ========
System Benchmarks Index Score                                         463.1

Diginnos Stick DG-STK1B(1CPU: 406.8 , 4CPU: 1268.1)

スティックPC スティック型パソコン ドスパラ Diginnos Stick DG-STK1B 楽天モデル

価格:10,778円

長々と過去サーバなどのベンチマーク結果などを紹介してきたが、ようやく本題に入る。
これはとむむの失敗談だが、1スレッドくらいの動作ならスマホ用の出力が低めのUSB-ACでも動くので、テスト運用時に一時的に利用していた。
その状態でこのベンチマークを走らせると、4スレッドで処理が始まると電力不足になって本体の電源が完全に落ちる。(笑)
その際にターミナルに残った結果を見て、4スレッドでも Rasberry Pi 2より遅いのかなー? と一瞬勘違いをしてしまった。。
よくよく見ると、1スレッドの結果だと気づき、改めてAtom Z37XX系のコスパの良さに気付かされた。
トータルのスコアは1200超え、HTが有効になっていることを考えても、1スレッドの3倍強の結果が出ている。
とむむの格安で運用しているサーバの中では初の4桁超で低コスト、省電力、そこそこ高性能とバランスも良いと思う。

System: diginnos: GNU/Linux
   OS: GNU/Linux -- 4.2.0-16-generic -- #19-Ubuntu SMP Thu Oct 8 15:35:06 UTC 2015
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz (2662.4 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 1: Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz (2662.4 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 2: Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz (2662.4 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization
   CPU 3: Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz (2662.4 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET, Intel virtualization

4 CPUs in system; running 1 parallel copy of tests

                                                                   ========
System Benchmarks Index Score                                         406.8

4 CPUs in system; running 4 parallel copies of tests
                                                                   ========
System Benchmarks Index Score                                        1268.1

今後の予定

一番最初のエントリーで宣言した残りは、あと2つだ。

USB-LAN or 無線LANでのUbuntu Serverの運用テスト
自宅サーバのDiginnos Stick DG-STK1Bへの移行

手持ちの有線LANでの動作は問題なかったが、内蔵の無線LANUbuntuから活用MicroSDスロットの活用の2点についてはもう少し調べてみようと思っている。

それから、自宅サーバを長らくMILLINUXで運用してきたが、サポートの切れたUbuntu 10.05をバージョンアップすることもリプレイスすることもできずに居たので、これを機会にリプレイスする予定だ。

今後も5年程度は運用していきたいので、以下の3点が重要と考えている。

  • x86_64に対応しておくこと。
  • 5年間サポートされるUbuntuのLTSを利用すること。
  • 予備機でも環境を簡単に再構築するための仕組みを作ること。

このあたりのところも考えながら、残りの2点についても進めていきたい。