<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>おごちゃんの雑文 &#187; Linux</title>
	<atom:link href="http://www.nurs.or.jp/~ogochan/essay/archives/category/it/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nurs.or.jp/~ogochan/essay</link>
	<description>おごちゃんの雑文</description>
	<lastBuildDate>Thu, 09 Feb 2012 12:27:19 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>lennyのXenを安定させる方法</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1579</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1579#comments</comments>
		<pubDate>Sun, 08 Mar 2009 08:17:49 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/?p=1579</guid>
		<description><![CDATA[このサーバをlennyにした話は既に書いた。 あまりに不安定なんで閉口していたのだけど、ここのところ安定させることに成功したらしく、落ちることがなくなった。 どうやったかについてちょっと解説。 まず一番大きかったのは、l [...]]]></description>
			<content:encoded><![CDATA[<p>このサーバをlennyにした話は既に書いた。</p>
<p>あまりに不安定なんで閉口していたのだけど、ここのところ安定させることに成功したらしく、落ちることがなくなった。</p>
<p>どうやったかについてちょっと解説。<br />
<span id="more-1579"></span></p>
<p>まず一番大きかったのは、lennyのXenが何で落ちているかを発見することが出来たことだ。じゃ、落ちてた原因は何かと言えば、</p>
<h5>ページング</h5>
<p>だ。つまりswapが発生した途端に落ちていた。となれば解決はわかったもので、とにかくswapが起きないようにする。swapしたら負けとばかりに、諸々と調整する。具体的には、Apacheのプロセス数を調整して、swapが起きないようにすることと、swapoffにしておくことだ。これで半日に1度落ちるようなことはなくなった。</p>
<p>次にやったことは、/homeをクラス分けしたことだ。具体的には、</p>
<ul>
<li>頻繁に更新が発生しているユーザ</li>
<li>頻繁に追記が発生しているユーザ</li>
<li>全く更新されないユーザ</li>
</ul>
<p>に分けて、別々の仮想ボリュームを与えることにした。</p>
<p>以前は/homeはみな同じボリュームにしていたため、全く更新されないユーザの領域が頻繁に追記されているユーザのせいで壊れるということがあったのだが、クラス分けすることで壊れることはなくなった。おまけに、1つのボリュームが小さくなったから、fsckする時の時間も少なくて済むようになった。</p>
<p>このようにすることによって、頻繁に落ちたり復旧に時間がかかるということはなくなって、安定稼動するようになった。まぁswapをなくしたことで仮想空間が狭くなってしまったのだけど、落ちてしまうよりはずっといい。</p>
<p>まぁ、こんな工夫をしなくても落ちないというのが一番良いのではあるけれど。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1579/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMの選択と設定</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1553</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1553#comments</comments>
		<pubDate>Sun, 01 Mar 2009 11:36:08 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[システム]]></category>
		<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/?p=1553</guid>
		<description><![CDATA[LinuxプログラマとしてはLinuxが動いてくれないと商売にならないので、Linuxも動かすことに。 Linuxは64bitも32bitも使いたいし、DebianもUbuntuも使いたい。そこでVMということになるのだ [...]]]></description>
			<content:encoded><![CDATA[<p>LinuxプログラマとしてはLinuxが動いてくれないと商売にならないので、Linuxも動かすことに。</p>
<p>Linuxは64bitも32bitも使いたいし、DebianもUbuntuも使いたい。そこでVMということになるのだけど、これもなかなか頭痛い。<br />
<span id="more-1553"></span></p>
<p>元々ノートPCの方では「VMWareでLinuxを動かして、WindowsのXに貼りつけて動かす」ということをやっていた。ノートのWindowsを抜いてしまうと、いろいろ不便なことが多いし、かと言ってWindowsだけだと不便でしょうがなかったので、そうやることにしていた。</p>
<p>Xは試行錯誤の結果、Cygwinを入れて動かすのがリーズナブルだとわかっている。Windows上のXは各種あるのだけど、たいていは商用だし、Freeなものは結局CygwinのXを取り出したものだったりするので、あれこれ悩むよりもCygwinを入れてしまうのが手っ取り早い。</p>
<p>CygwinのX serverを入れてしまえば、XWin Serverというアイコンが出来るので、これをクリックするだけでxtermが動く。あとは、VMにsloginしてやればいい。</p>
<p>さて、そのVMなのだけど、最近は選択に迷うほどある。</p>
<p>隠れMS信者としては、MSのVMを使いたいと言うか、第一選択に思っていたのだけど、これでLinuxを動かすのはちょっと面倒なことがあるようで諦めることに。2004の時に使っていて悪くない感じではあったのだけど、知らぬ間に落ちてしまったりということもあって、信頼性には「？」だったということもある。そんなわけで、第一選択が早々に落選。</p>
<p>定番としてはVMWareがある。</p>
<p>VMWare serverはノートで常用していたのだけど、2.0になって管理コンソールがさっぱりわけわかになってしまった。CPUが2個使えるのは嬉しいんだけど、そういったわけのわからないところが嫌なので、敬遠して他の選択肢を探すことに。</p>
<p>そこで発見したのは、<a href="http://jp.sun.com/products/software/virtualbox/">SunのVirtual Box</a>だ。製品でもあるけど、GPLでもあるので、いろいろ見通しがいい。何しろ「わからなかったらソースを見る」という手が使える。CPUが1つしか使えなさそうなのが困るのだけど、当座には我慢しておけばいい。</p>
<p>普通にVMイメージを作って動かす分にはどうとでもなるのだけど、元々使って動かしていたLinuxの環境を動かしたい。これが使えないことには、いろいろ不自由である。そこでいろいろ調べてみたら、「物理パーティションをゲストにする方法」というのがあるのを発見する。</p>
<p>方法はわかってしまえばどうということはなく、物理パーティションの情報を持った仮想パーティション定義ファイルを作ってやればいい。ヘルプの</p>
<p>9.10. Using a raw host hard disk from a guest</p>
<p>に詳しいことが書いてある。具体的には、</p>
<pre class="program">
VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk \\.\PhysicalDrive1 -register
</pre>
<p>のようにして、vmdkファイルを作る。どこに作るかと言えば、</p>
<pre class="program">
C:\Users\<ユーザ名>\.VirtualBox\HardDisks
</pre>
<p>だ。ここにあるvdiファイル(仮想ディスクイメージ)とvmdkファイル(仮想パーティション定義ファイル)がゲストで使うことの出来るディスクイメージとなる。</p>
<p>これで元々Linuxの入っていたドライブ全体を仮想ディスクとして登録してやって、それを起動するようにしてやると、元々のLinux環境がまるっと動いてしまった。動いてしまえば、後はどうとでもなる。</p>
<p>ただ、ゲスト上ではなぜかディスクは「hdx」になってしまう。今時のLinuxでは、たいていのディスクは「sdx」になっているはずなので、この辺がうまく行かなくて起動エラーになる。これは慌てず騒がず「hdx」に書き換えてやればいい。</p>
<h4>PS.</h4>
<p>64bitのゲストを起動すると、「このプロセッサは64bitじゃないぞ」的なエラーを返したりしてたのだけど、BIOSをアップグレードすることで解決した。どうやら、CPUのフラグの初期化あたりがおかしかったらしい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1553/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ｌｉｎｕｘ使い用Windows Vistaの環境設定</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1551</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1551#comments</comments>
		<pubDate>Sun, 01 Mar 2009 10:41:31 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/?p=1551</guid>
		<description><![CDATA[いかにホスト環境をWindowsにしたとは言え、元々Linuxばかりを使っていたので、Windowsは使いにくくてしょうがない。 そんなわけで、Linux使いにとって不自由のない環境設定が必要だ。 Windowsを使って [...]]]></description>
			<content:encoded><![CDATA[<p>いかにホスト環境をWindowsにしたとは言え、元々Linuxばかりを使っていたので、Windowsは使いにくくてしょうがない。</p>
<p>そんなわけで、Linux使いにとって不自由のない環境設定が必要だ。<br />
<span id="more-1551"></span></p>
<p>Windowsを使っていろいろ気になることのうち、慣れることが難しいなと思う点は、</p>
<ul>
<li>Ctrlキーの位置</li>
<li>キーバインド</li>
<li>日本語入力システム</li>
<li>仮想コンソール</li>
</ul>
<p>だ。他のことは「まぁOSが違うんだからしょうがない」で我慢するとしても、これらだけはどうあっても我慢出来ない。これらも慣れてしまえば良いんではあるけど、何しろUNIXモガキから数えれば20年くらい使っている「環境」なので、なかなか譲れない。なので、これらをVista上でも実現することに。</p>
<h4>Ctrlキーの位置</h4>
<p>まず、Ctrlキーの位置の問題は、「<a href="http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&#038;displaylang=en">Windows Server 2003 Resource Kit Tools</a>」というのを使うことにした。XPまではKeyCtrlというのを使っていたのだけど、どうもVistaでは動かない模様。入れて動かそうとすると、「このバージョンには対応してねーぜ」という脅しが散々出て来るのだけど、そこで負けずに動かすと何とかなる。そうそうVistaでこういったのを動かすには「管理者で実行」というのをやらないといけないんだね。要するにsudoみたいなものか？</p>
<p>動かし方はなんとなくKeyCtrlと似た感じなのだけど、キーはDnDするようだ。最初はKeyCtrlよろしくクリックして「動かねーなー」とか思ってたんだけど^^;</p>
<h4>キーバインド</h4>
<p>キーバインドはやっぱりEmacsでないと不便だ。そこで<a href="http://www.cam.hi-ho.ne.jp/oishi/index.html">XKeymacs</a>を入れる。デフォルトの設定でもそれなりにEmacsしてくれる。後で述べるSKKIMEとの干渉やら、普段使いのショートカットとの整合からいくらか手を入れなきゃいけないけれど、まぁだいたいこれで十分。ちゃんと動けば、Gnome(GTK)のEmacsバインドよりもEmacsらしくさえなる。</p>
<h4>日本語入力システム</h4>
<p>私は普段skkを使っていたので、SKKIMEを入れる。これは私がゴチャゴチャ書いたものじゃなくて、</p>
<p><a href="http://mayokara.info/blog/archives/2008/02/24190204.php">SKKIMEインストールメモ</a></p>
<p>を見ながらやるといい。このままやれば大丈夫。</p>
<p>これも、UIMのskkよりもずっと使いやすい。</p>
<h4>仮想コンソール</h4>
<p>標準のWindowsには、なぜか仮想コンソールがない。XPの時には「Microsoft PowerToys for Windows XP」のVirtual Desktop Managerを使っていた。</p>
<p><a href="http://pc.nikkeibp.co.jp/article/special/20090106/1011038/">プレゼンで即座に画面を切り替え。画面分割ソフト「Virtual Desktop Manager」</a></p>
<p>ところが、これはVista用ではないので、「Vista/XP Virtual Desktop Manager」を入れることに。</p>
<p><a href="http://www.moongift.jp/2008/08/vista_xp_virtual_desktop_manager/">Mac OSXのSpaces風のWindows向け仮想デスクトップ「Vista/XP Virtual Desktop Manager」</a></p>
<p>これで4つまでの仮想コンソールが使えるようになった。</p>
<p>もっとも、これが微妙にCygwin Xと相性が悪かったりするので、同種の他のものにしてみようかなと思っているところ。同種のソフトはいくつかあるようだ。</p>
<h4>PS.</h4>
<p>仮想コンソールには、結局<a href="http://www.dexpot.de/">Dexpot</a>というのを使うことにした。これがXの仮想コンソールに一番近い動作をしているような気がするのと、仮想で作れるコンソールが多いのが嬉しい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1551/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Xenでetchからlennyに</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1538</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1538#comments</comments>
		<pubDate>Wed, 25 Feb 2009 05:45:21 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/?p=1538</guid>
		<description><![CDATA[既に書いたように、サーバをlennyにしてしまった。まだあまりお勧めは出来ないのだけど。 Xenはちょっとハマりどころがあるので、TIPS。 lennyのXenはVer 3.2.1が入っている。Xenの情報をネットで探す [...]]]></description>
			<content:encoded><![CDATA[<p>既に書いたように、サーバをlennyにしてしまった。<a href="http://www.nurs.or.jp/~ogochan/essay/archives/1535">まだあまりお勧めは出来ない</a>のだけど。</p>
<p>Xenはちょっとハマりどころがあるので、TIPS。<br />
<span id="more-1538"></span></p>
<p>lennyのXenはVer 3.2.1が入っている。Xenの情報をネットで探すと、3.0以前のやら3.0のやらはいっぱいあるのだけど、3.2はあまりない。しかも、lennyはついこないだ出たばかりだから、そういったことでも情報は少ない。</p>
<p>なけなしの3.2の情報を探すと、いくつかのディレクティブが変更になっていて、</p>
<ul>
<li>&#8216;ramdisk&#8217;が&#8217;initrd&#8217;に</li>
<li>&#8216;file:&#8217;が&#8217;aio:tap:&#8217;に</li>
<li>&#8216;xenbr&#8217;が’eth&#8217;に</li>
</ul>
<p>変更になったらしいことがわかる。そこで元々ある設定ファイルをこのように変更すると、</p>
<h5>動かない</h5>
<p>のだ。特に&#8217;file:&#8217;のは「rootになるものがないんで待ってる」という意味のメッセージが出て、5分くらい待った挙句に起動出来なくて失敗する。このパラメータあたりに問題があることは容易にわかるのだけど、「新しいXenではaio:tap:って書くんだよ」という情報ばかりが流れていて、わからずじまい。これはlennyでのbuildがおかしいとばかり思い込んでいた。なので、正式版のlennyが出たら直るものだと思って放置していた。</p>
<p>ところが、正式版のlennyでも動かない。</p>
<p>あれこれ試してからふと、「世間でlennyでやったという話があるのだから、一度インスタンスそのものを作って、そこで作られた設定ファイルを見ればいいじゃないか」と思い立った。こうすれば、何が悪いかわかる。</p>
<p>そうやって調べたところ、</p>
<ul>
<li>&#8216;ramdisk&#8217;はそのままでいい</li>
<li>&#8216;file:&#8217;はそのままでいい</li>
<li>&#8216;xenbr&#8217;が’eth&#8217;に</li>
</ul>
<p>ということがわかった。どういった事情があるか知らないけど、3.0の設定とだいたい同じで良いようだ。</p>
<p>この他にtty絡みでちょっとハマる部分がある。</p>
<p>まず、インスタンスを起動する時に、</p>
<pre class="program">
# xm create -c /etc/xen/instance.conf
</pre>
<p>のようにして、コンソール付きで起動すると、rcの処理がほぼ終わったところで、いきなりハングアップしているように見える。これはどうやらコンソールのデバイスの関係らしい。</p>
<p>これを回避するには、設定ファイルに</p>
<pre class="program">
extra = 'xencons=tty'
</pre>
<p>と入れておいてやる。</p>
<p>これが正常に動いてsshでloginしようとすると、loginが蹴られる。どうやらptyがないらしい。これを回避するには、udevをインストールしてやる必要がある。</p>
<p>これで一応動くようになるのだけど、特殊なfs(nfsとか)を使おうとすると動いてくれない。よく見ると、initrdの中にないモジュールが全くない。カーネルが新しくなったので、あらためてlinux-module-xxxxをインストールしてやらなければならない。これで正常に動くようになる。</p>
<p>整理すると、</p>
<ul>
<li>設定ファイルは3.0とほぼ互換</li>
<li>設定ファイルにextra=&#8217;xencons=tty&#8217;を加える</li>
<li>udevとlinux-module-xxxをインスタンスに入れる</li>
</ul>
<p>というあたりに気をつけると、うまく動くようになる。仮想ボリューム名も&#8217;hd&#8217;という名前から&#8217;xvd&#8217;に変更しておいた方がいい。絶対ではないようだけど。</p>
<p>参考として、うちでの現用の設定ファイルを書いておく。</p>
<pre class="program">
kernel = "/boot/vmlinuz-xen"
ramdisk = "/boot/initrd.img-xen"
memory = 6144
name = "gaien-U1"
disk= [
    'file:/instance/U1/root.img,xvda1,w',
    'file:/homes/gaien-U1.img,xvda2,w',
    'file:/instance/U1/var.img,xvda3,w',
    'phy:sda1,xvda4,w',
    'phy:space/home,xvdb1,w',
    'file:/homes/gaien-U12.img,xvdb2,w'
]
root = "/dev/xvda1 ro"
vif = [ 'bridge=eth0','bridge=eth1' ]
extra = 'xencons=tty'
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1538/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>まだlennyには移行しない方がいい</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1535</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1535#comments</comments>
		<pubDate>Mon, 23 Feb 2009 13:17:21 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/?p=1535</guid>
		<description><![CDATA[例によってダウンしてたわけだがｗ 今回はあまりにカーネルがおかしくなるということもあって、早々にlennyにアップグレードしたのが原因だ。etchの時よりも酷いことに。 元々、ここの環境にいろいろと問題があるということは [...]]]></description>
			<content:encoded><![CDATA[<p>例によってダウンしてたわけだがｗ</p>
<p>今回はあまりにカーネルがおかしくなるということもあって、早々にlennyにアップグレードしたのが原因だ。etchの時よりも酷いことに。<br />
<span id="more-1535"></span></p>
<p>元々、ここの環境にいろいろと問題があるということは、既に何度も書いている。</p>
<p>Xenで仮想化しているのだけど、software RAID5 + lvmをdomain0で用意してやり、その仮想ボリュームをdomainUにブロックデバイスとして見せるようにしていた。これがあまりに障害が多く、毎週のように異常になっていたので、直接仮想ボリュームを見せるのではなく、ファイルにイメージを作って見せるようにした。これでかなり障害は減ったのだけど、それでも何事もないわけでもないので、早々にkernelを更新したいと思っていた。</p>
<p>折り良く、lennyがリリースしたので、アップグレードすることに。Xenのアップグレードはちょっとハマりどころがあるのだけど、それは別記事に。</p>
<p>そうやってkernel含め諸々が新しくなったのだけど、かなりの頻度でpanicになる。etchの最終版よりもタチが悪い。panicになったら、さらにお約束のようにファイルシステムは壊れてfsckするハメに。</p>
<p>ふと思い立って、NICを玄人志向のGbE-PCI2の2枚差しから、1枚減らして、オンボードのNIC(Marvell)と両方を使うようにしてみた。これでいくらかpanicは減ったのだが、相変らずpanicすることは同じ。</p>
<p>Hansがあーゆーことになったこともあって、新しいkernelになってもRaiserFSにはあまり期待は持てない。次にファイルシステムを復旧するようになったら、jfsにでもしてみようかと思っている。この前、<a href="http://www.nurs.or.jp/~ogochan/essay/archives/1461">jfsのことはいろいろ書いた</a>けど、kernelが新しくなった時に期待出来るのは、こういった「生きている」モジュールだ。まぁそんなに期待してもいないけどｗ</p>
<p>そんなわけで、まだetch末期程度の安定度はlennyにはないので、安定しているものが欲しい人は、lennyは使わない方がいいと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1535/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>現実的に正しいreiserfsの復旧方法</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1524</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1524#comments</comments>
		<pubDate>Mon, 02 Feb 2009 17:37:39 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/archives/1524</guid>
		<description><![CDATA[日曜のたびにサーバが落ちてるわけだが&#8230; もう慣れてしまったので、落ちても大丈夫。ということを散々経験したところで会得した、今のところの多分間違いのないreiserfsの復旧方法を紹介する。 まずサーバが落ちた [...]]]></description>
			<content:encoded><![CDATA[<p>日曜のたびにサーバが落ちてるわけだが&#8230;</p>
<p>もう慣れてしまったので、落ちても大丈夫。ということを散々経験したところで会得した、今のところの多分間違いのないreiserfsの復旧方法を紹介する。<br />
<span id="more-1524"></span></p>
<p>まずサーバが落ちた時のfsckなのだけど、reiserfsckのオプションは、</p>
<h5>&#8211;fix-fixable</h5>
<p>だけを知っておけばいい。これ以外のオプションはいらない。</p>
<p>オプションなしで起動した場合、&#8211;checkを指定したとみなされるのだけど、これでは何も修復してくれない。あくまでもチェックだけだ。だから、これは時間のムダでしかない。「復旧」は急ぐわけなので、異常を発見するためだけにfsckを走らせるのは馬鹿げている。なので、いきなり&#8211;fix-fixableで走らせる。</p>
<p>これで特に致命的なエラーが出なかったら、それで完了。普通にサーバを起動すればいい。</p>
<p>致命的っぽいメッセージが出て「復旧出来るのは&#8211;rebuild-treeだけだ」みたいなことを言われても、</p>
<h5>これはスルー</h5>
<p>だ。とは言え、復旧しないわけには行かないので、</p>
<ol>
<li>新しい領域を確保してmkfs</li>
<li>元の領域を-r付きでmount(read only mount)</li>
<li>cp -aでまるっと新しい領域に複写</li>
<li>古い領域を捨てて新しい領域を現用に</li>
</ol>
<p>ということをやる。なぜなら、</p>
<h5>&#8211;rebuild-treeは失敗したら何も出来なくなる</h5>
<p>からだ。</p>
<p>運が良ければ&#8211;rebuild-treeで問題なく復旧出来るのだけど、運が悪いとfsckが異常終了してしまう。その時に出来るのは、&#8211;rebuild-tree付きのfsckだけだ。他のことは一切出来なくなってしまう。しかも、これはreiserfsckのバグのせいで、しばしば起きる。私も何度か経験していることは、ここで書いている。</p>
<p>そこで、&#8211;rebuild-treeが必要になったら、その領域は潔く捨ててしまう。</p>
<p>&#8211;fix-fixableが正常終了すれば、仮に致命的な問題があっても、read only mountは出来るようになる。逆に、&#8211;fix-fixableが終了してないと、read only mountは出来ない。生きているファイルを救出する時に、何かおかしなことが起きても困るので、最低限のfsckは完了してread only mountは出来るようにしておきたい。ということを合わせると、この手順しかないということになる。</p>
<p>&#8211;rebuild-treeはもう他に何の手もなくて、&#8211;fix-fixableした後にread only mountも出来ないとか、lost&amp;foundにアホみたいに落ちてどうしようもないとか、そういった</p>
<h5>本当にどうしようもない時に、一か八か</h5>
<p>で使うオプションだと思っておいた方がいい。本当はもうちょっとマシな見方が出来るはずなんだけど、&#8211;rebuild-treeの失敗具合からすると、そう思っておいた方が良いようだ。</p>
<p>問題はこれを可能にするということは、ディスク領域が倍必要になってしまうということ。実際にはそうならないように、ディスク領域は分割しておいた方がいい。このためにはlvmを使うわけだけど、Debian etchでXenだと、どうも動きが微妙っぽいというところが、頭が痛い。ただ、&#8211;rebuild-treeに頼ると復旧不可能ということが起きかねないので、領域の使い回しを考えておくか、reiserfsを使うのを諦めるかすることになる。本当はreiserfsは捨ててしまいたいところなんだけど、意外にも安定で結構パフォーマンスが良いので、なかなか捨てられないのだよね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1524/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LVM + JFSをetch上で使う人への最大にして唯一のアドバイス</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1461</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1461#comments</comments>
		<pubDate>Sun, 07 Dec 2008 21:16:11 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/archives/1461</guid>
		<description><![CDATA[使うな まぁうちの使い方が、ソフトウェアRAID + LVM + Xen + JFSという使い方だからかも知れないけど。こう書くと変態的な構成に見えるけど、やってみればことさらに変わった構成ではないと思う。要するにXen [...]]]></description>
			<content:encoded><![CDATA[<h5>使うな</h5>
<p><span id="more-1461"></span></p>
<p>まぁうちの使い方が、ソフトウェアRAID + LVM + Xen + JFSという使い方だからかも知れないけど。こう書くと変態的な構成に見えるけど、やってみればことさらに変わった構成ではないと思う。要するにXenの上でJFSを動かしているだけだし、RAIDやLVMなんてのも、仮想化する環境にはありがちの構成だろうし。てか、CPUを仮想化したら、ディスクも仮想化しとかないとメリット半減どころじゃないよ。仮想化環境のボリュームをファイルで構成する時も、そのファイルが載ってるボリュームはLVMにしといた方が、いろいろ都合がいい。だいたいsnap shotが取れるということだけでも、運用をいろいろ楽にする。</p>
<p>で、この組合せだと、高負荷をかけた時にJFSが破壊される。ズタズタって程じゃないけど、いくつかのファイルが飛んでファイルシステムがリードオンリーになるということが、突発的に発生する。何かをやらかしたとかではなく、突発的にだ。だから「高負荷をかけた時に」というのも正確じゃないかも知れない。何かの転みでファイルシステムがおかしくなる。</p>
<p>同じ構成でReiserはなんともない。</p>
<p>ReiserはHansがアレなことになってしまって、いろいろアレなことがあるのだけど、それでも今のところ結構タフに動いてくれている。mountする時に時間がかかるのだけど、途中で壊れるよりはずっといい。</p>
<p>XFSがどうかは試してない。また、最新のカーネルでどうなるかも試してない。LVMでない時にどうふるまうかもわからない。ただ、事実としてetchではLVM + JFSでは時々おかしくなる。Xenはあまりそういったあたりに関与しないから、多分Xenは関係ない。JFS自体はディストリビューションのカーネルモジュールに存在しているから、多分ボリュームがややこしいことでなければちゃんと動くのだろう(でなきゃリリースさせてないだろう)。</p>
<p>まーそれだけ。</p>
<h4>PS.</h4>
<p>冷静にもう1度考えてみたのだけど、LVMは関係ないはずだ。なぜなら、Xenの仮想環境に見えているのは、単なる仮想ブロックデバイスだけだから、LVMだろうがディスクだろうが同じことだ。ということは、要するに</p>
<h5>etchではJFSを使うな</h5>
<p>という結論になる。まぁいろいろ条件が絡むのかも知れないが、どうやらダメらしい。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1461/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google-gadgets-for-linux</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1268</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1268#comments</comments>
		<pubDate>Mon, 09 Jun 2008 10:53:56 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/archives/1268</guid>
		<description><![CDATA[CodeZineより。 「Google Gadgets for Linux」がオープンソースで登場 GoogleガジェットのLinux版が出たらしいので、入れてみた。ブツは、 google-gadgets-for-lin [...]]]></description>
			<content:encoded><![CDATA[<p>CodeZineより。</p>
<p><a href="http://codezine.jp/a/article/aid/2620.aspx">「Google Gadgets for Linux」がオープンソースで登場</a></p>
<p>GoogleガジェットのLinux版が出たらしいので、入れてみた。ブツは、</p>
<p><a href="http://code.google.com/p/google-gadgets-for-linux/">google-gadgets-for-linux</a></p>
<p>にある。特に難しいこともなく、configureしてmake, make installで入る。</p>
<p>うちで動かす限り、ちょっとCPUを食い気味なのが気になるけど、許容範囲かな。とは言え、なんかバグバグしてる。Ver 1.0までダチョウアルゴリズムするのが吉。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1268/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>日経Linuxの暴走 &#8212; 頑張れ森側さん</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1227</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1227#comments</comments>
		<pubDate>Wed, 07 May 2008 13:19:25 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[記事]]></category>
		<category><![CDATA[買い物]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/archives/1227</guid>
		<description><![CDATA[献本で送ってもらっている日経Linuxの最新号(6月号)が来た。 いつも通り読んでいると、今月はちょっと異様な感じだった。何が異様かと言えば、「エンタープライズ」な特集が1つあること。多分これは日経コンピュータ編集部から [...]]]></description>
			<content:encoded><![CDATA[<p>献本で送ってもらっている日経Linuxの最新号(6月号)が来た。</p>
<p>いつも通り読んでいると、今月はちょっと異様な感じだった。何が異様かと言えば、「エンタープライズ」な特集が1つあること。多分これは日経コンピュータ編集部から移って来た森側さんの影響かなとちょっと思ったのだが、個人的にはなかなかいい。<br />
<span id="more-1227"></span></p>
<p>かつていくつもあった「Linux雑誌」は、とうとう日経Linuxだけになってしまった。似たような本をゴチャゴチャ買わなくて済むのは結構なことなのだが、紙メディアによる情報源が1つになってしまうというのは、全ての情報がその情報源次第ということになってしまう。もちろんFOSSの情報はネットが一番速いのはあるけれど、速報性があまりいらない解説記事は、いまだに紙の方がわかりやすい。</p>
<p>ところが、しばらく前から日経Linuxは</p>
<h5>Linuxをおもちゃにしたい初心者向け雑誌</h5>
<p>になっていた。「日経」とついていながら、あまりビジネス色はないし、そういった方面の情報はあまりなかった。SoftwareDesignも技術情報については充実しているのだけど、どうも技術ベタベタ過ぎて「その領域ならネットの方がいいよ」という、ちょっと居場所間違えてる感があった。</p>
<p>そんなわけで、購買意欲をそそるような雑誌があまりなくて、「特集が面白かったら買うか」という程度になっていた。元より紙メディアが不況にあるわけなので、「読むべきものがないなぁ」というのはみんな共通のことではなかったかと思う。</p>
<p>でまぁ今月の日経Linuxはそういった「今までの」ものとはまるで違う、「異様」とさえ思えるくらい場違いな特集だった。でも、これが私の目には非常に良い方向転換に見える。なぜなら、他にはあまり「エンタープライズ」な記事がなくて、せいぜい「日経コンピュータ」くらいなものだったからだ。</p>
<p>もちろん今見ると、周囲の記事から浮き過ぎていて「異様」な感じさえする。だけど、もしこの方向にも舵が切れるなら、単なる「Linuxをおもちゃにしたい初心者向け雑誌」から「ビジネスを志向した雑誌」に変化することが出来る。</p>
<p>実はこれは「日経Linux」が創刊した時に期待していたことだ。何しろせっかく「日経」とついているのだから、やはりそういった方向を期待していた。それをどう「間違った」か初心者雑誌になってしまっていて、他の雑誌との差がなかった。結果的に最後まで残ったのだけど、他が生き延びていたら没個性なままだったと思う。それが「日経」らしい雑誌になろうとしていることで、評価したいと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1227/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OCFS2化(3)</title>
		<link>http://www.nurs.or.jp/~ogochan/essay/archives/1097</link>
		<comments>http://www.nurs.or.jp/~ogochan/essay/archives/1097#comments</comments>
		<pubDate>Sat, 23 Feb 2008 06:29:22 +0000</pubDate>
		<dc:creator>ogochan</dc:creator>
				<category><![CDATA[運用管理]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.nurs.or.jp/~ogochan/essay/archives/1097</guid>
		<description><![CDATA[さらにOCFS2化の実験。 今回は全く綺麗な環境を作って、NBDを使って試してみた。 結論的にはやっぱり失敗。 空いているサーバが2台あるので、片方でNBD serverを動かし、それぞれからNBD clientでつなが [...]]]></description>
			<content:encoded><![CDATA[<p>さらにOCFS2化の実験。</p>
<p>今回は全く綺麗な環境を作って、NBDを使って試してみた。</p>
<p>結論的にはやっぱり失敗。<br />
<span id="more-1097"></span></p>
<p>空いているサーバが2台あるので、片方でNBD serverを動かし、それぞれからNBD clientでつながるようにし、OCFS2を両方で動かしてみた。</p>
<p>DebianはNBD serverが動いている方(以下ginza)がsid、動いてない方(以下shinbashi)がetch。ginzaはAthlon 64 E6000+、shinbashiはCore 2 DUO E8400だ。メモリは両方とも6GBなのだが、shinbashiはなぜか3GBしか認識してない。kernelはどちらも2.6.24.2。</p>
<p>という環境で、まずginza用の/etc/nbd-server/configを作る</p>
<pre class="program">
[generic]
[export]
    exportname = /dev/sda4
    port = 12345
    authfile = /etc/nbd-server/allow
</pre>
<p>authfileは動作がおかしかったので、結局使わず。作らないと「どこからでもOK」になってしまうが、実験だから問題ない。</p>
<p>/etc/nbd-clientは共通で、</p>
<pre class="program">
AUTO_GEN="n"
NBD_DEVICE[0]=/dev/nbd0
NBD_TYPE[0]=r
NBD_HOST[0]=192.168.2.27
NBD_PORT[0]=12345
</pre>
<p>この状態で双方から接続を試すと、それぞれのサーバ上の/dev/nbd0にginzaの/dev/sda4が見える。</p>
<p>OCFS2には/etc/ocfs2/cluster.confが必要なので作ってやるが、これはどのサーバにも共通の内容。</p>
<pre class="program">
node:
        ip_port = 7777
        ip_address = 192.168.2.14
        number = 0
        name = kabigon
        cluster = ocfs2
（中略）
node:
        ip_port = 7777
        ip_address = 192.168.2.27
        number = 6
        name = ginza
        cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 192.168.2.26
        number = 7
        name = shinbashi
        cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 192.168.2.11
        number = 8
        name = shibuya
        cluster = ocfs2

cluster:
        node_count = 9
        name = ocfs2
</pre>
<p>てな感じ。</p>
<p>後は<a href="http://www.nurs.or.jp/~ogochan/essay/archives/1022">前にやったような手順</a>で設定。ginzaで初期化して双方でmount出来るのを確認した。</p>
<p>程々のディレクトリをcp -aしても問題がないので(iSCSIだとこの時点でコケる)、耐久試験を行う。実験に使うのはこのサーバの/homeディレクトリ。このサーバには2000くらいのユーザがいて、500GB弱使っている。ちょうど/dev/sda4と同じくらいの大きさだ。</p>
<p>nfs mountしてcp -aを開始してそのまま寝て起きたら、双方rebootしていた orz</p>
<p>/ver/log/kern.logによると、開始3時間半くらい経過したところでrebootがかかったようだ。異常らしいものが記録されていないし、ginzaはすんなり再起動しているので(shinbashiはgrubでひっかかっていた)、panicにもならないで再起動したのだろう。だとするとiSCSIの時と同じ現象だ。</p>
<p>実験開始当時は双方からディレクトリの内容は見えているし、特に異常らしいものはなかったので、なんだかよくわからないところで何か起きている。</p>
<p>つーことで現在のところの結論は、「NBD + OCFS2はそこそこは動くけど耐久試験には耐えない」ということだな。OCFS2については、世間で「やってみました」的な情報はいくつかあるのだが、もしかして耐久試験をやってないんじゃないか？ 「動く」と言われるものをあれこれ試してこんなに動かないってのも珍しいような気がするが。それとも例によって私が根本的な間違いをしてるのだろうか？ node数を減らして試してみるかな。</p>
<h4>PS.</h4>
<p>複数からmountしないでshinbashiからだけmountしてcpしたら、無事全部コピー出来た。どうも協調動作する何かに問題があるようだ。</p>
<h4>PS.2</h4>
<p>/etc/ocfs2/cluster.confの記述を、実際に使っているnodeだけにしてみたのだが、やっぱり途中でコケる。OCFS2はいわゆるexperimentalな実装ではないはずなんだが、こんなに簡単にコケるというのが理解出来ない&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nurs.or.jp/~ogochan/essay/archives/1097/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

