ElasticSearch-单节点迁移到集群
安装NFS
服务端配置
在原来的节点上安装NFS服务,并把快照目录挂载到NFS上
安装NFS服务
bash
yum install nfs-utils创建挂载点
bash
mkdir -p /mnt/elasticsearch_backups
chown -R 1000:root /mnt/elasticsearch_backups
chmod 775 /mnt/elasticsearch_backups编辑NFS导出文件 /etc/exports
bash
vim /etc/exports
/mnt/elasticsearch_backups *(rw,sync,no_subtree_check,no_root_squash)启动NFS服务
bash
systemctl restart nfs-server检查是否挂载成功
bash
showmount -e
# 正常会显示如下
#Export list for prod01:
#/mnt/elasticsearch_backups 172.16.0.0/20客户端配置
在新的节点上安装NFS客户端
注意
每个新节点都需要操作
bash
yum install -y nfs-utils创建本地挂载点
bash
mkdir -p /mnt/elasticsearch_backups
mount -t nfs 172.16.0.7:/mnt/elasticsearch_backups /mnt/elasticsearch_backups🚚卸载挂载点
bash
umount /mnt/elasticsearch_backups备份快照
创建快照仓库(老集群)
在原集群上备份快照
修改 config/elasticsearch.yml 配置文件,增加仓库路径配置
yaml
path.repo: ["/mnt/elasticsearch_backups"]docker容器,修改此参数,然后删除容器后,重新创建
bash
environment:
- path.repo=/mnt/elasticsearch_backups
volumes:
- /mnt/elasticsearch_backups:/mnt/elasticsearch_backups创建快照仓库
bash
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mnt/elasticsearch_backups",
"compress": true,
"max_snapshot_bytes_per_sec": "50mb",
"max_restore_bytes_per_sec": "50mb"
}
}创建快照(小范围)
先小范围试试,创建只包含特定索引的快照
bash
POST /_snapshot/my_backup/snapshot_wxcp_202308
{
"indices": "gupaoedu-wxcp-msg-2023-08-*",
"ignore_unavailable": true,
"include_global_state": false
}查看快照进度

创建快照(按年执行)
开始按年维度创建快照。
bash
GET /gupaoedu-wxcp-msg-2023*/_stats/store?humanbash
POST /_snapshot/my_backup/snapshot_wxcp_2023
{
"indices": "gupaoedu-wxcp-msg-2023*",
"ignore_unavailable": true,
"include_global_state": false
}bash
POST /_snapshot/my_backup/snapshot_wxcp_2024
{
"indices": "gupaoedu-wxcp-msg-2024*",
"ignore_unavailable": true,
"include_global_state": false
}bash
POST /_snapshot/my_backup/snapshot_wxcp_2025
{
"indices": "gupaoedu-wxcp-msg-2025*",
"ignore_unavailable": true,
"include_global_state": false
}快照创建中

创建详情

可以看到,此时磁盘IO会非常高,请耐心等待。

删除快照(可选操作)
bash
DELETE /_snapshot/my_backup/snapshot_wxcp_2025恢复快照
创建快照仓库(新集群)
注意
等快照完成后,到目标集群中创建快照仓库
bash
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mnt/elasticsearch_backups",
"readonly": true,
"max_snapshot_bytes_per_sec": "50mb",
"max_restore_bytes_per_sec": "50mb"
}
}恢复快照(小范围)
bash
POST /_snapshot/my_backup/snapshot_wxcp_202308/_restore
{
"indices": "gupaoedu-wxcp-msg-2023-08-*",
"ignore_unavailable": true,
"include_global_state": false
}查看恢复情况

在目标集群上,刷新快照列表。

如果刷新没有出现快照,可以在目标集群上,先删除快照仓库,然后重新创建一下
bash
DELETE /_snapshot/my_backupbash
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mnt/elasticsearch_backups",
"readonly": true,
"max_snapshot_bytes_per_sec": "50mb",
"max_restore_bytes_per_sec": "50mb"
}
}恢复快照(按年)
bash
POST /_snapshot/my_backup/snapshot_wxcp_2023/_restore
{
"indices": "gupaoedu-wxcp-msg-2023-*",
"ignore_unavailable": true,
"include_global_state": false
}bash
POST /_snapshot/my_backup/snapshot_wxcp_2024/_restore
{
"indices": "gupaoedu-wxcp-msg-2024-*",
"ignore_unavailable": true,
"include_global_state": false
}bash
POST /_snapshot/my_backup/snapshot_wxcp_2025/_restore
{
"indices": "gupaoedu-wxcp-msg-2025-*",
"ignore_unavailable": true,
"include_global_state": false
}数据恢复中,可能有点慢,请耐心等待

