5

できればLVMを使用して、Linuxでライブファイルシステムのスナップショットをプログラムで作成したいと思います。たくさんのファイルを開いているので、アンマウントしたくありません (私の最も一般的なシナリオは、たくさんのプログラムで忙しいデスクトップを持っているということです)。

カーネル バッファと一般的なファイル システムのアクティビティにより、ディスク上のデータが多かれ少なかれ未定義の状態になる可能性があることは理解しています。

FS を「原子的に」アンマウントし、LVM スナップショットを作成してマウントし直す方法はありますか? このタスクを実行するために、OS がすべてのアクティビティを数秒間ブロックしても問題ありません。それとも、ある種のアトミックな「同期 + スナップショット」でしょうか。カーネルコール?

それが可能かどうかさえわかりません...

4

6 に答える 6

12

ほとんどの Linux ファイルシステムでは何もする必要はありません。あなたの側で何の努力もせずにうまくいくはずです。スナップショット コマンド自体は、スナップショットが作成されているボリュームを使用してマウントされたファイル システムを探し出し、一貫性のあるマウント可能な状態でチェックポイントを設定し、スナップショットをアトミックに実行する特別なフックを呼び出します。

LVM の古いバージョンには、スナップショットのチェックポイントを設定できるように、さまざまなファイルシステムにパッチを適用する一連の VFS ロック パッチが付属していました。しかし、ほとんどの Linux ファイルシステムにすでに組み込まれているはずの新しいカーネルを使用しています。

スナップショットに関するこのイントロは、それと同じくらい主張しています。

そして、もう少し調査すると、2.6 シリーズのカーネルでは、ext シリーズのファイルシステムがすべてこれをサポートするはずであることが明らかになりました。おそらくReiserFSも。そして、私がbtrfsの人々を知っていれば、おそらくその人もそうです。

于 2009-12-21T14:14:46.220 に答える
4

RedHat Enterprise、Fedora、CentOS の ext3 と ext4 は、LVM スナップショットが作成されると自動的にチェックポイントを設定することを知っています。つまり、スナップショットは常にクリーンであるため、スナップショットのマウントに問題はありません。

XFSも同じようにサポートされていると思います。他のファイルシステムについてはわかりません。

于 2009-12-21T14:15:32.733 に答える
3

使用しているファイルシステムによって異なります。XFSを使用xfs_freeze -fすると、FSを同期してフリーズし、xfs_freeze -u再度アクティブ化できるため、フリーズしたボリュームからスナップショットを作成できます。これは保存状態である必要があります。

于 2009-12-21T14:07:40.303 に答える
1

これで問題が解決するかどうかはわかりませんが、ファイル システムを読み取り専用として再マウントすることはできます。 mount -o remount,ro /lvm(または同様のもの)がうまくいきます。スナップショットが完了したら、を使用して読み取り/書き込みを再マウントできますmount -o remount,rw /lvm

于 2009-12-21T13:31:53.180 に答える