Linux
 Computer >> コンピューター >  >> システム >> Linux

Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

デスクトップLinuxユーザーの多くは、ZFSやBtrfsといった「コピーオンライト(CoW)」ファイルシステムの名前を耳にしたことがあるでしょう。圧縮機能、内蔵RAID機能、スナップショット機能など、CoWファイルシステムは非常に先進的でモダンなファイルシステムです。しかし、実際にどうやって使い始めればよいのでしょうか?Btrfsは完全なFOSS(フリー・オープンソースソフトウェア)であり、Linuxカーネルに組み込まれているため、まずはここから始めるのが最適です。本記事では、Btrfsの初心者向けガイドをわかりやすく解説します。

LinuxにおけるBtrfsのサポート状況

BtrfsがZFSよりも優れている点の一つは、Btrfsがすでに「in-tree」、つまりLinuxカーネル本体に組み込まれていることです。インストールも追加設定も不要で、すぐに思い通りに利用できます。ただし、ディストリビューションごとにBtrfsへのサポート状況には差があるため、使用前に自分の環境での対応状況を確認しておくことをおすすめします。Btrfsはメインラインカーネル2.6.29の時期から含まれており、カーネルバージョンも5.10に近づいているため、多くの環境で問題なく動作するはずです。

Btrfsパーティションの作成

最初に行うのは、お馴染みのmkfsコマンドを使って、Btrfs用のパーティションを作成することです。ターミナル操作に不安がある場合は、GPartedを使ってパーティションを管理するのも良い選択肢です。ディスクに書き込む前にパーティション構成を視覚的に確認できるため、初心者にも扱いやすくなっています。

Btrfsパーティションを作成するには、対象となるディスクやパーティションを特定し、mkfs.btrfsコマンドを実行します。ここでは3台のディスクが接続されたシステムで、最初のパーティションとして「/dev/vdb1」を選択しています。既存のパーティションテーブルが存在する場合は、-fオプションの指定が必要になることがあります。

Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

作成が完了したら、次にサブボリュームをどこにマウントするかを決めます。これは用途によって異なります。ゲームライブラリ用であれば、「/home」ディレクトリ内にGamesというフォルダを作成し、「~/Games」にマウントするとよいでしょう。バックアップ用途であれば、管理しやすさを考慮して「/mnt」ディレクトリにマウントするのがおすすめです。ここでは話をシンプルにするため、「/mnt/btrfs」というディレクトリを作成します。

Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

以下のコマンドで、「/dev/vdb」のBtrfsデバイスをそのマウントポイントにマウントします。

sudo mount -t btrfs /dev/vdb /mnt/btrfs
Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

具体的なデバイス名やマウントポイントは、実際の環境や用途に応じて適宜変更してください。

Btrfsサブボリュームの作成

Btrfsにおけるサブボリュームとは、Btrfsが特別なCoW方式で操作できるディレクトリのことです。作成するには、btrfsコマンド配下のsubvolume createコマンドを使用します。

btrfs subvolume create /mnt/btrfs/backups
Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

ここではシステムのバックアップ用としてサブボリュームを作成していますが、名前は自由に決めて問題ありません。このディレクトリは通常のディレクトリとまったく同じように扱えます。Btrfsに組み込まれた各種ツールの恩恵を受けられる、という点だけ覚えておけば十分です。

Btrfsサブボリュームのスナップショット取得

Btrfsの大きな魅力の一つが、組み込みのスナップショット機能です。Snapperのような専用ツールもありますが、btrfsコマンド自体にも強力なsubvolume snapshotサブコマンドが用意されています。ここでは「/mnt/btrfs/backups」ディレクトリに「btrfs-test.txt」というファイルが存在する状態を想定します。

Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

このディレクトリ(または任意のBtrfsサブボリューム)のスナップショットを取得する際のコマンド構文は、btrfs subvolume snapshot /PATH/TO/SUBVOLUME /PATH/TO/SUBVOLUME/SNAPSHOTです。今回の場合は、以下のコマンドを実行します。

btrfs subvolume snapshot /mnt/btrfs/backups /mnt/btrfs/backups/snapshots/
Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法 Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

データの変遷を追跡したい場合は、スナップショットディレクトリに日付を付けておくと、いつ何が発生したのかを把握しやすくなり、管理が格段に楽になります。

また、-rフラグを付けると読み取り専用のスナップショットを作成できます。これは後述するbtrfs sendおよびreceive機能を利用するうえで重要なポイントです。

スナップショットの保存先ディレクトリに移動してみると、元のディレクトリにあったデータがまったく同じ構造ですべて格納されていることがわかります。災害などのトラブル発生時にもデータを確実に保護できる、実に便利な仕組みです。

さらに応用として、システム全体のスナップショットを取得し、btrfs sendbtrfs receiveコマンドを使って別のBtrfsデバイスへ送信することも可能です。コマンドは以下のようになります。

sudo btrfs send /mnt/btrfs/backups/ro-snapshot/ | btrfs receive /mnt/btrfs-send-test/
Btrfs入門ガイド:LinuxでCoWファイルシステムを使いこなす方法

NASやシステム内のRAIDアレイ上にBtrfsデバイスがある場合、OSのスナップショットを取得してそちらへ送信するのに最適な方法です。mountコマンドでスナップショットをマウントすれば、送信先でも再びデータにアクセスできるようになります。

Btrfsに関する記事をお読みいただきありがとうございました。Linux向けPCの自作方法、独自Linuxディストロを簡単に作れる8つのツール、2020年のLinux向けおすすめゲーム12選など、他のLinux関連コンテンツもぜひチェックしてみてください。


  1. タッチタイピング(ブラインドタッチ)入門ガイド|初心者が正しく身につける方法

    タッチタイピング(ブラインドタッチ)とは、キーボードを見ずに10本の指すべてを使って文字を入力する技術のことです。タイピング速度を大幅に向上させたいなら、ぜひ習得しておきたいスキルの一つです。この記事では、これからタッチタイピングを学ぼうとしている初心者の方向けに、基本の考え方から具体的な練習方法までをわかりやすく解説します。 タッチタイピングとは? 「タッチタイピング」という名前から、タッチスクリーン操作を連想する人もいますが、実際はまったく関係ありません。タッチタイピングとは、キーボードに目を落とさずに、すべての指で文字を打てる能力のことを指します。そのためには、各キーの位置を覚えるだけ

  2. HTMLとCSSの初心者向けガイド

    今日、私たちのサイトを支えているさまざまなテクノロジーを見つけることができますが、インターネット全体で最も重要な2つのファイルはHTMLとCSSです。はい、複雑なものが必要な場合は、それに対応するためのテクノロジーもさらに必要になります。ただし、単純な個人用Webページを作成するだけの場合は、HTMLとCSSだけで十分です。 基本の紹介 これは、HTMLとCSSの初心者向けガイドであり、簡単なサイトをできるだけ早く作成する方法を示しています。結果は必ずしも「標準に準拠」しているとは限りません。さらに微調整して拡張したい場合は、自分で読む必要があります。ただし、これはサイトであり、ほとんどのブ