2016年4月16日土曜日

jailに向けてnullfs/unionfs

unionfs/nullfsの両方とも既存のファイルシステムを対象のディレクトリにマウントする。

unionfsは透過的にマウントするので、マウント先にファイルがあったら、それも見える。
nullfsは透過的では無いのでマウント先にファイルがあっても見えなくなる。

でjailにむけてやりたいこととして、ホストの/usrをjailの/usrで見えるようにしたい。だけど、jailの中で/usrのファイルを変更してもホスト側の/usrに影響が出ないようにする。

出てくるディレクトリは以下
・ /usr :ホストの/usr
・ /jail/root/jail1/ :jail1のrootディレクトリ。このディレクトリをrootとしてjailを起動する。
・ /jail/base/jail1/ :jail1の中で作成されたファイルが置かれる場所

mount -t nullfs -r /usr /jail/root/jail1/usr
mount -t unionfs /jail/base/jail1/usr /jail/root/jail1/usr

1行目で、/usrはリードオンリーで/jail/root/jail1/usrにマウントされるので、/usrが変更されることは無い。
2行目で、jailの中で/usrディレクトリに変更が入ると、変更内容は/jail/base/jail1/usrの反映される。

(ちょっとすごい)
・ unionfsでマウントした先(ここではjail/root/jail1/)でファイルを消したら、マウントの元ファイルも消える。ここまでは想像とおりですが、いったんunmountして、mountしなおしをしたら、/jail/root/jail1のファイルが見えるかと思ったら、消えたままだった。
→ umountして、/jail/base/jail1でファイルの作成・削除をした後、再度mountしたらファイルが復活していました。(その前に一度root/jail1にmountしたかも)

.....
てなことをしていたら、/jail配下でrm -rf * とかしてしまい、マウントしていたファイルもすべて消してしまった。。。。
・再インストール。
・freebsd-update fetch
・freebsd-update install
・pkg install virtualbox-ose-additions
・Xorg -configure
  →できたxorg.conf.newのmouseの記載を変更。
・以下のpkgをインストール
 - 基本ツール → zsh,sudo,
 - xの起動で必要 → fvwm2,xterm
 - xでkeyboardが使えない → x86-input-keyboard
  - xでmouseが使えない
  → 特になしもしなくもmouseは動く(moused?)のだが、クリックができない。
    理由はわからないが、handbookにしたがって、xorg.confの設定や、haldの設定をして、
    vboxmouseを利用するように記載しても変わらず。
    https://www.freebsd.org/doc/en/books/handbook/virtualization-guest.html
    結局 xf86-input-mouse をインストールして使っている。たぶんvboxmouseではなく、通常のとおりの利用と思われる。
  - xクライアントが飛ばせない。単なる認証系の問題。 → xauthをインストール

パッケージアップデート系メモ

ubuntu(apt系)

  • 通常運用
    • apt-get update パッケージ情報の更新
    • apt-get upgrade パッケージのアップデート(新しいバージョンのインストール)
    • apt-get dist-upgrade kernelの更新
  • ubuntuのアップグレード
    • do-release-upgrade


CentOS(yum系)

  • 通常運用
    • yum check-update 更新すべきファイルのチェック
    • yum update パッケージのアップデート(新しいバージョンのインストール)
    • yum upgrade

sysbench fileio

お名前VPSとさくらインターネットVPSとローカルにインストールしたVPSについて、それぞれをsysbenchによりIOのテストを実施 実施したコマンドは以下の3つ。prepareしてテスト用ファイルを作成、runでテスト実施、cleanupで作成したテスト用ファイルを削除。
 
% sysbench --test=fileio --file-total-size=1G prepare
% sysbench --test=fileio --file-total-size=1G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
% sysbench --test=fileio --file-total-size=1G cleanup
結果:</ br>

onamae

Operations performed:  431040 Read, 287360 Write, 919496 Other = 1637896 Total
Read 6.5771Gb  Written 4.3848Gb  Total transferred 10.962Gb  (37.417Mb/sec)
 2394.66 Requests/sec executed

Test execution summary:
    total time:                          300.0003s
    total number of events:              718400
    total time taken by event execution: 11.2638
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.02ms
         max:                                  1.54ms
         approx.  95 percentile:               0.03ms

Threads fairness:
    events (avg/stddev):           718400.0000/0.00
    execution time (avg/stddev):   11.2638/0.00

sakura

Operations performed:  339780 Read, 226520 Write, 724750 Other = 1291050 Total
Read 5.1846Gb  Written 3.4564Gb  Total transferred 8.6411Gb  (29.495Mb/sec)
 1887.66 Requests/sec executed

Test execution summary:
    total time:                          300.0003s
    total number of events:              566300
    total time taken by event execution: 7.1058
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.01ms
         max:                                  2.96ms
         approx.  95 percentile:               0.02ms

Threads fairness:
    events (avg/stddev):           566300.0000/0.00
    execution time (avg/stddev):   7.1058/0.00

local vps

Operations performed:  2580 Read, 1720 Write, 5430 Other = 9730 Total
Read 40.312Mb  Written 26.875Mb  Total transferred 67.188Mb  (229.32Kb/sec)
   14.33 Requests/sec executed

Test execution summary:
    total time:                          300.0145s
    total number of events:              4300
    total time taken by event execution: 0.1086
    per-request statistics:
         min:                                  0.02ms
         avg:                                  0.03ms
         max:                                  3.96ms
         approx.  95 percentile:               0.02ms

Threads fairness:
    events (avg/stddev):           4300.0000/0.00
    execution time (avg/stddev):   0.1086/0.00

ruby on rails をユーザ権限で動かしたい

ruby on rails をユーザ権限で動かしたい

ruby や gemそのものはシステムパッケージでインストール
ユーザ権限でrailsをインストール
「.gemrc」に以下を記載。
----------------------------
install --user-install
----------------------------
これで~/.gem配下にインストールされる。 railsコマンドなどは~/.gem/ruby/[ver]/bin 配下にインストールされる。
railsアプリの準備
bundleでのインストールをrailsで作成したディレクトリに行う。 これで、インストール先のgemを利用してくれる。 bundle install --path=vendor/bundle --binstubs
--binstubsはbinディレクトリを作成して、コマンドを配置してくれる。

2015年5月3日日曜日

VirtualBOXにFreeBSD10.0をインストール

Xまわり
VirtualBOXのウィンドウサイズの変更に追随して、FreeBSDonVirtualBOXのXのrootウィンドウサイズも自動的に変更されるようにしたい。でも、まだできていない。。。。
下記のページを参考にすすめました。
http://qiita.com/in_silico_/items/2ab6c37c14e777e6f48f
https://wiki.freebsd.org/VirtualBox

  • ベースとして、「pkg install virtualbox-ose-additions」で大まかにX周りのパッケージがインストールされるので、お任せ
  • 別途追加したのは以下
    • mousedの起動
    • pkg install xinit
    • pkg install xf86-input-keyboard
    • pkg install xf86-input-mouse
    • pkg install dbus
    • pkg install hal

(参考:試行錯誤メモ)
  • xorg.confのInputDeviceセクションが有効になるように、ServerLayout もしくは、 ServerFlags セクションに「Option "AutoAddDevices" "false"」を追加。(引用 https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/x-config.html)。でもこれをするとXを起動したときにマウスが使えなくなってしまう。
  • HandBookのコメントにあわせて、「/usr/local/etc/hal/fdi/policy/90-vboxguest.fdi」を作成してみたが、関係なさそう。
  • Xの起動ログを見ると/dev/dri/display0が無いとエラーになっているので、/dev/driの作り方をかなり検索しまわった。結果としてvirtualbox-ose-additionsについてくるvboxvideo.koというカーネルモジュールを組み込めばOK。ただし、標準のvirtualbox-ose-additionsではvboxvideo.koが作られない。virtualbox-ose-additionsの構築オプションでOPENGLを有効にしてportsをmakeすればいける。エラーは出なくなるが、特に何かがよくなるわけでは無かった。。。。

2013年12月7日土曜日

ubuntu13へのアップデートがうまくいかず。。。

ubuntu13へのアップデートの途中でストールした。そのせいかOSが起動せず。kernelがうまくインストールされていなかったと思われる。 シングルユーザモード(?)で起動するので、困っていた。
結局以下で復活
% mount -o rw,remount /
% dpkg --configure -a % apt-get -f install

 このあたりが参考になる。 https://forums.ubuntulinux.jp/viewtopic.php?id=8874

2011年9月19日月曜日

rails3.1 on FreeBSD

rails3.1をインストールしてみるが、「Could not find a JavaScript runtime.」と出てしまう。 解決さくとして、Gemfileに「gem 'execjs'; gem 'therubyracer'」を入れて、bundle installすれば良いとあるが、 FreeBSDの場合 TheRubyRacerのインストールに失敗する。
原因は3つ
  • libv8のインストールに失敗している
    gem install therubyracerでlibv8が一緒にインストールされる。libv8は特にエラー無くインストールが終了するので、正常かと思ってしまうのだが、どうもインストールに失敗しているようす。以下のエラーが出る。
    c++ -shared -o v8.so v8_v8.o v8_callbacks.o v8_weakref.o v8_date.o v8_context.o v8_handle.o v8_external.o rr.o v8_function.o v8_exception.o v8_try_catch.o v8_string.o v8.o v8_value.o v8_message.o v8_array.o v8_debug.o v8_locker.o v8_template.o v8_script.o v8_object.o -L/usr/home/seike/rails/r3.1.test/vendor/bundle/gems/libv8-3.3.10.2/lib/libv8/build/v8 -Wl,-R/usr/home/seike/rails/r3.1.test/vendor/bundle/gems/libv8-3.3.10.2/lib/libv8/build/v8 -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L.  -rpath=/usr/lib:/usr/local/lib -pthread -rdynamic -Wl,-soname,v8.so   -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -lruby18 -lpthread  -lcrypt -lm -L/usr/lib  -rpath=/usr/lib:/usr/local/lib -pthread  -lv8
    /usr/bin/ld: cannot find -lv8
    *** Error code 1
    
    makeとgmakeの使い分けが出来ていないので、発生していると思われる。 libv8のディレクトリに移動して、gmakeと打ちましょう。
    % cd  vendor/bundle/gems/libv8-3.3.10.2/lib/libv8
    % gmake
    
    libv8のコンパイルが始まります。
  • execinfo.hが無いというエラーがでて、FreeBSDでは「libexecinfo」をインストールしろというtipsもある。
    しかしながら、単純にインストールしても結局エラーになる。なので、bundle installを実行するときに「--with-opt-dir=/usr/local」が付与されるように、 以下の設定をしましょう。
    % vi ~/.bundle/config
    BUNDLE_BUILD__THERUBYRACER: --with-opt-include=/usr/local/include
    
  • 実は上の「--with-opt-dir」をしても、作成されるv8.soが不十分。それはlibexecinfoがリンクされていないから。 そのためrake等を実行した場合エラーになる。libexecinfoをリンクされるように、無理矢理Makefileを修正して、v8.soを再作成する。
    % cd vendor/bundle/ruby/1.8/gems/therubyracer-0.9.4/ext/v8 
    % vi Makefile
        LIBSの最後に「-lexeinfo」を追加。
        LIBS = $(LIBRUBYARG_SHARED) -lpthread  -lcrypt -lm -L/usr/lib  -rpath=/usr/lib:/usr/local/lib -pthread  -lv8 -lexecinfo
    %  rm v8.so
    % make <- v8.soが再作成される。
    % cp v8.so ../../lib/
    
とっても疲れましたー。libv8はエラーも何も出ないんだから、原因わからんつーの。 そもそもextconf.rbの書き方が十分じゃないんだと思うんだよね。どう直せば良いのか分らないんだけど。
bundlerにて、gemインストール時に設定するオプションの付けかた。

mysqlのビルド時に--with-mysql-configを自動的に設定するやりかたです。
% bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config


マニュアル(http://gembundler.com/rationale.html)に書いてありました。