五一节办公室要停电,机房虽有UPS,但也支撑不了8小时。
因生产环境有业务系统挂了办公室机房的NAS存储,故需要进行迁移,步骤记录如下:
先闲谈下技术-----------------------
NFS和samba的区别
samba是混合型网络中的共享服务,windows服务器可建samba服务,linux服务器也可建samba服务
nfs只面向unix、linux间的共享,linux服务器可建nfs服务(winodws系统也可以挂载nfs,就是有点不稳定)
NFS服务器上的操作--------------------------
nfs服务器操作系统版本:
[root@c7110 ~]# more /etc/system-release
CentOS Linux release 7.9.2009 (Core)
nfs服务器安装nfs服务
[root@c7110 ~]# yum -y install nfs-utils rpcbind
创建nfs目录,并授权
[root@c7110 ~]# mkdir /opt/nfs-test
[root@c7110 ~]# chmod 777 /opt/nfs-test
编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test *(rw,root_squash,all_squash,sync)
重新加载nfs配置:
[root@c7110 ~]# exportfs -r
nfs服务设置开机启动
[root@c7110 ~]# systemctl enable rpcbind
[root@c7110 ~]# systemctl enable nfs
[root@c7110 ~]# systemctl enable nfs-lock
[root@c7110 ~]# systemctl enable nfs-idmap
启动nfs服务
[root@c7110 ~]# systemctl start rpcbind
[root@c7110 ~]# systemctl start nfs
[root@c7110 ~]# systemctl start nfs-lock
[root@c7110 ~]# systemctl start nfs-idmap
查看nfs服务启动后,所监听的端口信息:
[root@c7110 ~]# rpcinfo -p
linux服务器服务器上操作-------------------------------
业务服务器安装nfs软件客户端
[root@c7111 ~]# yum -y install nfs-utils
建立一个挂载目录
[root@c7111 ~]# mkdir /opt/test-m
挂载nfs服务器共享出来的目录
[root@c7111 ~]# mount -t nfs 10.x.x.10:/opt/nfs-test /opt/test-m/
查看下已挂载的nfs
[root@c7111 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.5G 0 1.5G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.5G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 97G 2.3G 95G 3% /
/dev/sda1 1014M 171M 844M 17% /boot
tmpfs 297M 0 297M 0% /run/user/0
10.x.x.6:/opt/nfs-test 97G 4.1G 93G 5% /opt/test-m
经测试,数据可读可写,证明nas服务没有问题,于是进行数据同步,数据同步用rsync命令。
rsync -avp gdsz@10.87.5.6::nas_6 /mnt/guidang/ --password-file=/root/rsync_pass --bwlimit=100000
数据同步完,通知研发进行挂载切换。研发同事在测试时,发现文件属性中的uid及gid与原来的不一致,有些担心,于是又小完善了一下NFS服务。
编辑nfs服务配置文件
[root@c7110 ~]# vi /etc/exports
内容如下:
/opt/nfs-test *(no_all_squash,anonuid=600,anongid=600)
重新加载nfs配置:
[root@c7110 ~]# exportfs -r
第一步:在存储服务器服务端
第二步:nfs客户端(也就是web服务器)
修改nginx的uid和gid
第三步:查询nfs软件是否安装(我这里没有安装,然后yum安装一下)
第四步:然后将上存是图片存储的目录先移到/tmp (这个不会指定,自己可以指定,能找到就可以)
第五步:然后挂载,这里会有个小报错,因为上面把这个目录移走了,所以要创建一个目录。
第六步:将移走的数据在挪回来,这里会有警告,可以忽略。
第七步:最后在网站上传一张图片,看是否可以在nfs存储服务器上面找到。
至此,web服务器存储迁移完成。
这里主要介绍的是基于 Linux(CentOS7) 系统,不同服务器集群之前的数据迁移。Elasticsearch 可以通过快照(snapshot)相关的命令对索引进行备份和恢复。(这个备份是增量的,同一个索引在第一次备份的基础上进行第二次备份只会备份新变化的数据)
假定旧集群有三个节点,分别对应三台服务器: 192.168.1.10 、 192.168.1.11 、 192.168.1.12
在旧集群中指定 192.168.1.10 作为 NFS(Network File System)服务端,其它两台服务器作为 NFS 客户端,分别安装 NFS:
以下步骤只需要在 NFS 服务端执行。
创建数据共享目录,目录结构可以根据自己的实际情况修改:
修改配置文件:
相关参数的含义如下:
重启 NFS 服务端:
最后确保 NFS 保客户端能够访问 NFS 服务端的数据共享目录。
以下步骤需要在每台 NFS 客户端服务器执行。
在 NFS 客户端服务器创建数据挂载目录,这里方便起见,目录结构和 NFS 服务端共享目录一致:
将 NFS 服务端共享目录挂载到各个 NFS 客户端:
这样所有的 ES 节点就可以使用同一个数据共享目录。
在旧集群每个 ES 节点的 elasticsearch.yml 中,设置 ES 快照仓库目录为前边 NFS 配置的数据共享目录,也就是 ES 数据要备份到的目录:
修改完成后重启 ES 服务。
连接旧集群中某一个节点发送 PUT 请求来创建快照仓库,例如使用 192.168.1.10 节点,可以使用 Postman、Kibana 发送请求:
或者直接在对应节点的服务器上执行如下命令:
创建索引的快照就是对索引进行备份,如下发送一个 PUT 请求来生成 index_1 、 index_2 索引的快照:
或者:
可以在 NFS 的数据共享目录中( /opt/data/es_backup )得到最终生成的索引快照文件。
查看快照仓库的信息:
查看指定快照:
查看仓库中所有的快照信息:
删除指定快照:
删除快照仓库:
参考文章第一部分的内容,在新集群的服务器上搭建 NFS 环境。
给新集群每个 ES 节点配置快照仓库的目录,也就是新集群中的 NFS 数据共享目录:
连接新集群中某个 ES 节点发送 PUT 请求创建快照仓库,和之前的一样:
先将旧集群中生成的索引快照文件拷贝到新集群的快照仓库目录下。
再连接集群中的某 ES 个节点,发送 POST 请求从索引快照中恢复数据:
或者:
如果不要参数,则是恢复快照中的全部索引:
一般情况下,我们会结合索引的大小,在旧群集中生成指定索引的快照文件,然后拷贝到新集群的快照仓库来恢复索引数据,恢复完后就可以删除对应的索引快照文件(如果有需要的话也可以备份起来),重复这个步骤直到所有索引数据迁移而完毕。
如果集群中的数据量比较大,比如上百个G,整个迁移过程还是比较耗时的,耐心等待吧。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)