[過去ログ]
/**ファイルシステム総合スレ その7**/ (955レス)
/**ファイルシステム総合スレ その7**/ http://mao.5ch.io/test/read.cgi/linux/1173530292/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
102: 80 [sage] 2007/03/21(水) 01:17:48 ID:E4OzVxjT >>99 syncもだめでした。それにしてもこの状態(busy)で安定したまま一日以上過ぎてますので。 ちょっとコードを読んで見ました。mountコールのエラーパスはこうなるようです。 |sys_mount (fs/namespace.c) |-do_mount |--path_lookup(fs/namei.c) |---link_path_walk |----__link_path_walk | ごちょごちょして良く分からんがたぶんEBUSYは返さない? |--security_sb_mount(include/linux/security.h) |---security_ops->sb_mount | 良く分からないけどSELinuxはdisableしてるから恐らく | dummy.cのdummy_sb_mountでreturn 0 |--do_remount_sb | | if ((flags & MS_RDONLY) && !(sb->s_flags & MS_RDONLY)) { | if (force) | mark_files_ro(sb); | else if (!fs_may_remount_ro(sb)) (fs/file_table.c) | return -EBUSY; | } 続く http://mao.5ch.io/test/read.cgi/linux/1173530292/102
103: 80 [sage] 2007/03/21(水) 01:19:39 ID:E4OzVxjT 続き。ここで跳ねられてる? "pending delete"のファイルってlsofとかでも見れませんでしたっけ? |----fs_may_remount_ro(struct super_block *sb) (fs/file_table.c) |{ | struct list_head *p; | | /* Check that no files are currently opened for writing. */ | file_list_lock(); | list_for_each(p, &sb->s_files) { | struct file *file = list_entry(p, struct file, f_list); | struct inode *inode = file->f_dentry->d_inode; | | /* File with pending delete? */ | if (inode->i_nlink == 0) | goto too_bad; | | /* Writeable file? */ | if (S_ISREG(inode->i_mode) && (file->f_mode & FMODE_WRITE)) | goto too_bad; | } | file_list_unlock(); | return 1; /* Tis' cool bro. */ |too_bad: | file_list_unlock(); | return 0; |} http://mao.5ch.io/test/read.cgi/linux/1173530292/103
104: 90 [sage] 2007/03/21(水) 02:58:59 ID:DJG3OGOa >>98 別に根拠は無いです。 ファイルはつかまれてなさそうなので、デバイスをつかまれてないかなと思った。 http://mao.5ch.io/test/read.cgi/linux/1173530292/104
105: login:Penguin [sage] 2007/03/21(水) 03:24:07 ID:DJG3OGOa rwでremountしてもやはりbusyになるんだろうか? http://mao.5ch.io/test/read.cgi/linux/1173530292/105
106: login:Penguin [sage] 2007/03/21(水) 03:31:16 ID:DJG3OGOa dmesgの結果や/var/log/messagesの内容も知りたい。 http://mao.5ch.io/test/read.cgi/linux/1173530292/106
107: 80 [sage] 2007/03/21(水) 03:54:56 ID:E4OzVxjT >>105 いえ、それはOKです。けどrwをrwにremountしてもスルーされてるだけかもしれませんね。 >>106 mountコマンドを入力したときにはとくにどちらにも新たな出力は見られません。先ほど見た エラーパスにも特にその周辺で何かを吐き出すコードは見られませんでした。また両方とも デバイス名sdaでgrepして見ましたが、起動時の普通のメッセージ以外に特に最近異常を示す メッセージは見受けられません。他に何か探すべきものがありましたらご指摘キボンヌ。 そろそろ上に挙げたコードにデバッグコードを埋め込んでカーネル再構築を試みます。 http://mao.5ch.io/test/read.cgi/linux/1173530292/107
108: 80 [sage] 2007/03/21(水) 04:04:55 ID:E4OzVxjT >>103 > "pending delete"のファイルってlsofとかでも見れませんでしたっけ? 自己レス。普通は見えますね。 # mount -o remount,rw / # cat > hogehoge ^Z [1]+ Stopped cat >hogehoge # rm -f hogehoge # lsof | grep hogehoge cat 9979 root 1w REG 3,8 0 983060 /hogehoge (deleted) # http://mao.5ch.io/test/read.cgi/linux/1173530292/108
109: 80 [sage] 2007/03/21(水) 05:59:52 ID:E4OzVxjT inodeの中身をダンプするデバッグ用のルーチンなんかありませんかね? 出来るだけ情報を書き出したいけど、中身が全然分かってないから下手したら そこでクラッシュしそう。 http://mao.5ch.io/test/read.cgi/linux/1173530292/109
110: login:Penguin [sage] 2007/03/21(水) 11:54:21 ID:DJG3OGOa >>107 > そろそろ上に挙げたコードにデバッグコードを埋め込んでカーネル再構築を試みます。 障害の発生を再現するのは手間だから待った方がいいと思う。 試して欲しいのは、 mount -v -o remount, ro / で詳細情報を表示させてみることと、 mount -f -o remount, ro / で強制した場合にremountできるかということです。 http://mao.5ch.io/test/read.cgi/linux/1173530292/110
111: login:Penguin [sage] 2007/03/21(水) 12:11:01 ID:DJG3OGOa mount -f -o remount, ro / これをやってもらいたいのは、 >103の fs_may_remount_ro(struct super_block *sb) を通らず、 mark_files_ro(struct super_block *sb) (fs/super.c 567) に分岐すると思うからです。 http://mao.5ch.io/test/read.cgi/linux/1173530292/111
112: login:Penguin [sage] 2007/03/21(水) 12:44:31 ID:DJG3OGOa mount -f -o remount, ro / は mount -v -f -o remount, ro / の方が情報が得られてよいかも。 http://mao.5ch.io/test/read.cgi/linux/1173530292/112
113: login:Penguin [sage] 2007/03/21(水) 12:55:08 ID:6FsiTP6N いくつか気になった。 ・80と書いている人は81? ・うちのdebian(sarge)だと-vつけてもなんか変わらない ・ファイルシステムの種類は関係ない話なの? 何の役にも立たんと思うが。 http://mao.5ch.io/test/read.cgi/linux/1173530292/113
114: login:Penguin [] 2007/03/21(水) 17:23:08 ID:JC5nLr5t うえの方でfind ... fuserしてほしいと書いた者だが、PID並べられてもしょうがないんだよね。 psで対応するコマンド調べてくらはい。 そのくらいはできる人と思ってたんだが、もしやド素人じゃないよね? もしド素人なら、これでうまくいっても他で障害がでるだろうから、あまりごちゃごちゃやらんほうがいいと思うよ。 ド素人でないなら、、、もうちょっと独力でも頑張ってほしかった。 いずれにせよ、結果まってるよ〜。 http://mao.5ch.io/test/read.cgi/linux/1173530292/114
115: login:Penguin [] 2007/03/21(水) 18:35:16 ID:J9iygeoh >>86 tkt tktt http://mao.5ch.io/test/read.cgi/linux/1173530292/115
116: 81(80は間違いorz) [sage] 2007/03/21(水) 21:06:42 ID:E4OzVxjT げげ、誰かリブートしやがったorz すみません。また障害発生を待たないと... >>113 間違えてました orz ちなみにext3です。 >>111 -fは(fake)であって-forceではありません。103の"force"は内部のemergency_remount()から呼ばれたときに だけ立てられるフラグでこれは探したところdriver/char/sysrq.cのsysrq_handle_mountroからしか 呼ばれないので普通に使うものではないようです。 >>114 意図を汲まずに申し訳ございませんでしたが、何を探しているのかが良く分かってませんでした。 しかしあの出力で出てきたファイルのリストはlsofで出てきたものと同じようなものと見受けられましたし、 書き込み状態にあるpidも1つもありませんでしたのでどのpidに注目すればいいのかが分かりませんでした。 全部を列挙するのは長すぎると思いましたし。 fsは全くド素人でSMARTを見て、あ、ディスク壊れてるっていて交換したこと以上のことを 考えたことはありませんのでファイル周りの検証のテクニックはlsofぐらいしか知りませんでした。 fuserは初耳でしたので勉強になりました。カーネルの中をまじめに問題解決のために読み始めたのも ここ1ヶ月ほどの事ですので。 さて、それではカーネル仕掛けてまた再現するのを待って報告させて頂きます。 http://mao.5ch.io/test/read.cgi/linux/1173530292/116
117: login:Penguin [sage] 2007/03/21(水) 22:14:49 ID:nLBpV1q7 >>116 lsofで結果見てたんだね。失礼。 閉じられているはずのファイルがなぜか開きっぱなしの問題はよくあることです。 解決方法がなかなか見つからないので、ぜひがんばってください。 報告待ってます。 http://mao.5ch.io/test/read.cgi/linux/1173530292/117
118: login:Penguin [sage] 2007/03/21(水) 22:16:28 ID:J9iygeoh 閉じられてるファイルが〜なぜか開いているのな〜ら〜 sync!sync!sync! って歌があったね http://mao.5ch.io/test/read.cgi/linux/1173530292/118
119: login:Penguin [sage] 2007/03/21(水) 23:24:46 ID:f2Azm7Ce だめよだめだめデッドローックー http://mao.5ch.io/test/read.cgi/linux/1173530292/119
120: login:Penguin [] 2007/03/23(金) 08:47:39 ID:TxxCM3Q2 ext4はサイズ変更に対応してる?対応してればLVMと組み合わせて使い易いのだけど。 性能的にはどうなんだろう? http://mao.5ch.io/test/read.cgi/linux/1173530292/120
121: login:Penguin [sage] 2007/03/24(土) 03:14:39 ID:GQsk1lU1 そういやオンラインデフラグの件はどうなったんだ? http://mao.5ch.io/test/read.cgi/linux/1173530292/121
122: login:Penguin [] 2007/03/24(土) 16:08:19 ID:ZQgilKja Reiserはその後どうなってんの? http://mao.5ch.io/test/read.cgi/linux/1173530292/122
123: login:Penguin [sage] 2007/03/24(土) 22:04:18 ID:vUqhXPFh WInの焼きミスはほんとひどいよなw 焼いてるときは、他の作業しないほうがいい http://mao.5ch.io/test/read.cgi/linux/1173530292/123
124: login:Penguin [sage] 2007/03/24(土) 22:05:31 ID:1ZNqfG35 >>123 お前はバブルの崩壊直後の時代の人か? http://mao.5ch.io/test/read.cgi/linux/1173530292/124
125: login:Penguin [sage] 2007/03/24(土) 23:17:11 ID:1JVeQLQG >>123 スレ違いだ。帰れ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/125
126: login:Penguin [] 2007/03/24(土) 23:48:50 ID:ZQgilKja >>124 またキミか http://mao.5ch.io/test/read.cgi/linux/1173530292/126
127: login:Penguin [sage] 2007/03/25(日) 00:23:02 ID:FK7WfcVZ 3 名前:login:Penguin :2007/03/24(土) 22:37:58 ID:1ZNqfG35 うざいなぁ・・・・ 913 :login:Penguin:2007/03/24(土) 22:34:12 ID:1ZNqfG35 >>911 >Windowsじゃあるまいし、ブートローダごときで再インストールする必要はない。 fixmbrもしらんWindows道程であることが判明しましたw http://mao.5ch.io/test/read.cgi/linux/1173530292/127
128: login:Penguin [sage] 2007/03/25(日) 23:21:02 ID:QdX/ZMUE 前スレで言われてたけど、nautilus+xfsでファイルのコピー等がすごく遅くなるってあったでしょ? 俺もあれで悩まされてたんだけど、LVM使ったらあのバグ発生しないんだね。 なんとなくLVM+xfsで新たにシステム構築し直したらnautilusでも速度が落ちなくなった。 http://mao.5ch.io/test/read.cgi/linux/1173530292/128
129: login:Penguin [] 2007/03/26(月) 09:08:09 ID:d1UYMG6t LVMは便利なのだが、コマンドいっぱいでめんどいよね http://mao.5ch.io/test/read.cgi/linux/1173530292/129
130: login:Penguin [sage] 2007/03/26(月) 09:21:06 ID:8Q9E4hQ9 >>128 というか報告せいや xfsなのかnautilusなのか知らんが http://mao.5ch.io/test/read.cgi/linux/1173530292/130
131: login:Penguin [sage] 2007/03/26(月) 10:35:37 ID:fsC9be4T nautilus=糞 昔からの定説だろ。いまさら報告する必要もなし。 http://mao.5ch.io/test/read.cgi/linux/1173530292/131
132: login:Penguin [sage] 2007/03/26(月) 11:28:49 ID:io8NkORY だったら、使うなw http://mao.5ch.io/test/read.cgi/linux/1173530292/132
133: login:Penguin [] 2007/03/26(月) 14:17:18 ID:d1UYMG6t >>131 またキミか。 http://mao.5ch.io/test/read.cgi/linux/1173530292/133
134: login:Penguin [] 2007/03/28(水) 13:00:24 ID:9k8UE4y5 ライザーと供に寂れてしまった http://mao.5ch.io/test/read.cgi/linux/1173530292/134
135: login:Penguin [sage] 2007/03/28(水) 20:07:55 ID:l0yxUuiJ とりあえずXFSとext4のどっちが残るかだな。 ext4かな。 http://mao.5ch.io/test/read.cgi/linux/1173530292/135
136: login:Penguin [sage] 2007/03/28(水) 21:17:59 ID:daeVGudi ext3はext4にコンバートできるんですか http://mao.5ch.io/test/read.cgi/linux/1173530292/136
137: login:Penguin [sage] 2007/03/28(水) 21:54:09 ID:BNq6AhBB ext3をext4としてマウントできる。そのまま書き込めばext4になる。 http://mao.5ch.io/test/read.cgi/linux/1173530292/137
138: login:Penguin [sage] 2007/03/28(水) 22:24:11 ID:daeVGudi すげぇ & トンクス http://mao.5ch.io/test/read.cgi/linux/1173530292/138
139: login:Penguin [sage] 2007/03/28(水) 22:27:05 ID:0XsmV5+J >>137 いやextent使うまではext3のまんまだろ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/139
140: login:Penguin [] 2007/03/29(木) 08:32:01 ID:r+t2Jggl extentとはなんですか? http://mao.5ch.io/test/read.cgi/linux/1173530292/140
141: login:Penguin [sage] 2007/03/29(木) 09:39:08 ID:lgwyzXDA xfsはトラブった時に全然レスキューできなかったからトラウマ チキンな俺はext4 http://mao.5ch.io/test/read.cgi/linux/1173530292/141
142: login:Penguin [sage] 2007/03/29(木) 09:42:08 ID:3NMPrwZA >>140 The answer is in your ID. http://mao.5ch.io/test/read.cgi/linux/1173530292/142
143: login:Penguin [sage] 2007/03/29(木) 12:53:50 ID:XgJoJt9J r+t? 2J ggl .. ggl! ググレ!? http://mao.5ch.io/test/read.cgi/linux/1173530292/143
144: login:Penguin [sage] 2007/03/29(木) 12:56:08 ID:XgJoJt9J アリマシタ ttp://www.sophia-it.com/content/extent でも意味がわかりません。 http://mao.5ch.io/test/read.cgi/linux/1173530292/144
145: login:Penguin [sage] 2007/03/29(木) 14:14:23 ID:H9I3kno8 >>144 http://www.google.co.jp/search?hl=en&q=ext4+extent http://mao.5ch.io/test/read.cgi/linux/1173530292/145
146: login:Penguin [] 2007/03/29(木) 21:55:30 ID:r+t2Jggl d つまりファイルが断片化しないよう、余分に場所を確保しとくっていうライザー4の真似をした仕組みだね。 ところで将来のファイルサイズなんて予測できないと思うのだけど、 エクステントの大きさはどうやって決めるのだろう? むかしクラスタと呼んでいたものとは違うの? http://mao.5ch.io/test/read.cgi/linux/1173530292/146
147: login:Penguin [sage] 2007/03/29(木) 22:47:02 ID:EvQbMu8q エクステントって昔からエクステントと呼んでいたような。 VxFS とか。 http://mao.5ch.io/test/read.cgi/linux/1173530292/147
148: login:Penguin [sage] 2007/03/29(木) 23:07:03 ID:R0MPJnFu >>147 XFSのオンラインデフラグがext4についてくれれば、とりあえず最強なんだがな。 年に数回はデフラグしたい。 http://mao.5ch.io/test/read.cgi/linux/1173530292/148
149: login:Penguin [] 2007/03/30(金) 09:25:09 ID:8SUX2/zw MSDOSは複数のセクターをまとめた「クラスタ」という連続領域単位でファイルを管理してた。 インデックスを少なく押さえることと、断片化を少なくするのが目的。 低速媒体のフロッピーが主体だったため、断片化を避けるのは非常に重要だったせいもあるが 当時の大型機からの借用だったと理解してる。 エクステントの説明をみると同じものにみえるのだけど、何かちがうのだろうか? http://mao.5ch.io/test/read.cgi/linux/1173530292/149
150: login:Penguin [sage] 2007/03/30(金) 11:23:58 ID:TnuWXj4a >>149 クラスタサイズが可変なんじゃね? http://mao.5ch.io/test/read.cgi/linux/1173530292/150
151: login:Penguin [] 2007/03/30(金) 12:54:00 ID:8SUX2/zw それをどうやって決めてるかが肝 http://mao.5ch.io/test/read.cgi/linux/1173530292/151
152: login:Penguin [sage] 2007/03/30(金) 14:53:28 ID:1nTHIbAF エクステントサイズが固定の方が断片化は起こり肉印とちゃう? http://mao.5ch.io/test/read.cgi/linux/1173530292/152
153: login:Penguin [sage] 2007/03/31(土) 00:34:21 ID:MhCzl/tA >>149 ブロック管理だと ファイルが巨大になると インデックスを引くのに時間がかかるようになるが エクステント管理だとうまく連続ブロックに配置できれば時間が節約できる。 http://mao.5ch.io/test/read.cgi/linux/1173530292/153
154: login:Penguin [sage] 2007/03/31(土) 01:12:12 ID:ifE6Hzsr インデックスってエクステント単位で振られるんじゃないの? ブロック=IO最小単位 エクステント=領域割当最小単位 っていう理解で基本的にはいいんだよね? http://mao.5ch.io/test/read.cgi/linux/1173530292/154
155: login:Penguin [sage] 2007/03/31(土) 02:18:24 ID:cMH9eCiA 違う。 エクステントってのは連続したブロックのこと。 あるファイルが1〜10、15〜20のブロックからなっている時、ブロックベースの ファイルシステムでは (1 2 3 4 5 6 7 8 9 10 15 16 17 18 19 20) という インデックスで表現するのに対し、エクステントベースのファイルシステムでは ((1 10) (15 5)) のように表現する。 http://mao.5ch.io/test/read.cgi/linux/1173530292/155
156: login:Penguin [sage] 2007/03/31(土) 07:52:26 ID:Ud+o/4Fl >>155 inodeが圧縮できる?よくわかってませんが。 http://mao.5ch.io/test/read.cgi/linux/1173530292/156
157: login:Penguin [] 2007/04/01(日) 08:47:20 ID:jgewp6D4 で、最初の疑問ですが、 断片化が起こるのは、ファイル更新時のサイズ変化が要因だとすれば、 あらかじめ変化量を予測してエクステントを確保する必要があるわけだけど どうやるのですか? http://mao.5ch.io/test/read.cgi/linux/1173530292/157
158: login:Penguin [sage] 2007/04/01(日) 09:20:52 ID:Miicym17 extentの仕組みについて人に聞く前にまずググってみました。 ズバリというページがありません! http://www.spa.is.uec.ac.jp/~kinuko/survey/body/extent-like-fs.html http://www.kyoto-sr.co.jp/products/fugue/techinfo/fs-gc.html http://www.atmarkit.co.jp/flinux/rensai/oracle04/oracle04.html http://www.simosimo.info/know/oracle/extent.htm いったいエクステントについてよく理解するためにはどうしたらいいのか! 参考書とか専門書とか買わないとわからんかな。 http://mao.5ch.io/test/read.cgi/linux/1173530292/158
159: login:Penguin [sage] 2007/04/01(日) 11:10:36 ID:5ZbsiFAt >>158 くっつく?ひっつけばチャクラエクステントが発動します。 http://mao.5ch.io/test/read.cgi/linux/1173530292/159
160: login:Penguin [sage] 2007/04/01(日) 18:24:10 ID:AzuElS/P >>157 ジャーナルから commit するまで割り当てを遅延する ディスクの空き容量が少なくなるまでファイルを密に配置しない その他色々 http://mao.5ch.io/test/read.cgi/linux/1173530292/160
161: login:Penguin [sage] 2007/04/02(月) 09:07:01 ID:NH19NaTw ありがとうございます! しかしジャーナルに書き込むのは更新時が主ですよね? とすれば、新規作成時に将来サイズの予測ができることがエクステントの考え方としては最重要という気がします。 ファイルを密に配置しないという方針は有効ですが、エクステントとは別の考え方ではないでしょうか? http://mao.5ch.io/test/read.cgi/linux/1173530292/161
162: login:Penguin [] 2007/04/04(水) 09:53:19 ID:NWetzSkB 自己レスです。 エクステントの大きさは使用者が決めるようです。 しかも初期と伸張分をべつの大きさにする方法もあるようです。 したがって、設計段階でのサイズ予測はいらないということのようです。 http://mao.5ch.io/test/read.cgi/linux/1173530292/162
163: login:Penguin [] 2007/04/05(木) 11:44:51 ID:6CwC0rrT XSFフォーマットのディスクに入れたファイルとかを NTFSフォーマットのWINDOWSへコピーした場合普通に開けるのですか? http://mao.5ch.io/test/read.cgi/linux/1173530292/163
164: login:Penguin [sage] 2007/04/05(木) 13:15:06 ID:OdzCRDEa >>163 なぜ、自分で試さない? http://mao.5ch.io/test/read.cgi/linux/1173530292/164
165: 163 [] 2007/04/05(木) 13:24:15 ID:6CwC0rrT パソコンすら持ってないんです うぅ・・ http://mao.5ch.io/test/read.cgi/linux/1173530292/165
166: login:Penguin [sage] 2007/04/05(木) 13:30:30 ID:UHEFuWv5 そんな人が聞いてどうすんだろ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/166
167: 名無しさん@お腹いっぱい [] 2007/04/05(木) 15:20:22 ID:BtA25953 流行りのエアギターならぬエアLinuxってやつだな。 http://mao.5ch.io/test/read.cgi/linux/1173530292/167
168: login:Penguin [sage] 2007/04/05(木) 16:26:00 ID:xu52r8kl 俺の若い頃は藁半紙に書いたキーボードとライオン本でカーネルハックの練習をしたもんだよ http://mao.5ch.io/test/read.cgi/linux/1173530292/168
169: login:Penguin [sage] 2007/04/05(木) 17:40:51 ID:ArTajbou エアオナニー http://mao.5ch.io/test/read.cgi/linux/1173530292/169
170: login:Penguin [sage] 2007/04/05(木) 23:16:24 ID:jNYQCAbT 牛乳石鹸をマウスに見立てて、X Windowへの思いをはせたもんだ http://mao.5ch.io/test/read.cgi/linux/1173530292/170
171: 81 [] 2007/04/06(金) 04:19:45 ID:kERYUymx mount -o mount,ro / がbusy で帰ってきて困ってた81(80と間違えてた)です。 2週間ほどたってやっと再現されました。 しかもラッキーに2台。追加したprintk から以下のような出力。 fs_may_remount_ro found pending delete: 0xe6feac80 do_remount_sb: failed fs_may_remount_ro: -138124224 do_mount: failed do_remount: -16 大切なのは最初の1行で以下のprintkから出力されました。 fs/file_table.c: int fs_may_remount_ro(struct super_block *sb) { struct list_head *p; ... /* File with pending delete? */ if (inode->i_nlink == 0) { printk(KERN_NOTICE "fs_may_remount_ro found pending delete: 0x%x¥n", (unsigned long)file); goto too_bad; } 続く http://mao.5ch.io/test/read.cgi/linux/1173530292/171
172: 81 [sage] 2007/04/06(金) 04:29:08 ID:kERYUymx さて、まずどのファイルか? gdbを/proc/kcoreに繋いで除きました。 (gdb) p ((struct file*)0xe6feac80)->f_dentry->d_iname $12 = "libz.so.1.2.1.2", '¥0' <repeats 20 times> gdb) p ((struct file*)0xe6feac80)->f_dentry->d_parent->d_iname $14 = "lib¥000t", '¥0' <repeats 30 times> (gdb) p ((struct file*)0xe6feac80)->f_dentry->d_parent->d_parent->d_iname $16 = "usr¥000]", '¥0' <repeats 30 times> (gdb) p ((struct file*)0xe6feac80)->f_dentry->d_parent->d_parent->d_parent->d_iname $18 = "/¥000dline", '¥0' <repeats 28 times> というわけで問題のファイルは"/usr/lib/libz.so.1.2.1.2" もうここで は〜〜〜あ〜〜〜〜??????? です。なんでライブラリー ファイルがpending delete なの???? http://mao.5ch.io/test/read.cgi/linux/1173530292/172
173: 81 [sage] 2007/04/06(金) 04:41:28 ID:kERYUymx もうちょっと掘り下げる。 (gdb) p ((struct file*)0xe6feac80)->f_dentry->d_inode.i_ino $24 = 230991 iノード番号は230991。 # ls -li /usr/lib/libz.so.1.2.1.2 231021 -rwxr-xr-x 1 root root 63624 Jul 21 2005 /usr/lib/libz.so.1.2.1.2 ??? 食い違うぞ ??? 誰がこのファイルを開いてる? # lsof | grep libz.so.1.2.1.2 # ちょっと冗長な行は省いてます postmaste 5377 initrfx mem REG 3,3 63624 231021 /usr/lib/libz.so.1.2.1.2 snmpd 5580 root mem REG 3,3 63624 231021 /usr/lib/libz.so.1.2.1.2 ntpd 21393 ntp mem REG 3,3 230991 /usr/lib/libz.so.1.2.1.2 (path inode=231021) sshd 26062 root mem REG 3,3 63624 231021 /usr/lib/libz.so.1.2.1.2 sshd 26066 admin mem REG 3,3 63624 231021 /usr/lib/libz.so.1.2.1.2 sshd 26135 root mem REG 3,3 63624 231021 /usr/lib/libz.so.1.2.1.2 sshd 26153 support mem REG 3,3 63624 231021 /usr/lib/libz.so.1.2.1.2 ここでntpdに注目、他のプロセスは正しいinodeで開いているのにntpdだけがこの問題の 230991番のinodeを通して開いてます。 http://mao.5ch.io/test/read.cgi/linux/1173530292/173
174: 81 [sage] 2007/04/06(金) 04:50:49 ID:kERYUymx それでもってntpがどういうファイルを開いているか見ると、なんか怪しげな状態。 # lsof | grep ntp ntpd 21393 ntp cwd DIR 3,3 4096 2 / ntpd 21393 ntp rtd DIR 3,3 4096 2 / ntpd 21393 ntp txt REG 3,3 431016 227728 /usr/sbin/ntpd ntpd 21393 ntp mem REG 3,3 230494 /usr/lib/libkrb5.so.3.2 (path inode=231028) ntpd 21393 ntp mem REG 3,3 194104 /lib/libdl-2.3.4.so (path inode=195480) ntpd 21393 ntp mem REG 3,3 47468 194100 /lib/libnss_files-2.3.4.so ntpd 21393 ntp mem REG 3,3 210587 /lib/tls/libc-2.3.4.so (path inode=210651) ntpd 21393 ntp mem REG 3,3 194115 /lib/libcom_err.so.2.1 (path inode=195486) ntpd 21393 ntp mem REG 3,3 195438 /lib/libcap.so.1.10 (path inode=194186) ntpd 21393 ntp mem REG 3,3 230991 /usr/lib/libz.so.1.2.1.2 (path inode=231021) ntpd 21393 ntp mem REG 3,3 194184 /lib/libresolv-2.3.4.so (path inode=195487) ntpd 21393 ntp DEL REG 3,3 230821 /usr/lib/libgssapi_krb5.so.2.2.#prelink#.k1YsQi ntpd 21393 ntp mem REG 3,3 195446 /lib/ld-2.3.4.so (path inode=195478) ntpd 21393 ntp mem REG 3,3 230734 /usr/lib/libk5crypto.so.3.0 (path inode=230968) ntpd 21393 ntp mem REG 3,3 210597 /lib/tls/libm-2.3.4.so (path inode=210654) ntpd 21393 ntp DEL REG 3,3 195456 /lib/libcrypto.so.0.9.7a.#prelink#.7KiFJi 以下略。 続く http://mao.5ch.io/test/read.cgi/linux/1173530292/174
175: 81 [sage] 2007/04/06(金) 04:52:02 ID:kERYUymx ちなみに正常(?)な状態のntpはこんな感じ。 proto5# lsof | grep ntp ntpd 2101 ntp cwd DIR 3,2 4096 2 / ntpd 2101 ntp rtd DIR 3,2 4096 2 / ntpd 2101 ntp txt REG 3,2 431016 241991 /usr/sbin/ntpd ntpd 2101 ntp mem REG 3,2 941024 260982 /lib/libcrypto.so.0.9.7a ntpd 2101 ntp mem REG 3,2 11776 260970 /lib/libcap.so.1.10 ntpd 2101 ntp mem REG 3,2 1525004 177572 /lib/tls/libc-2.3.4.so ntpd 2101 ntp mem REG 3,2 16800 294968 /lib/libdl-2.3.4.so ntpd 2101 ntp mem REG 3,2 415188 247066 /usr/lib/libkrb5.so.3.2 ntpd 2101 ntp mem REG 3,2 47468 258705 /lib/libnss_files-2.3.4.so ntpd 2101 ntp mem REG 3,2 112236 294966 /lib/ld-2.3.4.so ntpd 2101 ntp mem REG 3,2 63624 247059 /usr/lib/libz.so.1.2.1.2 ntpd 2101 ntp mem REG 3,2 213992 260979 /lib/tls/libm-2.3.4.so ntpd 2101 ntp mem REG 3,2 136016 242425 /usr/lib/libk5crypto.so.3.0 ntpd 2101 ntp mem REG 3,2 81184 260981 /lib/libresolv-2.3.4.so ntpd 2101 ntp mem REG 3,2 7004 260980 /lib/libcom_err.so.2.1 ntpd 2101 ntp mem REG 3,2 82944 247067 /usr/lib/libgssapi_krb5.so.2.2 以下略。 http://mao.5ch.io/test/read.cgi/linux/1173530292/175
176: 81 [sage] 2007/04/06(金) 04:56:47 ID:kERYUymx ちなみにこの症状は問題のおこった2つのシステムでまったく同じ。 おなじlibz.soでひっかかり、やはりntpが同じような状態になってます。 さて、この"path inode"というのがキモのようですが、なんの事か 全然分からないからどこかで調べてきます。 ここまでの情報で何か助言があればよろしくおねがいします。 http://mao.5ch.io/test/read.cgi/linux/1173530292/176
177: 81 [sage] 2007/04/06(金) 05:25:18 ID:kERYUymx なお、問題のあるシステムでは問題のあるのはntpだけでありません。 # lsof | grep "path inode" | cut -d" " -f1 | sort | uniq agetty crond ifplugd klogd mingetty ntpd portmap syslogd udevd xinetd 問題のないシステムではこの"path inode"は全く見受けられません。 それから これらのシステムではライブラリーのアップデートは全く行われてません。 http://mao.5ch.io/test/read.cgi/linux/1173530292/177
178: login:Penguin [sage] 2007/04/06(金) 05:46:22 ID:lKLkq3ZS prelinkによってロード中の共有ライブラリが置き換えられているのかな? prelinkを止めてみるとか。 http://mao.5ch.io/test/read.cgi/linux/1173530292/178
179: 81 [sage] 2007/04/06(金) 06:12:19 ID:kERYUymx >>178 そっ、それだ〜〜〜〜〜〜〜〜〜〜〜〜。 こんなもの見つけました。 /etc/cron.daily/prelink 一発で再現出来ました。 正常状態: # touch /hoge touch: cannot touch `/hoge': Read-only file system # lsof | grep "path inode" | wc -l 0 再現: # mount -o remount,rw / # /etc/cron.daily/prelink # mount -o remount,ro / mount: / is busy # lsof | grep "path inode" | wc -l 337 よーするにこれが滅多に起きなかったのは、普段はr/oなのでprelinkは水面下でエラーを起こして たのでしょうが、たまにr/wに変わる短い時間がcron.dailyとぶつかることがあるのでしょう。 その時に書き換えられてこうなると。 しかしprelinkって乱暴ですね。 http://mao.5ch.io/test/read.cgi/linux/1173530292/179
180: login:Penguin [sage] 2007/04/06(金) 06:56:25 ID:lKLkq3ZS オープン中のファイルは移動したり削除しても影響を受けないから、prelink の 動作自体は乱暴でもないような。 lsof の出力に path inode が出ているのは、オープン中に置き換えられたファイルで ある事を示しているのを初めて知ったから俺も勉強になったよ。 問題が解決して良かったね。 http://mao.5ch.io/test/read.cgi/linux/1173530292/180
181: 81 [sage] 2007/04/06(金) 07:16:47 ID:kERYUymx >>180 ありがとうございます。 > lsof の出力に path inode が出ているのは、オープン中に置き換えられたファイル 普通のファイルのように素直に"deleted"とか書いてくれればもっと早く解決したかもしれないんですけどね。 ちょっとその場合とは意味が違うのでしょう。 後で勉強したいと思います。 # cat > hoge.txt & [1] 9317 # lsof | grep hoge.txt cat 9317 root 1w REG 253,0 0 15 /hoge.txt # rm hoge.txt # lsof | grep hoge.txt cat 9317 root 1w REG 253,0 0 15 /hoge.txt (deleted) http://mao.5ch.io/test/read.cgi/linux/1173530292/181
182: login:Penguin [sage] 2007/04/07(土) 00:19:04 ID:PW/Wm1N9 よくそこまで調べたなー /proc/kcoreをgdbに繋ぐなんてテクニック初めて知った すげぇわ http://mao.5ch.io/test/read.cgi/linux/1173530292/182
183: login:Penguin [sage] 2007/04/07(土) 00:22:14 ID:l0bc2a+o >>182 /proc/kcoreはgdbで使うための仮想ファイルだろ? http://mao.5ch.io/test/read.cgi/linux/1173530292/183
184: login:Penguin [sage] 2007/04/07(土) 05:48:12 ID:07BPrRWv http://www.gentoo.org/doc/ja/prelink-howto.xml 4. 既知の問題と解決策 http://mao.5ch.io/test/read.cgi/linux/1173530292/184
185: login:Penguin [sage] 2007/04/07(土) 15:32:22 ID:w4EDI2Lw 怠け者な俺は、locateとかprelinkなんて余計なものは真っ先に外しちゃうからなぁ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/185
186: login:Penguin [sage] 2007/04/07(土) 21:33:30 ID:Vx40DlGH >>185 locateの便利さがわからんか。 デスクトップ検索の先駆けだぞ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/186
187: login:Penguin [sage] 2007/04/07(土) 21:37:40 ID:qEROFzP6 ファイルシステムってハマる時はハマるのだな…。 自分ならとても解決できなかったように思う。 locateは入っていたがprelinkは入れてなかったので入れようかと思っていたが、 こんな理解不能の事態が発生するのでは、いれていいかどうか不安に感じてしまう…。 http://mao.5ch.io/test/read.cgi/linux/1173530292/187
188: login:Penguin [sage] 2007/04/08(日) 00:43:17 ID:HNNwKpZg >>186 だって全然使わない、デスクトップ検索自体しないし・・・ GoogleDesktop入れて気付いたが 広大なwebならともかく自分の管理してる所なんだから 情報はちゃんと整理してる、というかしていないときもちわるい Spotlightも使わない なのでlocateのありがたみもよく解らんです http://mao.5ch.io/test/read.cgi/linux/1173530292/188
189: login:Penguin [sage] 2007/04/08(日) 00:50:38 ID:S1gIGviP >>188 /home以下じゃなくて、使ったこと無いコマンドとかインストールされているか 調べるために、 locate hoge とか実行する。 というか、「お前は自分の管理してるマシンのファイル名を全部覚えているのか?」 もしやっているならご苦労なことだ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/189
190: login:Penguin [sage] 2007/04/08(日) 01:46:07 ID:+N5qr5Yv コマンドなら、whichでいいだろ。 locateなんてわざわざ使わん。 http://mao.5ch.io/test/read.cgi/linux/1173530292/190
191: login:Penguin [sage] 2007/04/08(日) 01:49:51 ID:S1gIGviP >>190 パス通してない無い場合は? コマンドは例だったが適用例は設定ファイルとかファイル全般。 http://mao.5ch.io/test/read.cgi/linux/1173530292/191
192: login:Penguin [sage] 2007/04/08(日) 01:54:57 ID:AO6opwfy 俺はwhichもlocateも使うよ。 locateはかなり良く使うけどなぁ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/192
193: login:Penguin [sage] 2007/04/08(日) 02:34:25 ID:Hzw/JAkU cronでslocate走った後って、メモリ消費量増えない? http://mao.5ch.io/test/read.cgi/linux/1173530292/193
194: 81 [sage] 2007/04/08(日) 04:25:29 ID:HBM8UdKZ >>187 いや、自分の場合はrootをr/oにするというハックをしている状況なのでハマっただけです。 組み込み系のアプライアンスのための要求なので普通のホストシステムならたぶん問題はないでしょう。 しかし今回の経験で学んだのは、Linuxホストのrootをr/oにするっていうノウハウがあまり 確立されてないという事。漠然とセキュリティーのためにそうする事もあるという事を 見聞きしてましたが、今回のことも含め、ハマる穴は沢山ありそうです。 http://mao.5ch.io/test/read.cgi/linux/1173530292/194
195: login:Penguin [sage] 2007/04/08(日) 04:34:17 ID:IVjfIv3g >>194 BSDに比べて/をroにすることを考えていないといえば考えて無いとはいえると思う。 prelinkとかは止めりゃいいだけだが、 /usr のパーティション分けたら動かないものとかあったりするし。 http://mao.5ch.io/test/read.cgi/linux/1173530292/195
196: login:Penguin [sage] 2007/04/08(日) 05:55:52 ID:VhLkTwV9 というか、cronでprelinkなんか動かしているその組込み系の ディストリを明記してくれた方が有益だと思う。 あるいは、PC向けのディストリをベースに自力で構築している ならそう書くべきだな。 http://mao.5ch.io/test/read.cgi/linux/1173530292/196
197: login:Penguin [sage] 2007/04/08(日) 09:31:32 ID:M3c2/sEX >>193 > cronでslocate走った後って、メモリ消費量増えない? ファイルキャッシュが増えるからだよ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/197
198: 81 [sage] 2007/04/08(日) 12:57:04 ID:HBM8UdKZ >>196 失礼しました。 単にCentOSをアプライアンスとしてカスタムインストールしているだけです。 「組み込み」とはいっても中身はPCマザボの普通のサーバーですので。 面白いのは色々とごちょごちょ いじっている時に/etc/rc.d/rc.sysinitにこんなコードを見つけた事: if [ -f /etc/sysconfig/readonly-root ]; then . /etc/sysconfig/readonly-root if [ "$READONLY" = "yes" ]; then # Call rc.readonly to set up magic stuff needed for readonly root . /etc/rc.readonly fi fi これ見たとき、お、ちゃんと考えてるじゃんとか思ったのですが、肝心の/etc/rc.readonlyがないんですよね。 "magic stuff"は自分で書いてくれとのことのようです。 http://mao.5ch.io/test/read.cgi/linux/1173530292/198
199: login:Penguin [sage] 2007/04/08(日) 13:04:09 ID:v21r+S80 >>194 ひとりでこつこつとやっててもむずかしいよ。 組込み系は組込み系のコミュニティーで ノウハウが貯ってるからねぇ。 http://mao.5ch.io/test/read.cgi/linux/1173530292/199
200: login:Penguin [sage] 2007/04/08(日) 14:22:45 ID:Q1EoOsla システム全体に全文検索のindexを作るのは現実的じゃないからファイル名検索は現役だけど、 slocateはupdatedbを実行するまでindexが更新されないのが困る。updatedbの実行中は負荷高いし モジュールの追加に抵抗が無ければ、ディレクトリツリーを変更するシステムコールをフックして、 インデックスを即時変更するrlocateの方がスマート http://mao.5ch.io/test/read.cgi/linux/1173530292/200
201: login:Penguin [sage] 2007/04/08(日) 14:56:06 ID:+N5qr5Yv updatedb重いよなぁ。 デュアルコアとかマルチプロセッサなら多少は軽減されるだろうか? ま、どっちにしてもサーバ向けの機能ではないし、いらないっちゃいらない。 http://mao.5ch.io/test/read.cgi/linux/1173530292/201
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 754 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s