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

NTTがLinuxの高信頼性への取り組み成果を一部公開 43

ストーリー by wakatono
目の付け所がNTT 部門より

MyCOM PC Webの記事によると、NTTがLinuxの可用性を高めるパッチを提供した模様。
1つはGRUBのパッチ、もう1つはKernelパッチで、実行中プロセスを再起動することなくパッチを適用できるとのこと。
NTTのLinuxに対する取り組みが期待される。

Resumoはブートプロセスの高信頼化を、Pannusは動作しているプロセスに対して「動いている状態のままの」パッチ適用を実現するもの。それぞれの成果物の構成を見た感じ、Resumoの方はGrubに対するパッチとサポートコマンドの作成をするのみであり、すぐにでも試せそうな感じだ。一方、Pannusの方は、カーネルのパッチとコマンドだけではなく、wrapperライブラリも導入が必要になることもあり、導入の敷居はResumoよりは高そう。でも、すごく興味をそそられる成果だ。
高信頼化といってもクラスタリングとかの話ではないので、そのあたりは誤解しないでほしい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Elbereth (17793) on 2004年06月16日 17時21分 (#570830)
    動作中のプログラムにパッチといえば、昔何だったかの記事で
    動作中のXwindowSystemにパッチを当てる際に、デーモンを
    落とさずにバイナリを書き換えて、さらにプログラムが使用
    しているメモリ領域も手動で書き換えてしまい、サービスを
    停止させなかったみたいな話が載っていたのを読んで、
    すげーと思ったことがあります。

    #何となく思い出したのでとりあえず書いてみるテスト。
    • Netwareを数年いじった事があり、バイナリのパッチをノンストップで当てることができるので感心していました。これは、カーネルだけじゃなくて全部のサービスがそうだったと思います。

      これは、『元もとあるバイナリ+バイナリのパッチ』で新しいプログラムになります。「アセンブラレベルで、古いプログラムに当てるパッチを書いているのかな?」と思っていましたが、このLinuxようのパッチというのはどういう原理なんでしょ?
      親コメント
      • realized by overwriting each funtion's entry point with jmp assenbly code.
        各関数のエントリーポイントを jmp 機械コードで上書きする事により実現する。

        というので、『関数単位で置き換える』みたいですね。じゃあ、高級言語でできるかも。あと、
        target process is sleep status
        目標のプロセスはスリープ状態にある

        ということですので、パッチを当てるプロセスが対応する関数を実行していない状態かつ、その関数から呼ばれた関数を実行していない状態でスリープ状態にして、関数を置き換えるんですね。

        と、一人でなっとく。だれか試してみた人のレポートを見たいなあ。
        親コメント
    • そういうことをOSレベルでサポートしていた最初の物ってのが, かのmulticsだったそうで. 動作中のプログラムの記憶イメージを一旦吐き出させてから不具合を修正, そして停止点から再実行させるという機能が後のcore dumpになったそうです.

      そうするとLinuxは先祖返りしたということなのか, 現在のU*ixが既にmultics並みの巨大システムなのか...

      親コメント
    • 俺も前に同じような事をしたけどはっきり言って面倒だった。

      高級言語用のツールは実行時パッチの作成なんて想定外だから
      挿げ替えるためのコードもアセンブラとかを使って手作業で
      作成する必要があるし、実行中のプロセスと辻褄を合わせる
      為にソースコードや実
    • 恐らく、一昨年くらいのBSD Magazineに載った、
      砂原さんの逸話ではないかと思います、、
      違ってたらごめんなさい。

      完全にマシンを把握しきった行為(ハック)で
      恐れ入った記憶があります。
  • 間が悪いよな。 (スコア:2, 参考になる)

    by Anonymous Coward on 2004年06月16日 21時41分 (#571002)
    GRUBって3日前に0.95が出たばかり [gnu.org]じゃん。
  • さぁて (スコア:1, 興味深い)

    by Anonymous Coward on 2004年06月16日 17時06分 (#570815)
    いよいよNTTさんは、LinuxによるCTRONのリプレースを視野に入れ始めましたかねぇ??
    • Re:さぁて (スコア:1, 参考になる)

      by Anonymous Coward on 2004年06月16日 19時21分 (#570920)
      だろうねぇ.
      呼を維持したままのバージョンアップって交換系には必須だからねぇ.
      まだ,実験段階だろうけど.
      親コメント
      • Re:さぁて (スコア:1, 参考になる)

        by Anonymous Coward on 2004年06月17日 1時30分 (#571178)
        べつに動かしながら変える必要は無い。
        すべてのハードウェアは2重化されているので、
        呼を維持したままでも予備系の電源を落としてすっかり入れ替えることができる。
        片方が終わったら予備/運用を切り替えてもう一方の入れ替え。
        親コメント
        • by mocchino (13752) on 2004年06月17日 13時00分 (#571409)
          >べつに動かしながら変える必要は無い。

          ソフト更新で予備系を止めると言うことは、運用系障害発生時に予備系に切り替えることが出来なくなると言うことです
          呼を維持したままできるとは言え、数分止まれば新聞沙汰の交換系はその交換作業時の障害を懸念し極力敬遠されるのであ?

          小さな修正ではパッチが当てられるなら、止める必要もないので必須機能と言っても問題ないでしょうね。
          #もっともパッチを作れる人も少なくなってるかもしれませんが...

          無停止前提のシステムのファイル更新は逆系あるから大丈夫のような気楽な行程ではないでしょう
          親コメント
          • by Anonymous Coward
            いや、実際に予備系とめて交換やってるから。
            • by mocchino (13752) on 2004年06月18日 10時51分 (#571965)
              >いや、実際に予備系とめて交換やってるから。

              2-3命令のバグ修正(できればパッチ)と、大規模改修(普通予備系止めてファイル更新)と同一手順って事はないでしょう
              修正規模と危険性を考慮してどっちでやるか選んでませんか?

              小規模修正時の場合は、系切り替え&切り替え作業時中の障害発生対応ができない&作業時間の長いFUPを使わずにパッチの方ができればいいねって事ですね

              それとも今はパッチなんて当てずに全部FUPで更新するようになったのかな?
              それならNTTもこんな機能つくらないような(苦笑)

              #昔やってたのバレバレだけどID(笑
              親コメント
              • by Anonymous Coward
                誤>小規模修正時の場合は、系切り替え&切り替え作業時中の障害発生対応ができない&作業時間の長いFUPを
                正>小規模修正時の場合は、系切り替え&ファイル更新中の障害発生対応ができない&作業時間の長いファイル更新(FUP)を

                以上に訂正

                #訂正のみなのでAC
              • by Anonymous Coward
                確率とコストの問題。
                ハードを二重化しても2つのシステムが同時に落ちる危険性は0ではない。
                障害発生の確率はゼロには出来ない。コストと危険性をはかりにかけて、折り合うところで妥協する。

                現状は二重化されたシステムが同時に障
              • by mocchino (13752) on 2004年06月18日 18時47分 (#572256)
                ほかの所は別に否定してないのでここだけ(苦笑)

                >また、予備系メンテナンスの間に運用系が障害を起こす可能性も非常に低いということで、無視される。

                いや、だからその予備系の停止時間を短くする&なくすためのパッチでしょ?
                数時間かかる&改修影響が大きい全FUPより、数分で終わる&改修箇所が極小のパッチのが良い場合も有るって事を言いたいんだけど...

                まぁパッチは小手先の技術でもあるので、パッチの作成品質と作業時間の予備系停止時間の危険度を測りにかけて全部FUPで更新するようになったのかなぁ~と思ったんだけど、実際はどうなんかねぇ(苦笑)

                #実際やってるしと言ったACと同一じゃないかもしれないことはわかっているので疑問系(苦笑)
                親コメント
              • by mocchino (13752) on 2004年06月18日 18時59分 (#572262)
                以下なんとなくここまでの感想..

                >また、予備系メンテナンスの間に運用系が障害を起こす可能性も非常に低いということで、無視される。

                「非常に低いけど、その危険性すら極力極小に持って行く努力」をしていたのが交換機系のNTTだったんだけど、体質変わったのかな?

                でもそれならLinuxに盛り込んだパッチ機能は開発すらしないだろうし
                まぁACさんたちがNTT関係者の中の人って保証はないんだけどね
                親コメント
              • by Anonymous Coward
                >「非常に低いけど、その危険性すら極力極小に持って行く努力」をしていたのが交換機系のNTTだったんだけど、体質変わったのかな?

                もとからそんな体質ではないですよ(苦笑)
                障害発生率も目標値をきめてそれをクリアしている仕様なら
              • by mocchino (13752) on 2004年06月21日 10時34分 (#573545)
                >もとからそんな体質ではないですよ(苦笑)

                いやそれならこの機能なんで作ったんでしょうね
                すべて2系統FUPでやるなら、データーの不整合&パッチの品質維持を考えるとこの機能無駄なわけで(苦笑)

                多重化出来ないサーバーの為と言う事も考えられますがパッチの性質上、FUPより危険な部分も存在します
                その危険性をわかってない人が、逆にシングルなマシンでパッチを使うのは復旧手段がない分結構リスキーに思えます

                判定分直す位なら問題ないとは思いますが、このツール関数ごと変更ですから、データーの取り扱い変更を含めた無茶なパッチを作成しそうな気も....

                #無論そのデーターが該当関数で閉じて居れば問題ないんですけどね
                #しかしこのツール、関数自体の入出力が変わった場合、呼び元の処理のパッチも全部作成するのかな?
                親コメント
  • by yosshy (3545) on 2004年06月16日 20時52分 (#570965) 日記
    動いているカーネルを置き換える技術を開発して欲しい…
  • by u1p (2709) on 2004年06月16日 17時14分 (#570824) 日記
    でもさ、Linuxの世界ってさー、
    新しいディストリ出たらすぐに/homeもろとも
    フォーマットしてインストールしちゃうような(まともじゃない)奴ばっかだから、
    あんまり意味ないよねー、とか。
  • by Anonymous Coward on 2004年06月16日 17時18分 (#570829)
    模様、模様、模様、模様。いったい誰が確認するんだろう?
  • by Anonymous Coward on 2004年06月16日 22時46分 (#571055)
    なんだか親会社にゴマをすっているようにしか見えないな。
  • by Anonymous Coward on 2004年06月17日 8時18分 (#571251)
    寝ぼけていて「NTのLinuxに対する取り組み」って何だろうと最初分からなかった ... ^_^;;
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...