iT邦幫忙

DAY 19
5

檔案系統的設計與效能系列 第 19

檔案系統的設計與效能 - XFS

XFS由SGI公司為Irix作業系統(Unix的一支)所打造的64位元檔案系統,支援Journaling以及高度平行的動作,XFS設計的目的在於支援大型的檔案系統和提供流暢的資料傳遞。
****XFS由SGI公司為Irix作業系統(Unix的一支)所打造的64位元檔案系統,支援Journaling以及高度平行的動作,XFS設計的目的在於支援大型的檔案系統和提供流暢的資料傳遞。

大部分的檔案系統利用bitmap的方式來管理free的block空間,但是XFS採用B+ Tree的方式。XFS將磁碟分割成較大的chunks,稱為allocation group。每個allocation group會獨立維護一對B+ Tree的資料結構,用以管理自己的i-node和未使用空間,更進一步提供擴充性和並行性 (parallelism) — 多個線程 (thread) 和進程 (process) 可以同時對同一檔案系統進行存取。而且大小比整個檔案系統小的 allocation group 可以減少磁頭移動的距離,加快檔案的存取。

XFS並不採像大部分的檔案系統用固定大小的i-node table設計,allocation group依據需求取得所需的i-node block,並記錄在B+ Tree資料結構上。這樣的好處就是不會浪費空間,也不會在建立檔案系統後限制檔案的數目。

XFS 最大的特點就是支援平行的I/O動作。XFS允許以一寫多讀**(single-write/multi-read)**的方式來存取檔案,譬如將資料讀取到cache中之後,就可以讓多個CPU同時去讀取這塊資料。這項特點,讓XFS在大型的disk array上的表現更出色。

XFS支援8 EB(1 EB = 1024 * 1024 * 1024 GB)的檔案,並且支援16 EB的volume。

系列文章


上一篇
檔案系統的設計與效能 - HFS
下一篇
檔案系統的設計與效能 - JFS
系列文
檔案系統的設計與效能32

尚未有邦友留言

立即登入留言