ioMemory(Fusion iO ioDrive)SX300をUbuntu14.04で使う
ioMemory SX300をUbuntu14.04で使うのに少し苦労したので,作業メモ
参考にしたのはこの辺りと,DellのUser Guide.
構成は以下
サーバ:Dell R730
ioMemory:SX300-3200,SX300-6400(各1台)
OS: Ubuntu 14.04 amd64 server
Fusion-io製品は,インストールしただけではSSDとして見えないので,
製品としてはDELLのOEM版になるのでhttp://dell.fusionio.comから以下一式をダウンロード.
Ubuntu用は無いので,RedHat7用(Version 4.1.1 Dell)を利用(Select ProductはioMemory SX300を選び,Operating SystemではLinux_rhel-7,Select Virsionで4.1.1-Dellを選択).
Software Source:
iomemory-vsl4-4.1.1.297-1.0.el7.src.rpm
Utilities:
fio-common-4.1.1.297-1.0.el7.x86_64.rpm
fio-preinstall-4.1.1.297-1.0.el7.x86_64.rpm
fio-sysvinit-4.1.1.297-1.0.el7.x86_64.rpm
fio-util-4.1.1.297-1.0.el7.x86_64.rpm
libvsl-4.1.1.297-1.0.el7.x86_64.rpm
Firmware:
dell_iodrive_4.1.1-20140819.fff 21.50MB 28 Aug 2014
fio-firmware-dell_iodrive-4.1.1.20140819-1.noarch.rpm
ダウンロードして,ホームディレクトリに全部置いてある想定で作業します.
まずは,インストールに必要なパッケージがあるので以下インストール作業を少し.
まずカーネルバージョンを確認.
$uname -r 3.13.0-46-generic
僕の環境では3.13.0-46-genericでした.
$sudo apt-get install build-essential rpm linux-headers-`uname -r` alien
以降の基本的な流れは一緒においてあるUser Guideと同じ.
Software Sourceのリビルド
$sudo rpmbuild --rebuild iomemory-vsl4-4.1.1.297-1.0.el7.src.rpm
ホームディレクトリのrpmbuildディレクトリ内にrpmが出来る.
$ls iomemory-vsl4* ~/rpmbuild/RPMS/x86_64/ iomemory-vsl4-3.13.0-46-generic-4.1.1.297-1.0.x86_64.rpm iomemory-vsl4-config-3.13.0-46-generic-4.1.1.297-1.0.x86_64.rpm iomemory-vsl4-source-4.1.1.297-1.0.x86_64.rpm
$sudo alien ~/rpmbuild/RPMS/x86_64/iomemory-vsl4-*.rpm
でdebに変換して以下でインストール
$sudo dpkg -i iomemory-vsl4-*.deb $sudo depmod -a
残りはまとめてインストール
$sudo alien libvsl-4*.rpm $sudo dpkg -i libvsl_4*.deb $sudo alien fio-*.rpm $sudo dpkg -i fio-*.deb
うちの環境では/etc/sysconfig/iomemory-vsl4のパラメータを1個変更.
変えなくても平気かも.
sudo vi /etc/sysconfig/iomemory-vsl4 #ENABLED=1 コメントアウトを外す ENABLED=1
反映の為に再起動.
$sudo reboot
起動後正常に認識されていれば,fio-statusコマンドでデバイスの詳細が表示される.
今回は2台なので2台表示される.
$sudo fio-status Found 2 ioMemory devices in this system Driver version: 4.1.1 build 297 Adapter: ioMono ioMemory SX300-6400, Product Number:XXXXX, SN:XXXXXXXXX PCIe Power limit threshold: 24.75W Connected ioMemory modules: fct0: Product Number:MM86C, SN:XXXXXXXXX fct0 Attached ioMemory Adapter Controller, Product Number:XXXXX, SN:XXXXXXXXX Last Power Monitor Incident: 155252 sec PCI:04:00.0, Slot Number:5 Firmware v8.7.6, rev 20140806 Public 6400.00 GBytes device size Internal temperature: 46.76 degC, max 52.66 degC Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00% Contained Virtual Partitions: fioa: ID:0, UUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX fioa State: Online, Type: block device, Device: /dev/fioa ID:0, UUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX 6400.00 GBytes device size Adapter: ioMono ioMemory SX300-3200, Product Number:XXXXX, SN:XXXXXXXXX PCIe Power limit threshold: 24.75W Connected ioMemory modules: fct1: Product Number:FJYYT, SN:XXXXXXXXX fct1 Attached ioMemory Adapter Controller, Product Number:XXXXX, SN:XXXXXXXXX Last Power Monitor Incident: 156670 sec PCI:82:00.0, Slot Number:4 Firmware v8.7.6, rev 20140806 Public 3200.00 GBytes device size Internal temperature: 43.80 degC, max 55.12 degC Reserve space status: Healthy; Reserves: 100.00%, warn at 10.00% Contained Virtual Partitions: fiob: ID:0, UUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX fiob State: Online, Type: block device, Device: /dev/fiob ID:0, UUID:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX 3200.00 GBytes device size
Fusion-ioはxfsが速いと言う噂なのでxfsで設定.
後で測って見たけどext4に対して2割ほど速いかな.
$sudo apt-get install xfsprogs sudo mkfs.xfs /dev/fioa sudo mkfs.xfs /dev/fiob $sudo mkdir /STORE1 $sudo mkdir /STORE2 $sudo mount /dev/fioa /STORE1 $sudo mount /dev/fiob /STORE2
起動時にマウントしたい場合は/etc/fstabを適宜編集.
Ubuntuでaptを高速ミラーにしたいなら
UbuntuをServer Location Japan, Timezone Asia/Tokyoでインストールすると、aptのリポジトリリストは
%cat /etc/apt/sources.list deb http://jp.archive.ubuntu.com/ubuntu/ precise main restricted deb-src http://jp.archive.ubuntu.com/ubuntu/ precise main restricted ・ ・ ・
なんてリポジトリが並んでいる。
とりあえず、リポジトリは速いに越したことはないので以下のコマンドを打つと、日本最速ミラーを標榜するftp.jaist.ac.jpに/etc/apt/sources.listの中身を書き換え、オリジナルを.backという拡張子をつけて保存しておいてくれる。
sudo sed -i".back" -e 's/\/\/jp.archive.ubuntu.com/\/\/ftp.jaist.ac.jp\/pub\/Linux/g' /etc/apt/sources.list
以上
kumaコマンド作ってみた.
blコマンドを参考にkumaコマンドを作ってみた.特に後悔はしていない.
ソースは以下.
/* * Ubuntu 12.0.4: * cc -O -o kuma kuma.c -lncursesw -ltermcap * Mac OSX * cc -O -o kuma kuma.c -lncurses -ltermcap * */ #include <locale.h> #include <ncurses.h> #include <signal.h> #include <unistd.h> #define KUMA_WIDTH 24 #define KUMA_HIGHT 12 void main(int argc, char *argv[]) { int x, y, lines; setlocale(LC_ALL,""); initscr(); signal(SIGINT, SIG_IGN); noecho(); leaveok(stdscr, TRUE); scrollok(stdscr, FALSE); y = LINES/2; for(x = COLS-KUMA_WIDTH; x >=0; x--){ clear(); if(add_kuma(x, y) == ERR) break; refresh(); usleep(20000); if(x == 0) usleep(80000); } mvcur(0, COLS - 1, LINES - 1, 0); refresh(); usleep(100000); endwin(); } int add_kuma(int x, int y) { int s; char *str[12]; str[0] = " ∩___∩"; str[1] = " | ノ ヽ"; str[2] = " / ● ● | クマ──!!"; str[3] = " | ( _●_) ミ"; str[4] = "彡、 |∪| 、`\"; str[5] = " /_ ヽノ /´> )"; str[6] = "(__) / (_/"; str[7] = " | /"; str[8] = " | /\ \"; str[9] = " | / ) )"; str[10]= " ∪ ( \"; str[11]= " \_) "; for(s = 0 ;s < KUMA_HIGHT-1;s++){ if(mvaddstr(y+s, x, str[s]) == ERR) return ERR; } return 0; }
Arduino1.0.1 SD Librarayのファイル文字数の制限
Arduino1.0.1に標準で付いているSD Libraryの文字数制限で余ったのでメモ.
ファイル名として指定できる文字数は拡張子も含めて12文字まで.
ドキュメントにも書いてなかったので,ライブラリの中を読んで確認.
ライブラリの中にコメントには書いてあった.
Ubuntu 10.04 LTSにRuby + MeCab環境を作る
研究?の一部業務?でRuby + MeCabにお世話になっているのですが,環境構築の手法を忘れて無駄に悩んだのでメモ.
今回の環境はUbuntu10.04 LTS
インストールで忘れがちなのは辞書.
UbuntuはUTF-8な環境なのでmecab-ipadic-utf8を入れる.
sudo apt-get install ruby ruby-dev mecab mecab-utils libmecab-ruby mecab-ipadic-utf8
サンプルを動かす.
#!/usr/bin/env ruby # -*- coding: utf-8 -*- require 'MeCab' sentence = "本日は晴天なり" begin print MeCab::VERSION, "\n" print sentence, "\n" c = MeCab::Tagger.new(ARGV.join(" ")) puts c.parse(sentence) n = c.parseToNode(sentence) while n do print n.surface, "\t", n.feature, "\t", n.cost, "\n" n = n.next end print "EOS\n"; rescue print "RuntimeError: ", $!, "\n"; end
動作結果
0.98
本日は晴天なり
本日 名詞,副詞可能,*,*,*,*,本日,ホンジツ,ホンジツ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
晴天 名詞,一般,*,*,*,*,晴天,セイテン,セイテン
なり 助動詞,*,*,*,文語・ナリ,基本形,なり,ナリ,ナリ
EOS
BOS/EOS,*,*,*,*,*,*,*,* 0
本日 名詞,副詞可能,*,*,*,*,本日,ホンジツ,ホンジツ 4470
は 助詞,係助詞,*,*,*,*,は,ハ,ワ 5345
晴天 名詞,一般,*,*,*,*,晴天,セイテン,セイテン 11000
なり 助動詞,*,*,*,文語・ナリ,基本形,なり,ナリ,ナリ 14387
BOS/EOS,*,*,*,*,*,*,*,* 12553
EOS
SynergyからSynergyKMへの変更(OSX 10.7 Lion)
先日Mac PortsでSynergyを導入したんですが,OSX 10.7 Lionを導入したらMac PortsのSynergyのビルドに失敗するようになり,調べた限りはMacのAPIの変更で対応できないって話が出ていたので,SynergyKMに変更しました.
構成は以前と同じで,サーバがMac OSX 10.7 Lion . クライアントはUbuntu10.04, synergycはapt-get upgradeの結果1.3.7です.
SynergyKMのサイトから最新版をダウンロードしてきます.
今日現在のバージョンは1.0b7.内包しているsynergyは1.3.1(Mac Portsとバージョンが一緒なんだけどなぁ).
インストールすると,コントロールパネルの”その他”のセクションに SynergyKMのパネルが出来ます.
パネルをクリックして"General"のタブから"Share my keyboard and mouse"を選択.
次に Server Configurationのタブで
mac-airとdev-ubuntuの2つのデスクトップを作成します.
Applyを押した後,"General"のタブから"Turn Synergy On"のボタンを押せばサーバが起動します.
クライアントのUbuntuでは前回同様
でSynergyクライアントを起動すれば終わりです.