2015年4月5日日曜日

RaspBerryPi2でプライベートクラウドに挑戦(2)---LXCのインストール

RasPi2でクラウド環境を構築していくわけですが、どのOSSで構築するのか検討した結果CloudStackにしました。また、仮想化環境についてはRasPi2の性能も考えてLXCでやってみることにします。

まず、CloudStackをインストールする前に仮想化環境のチェックのためLXCをインストールしてみました。

OSはUbuntuに変更しています。OSイメージはこちらから入手しました。

LXCのインストールは特別なことはなく、「sudo apt-get install lxc」でインストールできます。

Raspbianでも同じようにインストールできるのですが、仮想環境をスタートするときに「/cgroupがない」といって怒られるので、前もって

「sudo mkdir /cgroup」
「sudo mount -t cgroup cgroup /cgroup」

を実行してください。

さて、UbuntuでのLXCですが、なぜか「lxc-list」コマンドがありません。「lxc-ls」コマンドは使えるので困ることはあまりないのですけども。Raspbianでは両方のコマンドが使えます。

テンプレートについてはUbuntuの方が多くあるようです。

現時点では以下のようになっています。
---------------------------------------------------------------------------
linaro@raspberry:/usr/share/lxc/templates$ ls -al
total 352
drwxr-xr-x 2 root root  4096 Apr  4 08:52 .
drwxr-xr-x 6 root root  4096 Apr  4 08:52 ..
-rwxr-xr-x 1 root root 10789 Oct 10 04:54 lxc-alpine
-rwxr-xr-x 1 root root 13625 Oct 10 04:54 lxc-altlinux
-rwxr-xr-x 1 root root 10786 Oct 10 04:54 lxc-archlinux
-rwxr-xr-x 1 root root  9446 Oct 10 04:54 lxc-busybox
-rwxr-xr-x 1 root root 29293 Oct 10 04:54 lxc-centos
-rwxr-xr-x 1 root root 10150 Oct 10 04:54 lxc-cirros
-rwxr-xr-x 1 root root 14576 Oct 10 04:54 lxc-debian
-rwxr-xr-x 1 root root 17427 Oct 10 04:54 lxc-download
-rwxr-xr-x 1 root root 47561 Oct 10 04:54 lxc-fedora
-rwxr-xr-x 1 root root 27808 Oct 10 04:54 lxc-gentoo
-rwxr-xr-x 1 root root 13961 Oct 10 04:54 lxc-openmandriva
-rwxr-xr-x 1 root root 13869 Oct 10 04:54 lxc-opensuse
-rwxr-xr-x 1 root root 40371 Oct 10 04:54 lxc-oracle
-rwxr-xr-x 1 root root 11837 Oct 10 04:54 lxc-plamo
-rwxr-xr-x 1 root root  6851 Oct 10 04:54 lxc-sshd
-rwxr-xr-x 1 root root 25489 Oct 10 04:54 lxc-ubuntu
-rwxr-xr-x 1 root root 12401 Oct 10 04:54 lxc-ubuntu-cloud
---------------------------------------------------------------------------

初回仮想環境を作成するときは約10分ほどかかります。2回目以降はキャッシュからコピーするので数十秒で作成できるようになります。

操作に関してはこちらのサイトを参考にさせていただきました。
http://www.server-world.info/


2015年4月2日木曜日

RaspBerryPi2でプライベートクラウドに挑戦(1)

RaspberryPi2(以下RasPi2)が発売されて、すぐに購入してみました。なんとなく今は3台手元にあります。
特に使い道もなくしばらく箱に入った状態だったのですが、どうせ複数台あるならクラスター作ったりHPCっぽくしてみたりできないかなと色々調べてみるとOpenStackやCloudStackなどでプライベートクラウドを作ることができそうなので、挑戦してみることにしました。

クラウドといえば使ったことがあるのはMicrosoftAzureだけなので、OSSのクラウド環境については勉強しつつやっていくことになります。

最初はRasPi2がどれくらいの性能(RasPiB+より6倍速いらしい)があるのか気になったので、ベンチマークを行ってみました。

ベンチマークの対象はRasPi2,Edison,MicrosoftAzure VM Basic A0~A3です。
RasPi2には最新のRaspbianをインストールしました。Edisonは標準Linuxをインストールしています。
AzureについてはDebianのイメージが標準で用意されていないので、デプロイ王子こと廣瀬一海氏が作成したDebianイメージを利用させていただきました。

ベンチマークにはUnixBenchの最新版を使っています。

各マシンはOSをインストール後必要なアップデートを行ったのみの状態です。
マシンごとのアーキテクチャが全く違うので、DhrystoneとWhetstoneおよびSystem Benchmarks Index Scoreのみ比較しています。

以下は表とグラフです。





グラフを見るとRasPi2はAzureA0とほぼ同じくらいの性能になるようです。
簡易なWebサーバぐらいなら余裕でインターネットに公開できそうです。

今日はここまでとします。
次回はプライベートクラウドを構築するのに必要なOSSについて書いてみたいと思います。

2015年2月15日日曜日

Galileo Gen2 + WindowsIoT + node.js

RaspberryPi2でWindowsIoTが対応するみたいなのでRspberryPi2をほしいのですが、いまだに手に入れられません・・・

さて、1月27日にWindowsIoTのアップデートがあって、node.js(Win32アプリが色々動く)を動作させる方法が公開されたのでやってみました。

手順はこちらで公開されています。

実際にやってみました。

1.最新版のWindows imageを用意します。最新のイメージは2014/11/21の日付です。それとapply-bootmedis.cmd(2015/2/5)もダウンロードしておきます。microSDにイメージを展開して起動するのを確認しましょう。起動メディアの作成方法はこちらが参考になります。


2.Windowsが起動したら、適当なところにフォルダを作成します。「C:\node」と作成しました。Telnetでもいいですが、GalileoWatcherで右クリックして「Open Network Share」を選ぶとすぐにCドライブにアクセスできるのでそちらから作成するのが色々楽です。

3.nodejs.orgからWindows32bit版のnode.exeをダウンロードして、先ほど作成したフォルダへコピーしておきます。

4.最新のnpm zipファイルをこちらからダウンロードして、展開してから中身をnode.exeと同じフォルダにコピーします。(ダウンロードできる最新のnpmのバージョンは1.49でした、しかし実際には2.6以上のバージョンに上がっているのでインストール後「npm update」しておきましょう。問題なければ最新版にアップデートできます。)

5.Win32アプリを動作させるのに必要な「User32.dll」をビルドします。予めVisualStudio Express 2013 for WindowsDesktop等を用意してください。こちらからファイル一式をダウンロードして展開後ビルドしましょう。出来上がった「User32.dll」をnode.exeと同じフォルダにコピーします。

6.telnetでGalileoにアクセスして、C:\nodeフォルダに移動します。次にコマンドライン上で
  「mkdir %systemroot%\system32\config\systemprofile\AppData\Roaming\npm」
  「setx path "%path%;c:\node" /M」
  「shutdown /r /t 0」

7.再起動後node.jsが使えるようになっています。

8.「npm update」でnpmを最新版にしておきましょう。

これ以降は通常のWindowsでnode.jsを使う場合と同じです。
expressをインストールして動作することも確認できました。

Node.js Sampleページではインストール後にLチカの動作させていますね。(自分はまだ試していません)

node.jsが動作するようになって色々サーバーを動かすことが可能になりますね。