matobaの備忘録

育児しながら働くあるエンジニアの記録

Linuxエンジニア養成読本のファイルシステム周り改めて読んだ備忘録

Linuxエンジニア養成読本という本を改めて眺めました。 今更ですが、ファイルシステム周りでジャーナリングという概念を理解しておらず、印象的に感じました。 ここでは、本を読んだ備忘録をまとめます。

本と自分

私がこの本を買ったのは少し前の出来事です。この本は2016年に発売された本ですが、私は2018年に買いました。 そして、以前、読んだ本ではあるのですが、当時は理解できなかったことや、興味が湧かなかったこともあるので、今回改めて読みました。そして、改めて頭に入ってきたことや印象的なことをこの記事で説明します。

この記事の目的

この記事を書いた目的は、自分が得た知識を吐き出して、利用しやすい状態にすることです。 記事を書こうとすると、話が膨らみすぎて辛い話や、それをコンパクトに話すための備忘録を先日書きました。 その流れの一環です。

blog.mtb-production.info

学習のモチベーション

漠然と、Linux関連の技術はある程度枯れていると思うのでそれを学びたいという気持ちもあります。なので、改めてLinux関連技術を学ぼうとしています。

また、最近のWeb開発ではDockerを使うのが当たり前なのでLinuxを意識することは少ないのですが、だから、「知らなくてもいい」「知っても意味ない」ということはないと考えています。

今回、メインで読んで印象残った部分

今回は、ファイルシステムの章についてメインで学んでいて、印象的な部分を書きます。

この本の中にはLinuxについてはたくさん話があります。 興味があるところとしては、カーネルとかブートの仕組みについても記載があります。この辺も詳しくなっておきたいところですが、今はお腹いっぱいなので、時期を見て詳しく読んで行きたいという状況です。

ファイルシステムについての備忘録

大学で学んだ話と重複がある

ファイルシステムの話を読んでいると、大学で習ったことを思い出しました。 大学でファイルシステムについて学んだのは、かれこれ10年以上前になります。 ブロックとかセクタという概念については、理解したり、テストを受けた記憶が蘇ります。

また、ブロックサイズの話やキャッシュや非同期更新の話からパフォーマンスの話が出てくると、それはファイルシステムに限った話ではなくて、IOであれば活かせる知識なので今も使っていることを実感しました。

ジャーナリング機能という概念

今回、読んでいる中でジャーナリング機能という概念を知りました。 というか、以前読んだはずなので、知ってるはずなのですが、当時の自分はきちんと理解できていなかったのだと思います。

ここでいう、ジャーナリング機能とは、ファイルシステムが実際にファイルを操作する前に、一度ジャーナルと呼ばれるファイルに記録する方式です。それによって、突然の電源断などによるファイルシステムの不整合を防ぎます。ジャーナルに記録されたファイルの内容を後で、整理する仕組みです。

一度ファイルに書き込んで、後で整理する、という方式は、データベースの仕組みの話で聞いたことがあります。この辺で聞いた記憶があるので、とりあえずリンクを紹介しておきます。

fukabori.fm

ファイルシステムとデータベースの間

ファイルシステムに、パフォーマンスと、セキュリティ、信頼性が要求されている話が書かれていました。

そして、ジャーナリングに対応したBtrfsでは、トランザクションの話が出てきていました。ファイルシステムでもトランザクションを考えてる時代なのだなあ、と思いました。

私が大学でファイルシステムを学んだのは、10年以上前なので、そこから当然ファイルシステムも変わっているよなあ、という話を改めて感じたりしました。 そもそも、この本が5年以上前の本なので、今はさらに変わって分散ストレージとかになっているのだと思いますが、その話はまた今後。

まとめ

この本は、2016年に出版された本なので、古いといえば古いです。 ただ、自分のファイルシステムの知識は、大学で学んだところで止まっていると言っても過言ではないので、少しだけアップデートできました。

今は、クラウドのストレージを使っていたり、自分で信頼性が必要なファイルシステムを作っていくことはあまりないので、ファイルシステムはあまり意識しないのかもしれませんんが、ファイルシステムはコンピュータの基本だと思うのでやはりアップデートしておいた方がいいようには思います。

また、組み込みのことを考え始めると必要な知識なのかもしれません。 そういえば、私は、Web技術を使って仕事をしているのですが、組み込みソフトウェアについても興味があって、組み込みエンジニアの本を積読していたり、気が向いた時に眺めています。その話はまた今後。

ではでは。今回はこれにて。