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

ReaR:自信を持ってLinuxサーバーをバックアップおよびリカバリする

Linuxサーバーのバックアップとリカバリは、システム管理者がキャリアを通じて行う一般的なアクティビティです。多くのアドホックユーティリティはシステム管理者がバックアップを管理するのに役立ちますが、この記事ではReaR-リラックスして回復に焦点を当てています。 道具。はい、正しくお読みください。日常的なバックアップおよびリカバリ操作の実行に関して、安心(リラックス)するのに役立つツールです。

ReaRは、Linuxサーバーのディザスタリカバリアーカイブと起動可能なISOイメージを作成するためのオープンソースの管理ツールです。既存のバックアップソリューションと統合することで、ReaRをバックアップおよび復元ユーティリティとしても使用できます。

仕組み

ReaRは、バックアップするサーバーの最新の状態で構成される起動可能なイメージを作成します。また、システム管理者はバックアップするファイルを柔軟に選択できます。サーバーの状態を最新に保つために、既存のバックアップスケジュールに従ってReaRをプロアクティブに実行することを強くお勧めします。

インターネット上にはすでに多くのドキュメントがありますが、この記事では、スクリーンショットをサポートするReaRの機能について説明します。

この投稿全体を通して、バックアップするサーバーを本番と呼びます。 ストレージとしての外部NFSサーバー 。

プロダクション およびストレージ 各サーバーには、Red Hat Enterprise Linux 8.2(RHEL)がデプロイされています。オペレーティングシステムのバージョンに一致するように手順を調整します。たとえば、dnfを置き換えます yum 古いRedHatベースのシステム用。

宛先サーバーをバックアップターゲットとして構成する

ReaRは、バックアップターゲットとして、NFS、CIFS(Samba)、USB、rsync、およびローカルの宛先をサポートします。この記事では、サーバーのストレージ 本番にデプロイされたReaRユーティリティのバックアップターゲットとして使用されるNFSサーバーとして構成されています サーバー。

[root@storage ~]# hostname
storage.mj0vy.org

[root@storage ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)

[root@storage ~]# cat /etc/exports.d/rear.exports
/backups   192.168.122.0/24(rw,no_root_squash)

[root@storage ~]# exportfs -s
/backups  192.168.122.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

[root@storage ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:d4:04:e4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.44/24 brd 192.168.122.255 scope global dynamic noprefixroute eth0
       valid_lft 3123sec preferred_lft 3123sec
    inet6 fe80::5054:ff:fed4:4e4/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

バックアップするサーバーにReaRをデプロイする

本番について サーバー、rearをインストールします 、genisoimage 、およびsyslinux パッケージ。 RHELでは、これらのパッケージはベースリポジトリの一部です。

[root@production ~]# hostname
production.mj0vy.org

[root@production ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.2 (Ootpa)

[root@production ~]# dnf install rear genisoimage syslinux

[root@production ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:5f:f2:e0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.19/24 brd 192.168.122.255 scope global dynamic noprefixroute eth0
       valid_lft 2129sec preferred_lft 2129sec
    inet6 fe80::5054:ff:fe5f:f2e0/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

バックアップするサーバーでReaRを構成する

/etc/rear/local.confを編集します 次の構成のファイル:

OUTPUT
Define the bootable image type among USB, ISO, RAWDISK

OUTPUT_URL
Backup Target among NFS, CIFS, FILE, FTP, HTTP, RSYNC

BACKUP
Which backup method to use: External third-party or internal ReaR mechanism?

BACKUP_URL
Backup target location when using the internal backup method.

BACKUP_PROG_EXCLUDE
Directories to be excluded while performing the backup. Examples are /media and /var/tmp
[root@production ~]# cat /etc/rear/local.conf
OUTPUT=ISO
OUTPUT_URL=nfs://192.168.122.44/exports
BACKUP=NETFS
BACKUP_URL=nfs://192.168.122.44/exports
BACKUP_PROG_EXCLUDE=("${BACKUP_PROG_EXCLUDE[@]}" '/media' '/var/tmp' '/var/crash')

バックアップするサーバーでReaRを実行します

ReaRは、レスキューメディアを作成する必要があるか、システムをtarとしてバックアップする必要があるかどうかに基づいて、さまざまなオプションを受け入れます。 ファイル。

rear mkbackup - create the rescue media and backup the system.
rear mkbackuponly - create only the backup tar file.
rear mkrescue - create only the rescue media.

本番をバックアップします ISOレスキューメディアを備えたサーバー

[root@production ~]# rear -v -d mkbackup
Relax-and-Recover 2.4 / Git
Using log file: /var/log/rear/rear-production.log
Using backup archive '/tmp/rear.gGxFXV4S0pcfEmD/outputfs/production/backup.tar.gz'
Creating disk layout
Using guessed bootloader 'GRUB' (found in first bytes on /dev/vda)
Creating root filesystem layout
Adding net.ifnames=0 to KERNEL_CMDLINE
Handling network interface 'eth0'
eth0 is a physical device
Handled network interface 'eth0'
To log into the recovery system via ssh set up /root/.ssh/authorized_keys or specify SSH_ROOT_PASSWORD
Copying logfile /var/log/rear/rear-production.log into initramfs as '/tmp/rear-production-partial-2020-07-30T02:40:30+05:30.log'
Copying files and directories

数分後、ローカルディレクトリに保存されているファイルがネットワーク経由でリモートのNFSターゲットの場所にコピーされます。

Copying files and directories
Copying binaries and libraries
Copying kernel modules
Copying all files in /lib*/firmware/
Creating recovery/rescue system initramfs/initrd initrd.cgz with gzip default compression
Created initrd.cgz with gzip default compression (200298197 bytes) in 20 seconds
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-production.iso (202M)
Copying resulting files to nfs location
Saving /var/log/rear/rear-production.log as rear-production.log to nfs location
Creating tar archive '/tmp/rear.gGxFXV4S0pcfEmD/outputfs/production/backup.tar.gz'
Archived 1037 MiB [avg 11304 KiB/sec]

ストレージを検査します ReaRが本番で実行されている間のサーバー サーバー

[root@storage ~]# ls -lh /backups/production/
total 1.4G
-rw-------. 1 root root 3.3M Jul 30 02:42 backup.log
-rw-------. 1 root root 1.2G Jul 30 02:42 backup.tar.gz
-rw-------. 1 root root  202 Jul 30 02:41 README
-rw-------. 1 root root 202M Jul 30 02:41 rear-production.iso
-rw-------. 1 root root 712K Jul 30 02:41 rear-production.log
-rw-------. 1 root root    0 Jul 30 02:42 selinux.autorelabel
-rw-------. 1 root root  277 Jul 30 02:41 VERSION

バックアップするサーバーのホスト名は、リモートターゲットの場所で作成されたISOファイルに接尾辞が付けられます。

  • rear-production.iso -リカバリ中に使用される起動可能なISOイメージ
  • backup.tar.gz -本番のファイルを含むTARファイル サーバー

ReaRコマンドは、mkbackup中に作成されたディレクトリを削除するという提案で終了します。 操作。

Exiting rear mkbackup (PID 21370) and its descendant processes
Running exit tasks
You should also rm -Rf /tmp/rear.QeZDyfY54KuYq65

ReaRによって作成された起動可能なISOイメージを使用してサーバーを復元します

プロダクション サーバーはrear-production.isoを使用して復元されます 画像。 CD-ROMを最初の起動デバイスとして使用してコンピュータを起動し、[本番環境の回復]または[本番環境の自動回復]を選択します。

「本番環境の自動リカバリ」を選択すると、エラーがないと想定して、リカバリプロセスが自動化されます。

この記事では、本番を手動で回復するための[の回復]オプションに焦点を当てています。 サーバー。

システムは、バックアップと出力タイプの詳細を示すReaRバナーで起動します。

パスワードの入力を求められることなく、rootユーザーとしてログインします。

ログインバナーで示されているように、rear recoverを実行します ストレージに接続してシステムを復元するには サーバ。そこから、backup.tar.gzを取得します 適切な権限で適切な宛先に復元します。

RESCUE production: ~ # rear -v -d recover

/var/log/rear/rear-production.logを検査しています 復元がどのように機能するかについての詳細を提供します。ログファイルの関連情報は以下で参照されます:

2020-07-31 06:58:38.091131490 Started RPC portmapper 'rpcbind'.
2020-07-31 06:58:38.102814819 RPC portmapper 'rpcbind' available.
2020-07-31 06:58:38.124144303 Started rpc.statd.
2020-07-31 06:58:38.635988990 Mounting with 'mount -v -t nfs -o rw,noatime 192.168.122.44:/backups /tmp/rear.2b0Q3MJJ2gwdEvq/outputfs'
mount.nfs: timeout set for Fri Jul 31 07:00:38 2020
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.122.44,clientaddr=192.168.122.19'
2020-07-31 06:58:38.701408122 Using backup archive '/tmp/rear.2b0Q3MJJ2gwdEvq/outputfs/production/backup.tar.gz'

復元操作後にハードディスクからサーバーを起動します

これで、サーバーを再起動できます。起動デバイスとしてハードディスクを選択します。復元プロセス中に、サーバーはNFS共有に接続してから、backup.tar.gzを転送します ローカルディレクトリにファイルします。 /var/log/rear/recover/restore/recover.backup.tar.gz.587.restore.logを確認して、これを確認してください。 復元操作が終了したときにファイルを作成します。

2020-07-31 06:59:10.851011181 dd if=/tmp/rear.2b0Q3MJJ2gwdEvq/outputfs/production/backup.tar.gz | cat | tar --block-number --totals --verbose --anchored --xattrs --xattrs-include=security.capability --xattrs-include=security.selinux --acls --gzip -C /mnt/local/ -x -f -

次に、SELinuxの再ラベル付けが行われます。復元時間は、backup.tar.gzのサイズによって異なります。 ファイル。

最終的に、サーバーはログイン画面で起動します。

同じ資格情報でログインし、サーバーの状態が復元されていることを確認します。

これで終わりです

ReaRは、多くのLinuxベースのバックアップソリューションの不可欠な部分です。 OpenStackとRedHatOpenStack Platformは、アンダークラウドとコントロールプレーンのバックアップと復元にReaRを使用します。アプリケーションとオペレーティングシステムのパッチ適用とロールバックのオプションについて説明しているこのスペースの今後の記事に注目してください。

Red Hat Enterprise Linux実稼働環境でのReaRの使用の詳細については、RedHatカスタマーポータルでこのソリューションを参照してください。

[無料のオンラインコース:Red HatEnterpriseLinuxの技術概要。 ]


Linux
  1. このLinuxコマンドでAPCバッテリーバックアップシステムを管理する

  2. Linuxでタイムゾーンを設定してサーバー時間をNTPと同期する方法

  3. Linux Mint / LinuxMint12のシングルユーザーモードでシステムを回復する

  1. Linuxサーバーのネットワーク接続をnetstatで表示する

  2. LinuxMint17でownCloud6を使用してクラウドストレージを作成します

  3. Fail2BanでLinuxサーバーを保護する[初心者向けガイド]

  1. Linuxでjconsoleを使用してJavaを監視する

  2. PrometheusとGrafanaでLinuxサーバーを監視する

  3. LinuxサーバーにDockerを使用してNextcloudをインストールする方法