etcd v2 数据迁移至 v3 格式的 etcd 3.5 版本

目的

当前使用中的 etcd 集群版本为 3.1.10
使用中数据格式为 version 2
需要转换格式为 version3 并升级 etcd 至 3.5 版本

注意

官方文档中有提及, version 2 版本格式不支持直接升级至 3.2 以上
因此需要先从 3.1.X 版本中转换 etcd 数据格式为 version 3
然后从 3.1.x 通过 version3 备份恢复方法完成数据迁移

步骤

etcd 集群 3.1.10 数据备份
备份数据恢复至 3.1.20 版本
从 3.1.20 版本中备份 version 3 专用格式
把备份数据恢复至 etcd 3.5 单机版本
对 etcd 3.5 单机进行扩容至多个 etcd 服务器

信息

信息
etcd 3.1.20 配置 /apps/conf/etcd/etcd31.conf
etcd 3.1.20 文件 /apps/svr/etcd31
etcd 3.1.20 服务 /usr/lib/systemd/system/etcd31.service
etcd 3.1.20 数据目录 /apps/dat/etcd/v31
etcd 3.5 配置 /apps/conf/etcd/etcd35.conf
etcd 3.5 文件 /apps/svr/etcd35
etcd 3.5 服务 /usr/lib/systemd/system/etcd35.service
etcd 3.5 数据目录 /apps/dat/etcd/v35

备份 etcd 3.1.10 数据方法

/apps/dat/etcd/v31 使用中的集群的数据存放目录
/tmp/etcdbakcup 备份位置
建议对使用中的 etcd 集群抽其中一台进行停机备份,备份后再恢复服务

etcdctl backup --data-dir /apps/dat/etcd/v31 --backup-dir /tmp/etcdbakcup
tar cf etcdbackup.tar  /tmp/etcdbakcup
gzip etcdbackup.tar

备份数据恢复至 3.1.20 版本

配置 3.1.20

etcd31.conf 配置文件

ETCD_NAME="etcd1"
ETCD_DATA_DIR="/apps/dat/etcd/v31"
ETCD_LISTEN_PEER_URLS="http://ip1:2380"
ETCD_LISTEN_CLIENT_URLS="http://ip1:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://ip1:2380"
ETCD_INITIAL_CLUSTER_STATE="existing"
ETCD_INITIAL_CLUSTER="etcd1=http://ip1:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://ip1:2379"
CERT_FILE="/apps/conf/etcd/ssl/etcd.pem"
KEY_FILE="/apps/conf/etcd/ssl/etcd-key.pem"
PEER_CERT_FILE="/apps/conf/etcd/ssl/etcd.pem"
PEER_KEY_FILE="/apps/conf/etcd/ssl/etcd-key.pem"
TRUSTED_CA_FILE="/apps/conf/etcd/ssl/ca.pem"
PEER_TRUSTED_CA_FILE="/apps/conf/etcd/ssl/ca.pem"

etcd31.service 服务配置

[Unit]
Description=Etcd3 Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos/etcd
 
[Service]
Type=notify
WorkingDirectory=/apps/svr/etcd/
EnvironmentFile=-/apps/conf/etcd/etcd31.conf
ExecStart=/apps/svr/etcd/bin/etcd --name=${ETCD_NAME} \
    --data-dir ${ETCD_DATA_DIR} \
    --cert-file=${CERT_FILE} \
    --key-file=${KEY_FILE} \
    --peer-cert-file=${PEER_CERT_FILE} \
    --peer-key-file=${PEER_KEY_FILE} \
    --trusted-ca-file=${TRUSTED_CA_FILE} \
    --peer-trusted-ca-file=${PEER_TRUSTED_CA_FILE} \
    --listen-client-urls ${ETCD_LISTEN_CLIENT_URLS} \
    --initial-advertise-peer-urls ${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
    --listen-peer-urls  ${ETCD_LISTEN_PEER_URLS} \
    --advertise-client-urls ${ETCD_ADVERTISE_CLIENT_URLS} \
    --initial-cluster-token  etcd-skydns-cluster \
    --initial-cluster ${ETCD_INITIAL_CLUSTER} \
    --initial-cluster-state ${ETCD_INITIAL_CLUSTER_STATE} \
    --force-new-cluster    <-- 这里表示我用备份数据启动 etcd
Restart=on-failure
LimitNOFILE=65536
RestartSec=5
 
[Install]
WantedBy=multi-user.target

数据恢复至 3.1.20

tar xf etcdbackup.tar.gz
cp -r /tmp/etcdbackup/member /apps/dat/etcd/v31/.

数据导入至 etcd31 并支持 version3 格式

ETCDCTL_API=3 etcdctl migrate --data-dir=/apps/dat/etcd/v31/
using default transformer
2021-11-03 16:09:59.186875 I | etcdserver/api: enabled capabilities for version 3.1
2021-11-03 16:09:59.186987 I | etcdserver/membership: added member 47629d2104e01527 [http://old-cluster-etcd1:2380] to cluster 0 from store
2021-11-03 16:09:59.186997 I | etcdserver/membership: added member 958c7347bbd3d17d [http://old-cluster-etcd2:2380] to cluster 0 from store
2021-11-03 16:09:59.187003 I | etcdserver/membership: added member a159fda86b521a17 [http://old-cluster-etcd3:2380] to cluster 0 from store
2021-11-03 16:09:59.187011 I 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值