パスワードを忘れた? アカウント作成
2082 story
OS

難産のカーネル 26

ストーリー by wakatono
2.4系カーネル導入に影? 部門より

k3c 曰く、 "本家でも話題になったのですが、LinuxWorld.comに"Kernel of pain"という記事が出ています。内容は2.4.xカーネルを顧客のシステムに適用してからの艱難辛苦の日々…涙なくしては読めません。記事の最初に"Let's call a spade a spade"と書いてあるのもうなずけます。これだけの災厄に見舞われたら誰だって諦めるよねえ…。
/.Jのみなさんは2.4.xカーネルを使って、どんな災厄に見舞われましたか?"

オレも 2.4系カーネルを何箇所かで使っているが、今のところは災厄というほどの災厄に見舞われたことはない。しかし、実際に使用してる人の中には苦労したというのもあるのではないか。実際のところどうなんだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • tcp_ecn... (スコア:3, 参考になる)

    by tach (3) <tach@debian.org> on 2002年01月22日 14時49分 (#56150) ホームページ 日記
    tcp_ecn がデフォルトで ON になるのには参りました.
    LKML を運営している VGER.KERNEL.ORG [kernel.org] にでっかく「TCP/ECN IS ON!
    と出ていて,強い意志が感じられます.ECN を有効にしないと
    一部の netfilter 系のモジュールがコンパイルできなくて,有
    効にしてたんですが…

    「特定のサーバの Webが見られない」とか「メールが送れない」と
    いう現象が出ていて原因不明で相手に問い合わせてしまいました.
    リリースされているカーネルには「デフォルトで OFF にする」と
    いうオプションがあるのでいいのですが,ふだん pre をつかっ
    ているので,突然こうなったときは驚きました.
    #www.geocities.co.jp とか village.infoweb.ne.jp とかに
    #つながらなかった.

    /etc/sysctl.conf に net/ipv4/tcp_ecn = 0 と書いて,sysctl -p
    すると無効になります.

            % cat /proc/sys/net/ipv4/tcp_ecn
            0

    ぼくにとってはこれが最大の災厄でした.
    #って LKML とかきちんとチェックしてればいいだけですね… ^^;
  • by SteppingWind (2654) on 2002年01月22日 14時00分 (#56120)

    Linuxでサーバを運用している人の話を聞くと, まだ怖いので2.2.xとかいうことが多いのですが, 今業務システムで2.4.xを使うとしたらどんな理由が有るのでしょうか?

    ちょっと思いつくところでは

    • 性能が2.4.xの方が良い
    • 2GB超のファイルを使う必要が有る
    • 使用するハードのドライバが2.4.xしか無い
    • 使用するプログラムプロダクトが2.4.xを要求している

    ぐらいなんですが, 業務システムは動いてなんぼですからね...

    • by visha (779) on 2002年01月22日 14時11分 (#56124) 日記
      • ラクしてreiserfsを使いたい

      もっとも、そのつもりがファイルシステムボロボロで泣きを見たってパターンは最近まではありそうだったけど。ほんと2.4のリリース管理はちょっとヒドすぎた。Linusってリリース管理に向かないのな、と本気で思ったりしたもの。俺個人は一部仕事で使っていながらそこまでヒドい目には遭わなかったけど、それは運がよかっただけ。

      # 仕事で一番大切かつ負荷のかかるサーバは、2.2.19+reiserfs3.5.24に個人的にいくつかパッチ当てたものを使ってて、岩のように安定している。

      親コメント
    • by a Coward (5383) on 2002年01月22日 14時23分 (#56131) ホームページ
      最近のディストリビューションを使っているから
      という理由もありえます。
      親コメント
    • by Anonymous Coward
      >Linuxでサーバを運用している人の話を聞くと, まだ怖いので2.2.xとかいうことが多いのですが,

      まだ自分のサーバで2.4.xを実験してないので、
      仕事で使うサーバはまだ怖いので2.2.x使ってます。

      さして2.2.xでも問題ないし、
      安定している事が確認できるならそれでいいような。

      かなり臆病者です。
  • 2.4.0-testXX を使ってた頃はえらいひどい目にあった
    (quota が動かない、RAID がうまく動かない、… )が、
    正式リリース後の 2.4 カーネルでは問題らしい問題はなかったな。

    クライアント用途としては、むしろ XFree86 4.0.0 がお亡くなりになったり、
    Mozilla が実用に耐えなかったり(M16とかそのあたりの話で、最近はそうでもない)、
    Nautilus が重すぎたり(これは今でも)、
    GNOME のいくつかのアプリケーションがいつも不具合を起こしたり(GnomeCCが多い)、
    とそういう方が問題だったな。

    ちなみに 2.4 に乗り換えるきっかけは
    RAID デバイスの新しいバージョンを入れてみるためだったように思われ。
    --
    # mishimaは本田透先生を熱烈に応援しています
  • 最近オープンしたばっかりのサイトはPotatoに2.4.17+Ext3パッチを当ててあります。起動してから年越ししてます。12/30からですが(笑)。
    • Re:何でext3? (スコア:1, 参考になる)

      by Anonymous Coward on 2002年01月22日 15時05分 (#56160)
      古いといえば古いですが、ext2は安定性とパフォーマンスを両立
      しているのに、まだ実績のないext3を稼動中のサイトに採用する
      とは、チャレンジャーですね。fsckする機会なんてほとんどない
      でしょうから、別にext2で十分じゃないでしょうか。
      ファイルサイズ制限を超える必要から、採用なさったんでしょうか。
      親コメント
      • Re:何でext3? (スコア:2, 参考になる)

        by shimpei (1499) on 2002年01月22日 15時44分 (#56183)
        サーバーをfsckする機会は「ほとんどない」といっても、万が一落ちてしまった場合の復旧の速度は非常に重要です。無論サーバーは落ちてはならないものなのですが、「起こってはならないこと」が起こってしまった場合の対策をあらかじめ施しておくのは、サーバー管理に限らずリスク管理の基本です。

        もちろん、試験的なext3を使う程重要かリスクかどうかはケースバイケースで決めなきゃいけませんけどね。

        親コメント
        • by SteppingWind (2654) on 2002年01月22日 17時21分 (#56223)

          >サーバーをfsckする機会は「ほとんどない」といっても、万が一落ちてしまった場合の復旧の速度は非常に重要です。

          ext2ですと, 一定回数あるいは一定期間後のシステム立ち上げ時に強制的にfsckが走るんじゃありませんでしたっけ? いかにサーバとは言え, 電源系の定期メンテナンスのため年に1回ぐらいは止める運用が多いと思いますので, fsck無しで済むというのはやはり大きいですよね.

          ところで最近の100GB超のディスクってfsckにどの程度の時間がかかるのでしょうね?

          親コメント
          • by hykw (13) on 2002年01月22日 18時48分 (#56260) 日記
            > ext2ですと, 一定回数あるいは一定期間後のシステム立ち上げ時に強制的にfsckが走るんじゃありませんでしたっけ?

            そんなあなたに man tune2fs(max-mount-counts)

            親コメント
            • by crouton (9) on 2002年01月22日 23時30分 (#56344)
              -c -1(max-mount-counts) だけでなく、
              -i 0 (interval-between-checks) もお忘れなく。
              --
              "Quidquid latine dictum sit, altum videtur."
              親コメント
            • by Anonymous Coward
              > そんなあなたに man tune2fs(max-mount-counts)

              そういう話じゃなくて,ext2では定期的なfsckは基本的に避けられない,ということかと.
      • Re:何でext3? (スコア:2, 参考になる)

        by Oliver (4) on 2002年01月22日 17時04分 (#56216) ホームページ 日記
        ext2との互換性があるからこそext3を使う。読み込みに関するコードとon-diskレイアウトが同じだから、イザという時にはリカバリにext2のノウハウとツールが使える。数百GBなファイルシステムをいくつも使ってたら、とてもじゃないが、「たまに」という推測の元でジャーナリングじゃないファイルシステムなんて使ってられない。

        最初はReiserFSだったんだけど、NFSとの相性や高負荷時に
        激遅だったので、かなり早くからext3にした。それから幸せ。次のクラッシュ/ハードメンテに2.4になる一台を除き、全部2.4だが、こっちの方がパフォーマンスも安定度も上。SMPの性能は当然ながら、I/Oとかも良い感じ。もう2.2は使えないね。

        Ingoの新しいO(1)スケジューラJ2版の2.4系バックポート
        ないかなぁ。実験する暇ないけど。
        親コメント
      • 特にミッションクリティカルでもないので、2.4系を使ってみてます。ZODBのData.fsが2G越えるのはいつの日か。(重くなりそう)
        親コメント
  • 私は自宅の小規模サーバに、Linux(Turbo Server 6.5ベース)を用いています。当初、2.2.x系のカーネルを用いる予定でしたが、2.2.x系のカーネルでは、NFSやSMBで高負荷がかかるとカーネルパニックを起こすという現象に見舞われ(3Com 3C905CおよびRTL 8139, 8129の3種類で試しましたが、すべてペケ)、試しに2.4.x系に乗り換えたところ、問題がなくなりました。(原因は未だ不明ですが)
    また、つい先日、たまたま2GB超のファイルを保存しなければならなくなったのですが、そのときには2.4.xのありがたみを感じました。

    反対に、2.4.xにしてから困ったことですが、これは、ディストリビューション付属のpppdを用いてPPP接続ができなくなったというあたりでしょうか。最新版のpppdをもってきたら解決しましたが。
    あと、ReiserFSには何度か泣かされたクチですが、これは2.2.xからの付き合いなので、2.4.xの問題というわけではなく… むしろ2.4.10(だったかな?)以降、NFSとの相性も改善された(に見える)わけで。

    というわけで、私の場合は、災厄よりも恩恵のほうが大きいのですが、実は珍しい事例なんでしょうか。
    --
    巧妙に潜伏したバグは心霊現象と区別が付かない。
    • 2.4.10以降にNFSに関して改善されたらしい とのことですが、私の職場では逆に2.4.9以降 にて問題が起きています。

      RedHat7.2Jを使っていることが問題の原因なの かもしれませんが、NFS Ver.3でマウントした ディレクトリのエントリのサイズが4096を 超えたあたりから、tcshなどがreaddir()に失敗 するという問題です。2.4.8ac12以前では、 この現象が発生しないので2.4.9以降を 使うのは控えています。

      ちなみに、LFS関連の対処法(readdir64を 使うようにする)でこの問題に対処できる ことはわかったのですが、問題が発生する コマンド全てのリコンパイルが必要なので 今のところ放置しています。

      普通に発生しそうな不具合なのに、うち以外 ではこの問題の話を聞いたことがないので、 もしかしたらサーバ側の問題なのかもしれ ませんが...

      RedHatには、うちの担当者が報告したらしい のですが、何も反応無いそうです。

      --
      tt
      親コメント
  • by Anonymous Coward on 2002年01月22日 14時45分 (#56141)
    普通は、2.2で安定稼動しているものを急に2.4にはしない。

    2.4でトラブルが出たら2.2に戻せばいいだけ。(Mandrake 8.0には2.2のパッケージがあるはず)

    stableだからといって最新のカーネルを追いかけたりは普通しない。(だから、2.4.15を入れたのに、すぐにバグフィックスの2.4.16が出たりってことになる)
  • by Anonymous Coward on 2002年01月22日 14時48分 (#56144)
    Windowsみたいですね。
    カーネルが大きくなってくると、結局そうなるのでしょうか。
    • Re:まるで (スコア:3, 参考になる)

      > カーネルが大きくなってくる

      カーネルソース全体のサイズだけなら確かにそうかもしれない。しかし実際必要なモノはたかがしれてる。たいてい、

              # make-kpkg --revision selfbuild.1.0 kernel-image (このコマンドあるからDebianはやめられへん)

      とかやって、できたカーネルのサイズは2HDフロッピー1枚くらいのサイズになるし。
      親コメント
    • Re:まるで (スコア:2, おもしろおかしい)

      by kicchy (4711) on 2002年01月22日 18時24分 (#56250)
      両者の違いは問題があることじゃなくて、
      「問題があったときにどう対処できるか」だと思いますよ。

      そこで、両ユーザの違いを書いてみました。

      if( OS==Windows ){
              while(!isUpdated_WindowsUpdate()){
                      User.sleep(new Date(1));
              }
              win.doWindowsUpdate();
              win.reboot();
              win.doWindowsUpdateAgain();
              win.rebootAgain();
              try{
                      win.doWindowsUpdateAgain2();
                      win.rebootAgain2();
              }catch(NormalBootException e){
                      System.out.println("Fortunately WindowsUpdated successfully.\n"
                      + " But be careful on the news release of Microsoft.\n"
                      + " We are planning to release next new bugs soon!!");
                      System.exit(0);
              }
              System.exit(1);
      }else if(OS==Linux){
              while(!kernel.isRunNormally()){
                      Patch thePatch = kernel.hackBy(me);
                      kernel.patch(thePatch);
                      try{
                              kernel.run();
                      }catch(AnyException e){
                              core.trace();
                      }
              }
              All.notifyAll(thePatch);
              System.out.println("The kernel is now run temporaly.\n"
                              + " Just wait next release.");
      }


      どうでしょう?
      親コメント
      • by Anonymous Coward
        えーっと、ここが面白かったです。 > }catch(NormalBootException e){
    • Re:まるで (スコア:1, 参考になる)

      by Anonymous Coward on 2002年01月22日 14時55分 (#56152)
      # ネタスレ?

      うーん、Linux カーネルって昔からそうだろ。

      Linux カーネルのリリースエンジニアリングが腐ってるのは
      昔からだし、誰もまともなリリースエンジニアリングを
      期待してもいないから、Linux の場合、そのあたりは
      ディストリビュータが仕方なくやるのが伝統。
      裸のカーネルを持ってきても怖くてそのままじゃ使えない。
      必ず自分で検証するか、ディストリビュータが検証したカーネルを
      使うのが、痛い目を見ない方法です。

      まあもっとも、どんなソフトだって、バージョンを変更するときは
      多かれ少なかれ自分で検証が必要だけどな。
      親コメント
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...