Comments
Transcript
システムプログラム概論 Filesystem and storage management ディスク
システムプログラム概論 Filesystem and storage management 2005/5/13 門林 雄基 (インターネット工学講座) 奈良先端科学技術大学院大学 Copyright(C)2005 Youki Kadobayashi. All rights reserved. ディスク z z z z Surface Track Sector Cylinder surface sector track z track caching controller Copyright(C)2005 Youki Kadobayashi. All rights reserved. ディスク・スケジューリング Disk scheduling z z FCFS z 到着順、fair だがシーク時間が長くなる可能性 SSTF (shortest seek time first) 現在のヘッド位置から最も近いブロックへの アクセス要求を処理 SCAN (Elevator algorithm) z 進行方向で、最も近いブロックへのアクセス 要求を処理 MOS p. 319~ z z z Copyright(C)2005 Youki Kadobayashi. All rights reserved. 1 ディスク・スケジューリング Disk scheduling z Q. SSTF では飢餓状態 (starvation) になりうる。 なぜか? z Q. SCAN では飢餓状態にならない。なぜか? Copyright(C)2005 Youki Kadobayashi. All rights reserved. 二次記憶 Secondary storage 二次記憶 z 固定長ブロック単位での 読み書き z セクタ番号でアクセス z アクセス制御なし z ディスククラッシュ時の データ損失 ファイルシステム バイト単位での読み書き z z z z 名前を指定してアクセス アクセス制御あり ディスククラッシュに強い Copyright(C)2005 Youki Kadobayashi. All rights reserved. ファイルシステムの機能 Functions of file system z ディスクブロック管理 disk block management z 名前管理 namespace management アクセス制御 access control z z 耐故障性 failure resilience Copyright(C)2005 Youki Kadobayashi. All rights reserved. 2 ディスクブロック管理 Disk block management z z z 空きブロックの管理にはビットマップを用いる z 1ブロックあたり1ビット リストを用いる方法もあるが... z MOS p. 413 ディスクの物理トポロジとビット配列のマッピング に気をつける z cylinder-major order Copyright(C)2005 Youki Kadobayashi. All rights reserved. ディスクブロック管理のゴール Disk block management goals z minimize seeks, rotational delay z minimize fragmentation z fast sequential access z fast random access Copyright(C)2005 Youki Kadobayashi. All rights reserved. Linked files (Alto) z z z z z ブロックが次のブロックを指す + ファイルサイズの延長が容易 + 空きブロック管理が容易 - ランダムアクセスが遅い - 信頼性が低い z ブロック破損 => ファイル末尾まで破損 File header end Copyright(C)2005 Youki Kadobayashi. All rights reserved. 3 Indexed files (VMS) z z z z z ユーザは最大ファイルサイズを宣言する。 システムはそれに相当するブロック数、ポインタが 入るようにファイルヘッダを割り当てる。 + ファイルサイズの延長が容易(最大までなら) + ランダムアクセスが速い - 最大ファイルサイズを越える延長が面倒 end Copyright(C)2005 Youki Kadobayashi. All rights reserved. Multilevel indexed files (4BSD) z z z z z z z goal: 小さいファイル、大きなファイル双方を効率よく扱う ファイルヘッダ(i-node)で 13個のポインタをもつ。 ポインタのうち、最初の10個はデータブロックを直接指す。 z (ファイルが10ブロック以下なら、残りのポインタは NULL) 11番目のポインタは indirect block へのポインタ z indirect block: データブロックへのポインタを含むブロック z 256 ブロックまで 267番目のブロックを割り当てるときは? double indirect block -- 12番目のポインタ z indirect block へのポインタを含むブロック さらに大きなファイルには 13番目のポインタを使う。 z triple indirect block Copyright(C)2005 Youki Kadobayashi. All rights reserved. Multilevel indexed files i-node 1 2 indirect 11 266 Triple indirect 267 Double indirect indirect Double indirect indirect Copyright(C)2005 Youki Kadobayashi. All rights reserved. 4 Multilevel indexed files z z z z z + ファイルサイズの延長が容易 + ランダムアクセスが速い + 小さなファイルへのアクセスが特に高速 - 大きなファイルでは、indirect block アクセスに 時間を費す - シークが多い Copyright(C)2005 Youki Kadobayashi. All rights reserved. やってみよう z Q. ブロックサイズが 1K の場合、前述の multilevel indexed file におけるファイルサイズの 上限をもとめよ。 Copyright(C)2005 Youki Kadobayashi. All rights reserved. 名前管理 (Unix を例として) Naming z z "/usr/bin/perl" → ディスクブロック番号系列 システム内で、ファイルは (デバイス, i-node) で 識別される z i-node: Unix におけるファイルヘッダ z デバイス内で一意な番号 (i-node 番号) により識別 z i-node にブロック番号系列が記録される z i-node は i-node ブロックに記録される。 i-node ブロック数: ファイルシステム作成時に決定 z Copyright(C)2005 Youki Kadobayashi. All rights reserved. 5 名前管理 Naming z ディレクトリ z (ファイル名, i-node) の系列を含むファイル z OS で特別扱い -- 通常のファイルのような 書き込みは禁止 z MOS p. 406 Copyright(C)2005 Youki Kadobayashi. All rights reserved. Unix における名前解決 Name resolution in Unix z "/usr/bin/perl" の名前解決: z "/" -> i-node 番号 2 (固定) z i-node 2 が指すディスクブロック読み込み z z z z z z z ディレクトリ / "usr" をディレクトリ / にて検索 -> i-node 番号 100 i-node 100 が指すディスクブロック読み込み ディレクトリ /usr "bin" をディレクトリ /usr にて検索 -> i-node 番号 500 ... "perl" をディレクトリ /usr/bin にて検索 -> i-node 番号 9000 Copyright(C)2005 Youki Kadobayashi. All rights reserved. アクセス制御 Access control z z z ファイルヘッダにアクセス制御情報を保存 z i-node (Unix) OSがアクセス制御情報にもとづいて読み込み、 書き込み、実行などを許可/禁止 OS固有のアクセス制御モデル Copyright(C)2005 Youki Kadobayashi. All rights reserved. 6 アクセス制御モデルの例 Access control models z Unix: (owner, group, rwxrwxrwx) z 読み込み、書き込み、実行 z オーナ、グループ、その他の三階層に分け、 アクセス制御 z VMS, NT 等: (user/group, action...) z 読み込み、書き込み、実行、ファイル生成、 ファイル消去、... z 複数のグループを指定可能 Copyright(C)2005 Youki Kadobayashi. All rights reserved. システム資源の名前付けとアクセス制御 Naming resources z ファイルだけでなく、デバイスもアクセス制御したい。 z マウス、キーボードはデスクトップ利用者のみ z ディスクのバックアップは管理者のみ z プリンタは特定のシステムプログラムのみ z ... z Unix ではデバイスもファイル、ディレクトリと同様のアクセ ス制御を行う z "/dev/kbd0", "/dev/da0"... Copyright(C)2005 Youki Kadobayashi. All rights reserved. 耐故障性 Failure resilience z z z バックアップ 誤り訂正符号 (Error Correcting Codes)の活用 SMART z システムクラッシュからの復帰 z Fsck z MOS p. 421 z Journaling filesystem z LVM (logical volume management) RAID z Copyright(C)2005 Youki Kadobayashi. All rights reserved. 7 LVM Logical volume management Copyright(C)2005 Youki Kadobayashi. All rights reserved. RAID Redundant Array of Inexpensive Disks z z z z 大容量ストレージを安いディスクで実現する技術。 構成を工夫すれば、信頼性も提供できる。 ディスクより大きなファイル、データベースを扱い たいときどうするか? concatenation z disk 1: block 1 ... block N z disk 2: block N+1 ... block 2N Copyright(C)2005 Youki Kadobayashi. All rights reserved. RAID-0: striping z z z z z z z (ディスク k 本を束ねたとして) disk 1: block 1, k+1, 2k+1, ... disk 2: block 2, k+2, 2k+2, ... disk k: block k, 2k, 3k, ... + ディスクアクセスの負荷分散が可能。 + 大きなファイルの転送が、ディスク転送速度の 総和で行える。 - 信頼性が低い。ディスクが一つでも潰れたら データ損失。 Copyright(C)2005 Youki Kadobayashi. All rights reserved. 8 RAID-5: bitwise parity z z z z z disk 1: block 1, k+1, 2k+1, ... disk 2: block 2, k+2, 2k+2, ... ... parity disk: parity(1..k), parity(k+1..2k), ... + ディスクがどれか一つ潰れても、他のディスクからデータ 復旧が可能。たとえば: z disk 1: 1001 z disk 2: 0101 z disk 3: 1000 z parity: 0100 Copyright(C)2005 Youki Kadobayashi. All rights reserved. RAID-5: bitwise parity z - データ更新のさいに、データブロックとパリティブ ロックを更新しなければならない。パリティ更新中 にクラッシュしたら間違ったデータを復旧してしまう 危険性がある。 Copyright(C)2005 Youki Kadobayashi. All rights reserved. RAID-1: mirroring z z z まったく同じ内容を複数のディスクにもつ。 + 信頼性が最も高い - 速くならない、SCSI や IDE のバス帯域を k倍 占有する Copyright(C)2005 Youki Kadobayashi. All rights reserved. 9 RAIDの実現方法: Software RAID vs Hardware RAID z Hardware RAID z + RAID-5 の実現が容易 z + バスへの負荷が軽い z - ディスク構成に制限 z z 同じロットのディスクは同時期に壊れる Software RAID z + RAID-0, RAID-1 の実現は容易 z + 柔軟なディスク構成 z - バスへの負荷が大きい z SCSIコントローラ等が隘路となる可能性 Copyright(C)2005 Youki Kadobayashi. All rights reserved. 10