Repository navigation
Releases
Releases · MiYui34/MirrorUP
v0.6.4
修复
- 跨机同步速度:此前每个文件都新建一条 TCP 连接,下载完还要再发一次
/v1/stat复核,几万个小文件时光是握手就要几个小时。现在每个线程复用一条 keep-alive 连接,连接被对端关掉时自动换新重试。 sync.concurrency默认从 4 提到 8(跨机高延迟链路可以调到 16)。- 新增
source.agent.verify_copy(默认true):设为false时不再对每个文件发复核请求,省掉一半往返;代价是文件在传输途中被改写时可能要到下一轮才发现。
Fix
- Cross-machine throughput: every file used to open a new TCP connection, plus a second
/v1/statrequest to verify the download — tens of thousands of small files spent hours in handshakes. Each worker thread now reuses one keep-alive connection and reconnects transparently when the peer closes it. sync.concurrencydefaults to 8 (raise to 16 on high-latency links).- New
source.agent.verify_copy(defaulttrue): set it tofalseto skip the per-file verification round trip.
v0.6.3
修复
- 以
role: "exporter"加载插件时,agent 绑定端口会走HTTPServer.server_bind(),其中socket.getfqdn()的反向 DNS 查询在 macOS 上可能阻塞十几秒,触发 MCDR 的TaskExecutor 线程已经 10 秒没有响应警告。现在改为直接绑定,不再做反向解析。
Fix
- Binding the exporter port no longer performs a reverse DNS lookup (
socket.getfqdn()), which could block for seconds on macOS and trigger MCDR's watchdog warning (TaskExecutor has not responded for 10 seconds).
v0.6.2
修复 !!MCDR plugin install mirror_up 仍然报 Invalid chat component: Illegal character in path 的问题。
0.6.1 只改了 mcdreforged.plugin.json 的
equirements 字段,但插件库生成依赖列表时读的是仓库里的
equirements.txt,所以安装提示里仍然是 xxhash>=3.0。0.6.2 把
equirements.txt 也改成不带版本约束的 xxhash。
功能与 0.6.1 相同。
v0.6.1
v0.6.0
MirrorUP v0.6.0
新增「就地同步」:在哪个服务器执行 !!mu sync,就同步哪个服务器(mirror_control.adapter: "self")。
新增
self停服适配器:停掉插件所在 MCDR 管理的服务端,写完后自动拉起;没有变更时完全不碰服务器。.mcc外置 chunk 增量:外置容器的 region 只搬迁占位记录,内容按普通文件增量同步;不再被引用的.mcc自动清理。- 跨机
agent传输:主服以只读 HTTP 提供数据(Bearer token,可选 TLS 证书固定),镜像侧不必挂载主服目录。 rcon/external自动停服:停不下来就拒绝写入。- 多镜像目标:一份源、多个镜像目录,每个目标可以有独立的停服方式。
!!mu verify/!!mu history:核对源/镜像/索引三方一致(--deep比哈希),查看每轮结果。- 定时同步:间隔 60 秒 ~ 7 天。
安装
- 把
MirrorUP-v0.6.0.mcdr放进 MCDR 的plugins/目录。 pip install xxhash(MCDR 只校验依赖,不会自动安装)。- 重启 MCDR,首次加载生成
config/mirror_up/config.json。
需要 MCDR ≥ 2.12.0、Python ≥ 3.9。