ES インデックスのバックアップと復元


1. 計画

オンライン データ セキュリティのために、es データは、es の既存のインデックス データ用に安全にバックアップできます。通常、es は、共有ファイル ディレクトリまたはその他のデータ ストレージ ファイル システム(HDFS、Amazon S3、Azure など)にバックアップできます。雲。The backup will generate a snapshot of the index and store it in the specified Warehouse path. データの復元が必要な場合は、バックアップと復元のインターフェイスにアクセスしてデータをすばやく復元できます。

二、バックアップ

ES バックアップ ストレージ ウェアハウスは、共有ファイル システム (NAS など)、Amazon S3、HDFS、および Azure Cloudde などの一般的なファイル システムにすることができます. このドキュメントでは、共有ファイル システムと HDFS へのバックアップのみを提供します

解決策 1: クラスター共有ディレクトリへのバックアップ

手順:
1)
NFS サーバーをインストールするために、クラスター共有ディレクトリを構築します (ここでは、NFS またはその他の共有ディレクトリ テクノロジを使用できます) :
a. クラスター内のノードを選択し、ES のマスター ノードを選択して、NFS がインストールされているかどうかを確認します。インストール済み

rpm -qa | grep nfs  
rpm -qa | grep rpcbind

b. インストールされていない場合は、NFS をインストールします

yum install nfs-utils  rpcbind
离线环境需要自己去下载相关包安装

c. ブートを開始するように設定します

systemctl  enable  rpcbind.service
systemctl  enable  nfs-server.service

d.NFS を開始する

systemctl  start   rpcbind.service
systemctl  start   nfs-server.service

e. 共有ディレクトリを作成する

mkdir  /mont/backups/my_backup   具体目录名可以自己设置
chown  -R  用户名  /mont/backups/my_backup

这里的用户名必须是启动ES的用户

f. アクセス可能なアドレスと権限を設定する

vi  /etc/exports 添加下面内容:
/mont/backups/my_backup  *(rw,sync,no_root_squash,no_subtree_check)

代表所有网段都可以访问,如果想配置为特定ip,可以添加为es集群中所有节点的ip

g. 構成を更新して確認する

exportfs  -a     刷新配置并立刻生效
showmount  -e  ip    这里ip为当前创建共享目录主机ip

NFS クライアントを構成します (前の手順の 1 つを除くすべての ES ノードで、次の操作を実行する必要があります)。

a. NFS がインストールされているかどうかを確認します

rpm -qa | grep nfs  
rpm -qa | grep rpcbind

b. インストールされていない場合は、NFS をインストールします

yum install nfs-utils  rpcbind
离线环境需要自己去下载相关包安装

c. ブートを開始するように設定します

systemctl  enable  rpcbind.service
systemctl  enable  nfs-server.service

d.NFS を開始する

systemctl  start   rpcbind.service
systemctl  start   nfs-server.service

e. 共有ディレクトリを作成する

mkdir  /mont/backups/my_backup  保持和NFS服务端目录一致
chmod -R  用户名  /mont/backups/my_backup
这里的用户名必须是启动ES的用户

f. マウント ディレクトリ

showmount  -e   ip   ip为NFS服务端ip
mount -t nfs  ip:/mont/backups/my_backup  /mont/backups/my_backup  ip同上

h. ブート マウントの設定

vi /etc/fstab
ip:/mont/backups/my_backup  /mont/backups/my_backup nfs defaults 0 0
ip为NFS服务端ip

2)、es 構成を変更します。

修改elasticsearch.yml,配置path.repo的属性为上述共享目录,然后重启集群

3) スナップショット ウェアハウスを登録する
ここに画像の説明を挿入

通过post操作可以对备份仓库信息作出变更

ここに画像の説明を挿入

4)、スナップショットを作成します

すべてのインデックスのスナップショットを作成します。
ここに画像の説明を挿入

my_backup:仓库名
snapshot_1:快照名

部分インデックス スナップショットを作成します。
ここに画像の説明を挿入

my_backup:仓库名
snapsot_2:快照名

インデックス属性を使用して、スナップショット情報を生成する必要があるインデックスを指定できます

5)、スナップショットの削除
ここに画像の説明を挿入

my_backup:仓库名
snapshot_2:快照名,查看存在的快照可用:

ここに画像の説明を挿入

my_backup:仓库名,其余为固定参数

解決策 2: HDFS へのバックアップ

HDFS スナップショット/復元プラグインは、最新の Apache Hadoop 2.x (現在は 2.7.1) に対して構築されています。Apache Hadoop プロトコルと互換性のないディストリビューションを使用している場合は、プラグイン フォルダー内の Hadoop ライブラリを独自のディストリビューションに置き換えることを検討してください (必要なセキュリティ権限を調整する必要がある場合があります)

1)、安装repository-hdfs插件
2)、注册仓库

ここに画像の説明を挿入

my_hdfs_repository:仓库名
uri:hdfs访问路径
path:hdfs上存储目录

hadoop が kerberos セキュリティ認証で設定されている場合:
kerberos 認証ファイルを es config ディレクトリの下の repository-hdfs ディレクトリに置き、名前を付けます: krb5.keytab
そして、hdfs スナップショット ウェアハウスを作成します:
ここに画像の説明を挿入

各ノードが異なるサービス プリンシパルを使用する場合は、_HOST パラメーターを使用する必要があります。
ここに画像の説明を挿入

残りの手順については、スキーム 1 を参照してください。

ES復元

すべてのスナップショットを復元するには:
ここに画像の説明を挿入

my_backup: インデックス ウェアハウス名
snapshot_1: スナップショット名

スナップショット固有のインデックスを復元するには:

POST /_snapshot/my_backup/snapshot_1/_restore{
    
    
    "indices": "index_1", 
  }

index_1: 復元するインデックス名
my_backup: ウェアハウス名
snapshot_1: スナップショット名


おすすめ

転載: blog.csdn.net/weixin_43480441/article/details/128630478