GNU/Linux >> Linux の 問題 >  >> Linux

Linux上のZFSでスナップショット、クローン、およびレプリケーションを使用する方法

前のチュートリアルでは、zpoolとZFSファイルシステムまたはデータセットを作成する方法を学びました。このチュートリアルでは、ZFSスナップショット、クローン、およびレプリケーションを操作する方法を段階的に説明します。スナップショット、クローン。およびレプリケーションは、ZFSファイルシステムの最も強力な機能です。

ZFSスナップショット-概要

スナップショットはZFSの最も強力な機能の1つであり、スナップショットは、ZFSプール内の余分なスペースを消費しないファイルシステムまたはボリュームの読み取り専用のポイントインタイムコピーを提供します。スナップショットは、ブロック参照が変更されたときにスペースのみを使用します。スナップショットは、現在のデータセットと以前のバージョンの違いのみを記録することにより、ディスク容量を節約します。

スナップショットの一般的な使用例は、ソフトウェアのインストールやシステムのアップグレードなどの危険なアクションが実行されたときに、ファイルシステムの現在の状態をすばやくバックアップする方法です。

ZFSスナップショットの作成と破棄

ボリュームのスナップショットに直接アクセスすることはできませんが、クローンを作成したり、バックアップしたり、ロールバックしたりすることはできます。 ZFSスナップショットの作成と破棄は非常に簡単です。そのためにzfssnapshotおよびzfsdestroyコマンドを使用できます。

datapoolという名前のプールを作成します。

#zpool create datapool mirror / dev / sdb / dev / sdc 
#zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
datapool 1.98G 65K 1.98G 0% 0%1.00xオンライン-

これで、datapoolというプールができました。次に、スナップショット機能をシミュレートするために1つのZFSファイルシステムを作成する必要があります。

#zfs create datapool / docs -o mountpoint =/ docs 
#zfs list -r datapool
NAME USED AVAIL REFER MOUNTPOINT
datapool 93.5K 1.92G 19K / datapool
datapool / docs 19K 1.92G 19K / docs

ファイルシステムのスナップショットを作成するには、プールとスナップショット名を指定してzfssnapshotコマンドを使用できます。スナップショットを再帰的に作成する場合は、-rオプションを使用できます。スナップショット名は、次の命名要件を満たす必要があります。

[メール保護][メール保護]
#zfsスナップショットデータプール/[メール保護]
#zfsリスト-tスナップショット
名前USEDAVAIL REFER MOUNTPOINT
datapool/[メール保護]0>-19.5K

datapool/docsのスナップショットが作成されます。

スナップショットを破棄するには、通常どおりzfsdestroyコマンドを使用できます。

#zfs destroy datapool / [email protected] 
#zfs list-tsnapshot
利用可能なデータセットがありません
スナップショットのロールバック

シミュレーションでは、/docsディレクトリにテストファイルを作成する必要があります。

#echo"バージョン1">/docs/data.txt 
#cat/docs/data.txt
バージョン1
#zfsスナップショットデータプール/[メール保護]
#zfsリスト-tスナップショット
名前USEDAVAIL REFER MOUNTPOINT
datapool/[メール保護]9K- ここで、/ docs / data.txt

のコンテンツを変更します
#echo"バージョン2">/docs/data.txt 
#cat/docs/data.txt
バージョン2

古いスナップショットに完全にロールバックできます。これにより、スナップショットが作成された時点のコピーが得られます。

#zfs list -tsnapshot 
NAME USED AVAIL REFER MOUNTPOINT
datapool / [email protected] 9.50K-19.5K-
#zfs rollback datapool / [email protected]
#cat/docs/data.txt
バージョン1

ご覧のとおり、data.txtのコンテンツは以前のコンテンツに戻っています。

スナップショットの名前を変更する場合は、zfsrenameコマンドを使用できます。

#zfs rename datapool / [email protected] datapool / [email protected] 
#zfs list -tsnapshot
NAME USED AVAIL REFER MOUNTPOINT
datapool / [email protected] -50K 19.5K-

注:このデータセットのスナップショットが存在する場合、データセットを破棄することはできませんが、-rオプションを使用してそれをオーバーライドできます。

#zfs destroy datapool / docs 
can not destroy'datapool / docs':filesystem has children
use'-r' to destroy the following datasets:
datapool / [email protected]
#zfs destroy -r datapool / docs 
#zfs list-tsnapshot
利用可能なデータセットがありません

ZFSクローンの概要

クローンは、書き込み可能なボリュームまたはファイルシステムであり、その初期の内容は、クローンが作成されたデータセットと同じです。

ZFSクローンの作成と破棄

クローンはスナップショットからのみ作成でき、このスナップショットに基づくクローンを削除するまでスナップショットを削除することはできません。クローンを作成するには、zfscloneコマンドを使用します。

#zfs create datapool / docs -o mountpoint =/ docs 
#zfs list -r datapool
NAME USED AVAIL REFER MOUNTPOINT
datapool 93.5K 1.92G 19K / datapool
datapool / docs 19K 1.92G 19K / docs
#mkdir / docs / folder {1..5} 
#ls / docs /
folder1 folder2 folder3 folder4 folder5
#zfsスナップショットデータプール/[メール保護]
#zfsリスト-tスナップショット
名前USEDAVAIL REFER MOUNTPOINT
datapool/[メール保護]0-19K-
次に、スナップショットデータプール/[メール保護]

からクローンを作成します。
#zfs clone datapool / [email protected] datapool / pict 
#zfs list
NAME USED AVAIL REFER MOUNTPOINT
datapool 166K 1.92G 19K / datapool
datapool / docs 1.92G 19K / docs
datapool / pict 1K 1.92G 19K / datapool / pict

クローン作成プロセスが終了し、スナップショットデータプール/[メール保護]が/datapool/pictにクローンされました。 / datapool / pictディレクトリのコンテンツを確認するとき、コンテンツは/ datapool/docsと同じである必要があります。

#ls / datapool / pict 
folder1 folder2 folder3 folder4 folder5

スナップショットのクローンを作成した後、データセットを削除するまでスナップショットを削除できません。

#zfs destroy datapool / [email protected] 
can not destroy'datapool / [email protected]':スナップショットには依存クローンがあります
'-R'を使用して次のデータセットを破棄します:
datapool / pict
#zfs destroy datapool / pict 

最後に、スナップショットを破棄できます。

#zfs destroy datapool / [email protected] 
#zfs list-tsnapshot
利用可能なデータセットがありません

ZFSレプリケーションの概要

このZFSレプリケーションの基本はスナップショットであり、いつでもスナップショットを作成でき、必要な数のスナップショットを作成できます。スナップショットを継続的に作成、転送、および復元することにより、1つ以上のマシン間の同期を提供できます。 ZFSは、データのストリーム表現を標準出力に送信できる組み込みのシリアル化機能を提供します。

ZFSレプリケーションを構成する

このセクションでは、データセットをデータプールからバックアッププールに複製する方法を紹介しますが、ローカルシステムに接続された別のプールにデータを保存するだけでなく、ネットワークを介して別のシステムにデータを送信することもできます。データの複製に使用されるコマンドは、zfssendとzfsreceiveです。

backuppoolという別のプールを作成します。

#zpool create backuppool mirror sde sdf 
#zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
backuppool 1.98G 50K 1.98G 0%0
datapool 1.98G 568K 1.98G-0%0%1.00xオンライン-

プールのステータスを確認します:

#zpool status 
pool:datapool
state:ONLINE
scan:none requested
config:

STATE READ WRITE CKSUM
データプールONLINE 0 0 0
鏡面0 ONLINE 0 0 0
SDB ONLINE 0 0 0
SDC ONLINE 0 0 0

エラー:知られていないデータエラー

プール:バックアッププール
状態:オンライン
スキャン:要求なし
構成:

名前状態読み取り/書き込みCKSUM
バックアッププールオンライン<00 0 mirror-0 ONLINE 0 0
sde ONLINE 0 0
0
エラー

複製するデータセットを作成します。

#zfsスナップショットデータプール/[メール保護]
#zfsリスト-tスナップショット
名前USEDAVAIL REFER MOUNTPOINT
datapool/[メール保護]0/>-19K-
folder1 folder2 folder3 folder4 folder5

レプリケーションを実行する時が来ました。

#zfs send datapool / [email protected] | zfs receive backuppool / backup 
#zfs list
NAME USED AVAIL REFER MOUNTPOINT
backuppool 83K 1.92G 19K / backuppool
backuppool / backup
backuppool / backup 19K 1.92> datapool 527K 1.92G 19K / datapool
datapool / docs 19K 1.92G 19K / docs
#ls / backuppool / backup 
folder1 folder2 folder3 folder4 folder5

データセットデータプール/[メール保護]は、backuppool/backupに正常に複製されました。

データセットを別のマシンに複製するには、次のコマンドを使用できます。

#zfs send datapool / [email protected] | ssh otherserver zfs recv backuppool / backup 

完了しました。

結論

スナップショット、クローン、およびレプリケーションは、ZFSの最も強力な機能です。スナップショットはファイルシステムまたはボリュームのポイントインタイムコピーを作成するために使用され、クローン作成は複製データセットを作成するために使用され、複製は同じマシン上のあるデータプールから別のデータプールにデータセットを複製するため、または異なるマシン間でデータプールを複製するために使用されますマシン。


Linux
  1. LinuxでのChownコマンドとは何ですか?その使用方法

  2. LinuxでFlatpakをインストールして使用する方法

  3. LinuxでTracerouteをインストールして使用する方法

  1. KaliLinuxにtelnetをインストールして使用する方法

  2. TimeShiftを使用してUbuntuLinuxをバックアップおよび復元する方法

  3. Linux Screenをインストールして使用する方法は?

  1. Linuxテールコマンド:それは何であり、それを使用する方法

  2. LinuxにSSHFSをインストールして使用する方法

  3. LinuxでSlackをインストールして使用する方法