ウェイバックマシン – https://web.archive.org/web/20170515160229/http://minnie.tuhs.org/pipermail/tuhs /2017-正直できることも/009935.html
セオドア・ツォUnix の機能とアーキテクチャの進化”>tytso at mit.edu ソーラーもできる正直 14 14:30:24 AEST 2017
- 古いメッセージ (スレッド別): Unix の製品とサービスとアーキテクチャの進化 次のメッセージ (スレッド別): Unix の製品とサービスとアーキテクチャの進化 メッセージの並べ替え: [ date ] [ thread ] [ subject ]
2017 年 11 月 3 日の木曜日にもできます。 25: 47PM -0700, Larry McVoy は次のように書いています:> Linux が Unix を蹴散らしたスペースがここにあります。 そして、私はもはや> 彼らがどのようにそれをしたかについて本当に特別なことはしません、私は理論を本当に楽しんでいますが、もはや確信が持てません。 Unix> ファイル システムから、Solar が出荷した UFS までは、すべて責任を負いました。 to> 私はエネルギーアウトテストと呼んでいます。 いくつかの実質的な tarball を untar し、> マシンの内部のエネルギーをオフにします。 . リブート。 陽気さが続きます(もはや)。 >> fsck が> 指で修正するのはあなた次第です。 数十、数十のエラー。 > ほぼ一貫してバックアップへの転送が速くなったのは、> ファイルごとに詰め込みます (これは、すぐに)、あなたを > あなたが乗るレベルに」 fsck -y" で、lost+chance on when> fsck でライド スランプ終わったら、この種の希望はもうないことに気づき、バックアップに手を伸ばしてください。 >> Linuxでも同じことをやってみてください。 ファイルシステムがサポートされ、> を起動すると、含まれます。 ext2。 >> 私の認識では、Linux の注文は、一見したところ、実際には知識を失う可能性があるように書かれているということです> (アクティビティがファイルを作成したように、OS はそれが OK に変わったと言いましたが、 file > は、スマッシュ後にファイル システム内に存在しなくなる可能性があります。 )、しかし、ファイル> システムの余暇はおそらく一定です。 あなたが> マシンの電源を切っている間に、あなたが積極的に行ったよりも数秒早く、いくつかのものは> のフライトにあり、それまで彼らは正しい入札の範囲内で物事を書くことができます。 価値のあるリセットに関する知識を失います。 したがって、伝説はここでは適度に微妙であり、正直なところ、「最悪は最高」の例になる可能性があります --- これは皮肉なことに、 Philosophizeが技術的に助言された[ author ]に変わったにもかかわらず、BSD/Unixが勝った理由の引き金として原始的な問題の1つです---しかし、この場合、何か「汚いことをしたのはLinuxです」、そして「より良い」解決策であると称される何かを行ったBSD. [ author ] https://www.jwz.org/doc /worse-is-better.html では、まず ext2 に焦点を当てましょう (実際、ext2 はもはやファイル システムのジャーナリングには適していません。これは ext3 に含まれています)。 . BSD Mercurial File Gadget は、fsck が実際に問題をソートできるように、ディスクへの書き込みが実際の入札に忠実に送信されるようにするために、さまざまな努力を払っています。 これには、ディスクが書き込みを並べ替えないようにする必要があります (たとえば、書き込みキャッシュが無効になっているか、ライトスルー モードになっているなど)。 ext2 の Linux は、書き込み入札を正当に評価しようとして苦労しませんでした。 なし。 なだ。 ジップ。 書き込みは、エレベータ スケジューラによって指示された入札で終了し、エネルギー障害やカーネル スマッシュなどで、メタデータ書き込みがディスクに送信される入札が完全に制約なしに変更されました。 欠陥があるように聞こえますが、本当ですか? 多くの方法で、それはに変わりました。 そして、NetBSD と FreeBSD の顧客が、原始的で欠陥のある ext2 がどのように FFS に匹敵するように変化したかについて、どのように注目するのか数え切れませんでした。一貫して問題を分類できる立場にあることが保証されています。 では、なぜ Linux はそれを廃止したのでしょうか? ext2 の fsck を書いたとき、余暇が発生する可能性があることを知っていたので、それを応用に変更して、もはや知識を流さないことについて非常に偏執的になりました。 そして、専門家がその知識をよりよく説明できるような努力が必要になった場合、e2fsck は一時停止し、システム管理者に検索を要求します。 特定の人物が fsck -y で実行した場合、デフォルトはタンブル ファイルに変更され、失われた + チャンスがオンになりました。これは、FFS fsck を使用したいくつかの条件のように、特定のケースでは入札が書き込みは、リンク解除の合計を許可するように実際に変更されたため、refcount がゼロになるか、ゼロで一時停止する可能性があります。 Linux で行った追加のことは、非常に現実的な「debugfs」手順を用意したことです。 この手順は 2 つの機能を果たしました。 最初の変更により、fsck の回帰テスト スイートの作成が非常に簡単になりました。 私の知る限りでは、当時の多くのよく知られているさまざまなファイル システムの 1 つであるという考えには、回帰テスト スイートを備えた fsck はありませんでした --- そして、パフォーマンスを追加するにつれてテストを含めることについて精神的に変わりました。バグをマウントしたとき。 debugfs 手順により、さまざまな興味深い方法で破損したテスト ケース ファイル システムを簡単に作成できました。 debugfs のさまざまな費用は、スペシャリストがスマッシュ後にファイルシステムの回復を簡単に行うことができるように変更されました。 これは、「最悪は最高」の広範な例です。 Linux では、ext2 は、書き込み順序を処理する配置について信じられないほどずさんになりました。 しかし、私たちが非常に正確に補償する手段を開発したため、全体として、ファイルが失われたり、ファイルシステムが停止したりすることは非常にまれでした(しばらくして発生したと仮定しても)。 fsck は、システム管理者による手動の介入なしでは、debugfs を費やすことなく、より適切に表現することができなくなります。 ただし、ここでさらに説明する必要があるのは、PC テクノロジでは、ほとんどのディスク ドライブがライト キャッシュを有効にして動作し、ライトバック キャッシュを使用して、過酷なドライブがエレベータ スケジューリングを実行できるようにしたことです。 したがって、書き込み入札内で確実にスペースを確保するために書き込みを非常に綿密にスケジュールするファイルシステムを使用しても、ライトバックキャッシュを無効にするように適切なドライブを構成したことを除いて、*少しはできませんでした。打つ。 最終的には、Delicate Updates の弱点の 1 つでもあります。ライトバック キャッシュは、書き込みが正確なストレージにヒットする入札を OS に調整させることで機能するため、ライトバック キャッシュを無効にするだけで済みます。 ジャーナリングを使用すると、担当者はそれを実行することに喜びを感じなくなります。 ただし、トレードオフは、ジャーナル コミットを実行した後、通常 2 回のキャッシュ フラッシュ操作が必要になることです。 (または、ディスクが FUA をサポートしている場合は、キャッシュ フラッシュの後にコミット ブロックの FUA 書き込みが続きます。) Linux が ext3 で「最悪は最高」の哲学をどのように採用したかを示すもう 1 つの例があり、それは私たちが制定する方法で制定する必要があります。ジャーナリング。 ジャーナリングを制定するエレガントな能力は、論理的なジャーナリングを制定することです。 ここに、ジャーナル内で「割り当てビットマップ内の居住ビット XXX の場所」または「mtime を YYYY に更新する」と記述します。 そして、これが示唆するように、ファイルシステム操作のロードを、ジャーナルに書き込まれた単一のブロックにバッチ処理できる可能性があります。 Solaris/UFS と Irix は、ジャーナリングのこの非常に微妙な発明を使用します。 (実際には、Solaris の古いバージョンは、ext3/ext4 が実際に使用する量段階のジャーナリングを使用していましたが、論理ジャーナリングである、非常に「真の」、さらに開発されたものにアップグレードされました。) Ext3 は物理的、または数量段階のジャーナリング。 このジャーナリングはブロック ステージで機能します --- したがって、割り当てビットマップを適切に反転すると、合計 4k ブロックがジャーナルに記録されます。 デフォルトでは、ジャーナル コミットを 5 秒ごとに実行するのが最も簡単です (fsync が最初に発生する場合を除く)。そのため、まとめてバッチ処理することさえできる単一の i ノード テーブル ブロックに多くの調整が必要になりますが、実際には、それはまだ正確です。特定のメタデータの重いワークロードでは、論理ジャーナリングを使用するファイル システムは、物理ブロック ジャーナリングを使用する ext3/ext4 に匹敵するファイル システムよりも、ジャーナルに書き込まれるブロックがはるかに少ない傾向があります。 なぜLinuxはそれを廃止したのですか? いいえ 1、現在、ほとんどのワークロードはメタデータを完全に集中的に調整しているわけではなく、12k のシーケンシャル書き込みと 32k のシーケンシャル書き込みは、実際には通常の時間を超えてそれほど優れていません。 第二に、PC クラスのハードウェアに関する Ted の法律 (「ほとんどの PC クラスのハードウェアはくだらない」) が有効になり、物理的なジャーナリングが緩和されます。 PC クラスのハードウェアは、エネルギー障害の割り込みに満足しなくなる傾向があり、エネルギーが低下し、エネルギー レールの電圧範囲が垂下し始めると、DRAM は非常識な転送を行う傾向があり、DMA エンジンよりも長い時間ゴミを返し始め、過酷なドライブが機能しなくなります。 . したがって、システムが論理ジャーナリングを実行している場合、ファイル システムがトランザクションをコミットした後、ディスク上の永続的な場所に i ノード テーブル ブロックを書き込むことに成功する可能性があります。 そのレベルでエネルギータンブルを繰り返すと、ガベージが inode テーブルブロックに書き込まれる可能性があり、ファイルシステムが論理ジャーナリングに費やされている場合、再起動時に mtime 規律が論理ジャーナルから以前に更新される可能性があります --- ただし、 inode テーブルブロックの余暇はまだゴミです。 これとは対照的に、ext3 が物理ブロックのジャーナリングに使用されるようになったため、さまざまなメタデータ ブロックが、DRAM の故障による書き込みの容量をエネルギー タンブルによって破損させましたが、ジャーナルを再生した後、これはおそらく正常な復元に成功しました。完全なメタデータ ブロック、および問題のゆらめく悪化。 私は SGI の XFS エンジニアと話をすることができて本当にうれしく思います。これは、SGI が過酷な能力でチャンスをつかんだことを前向きなものに変えました。 彼らはこの通知を偶然見つけた後、現在のエネルギーに追加のコンデンサを追加し、エネルギー障害割り込みを追加し、エネルギー障害割り込みが発生した後に Irix を教えて、ハンドブックをクリアするために DMA 転送を必死に殺すことができるようにしました。この通知の。 さまざまなレガシー Unix システムのどれだけがこの障害モードを実現したかはわかりません --- そして、この通知を除いて、ハンドブックにシステムを設計するのに十分なほど正直であったとは教えません。 正直なところ、私たちが選択したブルートドライブ設計が安っぽいものに非常に受け入れられるように変更するには、スペースが必要でした(ただし、容量はSolar Fireplace E10kよりも安価です:-) PCクラスのハードウェア.> 私はそのコードに深く関わっていたテッドを真似して、 おそらく彼は直立することができます> 私はそれを標準以下にしました。 細かい字はさておき、ここにスペースが入っています> Linux が移動しましたアートワークの問題は非常に先にあります。 他にも> エリアがありますが、これはかなりの取引です。最高の取引。 だから私はもはや「アートワークの問題を動かした」ことを喜んで教えるつもりです。 実際のところ、正直なところ正しいコンピュータ サイエンスの改善はここにはありませんでした。 その発明はデリケート アップデートのようなもので、ヴァレリー オーロラ (以前のヘンソン) はすぐに次のように書いています。エレガントで正確で、「ええ、わかりました。今回はこれを取得しているので、これを学ぶ締め切り時間よりも賢くなければなりません」-その後、8ページにめくって頭が爆発します. --- https://lwn.catch/Articles/339337/
ext2/ext3/ext4 では、特に初期の頃は、ブルート ドライブ エンジニアリングとリグレッション チェックアウトに関する素晴らしい追加情報に変更されたことを認めることが重要です。 、そして「アートワークの問題を魅了する」ことについてははるかに少ない. 確かに、Linux に取り組んでいた私たちは、査読付きのジャーナルや会議に掲載された論文を再現しようとしていませんでした! (そして、グレッグ・ガンガーは私よりずっと賢くなったと一貫して考えていました。 , 整然とした, 正確な技術的解決策, それはおそらく特に興味深いことです. 乾杯 - Ted PS Linux が FreeBSD/NetBSD より何年も前に PCMCIA の負荷を強化した方法には、「悪い方が良い」という例がもう 1 つあります。 さまざまな方法で、Linux システムで PCMCiA カードを取り出した場合、システムが破壊される可能性があります (つまり、私の経験では、WiFI カードの場合、5 回に 1 回の割合で発生しました)。 . *BSD は、PCMCIA の強化に対応するのに実際には 2 ~ 3 年長くかかりましたが、対応すると、堅実な状態に変わりました。 結局のところ、あなたはコンピューターに詳しく、802.11 PCMCIA カードを完全にインストールした状態で喜んでいるように見えますが、どちらの OS を購入する可能性が高いかを賭けてみてください。 、または「それは閉鎖時に十分に再現される可能性があり、そうなるとおそらく堅実になるでしょうが、今ではジップ、灘、真実です」?>> --lm >> 木曜日, 2017 年 11 月 4 時 37 分: 29 時 -0400 に正直に言うと、ロン ナタリーは次のように書いています。 :>> fsck前の日々を心に留めています。 それは、JHU の UNIX プロットのオペレーターに変更するためのテストのセクションに変更され、多くの手動テストにうまく乗ることができました。 >> >> V6 ファイル システムは、クラッシュ (データベースの悪い習慣) によって正確に正確ではなかったので、ほぼ実際のところ、整然としたものです。 >> >>> >>> 非常に私たちが最初に乗ったのはicheckに変わりました。 これにより、スーパーブロックの空きリストと inode 内の一般的な分配ブロックが実行されます。 ブロックが不足している場合 (ファイルや無料のチェックリストにない)、icheck ???s を費やす可能性が高いようです。>>>> 再構築します。 同じスタイル内で、フリーリスト内またはフリーリストと 1 つのファイルの間で重複した割り当てがあった場合。 非常に微妙なことの 1 つは、巧妙なパッチ適用が必要でした (通常、正直に読み取り専用でマウントし、ファイルをコピーしてから、clri でそれらを吹き飛ばします)。 >> >>>
>>> そしてあなたは???dライドdチェック。 説明したように、dcheck はディスクの先端からチェックリストの方向をたどり、inode 内のリンク数と一致する inode 参照をカウントします。 しばらくするとすぐに、0-0 の i ノード (チェックリスト全体はありませんが、支払いは行われません。通常、これは、ファイルがまだ作成されていない間に人々がファイルを取り除くことによって引き起こされます。 /tmp ファイルのいくつかのアプリケーションの集合。) clri は再びこれらを吹き飛ばしました。 >> >>>
>>> Clri が書きましたiノード全体がゼロです。 これにはファイルを一掃するという行為がありましたが、実際にはi-numberサブスタンダードをウェブにすると悪いことに変わりました。 ???clrm???で変更しました正直に支払われたビットをクリアし、簡単に元に戻すことができます。 >> >>>
>>> 一方、実際には、ファイル システムの混乱がありましたが、チェックリスト ツリーの一部がルートから切り離されていることを確認できたようです。 または、icheck が重複を報告した i ノードを喜んでいるでしょうか。 ncheck は、inumber を絶対方向に調整しようとします。 >> >>>
>>>一方、fsdb と呼ばれるプログラムは、多くのファイル システムの構築に失敗することを可能にしました。 私たちが持っていたレベルでは、 fsck が急速に回復したため、あまり使いませんでした。 >> >> --> ---> Larry McVoy la mcvoy.com
http://www.mcvoy.com/lm )
)
古いメッセージ (スレッド別): Unix の製品とサービスとアーキテクチャの進化
次のメッセージ (スレッド別): Unix の製品とサービスとアーキテクチャの進化 メッセージの並べ替え: [ date ] [ thread ] [ subject ] [ author ]TUHSメーリングチェックリストに関する追加ファイル
𝚆𝚊𝚝𝚌𝚑 𝙽𝙾𝚆 📺