Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Bcachefsのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Bcachefs
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:ファイルシステム]] [[en:Bcachefs]] [[zh-hans:Bcachefs]] {{Related articles start}} {{Related|ファイルシステム}} {{Related articles end}} [https://bcachefs.org/ Bcachefs] は、[[Btrfs]] と [[ZFS]] の機能をよりクリーンなコードベース、より安定性、より高速、GPL 互換のライセンスを提供することを目的とした次世代の CoW ファイルシステムです。 [[Bcache]] は、主に Kent Overstreet によって開発されています。 == インストール == {{Pkg|bcachefs-tools}} と {{Pkg|bcachefs-dkms}} をインストールして下さい。 == セットアップ == === シングルドライブ === # bcachefs format /dev/sd''X'' # mount -t bcachefs /dev/sd''X'' /mnt === 複数のドライブ=== Bcachefs は、RAID0 と同様に、デフォルトでデータをストライプ化します。冗長性は '''replicas''' オプションを介して処理されます。{{ic|1=--replicas=2}} を備えた 2 台のドライブは RAID1 に相当し、{{ic|1=--replicas=2}} を備えた 4 台のドライブは RAID10 に相当します。 # bcachefs format /dev/sd''X'' /dev/sd''Y'' --replicas=''n'' # mount -t bcachefs /dev/sd''X'':/dev/sd''Y'' /mnt 異種ドライブがサポートされています。サイズが異なる場合は、一部に大きなストライプが使用され、すべてが同じ割合で埋められます。速度が異なる場合、複製されたデータの読み取りは、IO 遅延が最も短いデータに送信されます。一部が他よりも信頼性が高い場合 (ハードウェア RAID デバイスなど)、{{ic|1=--durability=2 ''device''}} を設定して、そのデバイス上のデータの各コピーを 2 つの複製としてカウントできます。 === 暗号化されたルートファイルシステム === Bcachefs は、ChaCha20Poly1305 を使用したファイルシステム全体の暗号化をサポートしています。暗号化されたファイルシステムをフォーマットするには、次のようにします: # bcachefs format --encrypted /dev/sd''X'' ルートファイルシステムの場合、起動時や休止状態からの復帰時にファイルシステムの解除を求めるようにするため、{{ic|/etc/mkinitcpio.conf}} の設定ファイル内で [[Mkinitcpio#HOOKS|HOOKS]] 配列に {{ic|bcachefs}} を追加してください。 === SSD キャッシング === Bcachefs には、バックグラウンド、フォアグラウンド、プロモートの3つのストレージカテゴリがあります。ファイルシステムへの書き込みでは、フォアグラウンドドライブに優先順位が付けられ、その後、時間の経過とともにバックグラウンドに移動されます。読み取りはプロモートドライブにキャッシュされます。 {{Note|これらは、単一の大規模プールに対する優先ガイドラインにすぎません。書き込みは、フォアグラウンドがいっぱいの場合はバックグラウンドに直接行われ、両方がいっぱいの場合はプロモートに行われます。メタデータはフォアグラウンドを優先しますが、どのメタデータにも書き込むことができます。キャッシュドライブにはまだデータが含まれている可能性があるため、キャッシュドライブを削除するときは注意してください。[[Bcachefs#デバイスの削除|デバイスの削除]] を参照してください。}} 推奨される設定は、フォアグラウンドとプロモートに ssd グループを使用し、バックグラウンド (ライトバックキャッシュ) に hdd グループを使用することです。 # bcachefs format \ --label=ssd.ssd1 /dev/sd''A'' \ --label=ssd.ssd2 /dev/sd''B'' \ --label=hdd.hdd1 /dev/sd''C'' \ --label=hdd.hdd2 /dev/sd''D'' \ --label=hdd.hdd3 /dev/sd''E'' \ --label=hdd.hdd4 /dev/sd''F'' \ --replicas=2 \ --foreground_target=ssd \ --promote_target=ssd \ --background_target=hdd # mount -t bcachefs /dev/sd''A'':/dev/sd''B'':/dev/sd''C'':/dev/sd''D'':/dev/sd''E'':/dev/sd''F'' /mnt ライトスルーキャッシュの場合は、上記と同じことを行いますが、各 SSD デバイスで {{ic|1=--durability=0 ''device''}} を設定します。 ライトアラウンドキャッシュの場合、フォアグラウンドターゲットを HDD グループに、プロモートターゲットを SSD グループに設定します。 === マウント === デフォルトのマウント方法では、マウントディレクティブですべてのデバイスを指定します。 # mount -t bcachefs /dev/sd''A'':/dev/sd''B'':/dev/sd''C'':/dev/sd''D'':/ {{ic|mount.bcachefs}} コマンドは、UUID によるファイルシステムのマウントをサポートしています。 これは、ファイルシステムの作成時に {{ic|bcachefs format}} によって表示されます。 # mount.bcachefs UUID=f66d108f-83d2-4679-b50b-7d5e710f6a2b /mnt/ == 設定 == ほとんどのオプションは以下の方法で設定できます: * {{ic|bcachefs format}} の実行時 * フォーマット後に {{ic|bcachefs set-fs-option}} を使用 * マウント時に {{ic|1=mount -o ''option=value''}} を指定 * または sysfs を介して、例:{{ic|echo ''X'' > /sys/fs/bcachefs/''UUID''/options/''option''}} マウントオプションは他の方法で設定されたオプションを上書きします。これらの方法で設定されたオプションはファイルシステムのスーパーブロックに保存されます。 {{Note|sysfs を使用できるようにするには、ファイルシステムをマウントする必要があります。 fsck を除くすべての操作はライブファイルシステムで可能です。}} 使用可能なオプションの例は次の通りです: {| class="wikitable" |+ Bcachefs オプション ! オプション !! 説明 |- | metadata_checksum || メタデータの書き込みに使用されるチェックサムアルゴリズムを指定します。デフォルトのアルゴリズムは ''crc32c'' です。{{ic|none}}、{{ic|crc32c}}、{{ic|crc64}}、{{ic|xxhash}} のいずれかを選択できます。 |- | data_checksum || データの書き込みに使用されるチェックサムアルゴリズムを指定し、{{ic|metadata_checksum}} と同じデフォルトとオプションを共有します。 |- | compression || (フォアグラウンド) 圧縮に使用するアルゴリズムを指定します。デフォルトでは、このオプションは指定されていません。{{ic|none}}、{{ic|lz4}}、{{ic|gzip}}、{{ic|zstd}} のいずれかを選択できます。 |- | background_compression || (バックグラウンド) 圧縮に使用するアルゴリズムを指定し、{{ic|compression.}} と同じデフォルトとオプションを共有します。 |- | str_hash || ディレクトリエントリと xattrs に使用されるハッシュ関数を指定します。{{ic|crc32c}}、{{ic|crc64}}、および {{ic|siphash}} のいずれかを選択できます。 |- | nocow || 可能な場合は、すべての書き込みがその場で行われます。スナップショットと reflink では引き続き書き込みが COW になります。このオプションはデータのチェックサム、圧縮、暗号化を暗黙的に無効にします。 |- | encrypted || ファイルシステム (chacha20/poly1305) で [https://bcachefs.org/Encryption/ 暗号化] を有効にします。パスフレーズの入力を求められます。 |- |} その他のオプションについては、[https://bcachefs-docs.readthedocs.io/en/latest/options.html bcachefs ドキュメント] を参照してください。 以下は、{{ic|1=bcachefs setattr ''file'' --option=value}} を使用して、ディレクトリごとまたはファイルごとに設定することもできます。ディレクトリにオプションを設定すると、再帰的にオプションが伝播されます。 {{Note|rebalance thread はまだバックグラウンドで replicas を調整していません。つまり、ファイルの replicas オプションを変更する場合は、手動で rereplicate コマンドを実行して、古いファイルが新しいルールに従っていることを確認する必要があります。}} * data_replicas * data_checksum * compression, background_compression * foreground_target, background_target, promote_target どのオプションがアクティブであるかを確認するには、{{ic|getfattr -d -m 'bcachefs_effective\.' ''directory/file''}} を実行します。 {{Note|ディスク使用量レポートは現在、非圧縮サイズを表示しています。それ以外は圧縮が完了しています。}} === デバイスのグループの変更 === # echo ''group'' > /sys/fs/bcachefs/''filesystem_uuid''/dev-''X''/label {{Note|これを有効にするには、再マウントが必要です。}} === デバイスの追加 === # bcachefs device add --group=''group'' /mnt /dev/''device'' これがグループ内の最初のドライブである場合は、それを使用するためにターゲット設定を変更する必要があります。この例は、キャッシュドライブを追加するためのものです。 # echo ''new_group'' > /sys/fs/bcachefs/''filesystem_uuid''/options/promote_target # echo ''new_group'' > /sys/fs/bcachefs/''filesystem_uuid''/options/foreground_target # echo ''old_group'' > /sys/fs/bcachefs/''filesystem_uuid''/options/background_target {{Note|追加されたデバイス間でストライピングされるのは新しい書き込みのみです。ディスクのリバランスがトリガーされると、ディスク使用量が特定のしきい値に達するまで、既存のものは変更されません。現在、リバランス/リストライプを手動でトリガーすることはできません。}} === デバイスの削除 === まず、少なくとも 2 つのメタデータのレプリカがあることを確認します (Evacuate はメタデータに対して機能していないようです) データとメタデータがすでに複製されている場合は、この手順をスキップできます。 # echo 2 > /sys/fs/bcachefs/''UUID''/options/metadata_replicas # bcachefs data rereplicate /mnt # bcachefs device set-state ''device'' readonly # bcachefs device evacuate ''device'' デバイスを削除します: # bcachefs device remove ''device'' # bcachefs data rereplicate /mnt === レプリケーション === メタデータとデータのレプリカは、ユーザーが望む冗長性のレベルに応じて個別に設定できます。レプリカに関連するオプションは 5 つあります。 * {{ic|1=--replicas=X}} メタデータとデータのレプリカの数を同時に設定します。 * {{ic|1=--metadata_replicas=X}} 最終的に書き込まれるメタデータのレプリカの数を設定します。 * {{ic|1=--data_replicas=X}} 最終的に書き込まれるデータレプリカの数を設定します。 * {{ic|1=--metadata_replicas_required=X}} メタデータが "書き込まれた" とみなされる前に書き込む必要があるメタデータのレプリカの数を設定します。 * {{ic|1=--data_replicas_required=X}} データが "書き込まれた" とみなされる前に書き込む必要があるデータレプリカの数を設定します。 {{Note|{{ic|--[meta]data_replicas_required}} と {{ic|--[meta]data_replicas}} の区別は重要で、replicas required 値はすぐに書き込まれるレプリカの数のフロアを設定するのに対し、replicas 値は最終的に書き込まれるレプリカの目標数を設定します。 }} === 圧縮 === 圧縮は、{{ic|1=--compression=}} オプションで設定します。圧縮レベルの設定も可能です。zstd 圧縮レベル 5 を設定する例、{{ic|1=--compression=zstd:5}} === サブボリューム === Bcachefsは、[[Btrfs#Subvolumes|Btrfs]] と同様のユーザースペースインターフェースを使用してサブボリュームとスナップショットをサポートしています。新しいサブボリュームは空の状態で作成することも、別のサブボリュームのスナップショットとして作成することもできます。スナップショットは書き込み可能で、さらにスナップショットを作成することもでき、スナップショットのツリー構造を形成します。 スナップショットの作成は非常に低コストです。[[Btrfs#Subvolumes|Btrfs]] のように COW(Copy-On-Write)Bツリーのクローンに基づいているのではなく、Bツリー内の個々のキーのバージョン管理に基づいています。何千、何百万ものスナップショットを作成することが可能で、唯一の制限はディスクスペースです。 ==== サブボリュームの作成 ==== 新しい空のサブボリュームを作成するには: # bcachefs subvolume create ''/path/to/subvolume'' ==== サブボリュームの削除 ==== 既存のサブボリュームやスナップショットを削除するには: # bcachefs subvolume delete ''/path/to/subvolume'' ==== 既存のサブボリュームのスナップショットを作成する ==== 既存のサブボリュームのスナップショットを作成するには、次の手順を実行します。 # bcachefs subvolume snapshot ''/path/to/source'' ''/path/to/dest'' {{ic|rm -rf}} のように、すべての内容を削除した後、通常の rmdir を使用してサブボリュームを削除することもできます。 再帰的なスナップショットの作成やサブボリュームを再帰的にリストする方法などの機能はまだ実装されていません。 == ヒントとテクニック == さらに有用なエラーメッセージについては、[[systemd/ジャーナル|ジャーナル]]を確認してください。 === フラグの順序 === 一部の {{ic|bcachefs format}} フラグは、引数の順序に基づいて設定され、フラグが切り替えられた後のドライブにのみ影響します。たとえば、SSD に {{ic|1=--durability=0}} を持たせて {{ic|--discard}} を有効にし、HDD ではデフォルトを使用する場合は、引数が次の順序で渡されるようにしてください。 # bcachefs format \ --label=hdd.hdd1 /dev/sd''C'' \ --label=hdd.hdd2 /dev/sd''D'' \ --label=hdd.hdd3 /dev/sd''E'' \ --label=hdd.hdd4 /dev/sd''F'' \ --durability=0 --discard \ --label=ssd.ssd1 /dev/sd''A'' \ --label=ssd.ssd2 /dev/sd''B'' \ --replicas=2 \ --foreground_target=ssd \ --promote_target=ssd \ --background_target=hdd === フォーマット後のレプリカの設定 === {{ic|set-fs-option}} を使用して、フォーマット後にレプリカ数を設定することができます。 # bcachefs set-fs-option --metadata_replicas=''2'' --data_replicas=''2'' /dev/sd''X'' その後、すべてのファイルに次のレプリカが存在することを確認するように bcachefs に指示する必要があります。 # bcachefs data rereplicate /mnt == トラブルシューティング == === 32-ビットプログラムがディレクトリの内容を認識しない === 一部の 32-ビットプログラムは、{{man|3|readdir}} syscall の実行時にファイルシステムから返されるデータの非互換性により、Bcachefs 内のディレクトリの内容の取得に失敗する場合があります。[https://github.com/koverstreet/bcachefs/issues/650] この問題は、そのようなプログラムの読み書きに [[tmpfs]] などの別のファイルシステムを一時的に使用することで回避できます。 === スワップファイルにはサポートされていないエクステントが含まれています === Bcachefs は現在 [https://github.com/koverstreet/bcachefs/issues/368 swapfiles] をサポートしていません。 === マルチデバイス fstab === 現在、[https://github.com/systemd/systemd/issues/8234 systemd のバグ] があり、fstab でコロンで区切られたデバイスを使用して起動時にマルチデバイス bcachefs ファイルシステムをマウントできません。 mount -a を実行すると機能しますが、起動時にはマウントされません。ただし、bcachefs-tools バージョン 1.7.0 以降では、1 つのデバイスノードを使用してマルチデバイスアレイをマウントできるようになりました。これにより、通常の {{ic|1=UUID=}} 指定子の使用が可能になります。 # UUID=10176fc9-c4fa-4a30-9fd0-a756d861c4cd /mnt bcachefs defaults,nofail 0 0 ファイルシステム UUID / 外部 UUID は、次のいずれかを使用して見つけることができます: # bcachefs fs usage # bcachefs show-super device === 暗号化されたデバイスのマウントエラー === {{ic|--encrypted}} オプションで作成されたデバイスのマウントが、{{ic|bcachefs locked /dev/sd''XY''}} の後に失敗した場合 ERROR - bcachefs::commands::cmd_mount: Fatal error: Required key not available これは、キーをセッション [https://lore.kernel.org/all/6018852.lOV4Wx5bFT@lichtvoll.de/] に手動でリンクすることで回避できます: # keyctl link @u @s # mount /dev/sd''XY'' /mnt Enter passphrase: ''mount'' によって照会されるパスフレーズを新たに入力する必要はありません ({{ic|Enter}} を押すだけで十分です。) == 参照 == * [https://bcachefs.org/bcachefs-principles-of-operation.pdf 公式マニュアル] * [https://www.patreon.com/bcachefs Kent Overstreet's Patreon page] * [[Wikipedia:Bcachefs]] * [https://bcachefs-docs.readthedocs.io/en/latest/introduction.html bcachefs on ReadTheDocs]
このページで使用されているテンプレート:
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Box
(
ソースを閲覧
)
テンプレート:META Box Blue
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
Bcachefs
に戻る。
検索
検索
Bcachefsのソースを表示
話題を追加