解析サーバーのメモ


解析環境を個別のユーザーに構築する

それぞれのユーザー別に解析環境を構築しないとやっかいな問題が発生したので。
$ ssh a01.nucl.ap.titech.ac.jp -l username
$ cd
$ tar xzvf /home/samurai/documents/exp.temp.tgz -C ./
$ mv exp.temp exp (既にexpディレクトリがある場合は要相談。)
$ soffice -calc
ツール -> XMLフィルタの設定 -> パッケージを開く
ファイル名: /home/samurai/documents/anaroot_filter.ver1.01.jar
XML フィルタ'ANAROOT_xml'は正常にインストールされました。(とメッセージがでる。)
$ mkdir .local; mkdir .local/share
$ emacs .bashrc
-- 以下追記 --
# ROOT 
source /usr/local/root/bin/thisroot.sh
 
# ANAROOT
alias anarootlogin='source $HOME/exp/scripts/anarootlogin.sh'
export PATH=$PATH:$HOME/exp/scripts
-- 以上 --
$ source .bashrc
$ anarootlogin
これで普通に動くはず。
パラメータの編集のためにsoffice(libreoffice, openoffice)を使う。
ANAROOT xmlフィルタをインストールしたので、ANAROOT用のパラメータを開くとき、保存するときはこのフィルタを選択する。

emacsでanafileを開いたときに色をつけたいなら、
$ cd
$ cp /home/samurai/.emacs.d/ana-mode.el .emacs.d/
$ emacs .emacs
-- 以下追記 --
; ANALYS mode
(autoload 'ana-mode "~/.emacs.d/ana-mode.el" "Mode for editing ANA files." t)
(setq auto-mode-alist (cons '("\\.ana$" . ana-mode) auto-mode-alist))
-- 以上 --
とすればよい。

Geant4 install メモ

なんか必要になったのでGeant4をinstallした。
geant4の記事はこちらに移しました。

一般の画像viewer

gpicviewというのが入っている。

svn

ANAROOTのソースはsvnで管理している。
場所は、/svn/anaroot/branches/hoge
と言う感じ。
このsvnのディレクトリは誰でも見れるようにしているが、
一応user:samuraiで管理するつもり。

gccにおける2G制限

  • 2GB制限


    この問題がANAROOTでridfを開くときに発生した。
    なので、Core/Makefile.amのCXXFLAGSのところに、
    CXXFLAGS = -fPIC -Iinclude $(shell root-config --cflags) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
    
    と後ろに追加した。
    あとは、fseek,とftellを探して、
    $ find . -name \*.cc | xargs grep fseek
    
    見つかったものをfseekをfseekoに、ftellをftelloに変更。
    はたしてこれで64bitで問題がでないかは知らない。
    32bitではとりあえずこれで問題なさそう。

    アカウント

    userのグループは全部nakamuraにした。
    usermod -g nakamura samurai
    adduser -g nakamura username
    


    インストール時に設定しなかった場合は、
    groupmod -n new_group old_group
    
    とかってやると綺麗にgroup名を変更してくれる(多分gidに割り当てる名前を買えているだけな気がするが)。

    起動画面(splash)

    /boot/grub/grub.confに
    ... splash=verbose
    

    と書くと起動画面で起動の様子が見れる。


    32bitで4G以上のメモリを使うために

    PAEというのをonにしなければならないらしい。
    なので、kernel-PAEというパッケージをインストール。
    後は再起動すると勝手にそのカーネルが起動する(かってにgrubを書き換えてるっぽい)。


    quotaの設定

    http://www.server-world.info/query?os=CentOS_6&p=quota
    # vi /etc/fstab 
    ...
    /dev/mapper/vg_data-lv_data /home ext4 defaults,usrquota 1 2
    ...
    # reboot
    # quotacheck -um /home
    # quotaon -uv /home
    # quotaon -p -a
    # edquota -u username (キロバイト単位)
    # repquota -a
    # edquota -p username1 username2 (設定をコピー)
    

    いまのところみんな100GBにした。(samuraiだけ300GB)
    本当に必要なら増やして構わないです。home以下の容量は大体2.8Tぐらいあるので。


    readonly

    大事なデータはread onlyでマウントする。
    最近のトリだと勝手にrwでマウントされるけど、
    さっさとumountしてしまう。
    mount -r /dev/sdf1 /mnt/usb
    
    fstabではdefaultとか書いてある所を、roにする。

    データを追加したい時に一時的にwrite権限が欲しくなる
    そういうときは、
    # mount (これでmount状況をチェック)
    # mount -o rw,remount /data/d01
    参考 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/390remount.html
    

    とか。

    ROOTのインストール

    ROOTのバージョンは5.32.02
    configureの設定は以下の通り。(64bit の場合は linux の部分を linuxx8664gcc に変更)
    いっぱいenableにしているのはとりあえずよくわからんから目についたものを一式。
    $ ./configure linux --prefix=/usr/local/root --enable-minuit2 --enable-glite --enable-dcache --enable-memstat
     --enable-xml --enable-xrootd --enable-tmva --enable-reflex --enable-castor --enable-soversion --enable-rpath
    

    なんかc02でのROOTのディレクトリ構造がデフォルトじゃなくて、etcのディレクトリの場所を変更しないとまるまる移管したときにerrorがでる。
     --etcdir=/usr/local/root/etc
    

    今回はデフォルトのままにして、c02からexp以下を移植する時は手動で.rootrcを変更。

    インストールしたもの


    yum install kernel-PAE
    yum grouplist
    yum groupinstall "Development Tools"
    yum groupinstall "Development Libraries"
    yum groupinstall "X Software Development"
    yum install emacs
    yum install libxml*
    yum install screen
    yum install system-config-network
    yum install gv
    yum install python-gdata
    yum install libreoffice-calc
    yum install sshfs
    yum install qt-devel
    geant4-9.5.p01 (手動コンパイル。srcは/home/samurai/geant4の中にある)
    view3dscene  (手動コンパイル。srcは/home/samurai/geant4の中にある)
    remote-view3dscene (手製スクリプト。local pcのview3dsceneを起動するショボいスクリプト)
    yum install fpc
    yum install gtk2-devel
    yum install gtkglext-devel
    vrmlview (binaryを/usr/binにコピー)
    yum install compat-libstdc++-296
    ln -s libstdc++-libc6.2-2.so.3 libstdc++-libc6.1-1.so.2
    yum install freewrl
    statifier-1.7.2.tar.gz
    

    vmware install log

    仮想マシンはパワーがあるのでvmware上にwindowsを入れるには都合がいい。
    なのでvmwareをいれたそのログ。
    # /home/samurai/documents/VMware-Player-4.0.4-744019.i386.bundle
    # cd /usr/lib/vmware/modules/source
    # tar xvf vmnet.tar
    # vmware-modconfig --console --install-all
    
    エラーがでたら、
    https://wiki.archlinux.org/index.php/VMware
    http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/01/vmware802fixlinux320.tar.gz
    
    からpatchを落としてきて、この中身を見ながらソースのエラーの箇所を適当に編集
    (エラーの箇所に該当する変更がpatchの中にあるので手動で訂正(バージョン違いとかうざいから逐次手動の方が楽))。
    編集したら、
    # tar cvf vmnet.tar vmnet-only
    # vmware-modconfig --console --install-all
    
    として、エラーがなくなるまで編集。
    コンパイルは通るけど、最後にvmwareを起動テストするところで「失敗」と出る場合は、
    おそらく、ソースを編集する時に、プロトタイプ宣言だけ消して関数の実態は残してるとかそんなのかも。


    ここまでやって、結局仮想マシンを起動したときにカーネルまわりのエラーが出て落ちた?
    kernel BUG at include/linux/mm.h:402!
    http://communities.vmware.com/message/2036854
    
    これはAMD-Vという仮想化技術まわりの問題みたい(どちらが悪いかはわからない)。
    なので、仮想マシンの設定でAMD-Vを切ればちゃんと動く。

    windows7を入れてみたけど問題なく動いている。
    回線が100bitだとやっぱり微妙に重い。

    日本語

    cuiなら、
    system-config-language
    

    guiなら、左下のスタートメニューにlanguageがある。
    これで日本語を選べば勝手に日本語になる。
    設定を有効にするためにはrebootする。

    sshの設定

    chkconfig sshd on
    

    するだけと思いきや、
    どうも、firewallの設定でsshdを通す用になっているのに、更新されないらしく、
    適当にfirewallをon offしたらつながるようになった。
    sshd_configは鍵認証のところをyesにして、rootでのログインをnoにした。

    network設定

    system-config-network
    でnetworkの設定を行っている。
    固定ipを設定して、DNSに登録したけどなぜかアクセスできなかった(数分後かに自然と見える様になった)。
    nslookup
    whois
    dig
    

    あたりのコマンドでipとhost周りを調べられる。
    networkの設定をソフトに任せてたら、eht0って名前じゃないものが付いた。

    boot loaderの設定

    boot loaderをどこに入れるか(MBR, ディスクの先頭)
    をミスるとbootしないので気をつける。
    デフォルト設定だとなぜか/dev/sdaのMBRに入れようとするが、
    システムの入っているSSDのMBRに入れるのがシンプルなので、
    /dev/sdcのMBRにインストールされるように指定する。

    ちなみにsdaとかsdbとかはハードウェア的に一番若いコネクタに刺さってる物から順番にa,b,c,...とついていく。
    なので本当はシステム用のHDD(SSD)を一番若いコネクタにつなぐとすっきりするかも。

    3TのHDD

    3TのHDDはfdiskだと一つの領域にできない。
    なので、
    http://noajitte.seesaa.net/article/245008223.html
    まず、1台目のハードディスクをGPTでパーティーションを作成する
    # parted /dev/sdb
    (parted) mklabel gpt
    (parted) mkpart primary ext4 0% 100%
    (parted) q
    
    2台目のハードディスクをGPTでパーティーションを作成する	    
    # parted /dev/sdc
    (parted) mklabel gpt
    (parted) mkpart secondary ext4 0% 100% (リンク先ではsecondaryだけどprimaryにした)
    (parted) q
    
    パーティーションを作成した2台のディスクをraid1にする
    # mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1 
    

    にあるように、partedというのを使って領域を作製する。
    今回はpartedで領域を作製し、そのmd0をOSのインストーラーの途中でguiでフォーマット、homeに指定した。
    mkfs.ext3とかでext3でフォーマットしてもinstallerがext4じゃないとinstallできないと言って怒ってくるので注意


    途中一度作ったmd0を消せなくてなんだかはまったのでその解決法。
    $ mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb1 /dev/sdc1
    mdadm: device /dev/sdb1 not suitable for any style of array
    $ mdadm --detail --scan
    ARRAY /dev/md/0 metadata=1.2 name=localhost.localdomain:0 UUID=***
    $ mdadm --misc --stop /dev/md/0
    mdadm: stopped /dev/md/0
    $ mdadm --detail --scan
    
    というかんじで、こちらの無断コピペですhttp://www.majin.jp/archives/262。ありがとうございます。

    Dataもめんどうなのでraidにしてしまった。

    トリ

    ディストリビューションはFedora15-64bit-LXDE
    に初めしたけど、やっぱり32bit(cernlibは32bitじゃないとパッと手に入らない、安定動作しない?)、ということで、
    Fedora15-32bit-LXDEにした(PAEを明示的に使わないと4G以上のメモリを認識しない)。
    LXDEは軽くて且つ最近の流行りが反映されていない、いろんなファイルが勝手に変更されない、等昔のlinuxっぽくて使いやすい。

    ちなみに、fedoraのLXDEの古いのは
    http://download.fedoraproject.org/pub/alt/spins/linux/releases/
    に落ちている。
    他のについても、Fedora公式のダウンロードを押したときに 飛ばされるアドレスを適当に削れば古いのが見える。