一.物理导入 简介 redis集群在存储数据时,是根据槽点进行存储。例如老集群A如下: 都在一台机器,实际可以在多台机器上。 实际操作 老集群:1.1.1.1 主节点:7000(0-5460) 7001(5461-10922) 7002(10923-16383) 从节点:7003 7004 7005 新集群:1.1.1.2 主节点 :6000(0-3000) 6001(3001-5460) 6002(5461-10922) 6003(10923-16383) 从节点:6004 6005 6006 6007 可以发现新集群的节点多了一个 将老集群的7000节点的appendonly.aof用pipe方法导入到6000节点上。再将同文件导入到6001节点上。
背景 velero 是备份和还原kubernetes集群资源的和持久卷的工具, 主要提供了以下功能: 备份还原集群 不同集群间进行迁移 集群复制 tke官方文档中以及有了velero的最佳实践(https ://cloud.tencent.com/document/product/457/50122),本篇文章是在原官方文档中内的补充,针对velero-plugin-for-tencent 插件的使用. 将备份的集群资源和存储卷快照上传到 Velero 的后端存储(4)和(5)。 cos正常:velero backup-location get [image.png] 备份 测试场景从A集群迁移到B集群 备份A集群 velero backup create cluster-a - kubeconfig文件避免部署到原来的集群中(--kubeconfig 参数) 迁移命令: velero restore create cluster-b --from-backup cluster-a
r etcdv2.zip /opt/etcdv2 传送至新节点: scp etcdv2.zip root@xxxx:/opt # scp至新机器(一台机器即可,这里传到了new-01节点上) 新集群恢复 ,因为我们进行了迁移,需要将原本的集群信息覆盖掉(不影响用户数据),启动参数中添加配置--force-new-cluster,等服务成功启动后,旧集群信息已被覆盖,然后去掉此配置,重启服务即可 注:节点配置中 3.修正当前节点的peerURLs 在迁移过程中,出现了当前节点的peerURLs错误的问题,需要修正下 查看节点信息: [root@prod-k8s-01 ~]# etcdctl member list prod-k8s-01 ~]# etcdctl member update 76926a56d901 http://10.94.19.179:2380 # 更改节点peerurls 至此,我们已经成功在新集群恢复了旧集群的数据 加入节点3 [root@prod-k8s-01 ~]# etcdctl member add infra3 http://10.94.19.181:2380 Added member named infra4
RabbitMQ 集群数据迁移,完成集群A 到集群B 的数据迁移。 RabbitMQ 官网有这么一段话: ? 因此集群消息迁移的思路,是备份这些文件夹。 然后还有一段话 ? 大致意思是在恢复数据前,要先恢复元数据。 测试过程: 集群A: ? 集群A 队列消息: ? 集群B: ? 没有任何消息,队列。 数据恢复如下: 1.导出集群A 的元数据。rabbit_n1_2020-3-30.json ? 2. 将集群A的元数据导入到集群B ? ? 3. service rabbitmq-server stop 4. 这样就完成了RabbitMQ集群数据迁移。
5.0版本 微软云elasticsearch集群5.6版本 需求 需要把阿里云elasticsearch集群新老数据迁移到微软云elasticsearch集群 解决 新数据比较好弄数据源输出到新的微软云 kafka集群然后微软云logstash消费新数据到新elasticsearch集群即可,关于老数据迁移比较麻烦,但官网也给了成熟的解决方案既是快照备份与还原,下面实施过程既是对实施过程的记录 实施 阿里云 elasticsearch集群操作 一,先关闭数据平衡,注意一个一个的来,关一个节点的进程none,all循环一次,否则最后集群切片变动,恢复时间很长 1、修改elasticsearch.yml配置,添加如下 ,最好通过/_cat/health查看集群恢复100%后操作下一次,如果不关闭allocation重启elasticsearch集群恢复时间很长会从0%开始,关闭后从节点数减一除以总节点数比例开始恢复会块很多 在微软云elasticsearch集群上操作 四、迁移数据到微软云elasticsearch集群 1、挂载nfs服务端 yum -y install nfs-utils mkdir -p /storage
跨集群数据迁移 用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。 如果业务可以停服或者可以暂停写操作,可以参考离线迁移的四种方案。 离线迁移 离线迁移需要先停止老集群的写操作,将数据迁移完毕后在新集群上进行读写操作。适合于业务可以停服的场景。 http://172.16.0.39:9200/companydatabase --output=http://172.16.0.20:9200/companydatabase --type=data 4 hdfs: 快照存放于hdfs中,以插件形式支持 cos: 快照存放于腾讯云COS对象存储中,以插件形式支持 如果需要从自建ES集群迁移至腾讯云的ES集群,可以直接使用fs类型仓库,注意需要在 目标ES集群中创建repository 目标ES集群中创建仓库和在源ES集群中创建仓库类似,用户可在腾讯云上创建COS对象bucket, 将仓库将在COS的某个bucket下。 4 .
本方案旨在通过集群融合的方式帮助用户进行在线迁移,尽量降低迁移过程对业务的影响,同时尽可能提高迁移的自动化程度。 二、整体思路 假定用户原有集群为A,迁移后新集群为B。 首先通过扩容的方式把集群B融合进集群A;然后通过ES的自动搬迁能力,把所有集群A的数据迁移到集群B;最后用户下线集群A即可。 四、 集群融合步骤 首先假设迁移过程中涉及的集群信息如下: 用户集群 :用户原有自建的集群,假定cluster_name为 es_A。 新建集群 : 云上新建的集群,假定cluster_name为 es_B。 具体迁移操作步骤如下: 1、融合前,对 新建集群 需要确认没有打开权限,如果有打开,需要关闭。 _name" : "{用户节点名1, 用户节点名2...}" } }' 4、对 新建集群 调用 cluster update 接口进行升级, 修改 discovery.zen.ping.unicast.hosts
本方案旨在通过集群融合的方式帮助用户进行在线迁移,尽量降低迁移过程对业务的影响,同时尽可能提高迁移的自动化程度。 二、整体思路 假定用户原有集群为A,迁移后新集群为B。 首先通过扩容的方式把集群B融合进集群A;然后通过ES的自动搬迁能力,把所有集群A的数据迁移到集群B;最后用户下线集群A即可。 四、 集群融合步骤 首先假设迁移过程中涉及的集群信息如下: 用户集群 :用户原有自建的集群,假定cluster_name为 es_A。 新建集群 : 云上新建的集群,假定cluster_name为 es_B。 具体迁移操作步骤如下: 1、融合前,对 新建集群 需要确认没有打开权限,如果有打开,需要关闭。 _name" : "{用户节点名1, 用户节点名2...}" } }' 4、对 新建集群 调用 cluster update 接口进行升级, 修改 discovery.zen.ping.unicast.hosts
切换keepalived ip 变更新master keepalived优先级,重载的方式切换 [root@new-master ~]# vim /etc/keepalived/keepalived.conf [root@new-master ~]# /etc/init.d/keepalived reload ; watch -n .2 ip a 使用给新master keepalived 升优先级重载的方式切IP 使用 watch 来观察ip变化 ---- 从两边密切监控观察检查应用与数据库状态 使用n
确认备份数据 在销毁slave和原master前,这是最后一次可以备份原库统计数据的机会 生产数据已经陈旧,不一致了 确认后可以进行下一步 ---- 备份新master以便重建 [root@new-master nfs]# time nohup /usr/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --password=xxxxxxxxxx /data/nfs/test_full_backup >> /data/nfs/full_
场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证业务不中断的前提下 ,各个组件分布如下,也就是说,将运行于 con,com,ceph三个节点的 Ceph 集群迁移到 new_mon_1,new_mon_2,new_mon_3 这三台新机器上。 叫做 new_tree),这样部署完毕后,不会对原有集群有任何影响,也不会涉及到数据迁移的问题,此时新的OSD下还没有保存数据。 集群性能降低:总体来说,在副本从2克隆为4这段时间(约2-3天,取决于集群数据量)内,集群的实际IO表现降低到变更前的 25%->80% 左右,时间越往后表现越接近变更前,这虽然不会导致客户端的IO阻塞 ceph osd pool set volumes size 4 PG 变为active+remapped。 为何不直接迁移数据到新节点?
场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证业务不中断的前提下 ,各个组件分布如下,也就是说,将运行于 con,com,ceph三个节点的 Ceph 集群迁移到 new_mon_1,new_mon_2,new_mon_3 这三台新机器上。 叫做 new_tree),这样部署完毕后,不会对原有集群有任何影响,也不会涉及到数据迁移的问题,此时新的OSD下还没有保存数据。 集群性能降低:总体来说,在副本从2克隆为4这段时间(约2-3天,取决于集群数据量)内,集群的实际IO表现降低到变更前的 25%->80% 左右,时间越往后表现越接近变更前,这虽然不会导致客户端的IO阻塞 ceph osd pool set volumes size 4 PG 变为active+remapped。 为何不直接迁移数据到新节点?
注意:此方案为非实时同步方案,但借助 MinIO 客户端的数据同步功能,应该也是可以做到实时同步迁移。 容器,修改 configs/backup.yaml 配置 备份集群数据到本地存储中 将数据拷贝到新集群中进行恢复 01. 制作 milvus-backup 镜像 注意:如果是在两个单机版的 milvus 之间迁移数据,是不需要 milvus-backup 镜像的,又或者,如果 k8s 集群部署了 milvus, minio 注意一下,由于需要在两个集群间迁移,因此创建工作负载的时候挂载一个共享存储(/backup),方便迁移 MinIO 备份后的数据。 03. 恢复数据到新的集群中 进入新的集群(B)执行步骤 2和步骤 3,在步骤 3 中将 backup.yaml 中的配置修改成集群 B 的链接信息。
leader 节点,会重新选举leader) vim /data/program/zookeeper/conf/zoo.cfg kipACL=yes 4lw.commands.whitelist=* .2=172.16.20.94:2888:3888;0.0.0.0:2181 server.3=172.16.20.120:2888:3888;0.0.0.0:2181 server.4= 节点数 zk_pending_syncs 0 zk_last_proposal_size 32 zk_max_proposal_size 1345 zk_min_proposal_size 32 现在是由4个节点组成的集群 0.0.0.0:2181 server.6=172.16.20.250:2888:3888:participant;0.0.0.0:2181 version=300000003 至此,zookeeper 集群迁移完毕 pulsar迁移zookeeper时,zookeeper中的元数据保存的还是以前pulsar初始化时的老的zookeeper地址,否则会报无法连到zookeeper .
简介 根据业务需求,存在以下场景: 迁移过程中,旧的集群可以暂时停止服务或者暂停写入,数据全部迁移到新的集群中后,业务切换到新的集群进行读取和写入 迁移过程中,旧集群不能停止写入,业务不能停服 如果是第一种场景 hdfs: 快照存放于hdfs中,以插件形式支持 cos: 快照存放于腾讯云COS对象存储中,以插件形式支持 如果需要从自建ES集群迁移至腾讯云的ES集群,可以直接使用fs类型仓库,注意需要在Elasticsearch } POST _search/scroll { "scroll": "1m", "scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAHCbaFndPR3J4bDJtVDh1bnNRaW5yYWZBWncAAAAAABwm2RZ3T0dyeGwybVQ4dW5zUWlucmFmQVp3AAAAAAAcJtwWd09HcnhsMm1UOHVuc1FpbnJhZkFadwAAAAAAHCbbFndPR3J4bDJtVDh1bnNRaW5yYWZBWncAAAAAABwm3RZ3T0dyeGwybVQ4dW5zUWlucmFmQVp3 add & update & delete 如果业务写入ES时既有新增(add)数据,又有更新(update)和删除(delete)数据,可以采用6.5之后商业版X-pack插件中的CCR功能进行数据迁移 因此elasticsearch-dump和logstash迁移方式更适合于源ES集群和目标ES集群处于同一网络的情况下进行迁移,而需要跨云厂商的迁移,比如从阿里云ES集群迁移至腾讯云ES集群,可以选择使用
提供迁移方案支持,零业务代码修改,降低迁移成本。覆盖在线场景(电商交易、社交直播等)和离线场景(大数据实时计算、离线分析等),满足金融、政务、泛互联网、教育、零售、出行等不同行业和场景的需求。
在工作中可能会遇到这样的场景,即需要把一个Jenkins Master上的job迁移到另外一台Jenkins Master上,那怎么做比较好呢? 那我们现在来介绍下这种配置项较多、job比较多的情况下怎么来迁移这些job。 现在我搭建了两台Jenkins来进行说明。 Job Import Plugin导入 现在先介绍第一种方式,通过Job Import Plugin方式来进行job的迁移,这种方式比较方便,首先到新的Jenkins上,也就是192.168.9.8上, 在192.168.9.8上插件管理里先安装下Job Import Plugin,如下所示: 安装完后进入“Manage Jenkins” -> “Configure System”下,找到Job Import Jenkins上的插件新Jenkins上未必有,因此可以根据实际情况勾选是否需要安装必要的插件,如上面的截图所示,需不需要覆盖已有的job也根据实际情况勾选下。
192.168.1.185的6379 目标 192.168.1.91的7001,7002 192.168.1.92的7003,7004 192.168.1.94的7005,7006 2.准备存储文件 在集群任意节点上查看节点信息 image.png 在192.168.1.185上查询当前key数量并保存,将dump.rdb和appendonly.aof文件发送到192.168.1.91上 image.png 3.数据恢复到集群 切换到192.168.1.91上查看集群状态 redis-trib.rb check 192.168.1.91:7001 image.png 从刚才的集群状态得知 192.168.1.91:7001 ,其有 5462 个slots 192.168.1.94:7003 的runid为 19bc53185ae3e103cf4e9ce15772d88f4900256a ,其有 5461 个slots 将 --slots 5462 --yes 192.168.1.91:7001 4.测试 查询节点是否归位 redis-trib.rb check 192.168.1.91:7001 查询每个主节点key总量
如果使用DNS API,查询结构为 NAME.node.consul 和 NAME.node.DATACENTER.consul
本章主要讲redis的集群搭建. redis集群的可扩展性(scalability是线性的, 即增加节点会带来实际的效果提示. 集群节点间使用异步冗余备份,所以安全些. redis集群主要提供一定程度的稳定性(单从性能讲的话,并不如单机的,集群都是这样的,所以算不上是redis集群的缺点), 当某部分节点宕掉时,集群也是可用的. #启用集群,默认是注释掉的 cluster-enabled yes #集群的配置文件,记录集群信息的文件 cluster-config-file node-6379.conf #节点超时时间(单位: redis在5.0之后支持redis-cli创建集群, 本文就用redis-cli来创建集群 查看帮助,找到创建集群的格式为 redis-cli --cluster create host1:port1 启动集群/节点 启动集群只需要启动所有节点即可.