2016年3月4日金曜日

調べ物メモ

LSI MegaRAID と LSI SAS/SATA HBA の2種類がある、と。
ところでHBAって何?   ここで聞く? Host Bus Adapter ホストバスアダプタの略です。 マザーボードでもSATAポートがついていますが、SATAやSASポートを拡張カードで増設するのがHBAです。 HBAにRAID機能を持たせるとRAIDカードです。 細かいことは調べてね。
http://oliospec.ldblog.jp/archives/29669279.html 

ということはRAID機能をボード側に任せてしまいたい場合はMegaRAID、 FreeBSD zfs や FreeNAS, Linuxでも LVM を使ったりする場合はHBAでいいのかなと思います。 
zfsについては
ZFSの提供するデータ保護機能の恩恵を受けるには, RAIDコントローラはシンプルにHBA(ITまたはJBODモード)で使うことを薦めています (RAIDカードによってはすべてのディスクを単一のRAID 0としてセットアップする必要があります)。
http://gihyo.jp/admin/serial/01/bsd-yomoyama/0007 

ということですんで、HBAでいいんですね。余ったお金でメモリをより多く積むのがzfs流なのかも知れません。
Linux LVMも同じような観点で検討が必要だと思いますので、ハードウェアRAIDの上でLVMを使うのか、 HBAでHDDをマネジメントしやすくしたうえでLVMを構築するのかは、判断が要るところなのでしょう。

公式ページ(HBA)
http://www.avagotech.com/products/server-storage/host-bus-adapters/

LSI SAS 9207系 (PCI Express 3.0) IOコントローラーはLSISAS2308
LSI SAS 9207-8i など
http://www.ask-corp.jp/products/avago/hba/lsi-sas-9207.html
http://www.arms-corp.co.jp/lsi9207
http://kakaku.com/item/K0000391485/

LSI SAS 92xx系 (PCI Express 2.0) IOコントローラーはLSISAS2004/2008/2116
SAS 9211-4i HBA など
http://www.ask-corp.jp/products/avago/hba/lsi-sas-9200.html
http://www.arms-corp.co.jp/lsi9211
http://kakaku.com/item/K0000148624/
http://kakaku.com/item/K0000148622/


MegaRAIDで内部4ポートのものだけ列挙しても結構な数がありまして…
公式ページ(MegaRAID) http://www.avagotech.com/products/server-storage/raid-controllers/

12Gb/sクラス (ドキュメントに UEFIに関する記述あり)
PCI Express 3.0x8
MegaRAID SAS 9361-4i, LSISAS3108 Dual-Core, キャッシュ1GB
MegaRAID SAS 9341-4i, LSISAS3008

6Gb/sクラス
PCI Express 3.0x8
MegaRAID SAS 9271-4i, LSISAS2208 Dual-Core, キャッシュ1GB

PCI Express 2.0x8
MegaRAID SAS 9266-4i, LSISAS2208 Dual-Core, キャッシュ1GB
MegaRAID SAS 9260-4i, LSISAS2108, キャッシュ512MB
MegaRAID SAS 9240-4i, LSISAS2008
3ware SAS 9750-4i, LSISAS2108, キャッシュ512MB 

多いなあ…… コントローラーチップとキャッシュメモリの有無と容量、PCI Express の違いで選ぶ感じでしょうか。 RAID1でいいなら9240, もうちょっとしっかり作りたいならそれ以上、予算次第? そして3ware SAS 9750-4i と MegaRAID SAS 9260-4i の違いは何なのか。ソフトウェアか。

※3ware SAS のほうは EFIに対応しないようです。
http://www.arms-corp.co.jp/products/2013-06-19-02-47-41/lsisupport/96-3ware-sas-9750-efi-boot

FreeBSDの LSI 系ドライバが多かったので、リストアップしておきましょう。

mpt -- LSI Fusion-MPT SCSI/Fibre Channel driver
mps -- LSI Fusion-MPT 2 Serial Attached SCSI driver
mpr -- LSI Fusion-MPT 3 IT/IR 12Gb/s Serial Attached SCSI/SATA driver
mrsas -- LSI MegaRAID 6Gb/s and 12Gb/s SAS+SATA RAID controller driver

上に挙げたHBAボードはすべて mps(4) で使えるようですね。MegaRAIDだと mrsas(4) で使えるようです。
mrsasはボードがちゃんと列挙されてるのに、mpsのほうはボード列挙されてないんだなあ…

Adaptecのほうまでは手が回らなかったので、最初のほうで紹介した記事を参考に。

VMware ESXi ではどうしたらいいのかなと思ってちょっと検索してみると、
A hardware RAID card that is listed on the VMware HCL is the only viable solution for running an ESXi host with local storage.
https://www.packetmischief.ca/2011/03/20/choosing-a-raid-card-for-esxi/

だ、そうです。なるほど。少なくとも9260、それ以上(キャッシュメモリ有り)でしょうか。高いんだよなあ……(´・ω・`)


と、ここまで書いておいて最初に読んだ記事に
最近のマザーボードは昔からあるBIOSではなく、uEFIになっています。 これが曲者で、従来のインターフェイスカードだと対応できないのです。 (中略) たとえば HighPoint Pocket 27xxシリーズ、6xxシリーズ LSI SAS 9211シリーズ等は対応していません。 HBAを認識しなかったりします。
http://oliospec.ldblog.jp/archives/29669279.html
ってちゃんと書いてあって。

そしてLSI HBA 9207/9211 の最新BIOS(P20)にはバグがあるのでダウングレードすべきなのだそうです。
https://community.nexenta.com/thread/1053
http://qiita.com/syoyo/items/4e39dd6bd0d4efa41d97
えっ…ひどくない?

……じゃあHBAならAdaptecのほうがいいのかい!? と思ってFreeBSDのマニュアルを漁ると…… aacraid(4)曰く。
the aacraid_linux.ko and linux.ko modules are loaded, the Linux-compatible ioctl(2) interface for the management device will be enabled and will allow Linux-based manage‐ ment applications to control the card.
Linuxコンパチ!!
BUGS The controller is not actually paused on suspend/resume.
ドウイウコトナノ?


10.1 までに対応するドライバは、ちゃんとメーカーが提供しているみたいなんですが……
AACRAID 32- and 64-bit Driver Build 41018 for FreeBSD 9.3, 10.1

2014年9月26日金曜日

latexmkの最も敷居の低い使い方

makefile を作ります。

all:
clean:
        latexmk -c hoge.tex

latexmk を設定しなくても make clean を簡単に作れます。おわり。 

……これ地味に見えるんですが、rmとアスタリスクの組み合わせが招く不幸を防げるという点でとてもありがたいと思いました。-c にするか -C にするかはお好みで。

2014年9月23日火曜日

uim-mozcをパッケージに触らず無効化する方法

システムワイドに uim-mozc が入っていて、uim-anthy を入れるからmozcは無効化したい、でもパッケージは削除したくない…… そんなシチュエーションに遭遇する人はあまりいないと思いますが、そんなときは uim から mozc を無効化しましょう。 システム全体に影響する変更方法はこちら。


# uim-module-manager --unregister mozc --path /var/lib/uim
で、このコマンドを探し当てるためにまた遠回りしたので、その経緯を書いておきます。

まず、uim の仕組みが分かっていなかったので、とりあえずなにかファイルを消せばいいと思った(強引)のですが

% dpkg -L uim-mozc
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/uim
/usr/lib/x86_64-linux-gnu/uim/plugin
/usr/lib/x86_64-linux-gnu/uim/plugin/libuim-mozc.so
/usr/share
/usr/share/uim
/usr/share/uim/pixmaps
/usr/share/uim/mozc.scm
/usr/share/uim/mozc-custom.scm
/usr/share/uim/mozc-key-custom.scm
/usr/share/doc
/usr/share/doc/uim-mozc
/usr/share/doc/uim-mozc/README.Debian
/usr/share/doc/uim-mozc/copyright
/usr/share/doc/uim-mozc/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/uim-mozc
/usr/share/uim/pixmaps/mozc_tool_dictionary_tool.png
/usr/share/uim/pixmaps/mozc.png
/usr/share/uim/pixmaps/mozc_tool_selector.png
/usr/share/uim/pixmaps/mozc_tool_config_dialog.png

当然、なにを消して良いかこれだけで理解するのは無理というもの。

そういえばdebian にはパッケージのコントロールファイルがあるじゃないか。それを見よう、と思い立つわけです。

% dpkg -e uim-mozc_1.5.1090.102-4+deb7u1_amd64.deb ~/tmp-uimcontrol
% cd ~/tmp-uimcontrol
% ls -la
total 44
drwxr-xr-x   2 tarai staff  4096 Jun  7  2013 .
drwx------ 140 tarai staff 20480 Sep 23 17:49 ..
-rw-r--r--   1 tarai staff  1010 Jun  7  2013 control
-rw-r--r--   1 tarai staff   560 Jun  7  2013 md5sums
-rwxr-xr-x   1 tarai staff  1504 Jun  7  2013 postinst
-rwxr-xr-x   1 tarai staff   132 Jun  7  2013 postrm
-rwxr-xr-x   1 tarai staff   985 Jun  7  2013 prerm
-rw-r--r--   1 tarai staff    21 Jun  7  2013 shlibs
% lv postinst
(中略)
    configure)
        if which uim-module-manager >/dev/null 2>&1; then
                uim-module-manager --register mozc --path /var/lib/uim
        fi
    ;;
(以下略)
% lv prerm
(中略)
    remove|deconfigure)
        if which uim-module-manager >/dev/null 2>&1; then
                uim-module-manager --unregister mozc --path /etc/uim
        fi
        ;;
(以下略)

postinst や prerm の詳細は http://www.debian.or.jp/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.html が詳しいです。

つまりこの uim-module-manager というコマンドが重要なんですね、というところにたどりつき、 冒頭のような操作で大丈夫だろう、という結論に到達した次第です。
(何故postinstとprermで pathの引数が違うんだろう……)