Nao000のぶろぐ

蝶を追っている少年になりたい

ファイルブロック単位ってなんすか

DFS( Distributed File System )の文脈でファイルブロック単位という言葉出てきた。流していましたが気になるので調べた記録です。

example.txt というファイルがあったとしてこれはファイルブロックなんすか

違うみたいです。

Hadoop Distributed File Systemについて (中略) ブロック単位に分割することで、巨大なファイルは多くのデータノードに分散されます。しかし、ブロック化しない場合はその巨大なファイルが収まるだけのさらに巨大なストレージが必要となります。

https://gihyo.jp/admin/serial/01/rd_trend/0007

example.txt がもし巨大なサイズだった場合には1つのマシンで扱うには重すぎるけど、複数のマシンに分割すれば扱える。このときの「分割されたかたまり」が「ブロック単位」みたいです。

データがHDFSに取り込まれると、ブロックに分割され、クラスター内のさまざまなノードに分散されます。

https://www.ibm.com/jp-ja/think/topics/hdfs

こちらも「ブロックに分割」とあるので「1つのファイルをさらに分割したもの」をブロックという認識で大丈夫そうです。

ブロックストレージは、ファイルやデータベースエントリなどのデータを取得し、等しいサイズのブロックに分割します。その後、基盤となる物理ストレージに、高速アクセスおよび取得を実現するために最適化された方法でデータブロックを保存します。

http://aws.amazon.com/jp/compare/the-difference-between-block-file-object-storage/

はい、1ファイルを分割です。

ChatGPTくんとのやりとり

僕「DFS でファイルブロック単位という言葉が出てきますが、ブロックってなんですか。 たとえば example.txt というファイルがあったとして、これはファイルブロックですか。」

ChatGPT「まず「ブロック」とは何か(DFS文脈) DFS におけるブロックとは:ファイルを内部的に分割した「固定サイズのデータの塊」 です。」

ChatGPT「なぜ「ブロック単位」にするのか 理由①:巨大ファイルを扱うため 1TB のファイルを 1台に置く → 無理 ブロックに分ける → OK」

おわり

おわり

じゃあ DFS において画像ファイルを扱うのは不向きなんですかね。画像全体をフィルター処理を施すなら向いていそうですが、スタンプをつけるみたいに一部に対しての処理は向いてなさそう。

PC が HDD にファイル保存するときは実際にはセクタに保存していて、そのセクタはクラスタでまとまっているか・散らばっているかに関わらず1ファイルとして扱えているファイルシステムが、マシン単位で分散して管理できるのが分散ファイルシステムということですかね。

SSD にセクタとかあるんですかね。ページとかブロックというみたいですが半信半疑です。