❚ 仮想マシンのサーバーにどうだろう?
クラウド開発と仮想マシン
クラウドサービスやWebサービスの開発といっても、開発の初期フェーズではプログラムなどをクラウドのサーバーにいきなりアップロードしたりせず、ローカルにクラウド環境を模した仮の環境を構築して作業を進めます。仮の環境は、開発期間だけ使用して終われば不要となるうえ、一度に多数のマシンが必要になることがあります。このような場合、物理的なマシンをいちいち準備するのではなくて、1台または少ない台数の物理マシンのなかに複数の仮想マシンを作成して作業します。仮想マシンなら作業が終わればコマンド1つで削除できます。
仮想マシンに適したPCとは
小規模な開発では、まさにプログラムを書いているそのPCの中に仮想マシンを作って作業する場合もありますが、開発PCが煩雑になったり、時にパフォーマンスが低下したりするので、1人体制であっても開発PCとは別のPCに仮想マシンを作ったりします。チーム作業ならなおのこと、共用PCに仮想マシンを作ります。
仮想マシンを作るPCは、CPUが仮想化に対応していて(VT-x、EPT)、メモリがある程度確保されていればよく(仮想マシン1台あたり可変サイズで数百MB~1GB程度から)、爆速である必要もありません。初期設定さえ済めばディスプレイもマウスもキーボードも不要です。そして24時間電源のON-OFFを意識せずに使用できる方が使い勝手がよいです。
LIVA X を仮想マシンサーバーに。Windows8.1機としてだけでなく。
上記のような条件からすると、コンパクト、低消費電力で新しいx86系CPUを搭載したLIVA X は、仮想マシンサーバー(専用機)としてよく適していると期待してよさそうです。
このレビューのあらずじ
- LIVA X が標準的に想定している、Windows 8.1 の使用感
- LIVA X のライフサイクル内に使用が予想される Windows 10 の動作
- 実際に仮想マシンを作成して、開発の入り口に立てるとこと
以上をポイントとして、進めていきます。
公開後も、新展開があれば追記していきます。
❚ Celeron N2808 はAtomなのか?
新しいプロセッサへの期待
2014年Q3期に発売された、Silvermont世代(22nm)、開発コードネームBay Trail-Mに属する製品です。Bay Trail には、製品名としてAtom、Celeron、Pentiumが付けられた製品を含みます。
Bay Trail のうち Atom、Pentiumはすべて4コア2Mキャッシュ、Celeronは、4コア2Mキャッシュの製品と2コア1Mキャッシュの製品があります。
Celeron N2808 は、データシートによると、2コア 2スレッドで、ベースクロック1.58 GHz、バースト時2.25GHz、1Mキャッシュ、TDP4.5 W、 ということになっていて、商品群内では比較的高速です。2コアのため多重な処理は苦手かもしれないけれど小電力で動作することが予想できます。たとえば、Windowsで使う場合、ウインドウやタブをたくさん開けなければ機敏かつエコに使えるのではないかと期待できます。
グラフィックは、Intel HD Graphics を搭載していて、ハイビジョン程度の動画や事務系プログラムの描画には不自由はなさそうです。
QSV(クイック・シンク・ビデオ)に対応しているので、動画の再生やエンコードに貢献してくれるかもしれません。
VT-x(バーチャライゼーション・テクノロジー) にも対応しており、仮想マシンの構築もできそうです。ただ、EPT(拡張ページ・テーブル)には対応していません。これは後述のようにHyper-Vが使用できない原因になっているかもしれません。
Atomはモバイル用のプロセッサですが、プロセッサ全般の性能が向上していますので、Atom→モバイル用→デスクトップ用より劣る という図式はもはや当てはまらなくなっているようです。同じBay Trail のシリーズで Celeron N2808 とよく似た性能のAtomも存在しますし、N2808と同程度のAtomがあるからといって、N2808について過小化した印象を持つ必要もないわけです。
❚ SSDじゃなくて、eMMC? って何?
こんにちは、eMMC
LIVA X には、ストレージとして、64GBのeMMCが実装されています。
eMMCは、フラッシュメモリーを使用したメモリーカードのMMC(マルチメディアカード)の規格を機器内蔵用に発展した新しい規格です(2013年~)。SATAと並ぶストレージインターフェースとして拡大しつつあります。
ちなみに、SDカードやmicroSDも、MMCの規格を拡張したものです。
SSDに比べて、転送速度は遅いけれど、小電力で動作し(したがって発熱が少ない)、チップサイズが小さいのが特徴です。
各OSの対応は、今後に期待
しかしながら、本稿執筆時点では、eMMCに直接インストールできるOSが少ないため用途は限られます。具体的には後述のとおりですが、2015年3月現在、Windowsでは8.1が対応しています。
今回、Windows 8は未検証ですが対応していると思われます。同世代のWindows Serverも対応している可能性は高いです。無償版のHyper-V Server は詳細な記述は見当たりませんが、本レビューの最後で確認するとおり動作しません。マイクロソフトの公式ドキュメントにOSごとの「システム要件」というのがありますが、ドライブの仕様まで書いてないので、試すまでよくわからないのが実情です。
Linuxではカーネル3.18以上(もう少し古くても対応しているかもしれません。)でディストリビューション側でも対応していることが必要です。
おそらく、AndroidOSは、その用途からして早くから対応していたのではないでしょうか。x86用のAndroidというのも存在しますので、試してみるのもいいかもしれません。
今後多くのOSが対応することを期待したいと思います。
❚ LIVA X の筐体と内部構造、I/F
機能的&シンプルなデザイン
ただの四角い箱も、上面に施されたスタイリッシュなフォルムにオレンジ色のロゴが映え、黒豆腐感を巧みに脱しています。過剰な感じもなく、飽きないシンプルさが爽やかな印象です。マットな質感はプラスチック製であることを忘れさせます。
リビングのテレビまわり、ワーキングデスクのどこかにさりげなく置くことができるサイズとデザインです。
大切なゴム足、ネジどめのフタ
適切な大きさのゴム足がネジ止めされていて、グリップよく接地しているので思いがけず滑るということがありません。両面テープで貼り付けたゴム足だといつの間にか脱落して紛失することもありますが、その心配もありません。
内部へのアクセスは、底面を4本のネジを外して行います。底面のフタを外すと内部サイズいっぱいにヒートシンクが現れます。ネジは、底のフタ(ゴム足も)、ヒートシンク、メイン基板を一括貫通して筐体本体(上部カバー)へ固定しています。
ヒートシンクは、切り欠き部分を手でつかんで持ち上げると外せます。
すると、メイン基板が現れます。
スチール製のインナーシャーシがあります。筐体の強度アップとノイズ対策がしっかりとされたという印象です。
インナーシャーシのおかげで重量が増し、ゴム足で踏ん張れるようになったので、設置に安定感があります。
何台かスタックして使用してもよいかもしれないし、付属のVESAマウントを使用してディスプレイ裏に取り付けるもの良いかもしれませんが、せっかくのデザインが見えなくなってしまいます。
シンプル過ぎる(?)インターフェース
インターフェースは、前面に、電源スイッチ、電源インジケータLED、USB2.0 x2 USB3.0、背面にACアダプタ入力、HDMI、LAN、スピーカー/マイク端子、VGA15ピン が並んでいます。機能的であり必要かつ十分です。
コネクタは、しっかりとした部材が選定されていて抜き差しに安心感があります。
ただ、LIVA X 本体のみで運用する場合、電源LEDとLANコネクタ付属のLEDしか表示する手段がなく、導入時設定の段階では、ディスクアクセスなど、内部のBIOSレベルのステータスを知る手段が他にもあればよいのにと思うこともありました(例えば、電源LEDを多色タイプにして点滅と合わせて情報量を増やすなど)。
GPIOはないけど、IoTでの位置づけは?
基板にGPIO(General Purpose Input/Output=汎用入出力)のヘッダはありません。
基板サイズは、Intel Galileoと同じくらいなのでWindowsが動作する組み込みマイコンとしての可能性も考えられますが、IOが確保できないため単体でIoT関連の機器開発には適しません。
それでも、少しの工夫でバッテリー駆動もできそうな電源仕様とコンパクトなのにフルサイズのOSが起動できるという性能は活かしたいところです。たとえば空撮で使うドローンのような移動体にWebサーバーでもDBサーバーでもサーバーをまるごと載せて飛ばすようなことができそうです。それで何に使うのか、と言われてもすぐには思いつかないのですが。
ちょっとしたお断り
- LIVA X は、内部にmSATA用にコネクタを備えているのでSSDを実装することが可能ですが、今回は、実装せずに進めます。実装するとOSが動作する/しないの状況は変わるはずです。
- ディスプレイの都合でBIOSのの一部を手動設定にしています。このための弊害はないはずですが、自動設定に戻した場合の挙動については、検証していません。
- 「CPU」「SoC」「プロセッサ」。これらの違いがよくわかっていません。ベンダーによっても定義が異なるようです。本レビューでは厳密に区別できていません。
❚ LIVA X × Windows 8.1
Windows 8.1 Pro をインストールしました。
プロダクトキーは、2013年1月末にマイクロソフト社が直販ベースでキャンペーンを行っていたときにWindows 8 Pro のライセンスを旧OSからのアップグレードで購入したものです。このキーで 8.1もインストールできます。
インストール用USBメモリを作成
マイクロソフトの「Windows 8.1 用のインストール メディアを作成する」
http://windows.microsoft.com/ja-jp/windows-8/create-reset-refresh-media
に示された手順でUSBメモリを作成します。
手順の途中でISOファイル(約3.5GB)を保存することもできますので、DVDを作ることができます。
この手順でUSBメモリを作成する場合、ネット環境にもよりますが1時間強かかります。作り直すことが想定される場合は、ISOファイルを保存しておけば、次回からダウンロードは省略できますので、15分ほどでUSBメモリを作成できます。
今回は、USBメモリとしてmicroSD + USB アダプターを使用していますので、書き込み前に必要に応じて、Linux の GPartedで領域開放とフォーマットを行うか、業界公式フォーマッタ SDFormatter でフォーマットします。そして、保存してあるISOファイルを Linux Live USB Createrを使用して書き込みます。
- GParted
http://gparted.org/download.php - SDFormatter
https://www.sdcard.org/jp/downloads/formatter_4/ - Linux Live USB Creater
http://www.linuxliveusb.com/help/guide/using-lili
BIOS設定
BIOSで次の項目をデフォルトから変更しています。
OSやメディアを切り替える場合は、BIOSで起動ドライブの変更が必要です。それ以外は起動方法にかかわらず下記の設定としています。
- [システム言語] → 日本語、[日付時刻](確認のみ)
- [ブート] - [オペレーティングシステムの選択] → [手動設定]
- [ブート] - [CSMの構成] - [ビデオ] → [レガシーのみ]
(DVI-I 入力のディスプレイをHDMI変換ケーブルを介して使用しているせいか、ディスプレイに表示させるためにこの設定が必要でした。) - [ブート] - [ブートモードの選択] → [UEFI]
[ブート] - [CSMの構成] - [ブートオプションフィルタ] → [UEFI のみ]
(確認のみ:Windows 以外のOSをインストールする場合に、切り替える挙動が変化するのですが、[UEFI]を選択しておいたほうがよいようです。)
なお、ディスプレイをHDMIとVGAの両方に接続すると、Windowsではマルチディスプレイ機能が使用できることを確認しましたが、BIOS設定を上記のようにした場合は機能できません。
Windows のインストール
Windows 8.1 のイメージ(ISOファイル)を書き込んだUSBメモリを LIVA X に挿し、BIOSで[ブートドライブ#1]を [USBフラッシュ:UEFI: …]に設定して LIVA X を起動すると、Windows のインストールプログラムが開始されます。
開始時に言語の設定を確認し、プロダクトキーの入力を求められます。インストール終了前にアカウントなどの設定が必要です。
開始から新しいOSのデスクトップが表示されるまでおよそ30分かかります。
ドライバ、ユーティリティの適用
インストール終了時点では、デバイスマネージャーに[!]が残っています。
画面の動きもスムーズではありません。
今回は、光学ドライブを接続していませんので、別のPCで LIVA X 添付のドライバDVDのすべてのファイルを不可視フォルダも含めてUSBメモリにコピーして使用しました(メモリのルートにコピーする必要があります)。
ドライバインストーラを起動して、Norton以外全部を選択しました。
終了まで30分弱かかります。実行中に断りなく再起動がかかりますが、なにか作業をしていたりするとちょっと驚きます。
ドライバのインストール後、デバイスマネージャーの[!]は解消されました。画面の動きもスムーズになりました。
OSとドライバ一式をインストールした時点で、C:ドライブは、19.5GB が 使用済みとなりました。
なお、ECSのオフィシャルサイトからドライバを個々にダウンロードしてもドライバの適用は可能ですが、たいへん面倒です。バージョンを確認しましたが、2015年3月末時点で、DVDの内容はオフィシャルサイトの最新と一致していますので、サイトからドライバを補う必要はありませんでした。
テレビを観てみる
- LAN内のチューナーサーバーからチューナを共有して受信する方法
- LIVA X に チューナーを挿して直接受信する方法
- すでに録画してNASに保管してある動画(tsファイル、mp4ファイル)を視聴する
使用チューナーはPX-S1UD、視聴アプリは TvTest0.7.23、mp4の再生は、VLC で行いました。
いずれも正常に動作しました。
地デジの解像度程度の動画再生は軽々と処理できるくらいにマシンパワーもプロセッサのチューニングもできているということでしょうか。
ただ、視聴中にブラウザを開いて画像の多いページをロードするとロードしている数秒間音声が途切れがちになり、画像も一瞬止まる感じはありました。
2コア2スレッドの Celeron N2808 の性質として、並行した連続処理は苦手なので、LIVA X を使用する場合には、できるだけタスクのスレッドが重畳しないような使い方がよいとわかります(具体的には、ブラウザのタブは少なめにして、アプリも使わない時はこまめに終了させる、など)。
ガッツリ系のアプリを使ってみる
Adobe Creative Suite 6 をフルにインストールして、Illustrator と PhotoShop を使ってみました。ゲーム以外で思いつく限り規模の大きなアプリケーションですし、このプログラム群はWindowsの仕様を限界近く活用して動作している感があります。
インストールは問題なく終わました。各アプリケーションの起動も問題ありません。
ちょっとした編集には操作感も問題ありませんが、作業が進みデータ量が増えた場合には動作の軽快さが低下して気になるかもしれませんし、また、Illustrator と PhotoShop を行ったり来たり、ブラウザやエクスプローラーを広げたまま進めるような作業には向かないかもしれません。そういう心配はありますが、単体ではほとんど実用レベルに達した使用感です。
LIVA X 稼働時の温度
ファンレスですが、巨大なヒートシンクが奏功していて、稼働中外装ケースに触れてもぼんやりと温かいかなという程度です。
なので、あわてて温度を測定するまでもないかと、いずれ機会があれば(特に夏場)、実測してみたいと思っています。
❚ LIVA X × Windows 10
Windows 10 Enterprise Technical Preview 9926 (x64) - DVD (Japanese)
をインストールしました。インストール中に、先にインストールしていた Windows 8.1 のパーティーションはすべて削除します。
上記のWindows 8.1 とほぼ同じ手順で同じ状態にすることができました。
インストール用USBメモリを作成
マイクロソフトのMSDNで提供されているISOファイルをダウンロードしましたが、同一のファイルは、無償でオープンに公開されています。
Windows のインストール
手順は、8.1 と全く同じです。
ドライバ、ユーティリティの適用
8.1 の場合と全く同じです。ドライバに付いていた[!]も全部消えました。
C: は、18.1GBが使用済となっていました。
アプリケーションのインストールと実行 ~ Windows 10は、イイかも。
テレビ視聴とAdobe CS6で編集作業を試しましたが、ほぼ書くことがないほど、8.1と変わりのない好調な感触を得ました。
8.1よりパフォーマンスアップか?
テレビの視聴中にブラウザを使っても音が途切れたり画像が詰まったりすることが減ったような気がします。本レビューでは、OSの検証はテーマから外れますので深く追いませんが、OSのCPUへのネイティブな対応がされたということかもしれません(パフォーマンスモニタを眺めていて、CPU負荷が100%を超えたときに周波数のブーストが良い具合に効いているような挙動を感じました)。または、OS自体のチューニングが軽量化の方向に進んだのかと推測します。
10は、デスクトップPCにもやさしい?
あと、Windows 8、8.1 は、UIであまりにもタブレットを意識し過ぎた感がありましたが、Windows 10 は、デスクトップユーザーの方へも向いてデザインされたようで本番製品が楽しみになりました。
❚ LIVA X × CentOS
CentOS6.6 で
現在、身辺の開発環境はほとんどCentOSで進行しています。それも、最新の CentOS7 ではなく 6.6を使用しています。
なので、LIVA X にCentOSがインストールできて、その中で仮想マシンをいくつも作ることができると助かります。
CentOS6 のカーネルは 2.6を使用していますので、eMMCストレージに対応していません。よって、USBドライブにインストールすることにします。
ISOファイルをダウンロード
CentOS オフィシャルまたはミラーサイトからDVDイメージの ISOファイルをダウンロードします。
- ファイル名:CentOS-6.6-x86_64-bin-DVD1.iso
(DVD1と2でセットですが、インストールは1だけで完結します。) - サイト: CentOSオフィシャルサイト ダウンロードページ
インストール用USBメモリを作成
Linux Live USB Createrを使用して書き込みます
インストール
LIVA X に USBドライブ用のUSBメモリとDVDイメージのISOファイルを展開したUSBメモリを挿して起動します。
起動前に、BIOSでUSBフラッシュから起動すること、どちらのUSBメモリから起動するかを設定しておきます。
インストール中、リポジトリのURLを手入力する必要がありました。
インストールにはほぼ1時間かかりました。
仮想マシンサーバー用には、GUIのデスクトップは不要なのですが、今回はディスプレイもつながっているし、LIVA X の使用感を確認したかったので、久々にGUIで操作してみました。
画面が美しく進化しているし、LIVA X の描画能力とあいまって、軽快に操作できます。ネットとメールしかしないようなPCには、CentOSのデスクトップも選択肢として”あり”かもしれないと思いました。
しばらくデスクトップを楽しんだ後、コンソールから、起動時にデスクトップを表示しない設定にして、リソースを仮想マシンに集中できるようにします。
# vi /etc/inittab
で、以下を編集
「
id:5:initdefault:
」
↓ 変更
「
id:3:initdefault:
」
再起動します。
※ ここからは、LIVA V のディスプレイ、キーボード・マウスは不要となり、別のPCからSSHで接続して操作します。
最新版の適用、Vagrant(仮想マシンの管理アプリケーション)
この部分の操作は、ansible(設定自動化ツール) で常用している .ymlファイルがあるので、流用します。
ansible をインストール
# yum install -y epel-release
# yum install -y ansible
ansible で自動化ファイルを実行
# ansible-playbook vagrant_only.yml --connection=local
vagrant_only.yml の中身
「
---
- hosts: 127.0.0.1
sudo: yes
vars:
- ruby_version: 2.2.0
tasks:
#
# LIVA 内で実行用 最新更新、vagrant、virtualbox のみ
# root で実施
#
- name: yum update
yum: name=* state=latest
- name: disable iptables
service: name=iptables state=stopped enabled=no
- name: install libselinux-python
yum: name=libselinux-python state=latest
#
# Vagrant
#
- name: check vagrant installed
shell: /bin/bash -lc "vagrant -v"
register: vagrant_installed
ignore_errors: yes
- name: vagrant download
shell: /bin/bash -lc "wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.rpm"
when: vagrant_installed.rc != 0
- name: vagrant install
shell: /bin/bash -lc "rpm -Uvh vagrant_1.7.2_x86_64.rpm"
when: vagrant_installed.rc != 0
#
# ViratualBox
# (未)
」
VirtualBox(仮想マシンの実体を保持するアプリケーション) のインストール
この部分の操作は、ansible の自動化ファイルを作っていなかったので手作業をします。
うまく行けば、後ほど自動化ファイルに取り込むことにします。
# yum info dkms # カーネル管理用(当面はなくても大丈夫?)
# cd /etc/yum.repos.d/
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
# yum install VirtualBox-4.3
# usermod -a -G vboxusers xxx # VirtualBox用ユーザー
準備完了! ここまでが仮想マシンサーバーとしての初期設定です。
Vagrantを使って仮想マシンを作ります
仮想マシンを作ったり壊したりする平時の運用です。
# cd ~/ # ルートに戻る
# mkdir mycentos # 仮想マシン用ディレクトリ
# cd mycentos
# vagrant init chef/centos-6.5
Vagrantfile の編集
4台作ってみます。好きなディストリビューションで作ることができます。CentOS、Ubuntu、Fedora、Debianとしました。IPは、192.168.0.20~.23 で、マシン名も zero から three としました。(現実にも、同じプロジェクトの中でディストリビューションが用途によって別々ということはありえます。)
「
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.define "zero" do |node|
node.vm.box = "chef/centos-6.5"
node.vm.hostname = "zero"
node.vm.network :public_network, ip: "192.168.0.20"
end
config.vm.define "one" do |node|
node.vm.box = "chef/ubuntu-14.04"
node.vm.hostname = "one"
node.vm.network :public_network, ip: "192.168.0.21"
end
config.vm.define "two" do |node|
node.vm.box = "chef/fedora-20"
node.vm.hostname = "two"
node.vm.network :public_network, ip: "192.168.0.22"
end
config.vm.define "three" do |node|
node.vm.box = "chef/debian-7.6"
node.vm.hostname = "three"
node.vm.network :public_network, ip: "192.168.0.23"
end
end
」
LIVA X の中に4台のマシン
小さなLIVA Xの中に4台のマシンができました。
SSHを介して操作してみても、全くストレスがありません。
仮想マシン本来の使い方でである、小さなモジュールを動作を試しながらコーディングしたり、単機能的なデバッグや、狭い範囲の疎通のチェックなど、もっぱらそのような目的で使用するにはパフォーマンスは十分です。
問題点
- インストールは正常に終了したけれど …
インストール中に表示された、リポジトリのURLを手入力するダイアログは、通常のインストールでは出てきません。
ひょっとするとこれは、今回のハードウエア構成かBIOS設定の不備のせいでインストールディスクが正常に読めていないのかも知れません。他にも設計どおりにインストールできていなくて、手動で対応が必要な部分が残っているかもしれません。 - ブートまわりがスッキリしない
不十分なインストールのせいか、スキル不足のせいか、ブート関係がうまく動作していません。具体的には、eMMCにインストールしたWindowsのブートマネージャーにUSBドライブのブートシーケンスが登録できません。それどころか、CentOSを終了後、Windowsを起動し終了し再びCentOSを起動しようとしてBIOSでUSBフラッシュから起動するように設定してもeMMCドライブのWindowsが起動してしまいます。
つまり、マルチブート的な動作が思い通りにできていません。
この問題は、eMMCのWindowsさえ起動しなければ影響がないので、注意は必要ですが、CentOSの運用は可能です。 - UEFIはOSからBIOSに書き込める?
気になった点ですが、上記のようにCentOSのインストールができて、くりかえし起動が可能な状態では、BIOSで、CentOSがインストールされたUSBメモリを「ハードデイスク」として認識しています。それが、eMMCからWindowsを起動した後は、USBフラッシュに戻っています。このことが起動できなくなる原因なのか未検討ですが怪しい点です。UEFIの仕様について理解できていないせいかもしれません。
他のディストリビューション
Ubuntuは、eMMCにインストールできると多くの報告を目にします。
→ 次の項に追記しました。
CentOS7 は、インストラーの起動がうまくいきませんでした。
Fedora21 は、カーネルが 3.17となっていますが、eMMCにインストールできませんでした。
❚ LIVA X × Ubuntu
(2015/03/30追記)
無問題!
ubuntu-ja-14.10-desktop-amd64.iso をインストールしました。
なんの問題もなく、eMMCドライブへインストールできました。
インストール時、内蔵eMMCを正確に認識しています。
Ubuntu14.10のカーネルは、 3.16
インストール後、バージョンなどを確認しました。
chibatodo@chibatodo-LIVA-XBAT2NBW-464:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.10 (Utopic Unicorn)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.10"
VERSION_ID="14.10"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
chibatodo@chibatodo-LIVA-XBAT2NBW-464:~$ uname -a
Linux sei-LIVA-XBAT2NBW-464 3.16.0-33-generic #44-Ubuntu SMP Thu Mar 12 12:19:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
chibatodo@chibatodo-LIVA-XBAT2NBW-464:~$ cat /proc/version
Linux version 3.16.0-33-generic (buildd@toyol) (gcc version 4.9.1 (Ubuntu 4.9.1-16ubuntu6) ) #44-Ubuntu SMP Thu Mar 12 12:19:35 UTC 2015
カーネルのバージョンは、3.16 でした。カーネルは3.17あたりからeMMC に対応していてディストリビューションが正式に対応していればeMMCドライブにインストールできるという情報を実機で確かめることができました。
他のディストリビューションでの対応は、時間の問題かなと思います。
Ubuntu は重たいけれど
Ubuntu のデスクトップはLinuxの中でも全部入りのような仕様で動作は緩慢だし、デスクトップからの検索はアプリも画像や他のファイルも一括して検索するうえ、Amazonまでも検索対象になっていたりしてカスタマイズしてまで使い続ける気にはなれません。
しかし、仮想マシン用、その他のサーバーとして使用する場合は、デスクトップを使用しないのでその仕様は関係がありません。OS本体さえキビキビ動作していれば、今回の目的の仮想マシンサーバーとしても使えそうです。
ただ、普段使用しているCentOSとはコマンドが微妙に異なるので、確認しながら設定していくことになります。
でも… Ubuntu、嫌いじゃない
何年か前に、UbuntuをスマホのOSにしたプロトタイプのようなものができているのを見たことがあります。その後どうなったかわかりませんが、Ubuntuの思想としてモバイル志向とか新しいモノへの即応のようなものがあって、そのためeMMCへの対応が早かったのかなとふと思いました。
ちなみに、ubuntu(ウブントゥ)は、南アフリカのズールー語で「わかちあい」とか「他者への思いやり」という意味があるそうです。発音は・・・
http://ja.forvo.com/word/ubuntu/
この中で、ネイティブな発音が1件聞けます。
Ubuntu の場合の仮想マシン設定(Ubuntu-DeskTopから進める場合)
(2015/04/03 追記)
Ansibleで行う処理よりも前処理が多くて、自動化の意味がなさそうに見えますが、別の機会に様々な処理を追加することができますので、このパターンを汎用として維持します。
【 0. LIVA X のUbuntu(GUI) のターミナルで、SSHの設定をします 】
$ sudo apt-get install ssh openssh-server
$ sudo visudo # パスワードなしsudoを許すよう次を編集(追加)
「
chibatodo ALL=(ALL) NOPASSWD: ALL
」
(再起動不要)
以下、別のPCからSSH接続して操作します。
【 1. root にパスワードを設定、パスワードでSSHできるようにします 】
$ sudo passwd root
$ sudo apt-get -y install sshpass
【 2. デスクトップGUIを止めます 】
$ sudo nano /etc/default/grub
「
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
」
↓変更
「
GRUB_CMDLINE_LINUX_DEFAULT="text"
」
$ sudo update-grub2
(再起動)
【 3. Ansibleをインストールします 】
$ sudo apt-get install python-pip
$ sudo pip install ansible
【 4. hosts を設定してAnsibleの疎通を確認します 】
$ echo "127.0.0.1" > hosts
$ ansible all -i hosts -m ping # エラーとなってよい
$ ansible all -i hosts -m ping --ask-pass # success となること
【 5. Ansibleを使ってVirtualBoxとVagrantをインストールします 】
$ ansible-playbook -i hosts install_vagrant.yml --connection=local
【 6. install_vagrant.yml ファイル 】
「
---
- hosts: 127.0.0.1
sudo: yes
vars:
- ruby_version: 2.2.0
tasks:
# Ubuntu用
# LIVA 内で実行用 最新更新、vagrant、virtualbox のみ
# user で実施
# Update all packages to the latest version
- apt: upgrade=dist
#
# VirtualBox & Vagrant
#
- name: check vagrant installed
shell: /bin/bash -lc "vagrant -v"
register: vagrant_installed
ignore_errors: yes
- apt: name=virtualbox state=present
when: vagrant_installed.rc != 0
- name: Vagrant DownLoad
get_url: url=https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.deb dest=./vagrant_1.7.2_x86_64.deb
when: vagrant_installed.rc != 0
- name: dpkg Vagrant
apt: deb=./vagrant_1.7.2_x86_64.deb
when: vagrant_installed.rc != 0
」
以上で、仮想マシンサーバーの準備ができました。
【 7. 仮想マシンの作成 】
Vagrantfileを置いたディレクトリで
$ vagrant up
Vagrantfile は、CentOSで試したファイルと同じファイルです。
Vagrantは、実行環境が異なっても、同じ仕様で仮想マシンを作成することができます。
各仮想マシンを作業用PCからSSHで開いて確認します。
LIVA Xの中でインストールしたUbuntu14.10と、その中で稼働している4台の仮想マシンが確認できます。
実際にLIVA X 内の複数の仮想マシンに、webサーバー、データベースなどのテスト環境を構築して並行稼動を行いましたが、開発作業に十分なパフォーマンスが得られます。
❚ LIVA X × Hyper-V
Hyper-V Server 2012 R2 をインストールしました。
結論として、ダメでした。
Hyper-V Server 2012 R2 は、無償で提供されている仮想マシン専用のサーバーOSです。
直接インストール → 惜しい
Hyper-V のISOファイルをUSBメモリに展開して、インストールを開始すると、上記のWindows 8.1 や 10 のようにeMMCドライブへインストールが進みますが、途中からリブートを繰り返し、エラー画面でフリーズします。
USBドライブから → ブートできない
また、Hyper-V Server 2012 R2 は、USBフラッシュ(USBメモリ)からの起動ができるのですが、起動用のUSBメモリを作成して LIVA X に挿して起動してもUSBドライブのブート部分にすら達することができないようで、起動できませんでした。
今後に期待
eMMCの場合も、USBドライブの場合も、BIOS設定をいろいろ変えて何度もトライしましたが、残念な結果となりました。
原因は、様々考えられますが、そもそもOSがeMMCに対応していないことが最大の原因のように思います。もし起動できたとして、N2808 が EPTに対応していないことは、十分なパフォーマンスが得られないという影響にとどまると予想します。
ローカル環境にHyper-Vマシンが確保できれば、たとえばAzureとの連携のしかたなど、環境バリエーションが増えることを期待していましたが、すぐに実現することはむずかしいようです。
今後対応されることがあるのか、見当もつきませんが他の方法を取りながら待ちたいと思います。
❚ 良い仮想マシンサーバーになりそうだ。
… けど、とりあえずWindowsで?
たしかに、Windows 専用機として割り切るなら、リビングのテレビサイドに置いて、チューナーから受信したりNASの動画を再生したり、ときどきWebを見たりゲームをしたりする用途には向いていると思います。
静音性、低電力、そこそこのスペックを活かして、仮想マシンのサーバーとして使えないかということを探ってきましたが、現状のOSでは、インストールして即使用可能なものが少ないことがわかりました。mSATAのドライブが必須なのかもしれません。
制約された条件(=eMMCのハードル)さえクリアできれば、仮想マシンサーバーとして最も理想的な選択肢の一つとなり得ることもわかりました。
実は、Vagrant も VirtualBox も Windows版が存在するので Windows機も仮想マシンサーバーとして使用できます。Windowsでは内部で仮想マシンに関係のないタスクがたくさん走っているのでリソースがムダに消費されもったいない気はしますが、可能性としては”あり”です。
この秋になれば、IoT用の Windows 10も提供されるようなので、仮想マシンサーバーのように機能を限ってWindowsを運用したい場合に、そのような軽量版のWindowsが LIVA Xで使用できればちょうどいいかもしれません。
LinuxならUbuntu限定(他は順次対応?)
Ubuntu以外のLinuxで使用する場合は、UEFIがらみのブート関係の情報が整理されることと(習得するのに時間コストがかかりすぎる)、eMMCのドライバが整備されることを待たなければなりません。そうでない現状ではLinuxでの運用は限定的となりますが、ドライバに関しては早期に解決される可能性が高いと感じます。
eMMC対応の普及を待つのではなくて既にリリースされているモジュールを独自に組み合わせ取り込むという途もあるようなので、挑戦してみたい気分にはなりつつあります。
クラウドの仮想マシンとの価格比較
たとえば、Microsoft Azure でローコストレンジのマシンを専有すると1台あたり1か月1,200円~2,000円かかります。一方、LIVA X の2015年3月末現在の価格は約27,000円です(Amazon)。Azureと同様のスペックの仮想マシンをLIVA X 内に稼働パフォーマンスを考慮して2台構築できるとすれば、大雑把に計算してAzureの仮想マシン2台x9か月分の料金とLIVA X 1台の価格が等しいことになります。
LIVA X が9か月で壊れることはないでしょうから、LIVA X の方に割安感があります。けれど、クラウドサービスにも低価格化の流れはあるし、激安VPSなども出現していますから一概にどちらが安いかなど言い切れない部分もあります。
クラウドとローカルの物理マシンでは、それぞれ性質の異なるものですし、電気代や通信費のコスト、信頼性、自由度・手軽さの比較などは考慮していません。なので、適切な比較になるか自信はありません。
クラウドサービスの販社営業の方がプレゼンで、物理マシンとの比較でクラウドの価格メリットを訴求されることがありますがコストの差の程度は、マシンのスペックレンジによって変わります。
特に、LIVA X で運用できる程度の仮想マシンはクラウドではローレンジに属し、価格の差は出にくい、もしくは、物理マシンの方が有利かもしれません。
もっとヤリたい!
Hyper-Vが動作できないことが、なにより惜しいです。
このあと、Windows Server の最近の有償バージョンも試したいと思います。
eMMCのハードルを越えるための最もよい策は、mSATAのSSDを入手して基板に挿すことかもしれません。案外、すんなりと解決するかもしれないし、eMMCドライブとの兼ね合いのあたりでハマることになるかもしれないし、楽しみはまだまだ続きそうです。
ただの黒豆腐と思うなよ?
❚ 使用した機材たち
(2015/04/02 追記)
つわものどもがゆめのあと・・・ microSDをとっかえひっかえ、あれやこれやでした。
変更/更新履歴:
2015/03/29 一応、レビュー完。
2015/03/30 Ubuntu について追記
2015/04/02 使用機材の項を追加
2015/04/03 Ubuntu での仮想マシン作り方を追記
KAOさん
2015/03/31
白豆腐にもWindows10いれてみようかな~って思います。
ちばとどさん
2015/03/31
はい。ちょっとくらい踏みつけても大丈夫なくらいには。ww
白豆腐のときは、ケースをユーザーが自作することも想定されていたようで、そのための3Dプリンタ用データがあったとか?(構想だけだったのかもしれませんが)
Windows 10、よさ気です。最新の高スペックPCだけではなくて、「2コア2スレッドのCPU+eMMCドライブ」 もちゃんと視野にいれてチューニングしているのではないかと思います。しかも、LIVAでは、8.1用のドライバがそのまま適用できるので楽ちんですし。
リンさん
2015/04/01
CentOSやUbuntuチャレンジ素敵ですね!
最近私もHyper-V Server 2012 R2を触りだしたのですが、
これが使えないのは何とも残念です!
ちばとどさん
2015/04/01
Linuxは、どれも順次動くようになるのでしょうけど、無償版Hyper-V は、期待薄いかもしれませんね。それは、Windows 8.1 に標準で Hyper-V クライアント(?)が付いているからかなのかなとか思っています。
Windows 8.1の Hyper-V が Azure に対するオンプレミスの連携対象になれるのなら、それはそれでいいのですけど。
Windows Server 2012 R2 Essentials にするか、mSATA のSSDを挿すか、ぼちぼちやってみますね。