ZFS

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
ZFS
開発者 Oracle Corporation
正式名 ZFS
導入 2005年11月 (15年前) (2005-11) (OpenSolaris)
構造
ディレクトリ ハッシュテーブル
限度
最大ファイル サイズ 16 EiB (264 バイト)
最大ファイル数 248
最大ファイル名長 255 バイト
最大ボリューム サイズ 256 ZiB (278 バイト)
特徴
フォーク 有り
属性 POSIX
パーミッション POSIX, NFSv4 ACL
透過的圧縮 有り
透過的暗号化 有り
重複排除 有り
対応OS Solaris, OpenSolaris, illumos, OpenIndiana, FreeBSD, Mac OS X Server 10.5, NetBSD, Linuxサードパーティー カーネル・モジュール、または FUSE
テンプレートを表示

ZFSは、主にオラクルSolaris上で実装されている128ビット・アドレッシングを特徴とするファイルシステム。今までSolaris (SunOS) で用いられてきた Unix File System (UFS) の次世代ファイルシステムと位置づけられている。名称はZettabyte File Systemに由来する[1]が、現在は何の略称でもないとされる[2]

概要[編集]

2004年9月にアナウンスがあり、2005年11月リリースのOpenSolaris build 27で実装が公開された。 "Common Development and Distribution License" (CDDL) のもと、オープンソースで開発されている。

特徴として以下の項目が挙げられる。

  • チェックサム64ビット化された
  • コピーオンライトの実装
  • ボリュームマネージャが必要なく、ボリュームの構成が容易にできるようになった
  • ディスクの違い(容量、種類)を吸収する仮想ボリューム(ストレージプールと呼称)をサポート
  • ストレージプールの作成・フォーマット・マウントがコマンド一行ですむ
  • ファイルシステム自身がRAID機能を持つ

またSolaris10 11/06版より以下の機能が加わった。

  • RAID-Z2(ダブルパリティによるRAID-6相当の機能)
  • ホットスペア
  • クローンプロモーション(アクティブなZFS領域を複製と置換を容易にする機能)
  • 再帰的スナップショットコマンドの簡素化オプション

以下に記載されていない機能追加として、Oracle Solaris Solaris SRU 11.2.8.4.0などより、Persistant L2ARC (ブートをまたがるL2ARCの内容の再利用)が追加されている(他の環境での実装状況を記載する必要あり) 。

以降の追加機能は下記のバージョン番号を参照。

バージョン番号[編集]

利用可能な形式と特徴を指定するために、新機能が導入されるに従ってZPoolとZFSのバージョン番号が増える。バージョン番号の一覧は以下の通り[3]。([]内はサポートしているオペレーティングシステム

  1. Initial ZFS version [Supported by Solaris 10 06/06]
  2. Ditto blocks (replicated metadata) [Supported by Solaris 10 06/06 build 09]
  3. Hot spares and double parity RAID-Z [Supported by Solaris 10 11/06]
  4. zpool history [Supported by Solaris 10 08/07]
  5. Compression using the gzip algorithm
  6. bootfs pool property [Supported by FreeBSD 7.0]
  7. Separate intent log devices
  8. Delegated administration [Supported by Solaris 10 10/08]
  9. refquota and refreservation properties
  10. Cache devices
  11. Improved scrub performance
  12. Snapshot properties
  13. snapused property [Supported by OpenSolaris 2008.11, FreeBSD 8.0]
  14. passthrough-x aclinherit [Supported by OpenSolaris 2009.06, FreeBSD 8.1]
  15. user/group space accounting [Supported by Solaris 10 10/09, FreeBSD 8.2, FreeBSD 8-STABLE]
  16. stmf property support
  17. Triple-parity RAID-Z
  18. Snapshot user holds
  19. Log device removal
  20. Compression using zle (zero-length encoding)
  21. Deduplication
  22. Received properties [Supported by Solaris 10 9/10]
  23. Slim ZIL
  24. System attributes
  25. Improved scrub stats
  26. Improved snapshot deletion performance
  27. Improved snapshot creation performance
  28. Multiple vdev replacements [Supported by FreeBSD 9-CURRENT]
  29. RAID-Z/mirror hybrid allocator [Supported by Solaris 10 8/11]
  30. ZFS data set encryption
  31. Improved 'zfs list' performance [Supported by Solaris 11 Express b151a]
  32. One MB blocksize
  33. Improved share support [Supported by Solaris 11 EA b173]
  34. Sharing with inheritance [Oracle Solaris 11.1 or later]
  35. Sequential resilver [Oracle Solaris 11.2 or later]
  36. Efficient log block allocation [Oracle Solaris 11.3 or later]
  37. lz4 compression
  38. xcopy with encryption [Oracle Solaris 11.4 or later]
  39. reduce resilver restart
  40. Deduplication 2
  41. Asynchronous dataset destroy
  42. Support for reguid
  43. RAID-Z enhancements and cloud device support
  44. Device Removal

今、自分のシステムでどのバージョンまでサポートしているか知りたい場合はzpool upgrade -vで確認できる。

訴訟合戦[編集]

2007年9月ネットアップがZFSは自社の特許を侵害しているとして、開発したサン・マイクロシステムズを訴えた。10月にサン・マイクロシステムズは特許は無効と反訴。互いの経営者同士が自らのブログで応酬を繰り広げていたが、サンがオラクルに買収された後の2010年9月9日、訴訟取り下げで合意した。

キャパシティ[編集]

128ビット・アドレッシングで主な制限は以下の通り。

  • 16エクサバイト — ファイルシステムの最大値
  • 16エクサバイト — 1ファイルの最大値

プラットホーム[編集]

Solaris(10 6/06以降)
10/08版よりブートパーティションとしても作成可能になった。
OpenSolarisOpenIndiana
SPARC及びx86版のOpenSolaris build 27以降で動作する。2008.05版よりデフォルトファイルシステム。
OpenIndianaは初期リリースoi_148からデフォルトファイルシステムである。

このほか、SunOS系列(Illumos系統含む)ディストリビューションでもサポートされている。

移植[編集]

CDDLでライセンスされるオープンソースであり、Solaris系以外のUnix系オペレーティングシステムにも移植が進んでいる。

FreeBSD
x64の9.0-RELEASEでZFS v28をサポートしている。IA-32でも一応動作するが、実用的に使うのは難しい(カーネルが多量のメモリを必要とするが、32ビット空間の限界がある等)。2011年2月28日時点ではカーネル側の未サポートが理由でiSCSIを経由した共有ZVOLs機能 (zfs set shareiscsi) は実現されていない。また10.x以降はAFT(4KB/セクタ)を自動的に認識してZFS poolを作成するようになった。
NetBSD
2007年の Google Summer of Code で開発が始められたが、2016年時点でメンテナンスされていない[4]
macOS(旧Mac OS X)
10.5 Leopardより搭載されている[5]が、初期リリースの10.5.0では読み込みのみの対応にとどまる。10.6 Snow Leopard では、サーバ版で標準対応することが発表されていたものの10.6.1 リリースでも実現せず、結局AppleはZFSプロジェクトを停止した[6][7]Btrfsを開発中のオラクルによるサン・マイクロシステムズ買収に伴いZFSの将来が不透明になったためと報じられている[8]。その後、MacZFSプロジェクトがGoogle Codeのホスティングで続いていたが2013年に終了した[2]。アップルは別途、Apple File Systemを開発、2017年に iOS 10.3macOS High Sierraでリリースした[9][10]
2020年11月30日にMacOS Big Sur, Catalina, Mojaveに対応したOpenZFS on OS X 2.0がリリースされた[11]
Linux
CDDLがGPLに抵触するというライセンスの問題があり、また、ZFSの権利を保有するオラクルの姿勢を踏まえ、Linuxの生みの親リーナス・トーバルズがカーネルへマージしない姿勢を表明している為[12]、Linuxではカーネル空間に統合された手法での利用は出来ない。
FUSEというユーザー空間のファイルシステムドライバを利用する形での実装例は存在しているが、ユーザー空間の実装であるため、一部の機能は制限される。この実装は2006年のGoogle Summer Codeから始まっている。zfs-fuseの名称で、Red Hat Enterprise LinuxのEPELやUbuntu 10.04以降など各種Linuxディストリビューションに含まれている。
2010年頃から別個に2本のネイティブポート版開発プロジェクトが動いており、そのうちKQ infotechのパッケージはPOSIX準拠である。
またZFS on Linuxと呼ばれるプロジェクトも進行しており[13]Debian / CentOS / Ubuntu / FedoraなどといったLinuxディストビューションでZFSを用いることができる。
Ubuntu 16.04にてZFSを正式採用することが発表された[14]

脚注[編集]

  1. ^ You say zeta, I say zetta (Jeff Bonwick's Blog)
  2. ^ ZFS FAQ (Community Group zfs.faq) - XWiki
  3. ^ Managing ZFS File Systems in Oracle Solaris 11.4 (PDF)”. 2019年6月10日閲覧。
  4. ^ クレア工房 / NetBSD / ZFS”. 2017年3月26日閲覧。
  5. ^ Sun、NetApp逆提訴へ--LeopardのZFSに影響は?” (日本語). ZDNet Japan (2007年10月25日). 2021年2月14日閲覧。
  6. ^ Mac OS Forgeの「ZFS移植プロジェクト」が終了--AppleがZFSサポートを打ち切った理由” (日本語). builder by ZDNet Japan. 2021年2月14日閲覧。
  7. ^ Thom Holwerda (2009年10月23日). “Apple Shuts Down Mac OS X ZFS Project”. 2009年10月26日閲覧。[1]
  8. ^ Mellor, Chris. “Apple dumps Sun's ZFS” (英語). www.theregister.com. 2021年2月14日閲覧。
  9. ^ 今度のアップデート「iOS 10.3」は慎重に、ってどういうこと? - いまさら聞けないiPhoneのなぜ” (日本語). マイナビニュース (2017年3月28日). 2021年2月14日閲覧。
  10. ^ アップル、次期macOS「High Sierra」を9月26日にリリースへ” (日本語). ZDNet Japan (2017年9月13日). 2021年2月14日閲覧。
  11. ^ OpenZFS on OS X • View topic - OpenZFS-2.0-release”. openzfsonosx.org. 2021年2月14日閲覧。
  12. ^ Don't use ZFS ―Linus,ZFSをマージしない姿勢をあらためて強調
  13. ^ http://zfsonlinux.org/
  14. ^ http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html

外部リンク[編集]