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 によって開発されています。 == インストール == [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9e87705289667a6c5185c619ea32f3d39314eb1b カーネル 6.7] (2024年1月) で Bcachefs はアップストリーム [[カーネル]] にマージされ、[[linux]] パッケージで利用できるようになりました。他のカーネルパッケージは 6.7 より古いバージョンをベースにしている可能性があり、Bcachefs 用の特別なパッチが必要です。 Bcachefs ユーザースペースツールは {{Pkg|bcachefs-tools}} から入手できます。 == セットアップ == === シングルドライブ === #bcachefs format /dev/sda #mount -t bcachefs /dev/sda/mnt === 複数のドライブ=== Bcachefs は、RAID0 と同様に、デフォルトでデータをストライプ化します。冗長性は '''replicas''' オプションを介して処理されます。{{ic|1=--replicas=2}} を備えた 2 台のドライブは RAID1 に相当し、{{ic|1=--replicas=2}} を備えた 4 台のドライブは RAID10 に相当します。 # bcachefs format /dev/sda /dev/sdb --replicas=''n'' # mount -t bcachefs /dev/sda:/dev/sdb /mnt 異種ドライブがサポートされています。サイズが異なる場合は、一部に大きなストライプが使用され、すべてが同じ割合で埋められます。速度が異なる場合、複製されたデータの読み取りは、IO 遅延が最も短いデータに送信されます。一部が他よりも信頼性が高い場合 (ハードウェア RAID デバイスなど)、{{ic|1=--durability=2 ''device''}} を設定して、そのデバイス上のデータの各コピーを 2 つの複製としてカウントできます。 === SSD キャッシング === Bcachefs には、バックグラウンド、フォアグラウンド、プロモートの3つのストレージカテゴリがあります。ファイルシステムへの書き込みでは、フォアグラウンドドライブに優先順位が付けられ、その後、時間の経過とともにバックグラウンドに移動されます。読み取りはプロモートドライブにキャッシュされます。 {{Note|これらは、単一の大規模プールに対する優先ガイドラインにすぎません。書き込みは、フォアグラウンドがいっぱいの場合はバックグラウンドに直接行われ、両方がいっぱいの場合はプロモートに行われます。メタデータはフォアグラウンドを優先しますが、どのメタデータにも書き込むことができます。キャッシュドライブにはまだデータが含まれている可能性があるため、キャッシュドライブを削除するときは注意してください。[[Bcachefs#デバイスの削除|デバイスの削除]] を参照してください。}} 推奨される設定は、フォアグラウンドとプロモートに ssd グループを使用し、バックグラウンド (ライトバックキャッシュ) に hdd グループを使用することです。 # bcachefs format \ --label=ssd.ssd1 /dev/sda \ --label=ssd.ssd2 /dev/sdb \ --label=hdd.hdd1 /dev/sdc \ --label=hdd.hdd2 /dev/sdd \ --label=hdd.hdd3 /dev/sde \ --label=hdd.hdd4 /dev/sdf \ --replicas=2 \ --foreground_target=ssd \ --promote_target=ssd \ --background_target=hdd # mount -t bcachefs /dev/sda:/dev/sdb:/dev/sdc:/dev/sdd:/dev/sde:/dev/sdf /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|1=mount -o option=value}})、またはsysfs ({{ic|echo X > /sys/fs/bcachefs/''UUID''/options/''option''}}) フォーマット中にオプションを設定するか、 sysfs を介してオプションを変更すると、ファイルシステムのスーパーブロックに保存され、それらのドライブのデフォルトになります。マウントオプションはこれらのデフォルトを上書きします。 {{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}} == ヒントとテクニック == さらに有用なエラーメッセージについては、[[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]]
このページで使用されているテンプレート:
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
Bcachefs
に戻る。
検索
検索
Bcachefsのソースを表示
話題を追加