🐧 Linux 総合学習プラットフォーム
ストレージ/ファイルシステム ・ 中級

スナップショット——巻き戻せる保険

スナップショットは、ある瞬間のディスクの状態をまるごと凍結する仕組みです。フルコピーを作るわけではなく変更点だけを追跡するので、作成は一瞬で容量もほとんど食いません。LVMやbtrfs、デスクトップ向けのTimeshiftなど作り方はいくつもありますが、共通するのは「気軽に元へ戻せる保険」だという点です。ただしバックアップとは別物という注意点も併せて押さえます。

設定ファイルを書き換える前や、大きなアップデートをかける直前、「失敗したら元に戻したい」と思ったことは誰にでもあるはずだ。そのための保険がスナップショットだ。

スナップショットは、ある瞬間のディスクの状態をまるごと凍結して記録する仕組みだ。名前だけ聞くとフルバックアップのように思えるが、実際の仕組みはまったく違う。

💡
ポイントスナップショットはディスク全体を複製するのではなく、「その瞬間からの変更点」だけを追跡する。だから作成にかかる時間はほぼ一瞬で、消費する容量もわずかで済む。

🧊 なぜ一瞬で終わるのか——差分管理の仕組み

スナップショットが高速な理由は、コピーオンライト(Copy on Write)という考え方にある。スナップショットを取った時点では、実はデータを1バイトもコピーしない。

その後、元のファイルシステム側でデータが書き換えられるタイミングで初めて、「書き換えられる前の古いデータ」がこっそり退避される。つまり、変更が起きた分だけ裏で少しずつコピーが積み上がっていく仕組みだ。

🔗
たとえフルコピーのバックアップは、本を1冊まるごと複製して本棚に並べる作業。スナップショットは、本にしおりを挟んで「ここが今の状態」と印を付けるだけの作業だ。しおりを挟む瞬間はほぼ一瞬で終わる。
スナップショット取得この瞬間はコピーなし元データを書き換え変更前の内容だけ退避退避領域変更分だけ蓄積スナップから見ると元の状態のまま

書き換えが起きるたびに「昔のデータ」が退避されていくので、スナップショットの側から見ると、いつまでも取得した瞬間の状態が保たれて見える。これがコピーオンライトの正体だ。

🛠️ 作り方はいくつもある

スナップショットの仕組みはファイルシステムやツールによって実装が異なるが、考え方の骨格は共通している。代表的な3つを押さえておこう。

1つ目はLVMのスナップショットだ。すでに学んだ論理ボリューム(LV)に対して、lvcreate に -s(snapshotの略)を付けて実行する。ファイルシステムの種類を問わず使える汎用性の高さが特徴になる。

$ lvcreate -s -n data-snap -L 2G /dev/vg0/data Logical volume "data-snap" created.

2つ目はbtrfsのサブボリュームスナップショットだ。btrfsというファイルシステム自体にスナップショット機能が組み込まれているため、lvcreateのような別レイヤーを挟まず、btrfs subvolume snapshot コマンド1つで完結する。

$ btrfs subvolume snapshot /mnt/data /mnt/data-snap Create a snapshot of '/mnt/data' in '/mnt/data-snap'

3つ目はTimeshiftだ。これはデスクトップ向けの見やすいツールで、内部ではrsyncまたはbtrfsの仕組みを使いながら、GUIで「この時点に戻す」を選ぶだけで復元できるようにしてくれる。個人のデスクトップ環境で定番の選択肢だ。

コツサーバー運用ではLVMかbtrfs、デスクトップでの気軽な保険にはTimeshiftと使い分けるとよい。仕組みは違っても「戻せる」という体験は共通している。

⏪ 元に戻すとき

LVMスナップショットから元に戻す場合は lvconvert --merge を使い、スナップショットの内容を元のLVへ合体させる。btrfsの場合は、壊れた現在のサブボリュームを退避し、スナップショットを本来の場所にリネームして使う、という手順になる。

つまずき復元の操作は仕組みごとに細かな作法が異なる。本番環境で試す前に、必ず手元の検証環境で一度手順を通しておくと安心だ。

🚫 バックアップとは別物と心得る

ここが一番誤解されやすい点だが、スナップショットはバックアップの代わりにはならない。

なぜなら、スナップショットはあくまで同じディスク(同じストレージ装置)の上に作られる記録だからだ。そのディスクそのものが物理的に壊れたり、装置ごと盗まれたり火事にあったりすれば、元データもスナップショットも道連れで失われる。

💡
ポイントスナップショットは「操作ミスやソフトウェアの不具合」からは救ってくれるが、「ディスクの物理故障」からは救ってくれない。物理故障に備えるには、前のトピックで学んだrsyncのような、別の場所へコピーする本物のバックアップが必要だ。
🔗
たとえスナップショットは同じ金庫の中に古い書類の写しを重ねて入れておくようなもの。金庫ごと盗まれたら意味がない。バックアップは、別の建物にもコピーを保管しておく発想だ。
スナップショット同じディスクの中操作ミスには強い物理故障には無力バックアップ別のディスク・別の場所物理故障にも強いrsync等で転送

実務では、この2つを競わせるのではなく重ねて使う。日々の細かい失敗からはスナップショットで素早く復旧し、ディスクごとの喪失に備えては別の場所へのバックアップを取っておく。両方を持って初めて、安心できる保険になる。

作業前の一手間としてスナップショットを取る癖をつけておくと、大きな変更にも思い切って挑めるようになる。次は、メモリが足りなくなったときの避難先であるスワップを見ていこう。

この項目に出てくる用語

スナップショットすなっぷしょっと
ある瞬間のディスクの状態を凍結して残す仕組み。作成は一瞬で容量もわずか。
コピーオンライトこぴーおんらいと
データを書き換える瞬間まで実際のコピーを遅らせる仕組み。Copy on Write。

▶ 学習アプリでこの続きを学ぶ・演習する