ZFS
ZFS | |
---|---|
サン・マイクロシステムズ( | |
ZFS | |
2005 | |
ディレクトリ | ハッシュテーブル |
16 EiB (264 バイト) | |
248 | |
255 バイト | |
256 ZiB (278 バイト) | |
フォーク |
|
POSIX | |
パーミッション | POSIX, NFSv4 ACL |
| |
| |
| |
Solaris, OpenSolaris, illumos, OpenIndiana, FreeBSD, Mac OS X Server 10.5, NetBSD, Linux(サードパーティー カーネル・モジュール、または FUSE) |
ZFSは、
概要
[ソースを2004
- チェックサムが64ビット
化 された - コピーオンライトの
実装 - ボリュームマネージャが
必要 なく、ボリュームの構成 が容易 にできるようになった - ディスクの
違 い(容量 、種類 )を吸収 する仮想 ボリューム(ストレージプールと呼称 )をサポート - ストレージプールの
作成 ・フォーマット・マウントがコマンド一 行 ですむ - ファイルシステム
自身 がRAID機能 を持 つ - ブロックサイズが
可変長 かつファイルシステム単位 で指定 可能 、サイズ上限 はストレージプールの仕様 上限 となる16MBまで - スナップショットおよびブックマーク[3]を
用 いたフル・差分 バックアップおよびリストア
またSolaris10 11/06
- RAID-Z2(ダブルパリティによるRAID-6
相当 の機能 ) - ホットスペア
- クローンプロモーション(アクティブなZFS
領域 を複製 と置換 を容易 にする機能 ) 再帰 的 スナップショットコマンドの簡素 化 オプション
バージョン番号
[ソースを- Initial ZFS version [Supported by Solaris 10 06/06]
- Ditto blocks (replicated metadata) [Supported by Solaris 10 06/06 build 09]
- Hot spares and double parity RAID-Z [Supported by Solaris 10 11/06]
- zpool history [Supported by Solaris 10 08/07]
- Compression using the gzip algorithm
- bootfs pool property [Supported by FreeBSD 7.0]
- Separate intent log devices
- Delegated administration [Supported by Solaris 10 10/08]
- refquota and refreservation properties
- Cache devices
- Improved scrub performance
- Snapshot properties
- snapused property [Supported by OpenSolaris 2008.11, FreeBSD 8.0]
- passthrough-x aclinherit [Supported by OpenSolaris 2009.06, FreeBSD 8.1]
- user/group space accounting [Supported by Solaris 10 10/09, FreeBSD 8.2, FreeBSD 8-STABLE]
- stmf property support
- Triple-parity RAID-Z
- Snapshot user holds
- Log device removal
- Compression using zle (zero-length encoding)
- Deduplication
- Received properties [Supported by Solaris 10 9/10]
- Slim ZIL
- System attributes
- Improved scrub stats
- Improved snapshot deletion performance
- Improved snapshot creation performance
- Multiple vdev replacements [Supported by FreeBSD 9-CURRENT]
- RAID-Z/mirror hybrid allocator [Supported by Solaris 10 8/11]
- ZFS data set encryption
- Improved 'zfs list' performance [Supported by Solaris 11 Express b151a]
- One MB blocksize
- Improved share support [Supported by Solaris 11 EA b173]
- Sharing with inheritance [Oracle Solaris 11.1 or later]
- Sequential resilver [Oracle Solaris 11.2 or later]
- Efficient log block allocation [Oracle Solaris 11.3 or later]
- lz4 compression
- xcopy with encryption [Oracle Solaris 11.4 or later]
- reduce resilver restart
- Deduplication 2
- Asynchronous dataset destroy
- Support for reguid
- RAID-Z enhancements and cloud device support
- Device Removal
zpool upgrade -v
で
2012zpool upgrade -v
で
訴訟 合戦
[ソースを2007
キャパシティ
[ソースを128ビット・アドレッシングで
プラットホーム
[ソースを- Solaris(10 6/06
以降 ) - 10/08
版 よりブートパーティションとしても作成 可能 になった。
- OpenSolaris→OpenIndiana
- SPARC
及 びx86版 のOpenSolaris build 27以降 で動作 する。2008.05版 よりデフォルトファイルシステム。 - OpenIndianaは
初期 リリースoi_148からデフォルトファイルシステムである。
このほか、SunOS
移植
[ソースをCDDLでライセンスされるオープンソースであり、Solaris
- FreeBSD
- FreeBSDが
採用 しているBSDライセンスはCDDLとの親和 性 に優 れていることから、サンが開発 していた頃 からソースに統合 された形 での利用 が可能 であった。ZFSが初 めてサポートされたのは7.0-RELEASEである。[7] - 64ビットアーキテクチャとしてのx64
上 の9.0-RELEASEでZFS v28をサポートしている。[8]IA-32でも一応 動作 するが、実用 的 に使 うのは難 しい(カーネルが多量 のメモリを必要 とするが、32ビット空間 の限界 がある等 )。iSCSIを経由 した共有 ZVOLs機能 (zfs set shareiscsi) はFreeBSD側 に同等 の機能 があるため[9]ZFS側 では実装 されていない。また10.x以降 はAFT(4KB/セクタ)を自動的 に認識 してZFS poolを作成 するようになった。 - 13.0-RELEASEにてZFS
実装 をOpenZFS 2.0へ変更 した。[10]同 バージョンにてカーネルモジュール実装 からOS依存 部 が分離 され、LinuxとFreeBSDの同時 サポートが容易 になったことを受 けたもの。 - x64の
他 、arm64等 でもサポートされている。 - NetBSD
- 2007
年 の Google Summer of Code で開発 が始 められたが、2016年 時点 でメンテナンスされていない[11]。 - macOS(
旧 Mac OS X) - 10.5 Leopardより
搭載 されている[12]が、初期 リリースの10.5.0では読 み込 みのみの対応 にとどまる。10.6 Snow Leopard では、サーバ版 で標準 対応 することが発表 されていたものの10.6.1 リリースでも実現 せず、結局 AppleはZFSプロジェクトを停止 した[13][14]。Btrfsを開発 中 のオラクルによるサン・マイクロシステムズ買収 に伴 いZFSの将来 が不透明 になったためと報 じられている[15]。その後 、MacZFSプロジェクトがGoogle Codeのホスティングで続 いていたが2013年 に終了 した[2]。アップルは別途 、Apple File Systemを開発 、2017年 に iOS 10.3とmacOS High Sierraでリリースした[16][17]。 - 2020
年 11月30日 にMacOS Big Sur, Catalina, Mojaveに対応 したOpenZFS on OS X 2.0がリリースされた[18]。 - Linux
- ZFSの
採用 するCDDLと、Linuxの採用 するGPLとの間 にライセンスの抵触 が発生 するという問題 があり、また、ZFSの権利 を保有 するオラクルの姿勢 を踏 まえ、Linuxの生 みの親 リーナス・トーバルズがカーネル本体 のソースレポジトリへマージしない姿勢 を表明 している為 [19]、Linuxではメインラインのカーネルソースおよびこれをビルドしたバイナリのみでの利用 は出来 ない。 - Linuxカーネル
内 でのZFS利用 にあっては、OpenZFS(旧 ZFS on Linux)がカーネルモジュールとしてZFSの機能 を提供 している。[20]Debian / CentOS / Ubuntu / FedoraなどといったLinuxディストビューションに含 まれている。このうちUbuntuは16.04にてDKMSに依存 しない手段 を用 いたZFSのサポートを発表 した[21]。 - OpenZFS
以外 では、FUSEというユーザー空間 のファイルシステムドライバを利用 する形 での実装 例 は存在 しているが、ユーザー空間 の実装 であるため、一部 の機能 は制限 される。この実装 は2006年 のGoogle Summer Codeから始 まっている。zfs-fuseの名称 で、Red Hat Enterprise LinuxのEPEL(Extra Packages for Enterprise Linux)リポジトリやUbuntu 10.04以降 など各種 Linuxディストリビューションに含 まれている。 - この
他 、2010年 頃 から別個 に2本 のネイティブポート版 開発 プロジェクトが動 いており、そのうちKQ infotechのパッケージはPOSIX準拠 である。
制限 事項
[ソースをZFSはデータの
ZFSにて、データがmmap()
をfallocate()
[22]ないしはposix_fallocate()
[23]をfallocate()
のfallocate()
のfallocate()
を
ZFSfallocate()
などによりfallocate()
によるmmap()
の
脚注
[ソースを- ^ You say zeta, I say zetta (Jeff Bonwick's Blog)
- ^ ZFS FAQ (Community Group zfs.faq) - XWiki
- ^ ファイルシステムにおいて、ある
時点 を指 し示 す機能 。スナップショットから、ファイルシステムそのものを保全 する機能 を取 り除 いたもの。差分 バップアップ時 に基準 点 として使用 することを目的 としている。 - ^ “Managing ZFS File Systems in Oracle Solaris 11.4” (PDF). 2019
年 6月 10日 閲覧 。 - ^ “Feature Flags”. OpenZFS documentation. 2024
年 12月24日 閲覧 。 - ^ Christopher Siden. “ZFS Feature Flags”. Illumos Meetup January 2012. 2016
年 4月 19日 時点 のオリジナルよりアーカイブ。2024年 12月24日 閲覧 。 - ^ “FreeBSD 7.0-RELEASE Release Notes”. The FreeBSD Project (2008
年 2月 27日 ). 2024年 12月24日 閲覧 。 - ^ “FreeBSD 9.0-RELEASE Release Notes”. The FreeBSD Project (2012
年 1月 12日 ). 2024年 12月24日 閲覧 。 - ^
ctl(4)
ドライバを用 いることにより、ZVOLを含 む任意 のvnodeをSCSIターゲットとすることができる。また、cfiscsi(4)
ドライバはctl(4)
ドライバを用 いたSCSIターゲットに対 してiSCSI機能 を提供 する。これらのドライバの設定 や、接続 認証 などcfiscsi(4)
ドライバが処理 しないiSCSI機能 はデーモンctld(8)
が実装 している。 - ^ “FreeBSD 13.0-RELEASE Release Notes”. The FreeBSD Project (2021
年 4月 13日 ). 2024年 12月24日 閲覧 。 - ^ “クレア
工房 / NetBSD / ZFS”. 2017年 3月 26日 閲覧 。 - ^ “Sun、NetApp
逆 提訴 へ--LeopardのZFSに影響 は?”. ZDNet Japan (2007年 10月 25日 ). 2021年 2月 14日 閲覧 。 - ^ “Mac OS Forgeの「ZFS
移植 プロジェクト」が終了 --AppleがZFSサポートを打 ち切 った理由 ”. builder by ZDNet Japan. 2021年 2月 14日 閲覧 。 - ^ Thom Holwerda (2009
年 10月 23日 ). “Apple Shuts Down Mac OS X ZFS Project”. 2009年 10月 26日 閲覧 。[1] - ^ Mellor, Chris. “Apple dumps Sun's ZFS” (
英語 ). www.theregister.com. 2021年 2月 14日 閲覧 。 - ^ “
今度 のアップデート「iOS 10.3」は慎重 に、ってどういうこと? - いまさら聞 けないiPhoneのなぜ”. マイナビニュース (2017年 3月 28日 ). 2021年 2月 14日 閲覧 。 - ^ “アップル、
次期 macOS「High Sierra」を9月26日 にリリースへ”. ZDNet Japan (2017年 9月 13日 ). 2021年 2月 14日 閲覧 。 - ^ “OpenZFS on OS X • View topic - OpenZFS-2.0-release”. openzfsonosx.org. 2021
年 2月 14日 閲覧 。 - ^ Don't use ZFS ―Linus,ZFSをマージしない
姿勢 をあらためて強調 - ^ http://zfsonlinux.org/
- ^ http://blog.dustinkirkland.com/2016/02/zfs-is-fs-for-containers-in-ubuntu-1604.html
- ^
“fallocate(2) - Linux manual page”. man7.org. 2024
年 7月 2日 閲覧 。 - ^
“posix_fallocate”. The Open Group Library. 2024
年 7月 2日 閲覧 。 - ^
“Support fallocate(2) · Issue #326 · openzfs/zfs”. GitHub. 2024
年 7月 2日 閲覧 。 - ^
“linux: implement fallocate(mode=0) compatibility by adilger · Pull Request #10408 · openzfs/zfs”. GitHub. 2024
年 7月 2日 閲覧 。 - ^
“Support fallocate(2) · Issue #326 · openzfs/zfs (Comment 639468891)”. GitHub. 2024
年 7月 2日 閲覧 。 - ^
“Support fallocate(2) · Issue #326 · openzfs/zfs (Comment 639378614)”. GitHub. 2024
年 7月 2日 閲覧 。 - ^ ext4のファイルにてエクステントを
使用 する場合 、ファイル毎 にchattr
コマンドでの設定 が必要 。