一.物理导入 简介 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节点上) 新集群恢复 unzip /opt/etcdv2 && mv /opt/etcdv2/member /var/lib/etcd/infra1.etcd/ 2.启动新节点(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 至此,我们已经成功在新集群恢复了旧集群的数据
RabbitMQ 集群数据迁移,完成集群A 到集群B 的数据迁移。 RabbitMQ 官网有这么一段话: ? 因此集群消息迁移的思路,是备份这些文件夹。 然后还有一段话 ? 大致意思是在恢复数据前,要先恢复元数据。 测试过程: 集群A: ? 集群A 队列消息: ? 集群B: ? 没有任何消息,队列。 数据恢复如下: 1.导出集群A 的元数据。rabbit_n1_2020-3-30.json ? 2. 将集群A的元数据导入到集群B ? ? 3. 停掉集群B ,将 集群A 的 n1 n2 n3 的文件,分别拷贝到 集群B 的 n1 n2 n3 文件mnesia 目录下。 5. 这样就完成了RabbitMQ集群数据迁移。
5.0版本 微软云elasticsearch集群5.6版本 需求 需要把阿里云elasticsearch集群新老数据迁移到微软云elasticsearch集群 解决 新数据比较好弄数据源输出到新的微软云 kafka集群然后微软云logstash消费新数据到新elasticsearch集群即可,关于老数据迁移比较麻烦,但官网也给了成熟的解决方案既是快照备份与还原,下面实施过程既是对实施过程的记录 实施 阿里云 elasticsearch集群操作 一,先关闭数据平衡,注意一个一个的来,关一个节点的进程none,all循环一次,否则最后集群切片变动,恢复时间很长 1、修改elasticsearch.yml配置,添加如下 注意索引数量多但是数据量不大时可以统配多一些index,保证每次迁移的数据量不至于太大,比如每次100G以内,防止网络等其他原因导致传输中断等 [root@elk-es01 ~]# curl -XPUT 在微软云elasticsearch集群上操作 四、迁移数据到微软云elasticsearch集群 1、挂载nfs服务端 yum -y install nfs-utils mkdir -p /storage
跨集群数据迁移 用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。 如果业务可以停服或者可以暂停写操作,可以参考离线迁移的四种方案。 离线迁移 离线迁移需要先停止老集群的写操作,将数据迁移完毕后在新集群上进行读写操作。适合于业务可以停服的场景。 需要注意ES的版本问题: 目标ES集群的主版本号(如5.6.4中的5为主版本号)要大于等于源ES集群的主版本号; 1.x版本的集群创建的快照不能在5.x版本中恢复; 源ES集群中创建repository hdfs: 快照存放于hdfs中,以插件形式支持 cos: 快照存放于腾讯云COS对象存储中,以插件形式支持 如果需要从自建ES集群迁移至腾讯云的ES集群,可以直接使用fs类型仓库,注意需要在 移动源ES集群snapshot至目标ES集群的仓库 把源ES集群创建好的snapshot上传至目标ES集群创建好的仓库中 5 .
本方案旨在通过集群融合的方式帮助用户进行在线迁移,尽量降低迁移过程对业务的影响,同时尽可能提高迁移的自动化程度。 二、整体思路 假定用户原有集群为A,迁移后新集群为B。 首先通过扩容的方式把集群B融合进集群A;然后通过ES的自动搬迁能力,把所有集群A的数据迁移到集群B;最后用户下线集群A即可。 四、 集群融合步骤 首先假设迁移过程中涉及的集群信息如下: 用户集群 :用户原有自建的集群,假定cluster_name为 es_A。 新建集群 : 云上新建的集群,假定cluster_name为 es_B。 具体迁移操作步骤如下: 1、融合前,对 新建集群 需要确认没有打开权限,如果有打开,需要关闭。 \"192.168.0.3:9300\", \"192.168.0.17:9300\"]" }, "restart_type": "full_cluster_restart" }' 5、
本方案旨在通过集群融合的方式帮助用户进行在线迁移,尽量降低迁移过程对业务的影响,同时尽可能提高迁移的自动化程度。 二、整体思路 假定用户原有集群为A,迁移后新集群为B。 首先通过扩容的方式把集群B融合进集群A;然后通过ES的自动搬迁能力,把所有集群A的数据迁移到集群B;最后用户下线集群A即可。 四、 集群融合步骤 首先假设迁移过程中涉及的集群信息如下: 用户集群 :用户原有自建的集群,假定cluster_name为 es_A。 新建集群 : 云上新建的集群,假定cluster_name为 es_B。 具体迁移操作步骤如下: 1、融合前,对 新建集群 需要确认没有打开权限,如果有打开,需要关闭。 \"192.168.0.3:9300\", \"192.168.0.17:9300\"]" }, "restart_type": "full_cluster_restart" }' 5、
很多开发者在UE程序像素流推流的过程中,会遇到插件1和2版本不兼容、依托WebRTC传输数据字节有限,以及推流并发数受限等问题,以下逐一分析解答。 像素流1和2插件版本迁移问题UE像素流插件支持完成基础的三维程序推流到网页的过程,可以实现单机单并发的演示效果。 但是在二次开发、业务集成上具有局限性,并且版本2与1有差异,像素流2没有直接使用WebRTC,迁移新插件需要对蓝图节点、C++公共API和功能进行更改,UE程序无法实现平滑升级。 解决单卡并发问题实时云渲染基于第三代GPU池化技术,从产品架构上支持“单机多显卡+一卡多并发+多卡大集群”的高可用架构,只要单张卡上有资源有余量,就可以继续分配给到更多人同时使用。 解决WebRTC数据传输受限问题像素流插件受限于WebRTC数据传输字节长度的限制,单个DataChannel消息的最大长度通常限制在64KB左右。
场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证业务不中断的前提下 ,各个组件分布如下,也就是说,将运行于 con,com,ceph三个节点的 Ceph 集群迁移到 new_mon_1,new_mon_2,new_mon_3 这三台新机器上。 迁移思路 我们首先会将新的节点的所有OSD初始化完毕,然后将这些OSD 加入到另一棵osd tree下 (这里简称原先的集群的osd tree叫做old_tree,新建的包含新OSD的 osd tree 叫做 new_tree),这样部署完毕后,不会对原有集群有任何影响,也不会涉及到数据迁移的问题,此时新的OSD下还没有保存数据。 E7%9C%8B%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%BD%93%E5%89%8D%E8%BF%9E%E6%8E%A5%E7%9A%84monitor-ip] [Ceph Monitor
场景介绍:在我们的IDC中,存在着运行了3-6年的Ceph集群的服务器,这些服务器性能和容量等都已经无法满足当前业务的需求,在购入一批高性能机器后,希望将旧机器上的集群整体迁移到新机器上,当然,是保证业务不中断的前提下 glance,neutron mon,osd*1 com 192.168.100.111 nova,neutron mon,osd*1 ceph 192.168.100.112 mon,osd*1 在集群整体迁移完后 ,各个组件分布如下,也就是说,将运行于 con,com,ceph三个节点的 Ceph 集群迁移到 new_mon_1,new_mon_2,new_mon_3 这三台新机器上。 迁移思路 我们首先会将新的节点的所有OSD初始化完毕,然后将这些OSD 加入到另一棵osd tree下 (这里简称原先的集群的osd tree叫做old_tree,新建的包含新OSD的 osd tree 叫做 new_tree),这样部署完毕后,不会对原有集群有任何影响,也不会涉及到数据迁移的问题,此时新的OSD下还没有保存数据。
注意:此方案为非实时同步方案,但借助 MinIO 客户端的数据同步功能,应该也是可以做到实时同步迁移。 容器,修改 configs/backup.yaml 配置 备份集群数据到本地存储中 将数据拷贝到新集群中进行恢复 01. 制作 milvus-backup 镜像 注意:如果是在两个单机版的 milvus 之间迁移数据,是不需要 milvus-backup 镜像的,又或者,如果 k8s 集群部署了 milvus, minio 注意一下,由于需要在两个集群间迁移,因此创建工作负载的时候挂载一个共享存储(/backup),方便迁移 MinIO 备份后的数据。 03. 恢复数据到新的集群中 进入新的集群(B)执行步骤 2和步骤 3,在步骤 3 中将 backup.yaml 中的配置修改成集群 B 的链接信息。
=1 initLimit=10 syncLimit=5 skipACL=yes maxClientCnxns=2000 4lw.commands.whitelist .3=172.16.20.120:2888:3888;0.0.0.0:2181 server.4=172.16.20.177:2888:3888;0.0.0.0:2181 server.5= -add 6=IP:2888:3888;0.0.0.0:2181 现在是由6个节点组成的集群(1个leader,5个follower) 修改pulsar配置,把pulsar配置中的zookeeper地址切换到新集群的节点上 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 .
简介 根据业务需求,存在以下场景: 迁移过程中,旧的集群可以暂时停止服务或者暂停写入,数据全部迁移到新的集群中后,业务切换到新的集群进行读取和写入 迁移过程中,旧集群不能停止写入,业务不能停服 如果是第一种场景 需要注意ES的版本问题: 目标ES集群的主版本号(如5.6.4中的5为主版本号)要大于等于源ES集群的主版本号; 1.x版本的集群创建的快照不能在5.x版本中恢复; 源ES集群中创建repository hdfs: 快照存放于hdfs中,以插件形式支持 cos: 快照存放于腾讯云COS对象存储中,以插件形式支持 如果需要从自建ES集群迁移至腾讯云的ES集群,可以直接使用fs类型仓库,注意需要在Elasticsearch lt": "now/m" } } } } POST _search/scroll { "scroll": "1m", "scroll_id": "DnF1ZXJ5VGhlbkZldGNoBQAAAAAAHCbaFndPR3J4bDJtVDh1bnNRaW5yYWZBWncAAAAAABwm2RZ3T0dyeGwybVQ4dW5zUWlucmFmQVp3AAAAAAAcJtwWd09HcnhsMm1UOHVuc1FpbnJhZkFadwAAAAAAHCbbFndPR3J4bDJtVDh1bnNRaW5yYWZBWncAAAAAABwm3RZ3T0dyeGwybVQ4dW5zUWlucmFmQVp3 add & update & delete 如果业务写入ES时既有新增(add)数据,又有更新(update)和删除(delete)数据,可以采用6.5之后商业版X-pack插件中的CCR功能进行数据迁移
在工作中可能会遇到这样的场景,即需要把一个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也根据实际情况勾选下。
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 f2ebf72a78f2637eead82c219f2fca737a36a371 ,其有 5461 个slots 192.168.1.92:7005 的runid为 99439ae72385633d3c9530a5e4f2afdca22a3e25 slots 5461 --yes 192.168.1.91:7001 将94的slots移动到91上 redis-trib.rb reshard --from 99439ae72385633d3c9530a5e4f2afdca22a3e25 上 redis-trib.rb reshard --from f2ebf72a78f2637eead82c219f2fca737a36a371 --to 99439ae72385633d3c9530a5e4f2afdca22a3e25
1.6.7-356.rhel6.x86_64 libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5. x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5. el6.x86_64 mysql-libs is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64 [root@slave02 src]# rpm ln: creating symbolic link `/usr/lib64/libmysqlclient_r.so': File exists 2:Percona-Server-client-5# ########################################## [ 67%] 3:Percona-Server-server-5#######################
1.6.7-356.rhel6.x86_64 libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5. x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-6.el6_5. el6.x86_64 mysql-libs is needed by (installed) postfix-2:2.6.6-6.el6_5.x86_64 [root@slave02 src]# rpm ln: creating symbolic link `/usr/lib64/libmysqlclient_r.so': File exists 2:Percona-Server-client-5# ########################################## [ 67%] 3:Percona-Server-server-5#######################
proxy_connect_timeout 2s; proxy_read_timeout 3s; proxy_send_timeout 5s
工作中有时会遇到需要把原Redis集群下线,迁移到另一个新的Redis集群的需求(如机房迁移,Redis上云等原因)。此时原Redis中的数据需要如何操作才可顺利迁移到一个新的Redis集群呢? 5. image.png Redis-Cluster迁移 方法一: 集群节点增删实现 方法1: 集群节点增删实现 把Redis新节点逐台加入当前集群,变成一个大的Redis集群。 若场景是希望原Redis集群暂时保留,即如下图,同时有两个独立的集群,则就无法使用迁移方法1。 如果目的端是集群模式,可以写入到一个结点,然后再进行slot的迁移,当然也可以多对多写入。 环境准备 本文进行Redis集群迁移测试,为了节约机器,目标集群复用了源Redis机器,只是修改了端口。