NAKAMURA Minoru の日記 (2011年2月)

先月の日記(2011年01月) 今月の日記(2011年02月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | Google+
slideshare | github | Qiita



2/27 (日)

[Linux] NILFS2 はディスクのブロックの一部がリークしているように見える

Fedora 13 の NILFS2 を使っているが、ファイルの削除(unlink)するかトランケート(truncate)した時に、ブロックの一部をリークさせているようだ。

NILFS2 は B-Tree 形式のブロックマップでファイルを構成するデータブロックの管理をしているが、最初の 7 ブロック分までは i-node の中に直接データブロックのブロック番号を直接記録(DIRECT形式)して B-Tree 用のノードブロックを割り当てるのを節約している。 一つのファイルのブロックが 8 ブロックを越えると、最初のノードブロックが割り当てられる。 このノードブロックはブロックサイズが 4KB なら、255 個のデータブロックをポイントすることができる。 ファイルのデータブロックが 255 個を越えるとブロックマップはノードブロックを2段に重ねた構成になる。

逆に truncate でファイルサイズを縮小していくと、多段のブロックは元の戻って行く。 最後の1段の B-Tree は、ファイルが 4 ブロックから 3 ブロックに切り替わる時に DIRECT 形式へ戻り、ノードブロックを一切使わなくなる。

NILFS2 はこの多段の B-Tree の段数を減らす時と、最後に一つだけ残ったノードブロックを削除する時に、ブロックを漏らしているように見える。

NILFS2 はログ構造化ファイルシステムなので、ブロックを漏らしてもすぐに分からないのだが、ガーベージコレクションが動いて過去中のブロックを回収すると、上記で述べたノードブロックがファイルがファイルが削除されたにも関わらずいつまでも残ってしまう。 南無三。


2/22 (火)

[時事] ニュージーランドで M6.3 の地震

22日午後0時51分(日本時間同日午前8時51分)にニュージーランドでマグニチュード6.3の強い地震が発生。


2/18 (金)

[Food] 山海楼@新横浜 (公式ぐるなび)

前部署の竹内さんの送別会。 場所は新横浜の外れにある中華料理店「山海楼」。

前菜
前菜
カニ爪フライ
カニ爪フライ
エビのチリソース
エビのチリソース

餃子
海鮮と野菜炒め
海鮮と野菜炒め
酢豚
酢豚
フカヒレスープ
フカヒレスープ
チャーハン
チャーハン
デザート
デザートのメロン

2/15 (火)

川崎にも雪が積もったよ

昨日の降った雪が積もった。 通勤中の空き地が一面銀世界に。


2/14 (月)

備忘

篤志家の方にクッキーをいただく。
m(_ _)m


2/13 (日)

デジタルオーディオプレイヤー

iRiver iHP-120から乗り換えたいと思いながら幾星霜。 「デジタルオーディオプレイヤー(DAP)がかくあるべし」(2010年6月5日)という理想は胸にあるのだが、それに見合った製品は売っておらず。 どれも帯に短しタスキに長し。

SONY ウォークマン
SONY ウォークマンはハード的には理想に近いがソフト面が弱い。 NW-A850 はマスストレージクラスから登録した楽曲をフォルダ指定で再生できるが、プレイリストを作ることができない。 m3u ファイルなども使用不能。
COWON
COWON J3 はほぼ理想的な DSP だが、サブフォルダに置いた MP3 の再生が微妙。 COWON J3 Wiki FAQによるとサブフォルダの各階層に音楽ファイルを置いておかないと、それより下に探索しないらしい。そのため親フォルダに無音のダミー MP3 を置く必要があるそうな。

最近だと Android 搭載の DAP も増えている。 Android 搭載の場合、再生ソフトが気にいらいない場合でも、別の再生ソフトを探すか、最悪自分で作ることが可能だ。

今現在、発売中・発売予定の Android 搭載 DAP。 COWON D3 plenue と Zen Touch2 は横浜のヨドバシで実物を触ってきた。

COWON D3 plenue (公式GIGAZINEGoogle Pad)
側面に再生・早送り・巻き戻しボタンがある。
デフォルトの音楽再生機能がフォルダ再生に対応している。 ただし COWON 特有の制限があるかも。
GPS はなし。
Android Market には接続できないらしい。
CREATIVE ZEN Touch 2 (公式)
物理的な再生ボタンなし。
デフォルトの音楽再生機能がフォルダ再生に対応していない。
GPS付きのモデルがある。
Android Market は不明。
パナソニック SV-MV100 (公式GIGAZINE)
物理的な再生ボタンなし。
ワンセグ対応。
内蔵メモリは16GBまで。ただし SDXC 対応の SD カードがさせる。
サムスン Galaxy S WiFi 5.0 (engadget 日本語版)
今のところレビュー記事等なし。
コメントを書き込む
[1] [soda] 2011-02-21 18:50:19
条件1〜5のうち、3だけは満たしませんし、商品カテゴリもDAPじゃないんですが、ICR-PS401RM のようなICレコーダという選択肢もあるかと思います。個人的に条件5(というかエネループが使えて、電池切れになったらすぐ予備電池と交換したい)が必須なので、これの旧製品を使ってます。欠点は M3U ファイルの登録曲数の限界が99曲×5つのM3Uファイルと、少ないところでしょうか。
[2] [soda] 2011-02-21 19:10:23
あ、あと(旧機種ですが)リスト機能で選曲中は再生が止まるっていうのもちょっと不便でした。忘れてました。
[3] [nminoru] 2011-02-22 23:07:13
はい、KENWOOD や SANYO のボイスレコーダーはかなり私の条件に近いです。
ただ soda さんもおっしゃるように登録できる mp3 ファイルやフォルダ数、プレイリストの制限が厳しいんですよね。ICレコーダーは音楽を聞くのがメインではないので仕方ない制限ですが。

2/10 (木)

[Food] つけ麺 維新@武蔵中原

今週、武蔵中原駅の駅前にあったマグロ丼の店が閉店して、つけ麺がオープンした。 この位置の店は頻繁に交替するような気がする。

さっぱりしたつけ麺で、あびすけとかを食べ馴れるとかえって新鮮な味わい。


2/4 (金)

[Food] つけめんあびすけ@日吉 (公式)

つけめんあびすけに IH 卓上ヒーターがついて、つけ汁を温められるようになった。 確かにつけ麺って、食べているうちにつけ汁がどんどん冷たくなっていくよね。

IH ヒーターに温められるように、陶器製の器(2007年5月20日の日記)から金属製の器へ変更された。 ただ器の材質を替えたことでかえって冷めやすくなり、ヒーターを使わないとすぐに冷たい汁に変わるなりよ。

器が変わるとなんだか別の食べ物をたべているような気がする。


2/2 (水)

[Linux] sparse file の穴を検出する方法

疎なファイル(sparse file)とかholeのあるファイルの「穴」の位置を検出する方法を探しているのだが(2010年10月2日の日記)、Linux に限っては FIBMAP ioctl というのがあるのね。

A Smachkernel of Opinion の FIBMAP ioctl example - get the file system block number of a fileのブログを参考にして確認すると、疎なファイルの穴の部分にあたる論理ブロックは、FIBMAP ioctl を使うと物理ブロック 0 を指していると回答される。

ただし FIBMAP ioctl は穴があることをブロック単位でしか確認できないが、Linux 2.6.38 には FIEMAP ioctl という、ファイルの連続領域をエクステントで返すことができるようだ。 こちらを使うとより効率よく「穴」の位置を特定できるようだ。

追記:2/7

FIEMAP ioctl を使ってファイルのエクステントを取得するプログラムを書いてみた(fiemap.c)。 x86-64/Fedora 13 の ext3 ファイルシステム上のファイルは問題なく動作している。 少なくとも ext3 上では疎なファイルの穴も確認できる。

4KBブロックで1論理ブロック目と3論理ブロック目が物理ブロックに割り当てられ、2論理ブロック目が穴になっているファイルの場合は以下のように見える。

$ ./fiemap sparse-file.dump
FILE: # of extents=2, flags=1
  Extent:     0 logical=          0, phy=  41221619712, len=     4096, flags=1000
  Extent:     1 logical=       8192, phy=  41221623808, len=     4096, flags=1001

エクステントのフラグの意味は以下のようになっている。

FIEMAP_EXTENT_LAST 0x0001Last extent in file.
FIEMAP_EXTENT_UNKNOWN 0x0002Data location unknown.
FIEMAP_EXTENT_DELALLOC 0x0004Location still pending. Sets EXTENT_UNKNOWN.
FIEMAP_EXTENT_ENCODED 0x0008Data can not be read while fs is unmounted.
FIEMAP_EXTENT_DATA_ENCRYPTED0x0080Data is encrypted by fs. Sets EXTENT_NO_BYPASS.
FIEMAP_EXTENT_NOT_ALIGNED 0x0100Extent offsets may not be block aligned.
FIEMAP_EXTENT_DATA_INLINE 0x0200Data mixed with metadata. Sets EXTENT_NOT_ALIGNED.
FIEMAP_EXTENT_DATA_TAIL 0x0400Multiple files in block. Sets EXTENT_NOT_ALIGNED.
FIEMAP_EXTENT_UNWRITTEN 0x0800Space allocated, but no data (i.e. zero).
FIEMAP_EXTENT_MERGED 0x1000File does not natively support extents. Result merged for efficiency.
FIEMAP_EXTENT_SHARED 0x2000Space shared with other files.

FIBMAP ioctl は実行に root 権限を必要としたが、FIEMAP ioctl はユーザ権限で実行可能。 使い勝手は FIEMAP ioctl の方がよさそうだ。

追記:2012/4/28

Linux で疎なファイル(sparse file)を使うのページにまとめた。


先月の日記(2011年01月) 今月の日記(2011年02月)
2002 | 10 | 11 | 12
2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2012 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2013 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2014 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2015 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2016 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
2017 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
ホームページ | 最新のコメント50
インデックス: 食べ歩き | Java | プログラム | UNIX | 画像
最新の日記へのリンク | この日記ページをはてなアンテナに追加 この日記ページをはてなブックマークに追加
はてな ダイアリー アンテナ ブックマーク ブログ
Twitter | mixi | Facebook | Google+
slideshare | github | Qiita


Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp