Btrfs:強力なファイルシステムのサブボリュームとスナップショットの探索

これは、シリーズのbtrfsファイルシステムに関する4番目の記事です。このトピックの最初の記事では、簡単なbtrfsファイルシステムを作成する方法を示すbtrfsの基本について説明しました。

Btrfsに手を加える:新しいLinuxファイルシステムを使った私の最初の実験

Btrfsに手を加える:RAIDと冗長性を探る、Btrfsに取り組む:非常にクールなファイルシステム、openSuSE 13.1を手に入れる:

「B-Tree」や「Better」や「Butter」と呼ばれるさまざまなファイルシステムの「高速に動くターゲット」を探索し始めたときに私が見つけたものがここにあります。

2番目の記事では、btrfsに関するより多くの記事で、btrfsファイルシステムが複数のパーティションやデバイスに及ぶ方法を示し、ファイルシステムがまだマウントされている間でもサイズを変更できます。 RAIDと冗長性という3つ目の記事では、btrfsの先進的な構造能力のいくつかについて説明しました。

エンタープライズソフトウェア、Sweet SUSE! HPは、Linuxディストリビューション、クラウド、Red HatはまだOpenStackの企業、エンタープライズソフトウェア、Linuxの初期段階からのLinux、Linuxのサバイバルガイド:LinuxとWindowsの間で簡単に移動できるように計画しています

これらの記事ではかなり詳細と例を挙げていますが、私はbtrfsの機能と使用の概要を伝えようとしていることを覚えておいてください。

btrfsファイルシステムの作成と構造について、私が議論したいもう一つの側面があります – サブボリュームです。

しかし、サブボリュームから始めるべきところは、ちょっとした問題です。私はこれを明らかにするために苦労しているので、私に次のようにご負担ください。

私はCLIの例でそれを書こうとしましたが、それはコマンドと説明の長い跳躍シーケンスに変わります。

私はGUIスクリーンショットでそれを書こうとしましたが、とにかくそれほど明確ではない方法で、ほとんど情報を提示するための膨大な量のスペースを無駄にしています。だから私は最終的に、CLIコマンドシーケンスのいくつかのブロックで説明を書くことが最善の方法だと決めました。指が交差した…(そのようにタイプするのは難しい!)。

一つのことはほぼ確実です.btrfsのサブボリュームは、あなたが以前に働いていたもののようなものですが、あなたが以前に働いていたもののようなものではありません。

私はそれらをファイルシステムの “代替の制限されたビュー”と考えるのが有益だとわかります。すべてのbtrfsサブボリュームには、サブボリューム自体を作成するときに作成される親ファイルシステム内の対応するディレクトリがあります。

そのディレクトリに物をコピーすると、そのサブボリュームに他のディレクトリを作成し、その下に他のサブボリュームを作成することもできます。ここで重要な点は、通常のディレクトリとほぼ同じように見え、動作することです。 (ヒント:rmdirを使用してサブボリュームディレクトリを削除してみてください)。

もちろん、単にディレクトリを作るための複雑な新しい方法についてはあまり面白くないし、幸いにもサブボリュームへのすべてではない。実際には、基本的にサブボリュームをマウントすることはできますが、マウントコマンドに「-o subvol = name」または「-o subvolid = ID」を追加するか、/ etc / fstab 。これを行うと、サブボリュームに関連付けられたディレクトリが、マウントされたファイルシステムの最上位になります。それは上記の「制限されたビュー」の意味です。

簡単な例を試してみよう。ここでは、/ mntにマウントされた単純なbtrfsファイルシステムから始めます。

#mount / dev / sda4 / mnt

#btrfsサブボリューム作成/ mnt / svol

#btrfsサブボリューム一覧/ mnt

ID 256 gen 5トップレベル5パスsvol

#ls -l / mnt

合計0

Btfrsの詳しい読書

drwxr-xr-x 2 rootユーザー4096年12月4日21:38 svol

#cp / etc / motd / mnt / svol

#ls -l / mnt / svol

合計4

-rw-r – r– rootユーザー21 12月4日21:40 motd

#umount / mnt

#mount -o subvol = svol / dev / sda4 / mnt

#ls -l / mnt

合計4

-rw-r – r– rootユーザー21 12月4日21:40 motd

そこに何が起こったのか分かりますか? btrfsファイルシステム全体がマウントされたら、サブボリュームのディレクトリを見ることができ、そのディレクトリにファイルをコピーしました。

しかし、マウントを解除してサブボリュームをマウントすると、サブボリュームに関連付けられたディレクトリがマウントポイントに割り当てられていたため、そのファイルがトップレベルで表示されました。同様に重要であるが、ここでは表示することは不可能で、サブボリューム・ディレクトリの上にあるものを見るか、アクセスする方法がないという事実である。ですから、私はbtrfsファイルシステムの “代替の制限されたビュー”を持っています。

あなたが頭を掻いている間、あなたにもう1つ物を投げさせてください。私は実際にはファイルシステム全体をマウントすることもできます。このサブボリュームで起こっていることもすべてそこに表示されます。見てみな

#mount / dev / sda4 / data

#ls -Rl / data

/データ

合計0

drwxr-xr-x 2 rootユーザー4096年12月4日21:38 svol

/ data / svol

合計4

-rw-r – r– rootユーザー21 12月4日21:40 motd

さて、私は残りの操作に多くの時間を費やすつもりはありませんが、これらのマウントポイントのいずれかでファイルを追加、変更、または削除することができ、変更はすぐに他のマウントポイントで表示されます。それはかなり印象的です。

現時点では、経験豊富なLinux管理者が、これがどれほど有益で強力なものかを認識し始めてくれることを願っています。

私は、もちろん、これはほんの1つのサブボリュームに限定されているわけではなく、簡単な例として、おそらくsv2、sv3、sv4という名前の複数のサブボリュームを簡単に作成し、それぞれを別々にマウントすることもできます場所によって異なる用途に使用できますが、ファイルシステム全体がマウントされているので、すべての異なるサブボリュームの内容を1か所から監視および管理できます。

さて、サブボリュームの作成とマウントの基本については、それほど説明はありません。しかし、より多くのことがあり、それはさらに良いです。最も有用な機能の1つは、サブボリュームのスナップショットを作成する機能です。コマンドは驚くほどシンプルです

#btrfsサブボリュームスナップショット/ mnt / svol / mnt / snap

これにより、サブボリュームsvolの内容のスナップショットがスナップショットと呼ばれる新しいディレクトリに作成されます。実際には、スナップ自体が新しいサブボリュームであることが分かります。そのコマンドに “-r”を追加すると、サブボリュームの読み取り専用スナップショットが作成されます。ああ、btrfsはCopy-on-Writeファイルシステムなので、スナップショットは最初は追加のディスクスペースを必要とせず、ファイルが変更されたときや新しいファイルが作成されたときにのみスペースを使い始める。ゾウィー!

私たちがサブボリュームで仕上げる前に、最後に一つ。もう一つの非常に便利な機能、サブボリュームクォータ。サブボリュームとサブボリュームのグループに対してクォータを定義することができます。したがって、1つ以上のサブボリュームがbtrfsファイルシステム内のすべての使用可能領域を消費しないようにすることができます。

まあ、それはあまりにも密集しすぎたり、あまりにも退屈ではなかったことを願っています。サブボリュームは実際にはbtrfsファイルシステムの重要な機能の1つであり、それらを効果的に使用して管理することは、btrfsから実際のメリットを得るための鍵です。今回申し訳ありませんが、この写真はありませんでした…

甘いSUSE! HPEがLinuxディストリビューションに突入

?Red HatはまだOpenStackの会社であることを計画しています

?初期のLinuxで始める

Linuxのサバイバルガイド:この21のアプリケーションは、LinuxとWindowsの間で簡単に移動できるようにします