<?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>ふがっさむ・WP &#187; Kernel</title>
	<atom:link href="http://fuga.jp/blog/fugapress/archives/tag/kernel/feed" rel="self" type="application/rss+xml" />
	<link>http://fuga.jp/blog/fugapress</link>
	<description>サーバの性能を最小限になるように設定した運用してます。いつもより遅いです…</description>
	<lastBuildDate>Sun, 20 May 2012 10:01:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>lxcをとりあえず試してみるには?</title>
		<link>http://fuga.jp/blog/fugapress/archives/5223</link>
		<comments>http://fuga.jp/blog/fugapress/archives/5223#comments</comments>
		<pubDate>Thu, 03 Mar 2011 21:25:17 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[lxc]]></category>
		<category><![CDATA[仮想化]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/5223</guid>
		<description><![CDATA[lxcばなしの続き。lxcは仮想化としてもある程度使えるのですが、リソース自体は元の環境を共有します。制限をかけることはできますが、見えなくするわけでもないみたいです。 とりあえずコンテナにプロセスを突っ込んでみるという [...]]]></description>
			<content:encoded><![CDATA[<p>lxcばなしの続き。lxcは仮想化としてもある程度使えるのですが、リソース自体は元の環境を共有します。制限をかけることはできますが、見えなくするわけでもないみたいです。</p>

<p>とりあえずコンテナにプロセスを突っ込んでみるということをまずは試しておきましょう。</p>

<p><span id="more-5223"></span></p>

<p>ということでlxcのツール類をインストールしているのであれば、lxc-executeというコマンドが出てきます。これ以外にも”lxc”で始まるツール類がいくつか用意されているのですが、とりあえずこれだけ。</p>

<p>lxcのサンプル設定ファイルが/usr/share/doc/lxc/examples以下に入っていることもあるかもしれませんが、ここではとりあえずネットワーク無しの設定をちょっと持ってきます。</p>

<blockquote>   <pre>$ cat lxc-empty-netns.conf
# Container with new network withtout network devices
lxc.utsname = omega
lxc.network.type = empty
lxc.network.flags = up</pre>
</blockquote>

<p>utsnameはコンテナに割り当てるホスト名、その他、ネットワークの設定として”empty”(空)を設定しています。これによりネットワーク的には外に出られない、閉じ込められた環境になります。上記の設定ファイルをコピーしてくるなり、書き込んだファイルを作るなりしてます。</p>

<blockquote>
  <pre># lxc-empty-netns.confとして先の内容を保持しています
$ sudo lxc-execute -n omega -f ./lxc-empty-netns.conf /bin/bash
omega:/home/densuke# ifconfig
lo        Link encap:ローカルループバック
          inetアドレス:127.0.0.1 マスク:255.0.0.0
          inet6アドレス: ::1/128 範囲:ホスト
          UP LOOPBACK RUNNING  MTU:16436  メトリック:1
          RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
          TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
      衝突(Collisions):0 TXキュー長:0
          RXバイト:0 (0.0 B)  TXバイト:0 (0.0 B)</pre>
</blockquote>

<p>&quot;-n omega&quot;がコンテナの名称です。ifconfigを直後に走らせてますが、eth0が見えていません。閉じ込めに成功してます。</p>

<p>ではちょっと制約を、メモリに上限を割り当ててみましょう。その前にちょっとしたテストツールを自作してみます。</p>

<blockquote>
  <pre>#include <stdio .h>
#include <malloc .h>

int main()
{
    int n;
    for (n = 1; n &lt;= 8; n++) {
        char *s;
        int size;
        int i;
        size = 1 &lt;&lt; n;
        printf(&quot;check memory: %dMB...&quot;, size);
        s = (char *) malloc(sizeof(char) * size * 1024 * 1024);
        if (!s) {
            perror(&quot;unable to allocate memory!&quot;);
            return 1;
        }
        for (i = 0; i &lt; size * 1024 * 1024; i++) {
            *(s + i) = '\0';
        }
        free(s);
        printf(&quot;OK\n&quot;);
    }
    return 0;
}</malloc></stdio></pre>
</blockquote>

<p>なんてコードにしてみました。ベタすぎますが、2～256MBまでmalloc()して、実際に書き込みをしてメモリを利用するというものです。あたりまえですが、通常空間では成功します。</p>

<blockquote>
  <pre>check memory: 2MB...OK
check memory: 4MB...OK
check memory: 8MB...OK
check memory: 16MB...OK
check memory: 32MB...OK
check memory: 64MB...OK
check memory: 128MB...OK
check memory: 256MB...OK</pre>
</blockquote>

<p>制約かけに行きましょう。ディレクトリ/cgroup/omegaに移動して、設定を行います。</p>

<blockquote>
  <pre># cd /cgroup/omega
# echo $[64*1024*1024] &gt; memory.memsw.limit_in_bytes
# echo $[64*1024*1024] &gt; memory.limit_in_bytes</pre>
</blockquote>

<p>名前の通りでバイト単位でサイズを設定しておきます。&quot;memsw&quot;のほうは、マニュアルを見る限り、スワップ込みの量だそうです。64MB分を設定したので、さてどうなるか…</p>

<blockquote>
  <pre># ./mem
check memory: 2MB...OK
check memory: 4MB...OK
check memory: 8MB...OK
check memory: 16MB...OK
check memory: 32MB...OK
強制終了</pre>
</blockquote>

<p>という感じで終了してます。64MB処理の最中で落ちているのがわかりますが、これはコンテナ内で64MBまでしか使えないという制約になっている(ulimitだと各プロセスでという縛りの模様)ため、すでにシェルなどがメモリを取っていることから、実際に使えるのは64MB未満になっているのですね。</p>

<p>コンテナの中で動いているプロセス状態は、lxc-psで確認することができます。岩場外からコンテナ上のプロセスをpsで取得するようなイメージ。</p>

<blockquote>
  <pre># lxc-ps -n omega --lxc ax
CONTAINER    PID TTY      STAT   TIME COMMAND
omega      25795 pts/6    S      0:00 /usr/lib/lxc/lxc/lxc-init -- /bin/bash
omega      25797 pts/6    S+     0:00 /bin/bash</pre>
</blockquote>

<p>複数コンテナが動いているときは、コンテナ名を指定することで絞り込むことができます(-n コンテナ)。</p>

<p>今回のエントリでは、同一ファイルシステムでコンテナで囲っていることになります。メモリとネットワークの制約をかけてみたわけですがその他のことはまた今度。</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/5223/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>今更ながらlxcをいじってみてます</title>
		<link>http://fuga.jp/blog/fugapress/archives/5222</link>
		<comments>http://fuga.jp/blog/fugapress/archives/5222#comments</comments>
		<pubDate>Wed, 02 Mar 2011 21:15:57 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[lxc]]></category>
		<category><![CDATA[仮想化]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/5222</guid>
		<description><![CDATA[最近、lxc(Linux Containers)というものをいじってみてます。まだよくわかってないところが多いですが、それなりに使えてきており、授業展開にも使えそうな感じがしてきてます。 これはブログのネタとして残せそう [...]]]></description>
			<content:encoded><![CDATA[<p>最近、lxc(Linux Containers)というものをいじってみてます。まだよくわかってないところが多いですが、それなりに使えてきており、授業展開にも使えそうな感じがしてきてます。</p>

<p>これはブログのネタとして残せそうな感じになってきたので、何回かに分けて書いてみたいと思います。まずはlxcの紹介ですね。</p>

<p><span id="more-5222"></span></p>

<p>lxc(Linux Container)は、いわゆる仮想化技術のひとつです。といってもハードウェアの仮想化というものではなく、OSの仮想化に近いものです。</p>

<ul>   <li>OS部分(Linux)は共有 </li>    <li>実行空間は共有もできるしchrootによる分離も可能 </li>    <li>CPUやメモリを(やんわりと)制限できる </li>    <li>ネットワークは切り分け可能 </li> </ul>

<p>というのがここまでの感想。いずれにしても自分でいじったり、調べた結果に基づいての判断なので、知らないことだらけだったりします。</p>

<p>カーネルコードは共有なので、レイヤー構造が複雑になってパフォーマンスに影響するということはほとんどなさそうです。ファイルシステムツリーはそのまま使うこともできるし、chrootを併用して、特定のツリーいかしか見えないようにすることもできます。</p>

<p>lxcを使用する際に、空間(コンテナ)に名前をつけるのですが、その空間および、空間内で呼び出されたプロセスは、コンテナの名前空間に紐づけられた制約を適用することができるようになっていて、結果としてCPUやメモリに関して制限をかけることができます。触っていませんが、ディスクデバイス(ブロックデバイス)などにも制約を加えられるみたいです。また、いくつかの手法で仮想的なイーサネットを提供できるため、NAT的運用を伴えばネットワークを閉じ込めたりすることも可能です。</p>

<p>コンテナの名前空間は、cgroupと呼ばれるもので制御されます。カーネルの機能でcgroupを有効にしていれば、とりあえず見ることができます。使えるかどうかに関しては、`/proc/filesystems`を`grep`するのが手っ取り早いかな。</p>

<blockquote>   <pre>densuke@yuzu% grep cgroup /proc/filesystems
nodev   cgroup</pre>
</blockquote>

<p>使えることがわかったら、マウントしてみましょう。</p>

<blockquote>
  <pre>densuke@yuzu% sudo mkdir /cgroup
densuke@yuzu% sudo mount -t cgroup cgroup /cgroup</pre>
</blockquote>

<p>常用しそうなら、後ほど`/etc/fstab`に入れておきましょう。あとで消せなくなるなる恐れもありますが(再起動すれば消える)、試しにこの/cgroupディレクトリに適当な名前のディレクトリを掘ってみると、自動的に中にエントリができます。この作ったディレクトリ名がコンテナ名となります。</p>

<blockquote>
  <pre>densuke@yuzu% cd /cgroup
densuke@yuzu% ls
18977                   cpuset.memory_pressure_enabled
blkio.io_merged         cpuset.memory_spread_page
blkio.io_queued         cpuset.memory_spread_slab
blkio.io_service_bytes  cpuset.mems
 …中略…
cpuset.memory_migrate   release_agent
cpuset.memory_pressure  tasks
densuke@yuzu% sudo mkdir FUGAHOGE  # コンテナFUGAHOGEを作成
densuke@yuzu% ls FUGAHOGE
blkio.io_merged         cpuset.memory_spread_page
blkio.io_queued         cpuset.memory_spread_slab
blkio.io_service_bytes  cpuset.mems
blkio.io_service_time   cpuset.sched_load_balance
 …中略…
densuke@yuzu% sudo rm -rf FUGAHOGE # だからって簡単にrmdirできないみたいorz
rm: cannot remove `FUGAHOGE/cpuset.memory_spread_slab': 許可されていない操作です
rm: cannot remove `FUGAHOGE/cpuset.memory_spread_page': 許可されていない操作です
rm: cannot remove `FUGAHOGE/cpuset.memory_pressure': 許可されていない操作です</pre>
</blockquote>

<p>ということで、適切なツールでcgroup空間は操作しましょう。lxcパッケージを使えばいいのですが、0.7.3にはバグがあるというお話なので、最新版(0.7.4のrc1?)を開発元から落としてきて入れておくのがいいかもしれません。</p>

<ul>
  <li><a href="http://lxc.sourceforge.net/">http://lxc.sourceforge.net/</a> </li>
</ul>

<p>ということでまずはここまで。次回は実際に起動させてみましょうか。</p>

<table border="0" cellpadding="5"><tbody>
    <tr>
      <td colspan="2"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822262480/fugadiary-22/ref=nosim/" target="_blank">すべてわかる仮想化大全2011 (日経BPムック)</a></td>
    </tr>

    <tr>
      <td valign="top"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822262480/fugadiary-22/ref=nosim/" target="_blank"><img border="0" alt="すべてわかる仮想化大全2011 (日経BPムック)" src="http://ecx.images-amazon.com/images/I/51rjVcEywOL._SL160_.jpg" /></a></td>

      <td valign="top"><font size="-1">ITpro/日経コンピュータ/日経コミュニケーション/日経SYSTEMS/日経NETWORK 
          <br />

          <br />日経BP社 2010-10-12

          <br />売り上げランキング : 2047

          <br />

          <br />

          <br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822262480/fugadiary-22/ref=nosim/" target="_blank">Amazonで詳しく見る</a></font><font size="-2"> by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a></font></td>
    </tr>
  </tbody></table>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/5222/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2.6.37.1がリリースされています</title>
		<link>http://fuga.jp/blog/fugapress/archives/5216</link>
		<comments>http://fuga.jp/blog/fugapress/archives/5216#comments</comments>
		<pubDate>Fri, 18 Feb 2011 21:34:12 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/5216</guid>
		<description><![CDATA[昨日の日中に気づいたのですが、現在の安定版カーネル2.6.37の更新がでていました。ということで更新カーネルのちょっとした情報です。 http://www.kernel.org/pub/linux/kernel/v2.6 [...]]]></description>
			<content:encoded><![CDATA[<p>昨日の日中に気づいたのですが、現在の安定版カーネル2.6.37の更新がでていました。ということで更新カーネルのちょっとした情報です。</p>

<p><span id="more-5216"></span></p>

<ul>   <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.37.1">http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.37.1</a> (ChangeLog) </li>    <li><a title="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.1.tar.bz2" href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.1.tar.bz2">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.1.tar.bz2</a> (カーネルコードダウンロード) </li> </ul>

<p>ChangeLogをざっと眺める限り、やはり細かいところの修正が多いようです。特に私みたいにサーバ用途での運用においてはそれほどの御利益はなさそうです。とはいえ、カーネルの落ちる原因をいくつかつぶしてくれてるわけで、利用しているなら使わない理由もないでしょう。という感じで、昨日の夜に差し替えました。</p>

<p>私が手元で書き換えてるのは、毎度毎度のことですが、p4-clockmod.cです。Atom 330のクロック動的変更をさせてくれない原因となっているパラメータを書き換えるというものです。</p>

<p>まぁ、Atomはもともと省電力なので、クロックの変更処理を行うレイテンシの問題(そこそこクロックを要する)からか無効にしているという状況を解除するというダメ行為なんですけどね。</p>

<blockquote>   <pre>   ファイル: arch/x86/kernel/cpu/cpufreq/p4-clockmod.c
        /* the transition latency is set to be 1 higher than the maximum
         * transition latency of the ondemand governor */
        policy-&gt;cpuinfo.transition_latency = 10000001; → 10000000に変更
        policy-&gt;cur = stock_freq;</pre>
</blockquote>

<p>ということで元気に動いております。クロック変更もちゃんと機能してます。</p>

<blockquote>
  <pre>$ ~/bin/cpuwatch
-------------CPU 0-------------------
Clock: 399999
Count: 1776

-------------CPU 1-------------------
Clock: 199999
Count: 1910

-------------CPU 2-------------------
Clock: 399999
Count: 1776

-------------CPU 3-------------------
Clock: 199999
Count: 1910</pre></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/5216/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>カーネルの開発に変化があった?</title>
		<link>http://fuga.jp/blog/fugapress/archives/5144</link>
		<comments>http://fuga.jp/blog/fugapress/archives/5144#comments</comments>
		<pubDate>Wed, 05 Jan 2011 08:30:00 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/5144</guid>
		<description><![CDATA[先ほどwww.kernel.org を確認したところ、stableの2.6.36.2はそのままなのですが、2.6.37がrcが外れてます。うーん、mainline とかいう扱いになってます。 rc取れてるけどstable [...]]]></description>
			<content:encoded><![CDATA[<p>先ほど<a href="http://www.kernel.org">www.kernel.org</a> を確認したところ、stableの2.6.36.2はそのままなのですが、2.6.37がrcが外れてます。うーん、mainline とかいう扱いになってます。</p>

<p>rc取れてるけどstableでもない、こいつをどう評価するんだ?</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/5144/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linuxカーネル 2.6.36 リリース</title>
		<link>http://fuga.jp/blog/fugapress/archives/5028</link>
		<comments>http://fuga.jp/blog/fugapress/archives/5028#comments</comments>
		<pubDate>Fri, 22 Oct 2010 09:00:00 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/5028</guid>
		<description><![CDATA[前回(2.6.35)のリリースが8/1だったと思います。80日ぐらい(早いぞ)の間隔となっております。 例によって例のごとく参考資料を、と。 カーネルソースダウンロード ChangeLog ChangeLogダイジェスト [...]]]></description>
			<content:encoded><![CDATA[<p>前回(2.6.35)のリリースが8/1だったと思います。80日ぐらい(早いぞ)の間隔となっております。</p>

<p><span id="more-5028"></span></p>

<p>例によって例のごとく参考資料を、と。</p>

<ul>   <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2" target="_blank">カーネルソースダウンロード</a> </li>    <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.36" target="_blank">ChangeLog</a> </li>    <li><a href="http://fuga.jp/~densuke/data/changelog-digest-2.6.36.txt" target="_blank">ChangeLogダイジェスト版(拙作)</a> </li> </ul>

<p>本サーバのカーネルは今朝時点で「ほんのりカスタム版」(AtomのCPUクロック変更を有効にしたモノ)2.6.36に更新済みとなっております。</p>

<p>例によってのoldconfig時に気になったのは…</p>

<ul>   <li>メモリ上では圧縮されているRAMディスク(ZRAM)の追加、以前のramzswapの応用ですね </li>    <li>squashfsにLZO圧縮サポートが追加されたり拡張属性がサポートされたり </li>    <li>うちのCPUには関係ないけど、新しめのIntelチップで持ってるコア単位での電圧操作機構をサポートしたり </li>    <li>CIFSのクライアント側キャッシング機構をサポートしたり </li>    <li>ChangeLogによると、TTYまわりの遅延低減策(EXTPROCフラグ)とやらが入ってるという話ですが、どうもこれはライブラリやアプリ側のサポートが必要という話なので、今すぐどうなるという話でもないみたい </li> </ul>

<p>とまぁ現場的意見。</p>

<p>いつものように<a href="http://kernelnewbies.org/" target="_blank">KernelNewbies</a>は<a href="http://kernelnewbies.org/Linux_2_6_36" target="_blank">2.6.36向け記事</a>をだしてくれてます。こちらを読むとまた別の視点で面白い。</p>

<ul>   <li>fanotify機構の追加(この手のnotify機構はずいぶん聞くけど、分散しすぎてないか?)</li>    <li>Workqueueが複数CPUに分散できるようになった(と見たらいいのか?) </li>    <li>AppArmorが追加された(LSMのおかげでいくつかのセキュリティ機構を後付けできるようになってますね) </li>    <li>Device MapperでSSD(メモリ素子を使ったディスクね)で使われているdiscardコマンドに対応できるようになった </li>    <li>KVMの改良 </li> </ul>

<p>なんてのもあるみたい。あいかわらずいっぱい組み込んでくれる…</p>

<table border="0" cellpadding="5"><tbody>     <tr>       <td colspan="2"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114403/fugadiary-22/ref=nosim/" target="_top">実用Git</a></td>     </tr>      <tr>       <td valign="top"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114403/fugadiary-22/ref=nosim/" target="_top"><img border="0" alt="実用Git" src="http://ecx.images-amazon.com/images/I/51B2dc%2BsJGL._SL160_.jpg" /></a></td>        <td valign="top"><font size="-1">Jon Loeliger 吉藤 英明 (監訳)            <br />            <br />オライリージャパン 2010-02-19            <br />売り上げランキング : 134215            <br />            <br /><strong>おすすめ平均 </strong><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" />            <br /><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif" />Gitを本当に使えるようになる本            <br /><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-3-0.gif" />翻訳の質が低くて残念            <br />            <br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114403/fugadiary-22/ref=nosim/" target="_top">Amazonで詳しく見る</a></font><font size="-2"> by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a></font></td>     </tr>   </tbody></table>

<p>カーネル開発といったらやっぱりgitだよねー</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/5028/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scalaのfscがうまく動かない件</title>
		<link>http://fuga.jp/blog/fugapress/archives/4993</link>
		<comments>http://fuga.jp/blog/fugapress/archives/4993#comments</comments>
		<pubDate>Tue, 28 Sep 2010 09:00:00 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Scala]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/4993</guid>
		<description><![CDATA[先日からScalaを少しでも学んでみようと、本を買って、のんびり読みながらサンプルを打ってるのですが、Scalaスクリプトの場合に実は動かないという問題が発生していました。 たとえばいわゆるHelloWorldとして、  [...]]]></description>
			<content:encoded><![CDATA[<p>先日からScalaを少しでも学んでみようと、本を買って、のんびり読みながらサンプルを打ってるのですが、Scalaスクリプトの場合に実は動かないという問題が発生していました。</p>

<p><span id="more-4993"></span></p>

<p>たとえばいわゆるHelloWorldとして、</p>

<p><pre>println(&quot;Hello&quot;)</pre></p>

<p>に対して、</p>

<p><pre>$ scala HelloWorld.scala
Could not connect to compilation daemon.
Exception in thread &quot;main&quot; java.lang.Exception: fsc failure
        at scala.tools.nsc.CompileSocket.fatal(CompileSocket.scala:50)
        at scala.tools.nsc.CompileSocket.getPort(CompileSocket.scala:122)
        at scala.tools.nsc.CompileSocket.getsock$1(CompileSocket.scala:152)
        at scala.tools.nsc.CompileSocket.getOrCreateSocket(CompileSocket.scala:170)
        at scala.tools.nsc.ScriptRunner$.compileWithDaemon(ScriptRunner.scala:145)
        at scala.tools.nsc.ScriptRunner$.compile$1(ScriptRunner.scala:197)
        at scala.tools.nsc.ScriptRunner$.withCompiledScript(ScriptRunner.scala:225)
        at scala.tools.nsc.ScriptRunner$.runScript(ScriptRunner.scala:265)
        at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:91)
        at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)</pre></p>

<p>という具合。なぜに”Could not connect to compilation daemon.”なのかというのが疑問で仕方ないのですが…</p>

<p>で、netstatの挙動を見ながら確認していくと、なんか見に行こうとしているポート番号にてfscが待機してないような感じです。IPv4でなくIPv6を見に行ってるような感じ。</p>

<p>結局、カーネルのIPv6を切って解決するという後ろ向きなものとなってしまいました。</p>

<p><pre>(in /etc/modprobe.d/local-alias.conf)
alias net-pf-10 off # この内部名がIPv6なので無効(off)に</pre></p>

<p>これで無事に動いてくれてるみたい。</p>

<p>このことをつぶやいてみたところ、<a href="http://twitter.com/yasushia/statuses/25749100605" target="_blank">似たような手法で解決している</a>というツイートをいただきました。うーん、ちょっと困るところです。</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/4993/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2.6.35.6がリリースされています</title>
		<link>http://fuga.jp/blog/fugapress/archives/4992</link>
		<comments>http://fuga.jp/blog/fugapress/archives/4992#comments</comments>
		<pubDate>Tue, 28 Sep 2010 08:30:00 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/4992</guid>
		<description><![CDATA[Scalaのfscまわりでごにょごにょしていた矢先、カーネルの更新が発生してました。 ダイジェスト(拙作) 本来のChangeLog カーネルソース本体 ダイジェストコードをテロテロと眺めてみる限り、細かい虫取りというと [...]]]></description>
			<content:encoded><![CDATA[<p>Scalaのfscまわりでごにょごにょしていた矢先、カーネルの更新が発生してました。</p>

<ul>   <li><a href="http://fuga.jp/~densuke/data/changelog-digest-2.6.35.6.txt" target="_blank">ダイジェスト(拙作)</a></li>    <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.35.6" target="_blank">本来のChangeLog</a></li>    <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.6.tar.bz2" target="_blank">カーネルソース本体</a></li> </ul>

<p>ダイジェストコードをテロテロと眺めてみる限り、細かい虫取りというところでしょうか。まぁ4桁目ですからしょうがない。</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/4992/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linuxカーネル 2.6.35.5 が出ていた件</title>
		<link>http://fuga.jp/blog/fugapress/archives/4978</link>
		<comments>http://fuga.jp/blog/fugapress/archives/4978#comments</comments>
		<pubDate>Wed, 22 Sep 2010 20:47:09 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/4978</guid>
		<description><![CDATA[昨日のことですが、ふとRSSを確認していたら、そこそこ間が置かれた状態で2.6.35.5がリリースされていました。 記録を見る限り、細かいところがいろいろと。でもあまり自分の環境には関係ないというものでした。細かいバグの [...]]]></description>
			<content:encoded><![CDATA[<p>昨日のことですが、ふとRSSを確認していたら、そこそこ間が置かれた状態で2.6.35.5がリリースされていました。</p>

<p>記録を見る限り、細かいところがいろいろと。でもあまり自分の環境には関係ないというものでした。細かいバグの修正もありそうだったので、昨日の朝のうちに再構築を行い、差し替え(再起動)を行っております。別にこれといった不具合も発生せず。</p>

<p>あ、一部追加モジュールのコンパイルを忘れてる。やっておかないと…</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/4978/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>カーネルが更新されました(2.6.35.4)</title>
		<link>http://fuga.jp/blog/fugapress/archives/4930</link>
		<comments>http://fuga.jp/blog/fugapress/archives/4930#comments</comments>
		<pubDate>Fri, 27 Aug 2010 09:45:19 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/?p=4930</guid>
		<description><![CDATA[なにげに確認していたら更新されてるし… 2.6.35.4 ChangeLogダイジェスト カーネルソース 細かいバグがてんこ盛り、ACPIのプリエンプション処理におかしい部分があったり、一部makeが動かなくなる部分があ [...]]]></description>
			<content:encoded><![CDATA[<p>なにげに確認していたら更新されてるし…</p>

<ul>
<li><a href="/~densuke/data/changelog-digest-2.6.35.4.txt">2.6.35.4 ChangeLogダイジェスト</a></li>
<li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.4.tar.bz2">カーネルソース</a></li>
</ul>

<p>細かいバグがてんこ盛り、ACPIのプリエンプション処理におかしい部分があったり、一部<code>make</code>が動かなくなる部分があった模様。
気が向いたら更新しましょうかね。</p>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/4930/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>カーネル 2.6.35 がリリースされました #kernel #linux</title>
		<link>http://fuga.jp/blog/fugapress/archives/4852</link>
		<comments>http://fuga.jp/blog/fugapress/archives/4852#comments</comments>
		<pubDate>Mon, 02 Aug 2010 06:20:46 +0000</pubDate>
		<dc:creator>densuke</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://fuga.jp/blog/fugapress/archives/4852</guid>
		<description><![CDATA[Linuxカーネル 2.6.35がリリースされました。前回のリリースから2ヶ月半ぐらいということでしょうか(少し早い?) 例によって、カーネルの変更履歴は膨大なことこのうえなしです。 Kernel 2.6.35 ソースコ [...]]]></description>
			<content:encoded><![CDATA[<p>Linuxカーネル 2.6.35がリリースされました。前回のリリースから2ヶ月半ぐらいということでしょうか(少し早い?)</p>

<p><span id="more-4852"></span></p>

<p>例によって、カーネルの変更履歴は膨大なことこのうえなしです。</p>

<ul>   <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.tar.bz2" target="_blank">Kernel 2.6.35 ソースコード(bzip2)</a> </li>    <li><a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.35" target="_blank">ChangeLog</a> </li>    <li><a href="http://fuga.jp/~densuke/data/changelog-digest-2.6.35.txt" target="_blank">ChangeLogダイジェスト(拙作)</a> </li> </ul>

<p>現在カーネルをコンパイル中です。ダイジェストが1万行を超えるというアレすぎる中、<a href="http://kernelnewbies.org/" target="_blank">KernelNewbies</a>にて(現時点では正式公開ではありませんが)<a href="http://kernelnewbies.org/Linux_2_6_35" target="_blank">解説</a>が出ております。個人的には(用途がいまいちアレですが)iptables関連で”TEE”ターゲットなるものが追加されたことでしょうか。ええ、<a href="http://ja.wikipedia.org/wiki/Tee_(UNIX)" target="_blank">あの&quot;TEE&quot;</a>です。</p>

<ul>   <li>btrfsでキャッシュを経由しないダイレクトI/Oをサポート(DB周りでは重要になることが多いみたいです) </li>    <li>メモリコンパクション機能の追加、コンパクションといってもデフラグっぽいのでしょうか(<a href="http://lwn.net/Articles/368869/" target="_blank">参考記事</a>) </li>    <li>L2TP Version3サポートが追加 </li> </ul>

<p>なんてことが個人的に気になるところです。</p>

<p>なお、KernelNewbiesの記事によると、MD層の改良から、takeover機構がいくつかサポートされたようですね。</p>

<table border="0" cellpadding="5"><tbody>     <tr>       <td colspan="2"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311313X/fugadiary-22/ref=nosim/" target="_blank">詳解 Linuxカーネル 第3版</a></td>     </tr>      <tr>       <td valign="top"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311313X/fugadiary-22/ref=nosim/" target="_blank"><img border="0" alt="詳解 Linuxカーネル 第3版" src="http://ecx.images-amazon.com/images/I/418I6s7Eq-L._SL160_.jpg" /></a></td>        <td valign="top"><font size="-1">Daniel P. Bovet Marco Cesati 高橋 浩和            <br />            <br />オライリー・ジャパン 2007-02-26            <br />売り上げランキング : 32610            <br />            <br /><strong>おすすめ平均 </strong><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif" />            <br /><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif" />Linuxのカーネルの理解が            <br /><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-5-0.gif" />ごめんなさい。積読派です。            <br /><img alt="star" src="http://g-images.amazon.com/images/G/01/detail/stars-4-0.gif" />Linux Communityへの入口            <br />            <br /><a href="http://www.amazon.co.jp/exec/obidos/ASIN/487311313X/fugadiary-22/ref=nosim/" target="_blank">Amazonで詳しく見る</a></font><font size="-2"> by <a href="http://www.goodpic.com/mt/aws/index.html">G-Tools</a></font></td>     </tr>   </tbody></table>
]]></content:encoded>
			<wfw:commentRss>http://fuga.jp/blog/fugapress/archives/4852/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

