UNIXファイルシステムの歴史

           2011/10/15
    Lions Commentary on unix
       読書会 2011合宿LT



            まごろく
Who am I
�   新横浜在住
�   得意分野
    �   仮想記憶、ファイルシステム
        �   UNIX, BSD, Solarisなど
    �   Androidのプラットフォーム層
�   参加コミュニティ
    �   FLOSS桜山
    �   名古屋GeekBar
    �   横浜Android PF部
    �   Android名古屋つ部(配信係り)
UNIXのファイルシステム
�   無構造なバイトストリーム
�   事前の領域割り当てが不要
�   木構造の名前空間
�   複数のDiskを木構造に接木


       40年を経ても変わらない
      現代のファイルシステムの標準
V6の実装
�   inodeがファイルの実体
    � ファイルを作成=disk 上のinodeを割り当て
    � ファイルには複数の名前を付与できる

�   ディレクトリファイル
    �   ファイル名とinode番号の対応を格納

           40年を経ても変わらない
           ファイルシステムの実装
ファイルシステムの種類
�   第一世代        BlackBoard FS
    � V6、V7、SystemⅢ、SystemⅤ、SVR4 s5
    � MinixFS、ext

�   第二世代        FFS
    � 4.2BSD~
    � ext2

�   第三世代        FFS+Jurnal
    � FreeBSD XX?
    � ext3
何を解決してきたのか
�   規模の課題
    �   RKディスク2Mbyte ATAディスクOver 2Tbyte
    �   ファイル名の制限
    �   ファイルサイズの制限
�   性能の課題
    �   経年劣化
    �   ファイル検索
�   信頼性の課題
    �   fsck問題
    �   異常時のデータ破損
ブロック管理方式
�   リスト      第一世代
    � リストの始点から獲得・開放
    � ファイルの獲得・開放を経て、離散化

�   ビットマップ   第二世代、第三世代
    � 1ビットが1ブロックに対応
    � 割り当て時に隣接ブロックの検索が可能

    � 遅延割り当て(remap)
ブロック管理単位
�   第一世代            512byte

�   第二世代、第三世代       4Kbyte以上
    � Disk利用効率に課題
    � フラグメント FFS
ファイル名
�   第一世代
    �   固定長
�   第二世代以降
    � 可変長
    � Index,Hash,B-Tree
経年劣化
�   第一世代
    �   SuperBlock, InodeBlock, DataBlock
�   第二世代、第三世代
    � SBIでグループ化 ClinderGroup
    � SBI:SBI:SBI:SBI:SBI

    � ヘッドの動きを最小化

    � Zone Sectorの出現で陳腐化
連続割り当て
�   第一世代
    �   不可、リスト構造の制約
�   第二世代、第三世代
    � bitmapでfastfit, bestfit, mixfitなど
    � Remap
        � 小容量の連続書き込みで連続性を検出
        � 未書き込みのデータの割り付けを再割り当て
信頼性の課題
�   第一世代、第二世代
    � 初期は毎回動時にfsck
    � mount protection

    � 正常にumountした場合には、次回はパス

    � panicすると結局復旧までに数時間

    � ソフト的にatomincでもDiskの2点以上の更新

�   第三世代
    � Journalの登場
    � メタデータジャーナル・データジャーナル
第四世代または未分類
�   reiserfs
�   btrfs
�   Zfs
�   lfs
�   Xfs

               ついていけません
V6を理解したら......
�   主要コンポーネントを世代別に見ていくと
�   課題ー>解決ー>課題ー>解決
�   技術の堆積が読み取れる

    ファイルシステムと仮想記憶がおもしろい

Unixファイルシステムの歴史

  • 1.
    UNIXファイルシステムの歴史 2011/10/15 Lions Commentary on unix 読書会 2011合宿LT まごろく
  • 2.
    Who am I � 新横浜在住 � 得意分野 � 仮想記憶、ファイルシステム � UNIX, BSD, Solarisなど � Androidのプラットフォーム層 � 参加コミュニティ � FLOSS桜山 � 名古屋GeekBar � 横浜Android PF部 � Android名古屋つ部(配信係り)
  • 3.
    UNIXのファイルシステム � 無構造なバイトストリーム � 事前の領域割り当てが不要 � 木構造の名前空間 � 複数のDiskを木構造に接木 40年を経ても変わらない 現代のファイルシステムの標準
  • 4.
    V6の実装 � inodeがファイルの実体 � ファイルを作成=disk 上のinodeを割り当て � ファイルには複数の名前を付与できる � ディレクトリファイル � ファイル名とinode番号の対応を格納 40年を経ても変わらない ファイルシステムの実装
  • 5.
    ファイルシステムの種類 � 第一世代 BlackBoard FS � V6、V7、SystemⅢ、SystemⅤ、SVR4 s5 � MinixFS、ext � 第二世代 FFS � 4.2BSD~ � ext2 � 第三世代 FFS+Jurnal � FreeBSD XX? � ext3
  • 6.
    何を解決してきたのか � 規模の課題 � RKディスク2Mbyte ATAディスクOver 2Tbyte � ファイル名の制限 � ファイルサイズの制限 � 性能の課題 � 経年劣化 � ファイル検索 � 信頼性の課題 � fsck問題 � 異常時のデータ破損
  • 7.
    ブロック管理方式 � リスト 第一世代 � リストの始点から獲得・開放 � ファイルの獲得・開放を経て、離散化 � ビットマップ 第二世代、第三世代 � 1ビットが1ブロックに対応 � 割り当て時に隣接ブロックの検索が可能 � 遅延割り当て(remap)
  • 8.
    ブロック管理単位 � 第一世代 512byte � 第二世代、第三世代 4Kbyte以上 � Disk利用効率に課題 � フラグメント FFS
  • 9.
    ファイル名 � 第一世代 � 固定長 � 第二世代以降 � 可変長 � Index,Hash,B-Tree
  • 10.
    経年劣化 � 第一世代 � SuperBlock, InodeBlock, DataBlock � 第二世代、第三世代 � SBIでグループ化 ClinderGroup � SBI:SBI:SBI:SBI:SBI � ヘッドの動きを最小化 � Zone Sectorの出現で陳腐化
  • 11.
    連続割り当て � 第一世代 � 不可、リスト構造の制約 � 第二世代、第三世代 � bitmapでfastfit, bestfit, mixfitなど � Remap � 小容量の連続書き込みで連続性を検出 � 未書き込みのデータの割り付けを再割り当て
  • 12.
    信頼性の課題 � 第一世代、第二世代 � 初期は毎回動時にfsck � mount protection � 正常にumountした場合には、次回はパス � panicすると結局復旧までに数時間 � ソフト的にatomincでもDiskの2点以上の更新 � 第三世代 � Journalの登場 � メタデータジャーナル・データジャーナル
  • 13.
    第四世代または未分類 � reiserfs � btrfs � Zfs � lfs � Xfs ついていけません
  • 14.
    V6を理解したら...... � 主要コンポーネントを世代別に見ていくと � 課題ー>解決ー>課題ー>解決 � 技術の堆積が読み取れる ファイルシステムと仮想記憶がおもしろい