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
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
GET /gupaoedu-wxcp-msg-2023*/_stats/store?human
bash
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
}
在目标集群上,刷新快照列表。
如果刷新没有出现快照,可以在目标集群上,先删除快照仓库,然后重新创建一下
bash
DELETE /_snapshot/my_backup
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_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
}