找回密码
 注册
查看: 477|回复: 1

SeaweedFS分布式文件系统配置

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-11-29 17:00:14 | 显示全部楼层 |阅读模式
下面介绍在CentOS系统下的SeaweedFS配置方法,演示主机操作系统为CentOS 7.6。本次演示使用5台服务器,1台主服务器(master),4台卷服务器(volume),在相同的机架上复制一份副本。使用Redis管理文件映射关系,Redis安装在主服务器(master)上。

& L' J8 h* G& U实现规划
主机名称
机架
IP地址
安装软件
开放端口
绑定域名
M1

! A8 w  Z" {$ ^: Q/ D( M0 Y+ z
***.100.100.49(公网)/ q  T3 }  J: h0 D  d
172.26.188.150(内网)
Redis(端口:6379 密码:asdbgt123456)
' Y3 ~  Z- j# OSeaweedFS的master服务
6379 (内网开放). j" D+ q6 e  F4 z5 ~
9333 (内网开放)/ N/ a8 d& A# w; H
19333 (内网开放)

! T- W+ S* \1 |7 N7 h; j
V1
rack1
***.92.29.143(公网)/ K  P/ b2 k4 X5 K) D& v
172.26.188.151(内网)
SeaweedFS的volume服务) M: D- S/ S3 F' O3 |2 r" ^- L  @- J
SeaweedFS的filer服务' d) f8 _( Q4 Y2 l
Nginx
80 (公网开放)! k2 {: T' {2 |4 }
7777 (只读端口,由Nginx将公网请求转发到此端口)
( h8 @( V; V& L: h" ]- T8080 (内网开放)
* }5 p' F9 H+ @% ?. G1 _8 o- Z4 Z3 o18080 (内网开放)
# }" O; W  D8 \8888 (内网开放)
: Z( s. n. U0 U: ~' r: b18888 (内网开放)
img1.diyhi.com
V2
rack1
***.100.150.81(公网)
$ R6 u2 @) n  A172.26.188.152(内网)
SeaweedFS的volume服务" o$ l5 L! ]1 A& i5 P
SeaweedFS的filer服务; d/ \- O! B& r, r# e, C" L
Nginx
80 (公网开放)$ e% L  I( Q1 b- Z: Z
7777 (只读端口,由Nginx将公网请求转发到此端口)
% R6 `/ K& S9 e' ?) A: [8080 (内网开放). M, K* N- z6 l3 g4 @
18080 (内网开放)4 F: _) r$ a7 {3 C& i
8888 (内网开放)
& }% C  c; l; N, w4 ?1 ]3 D18888 (内网开放)
img2.diyhi.com
V3
rack2
***.92.122.114(公网)/ a$ S) ^: D$ M6 Z/ X5 x1 |
172.26.188.153(内网)
SeaweedFS的volume服务
" M$ U- J% L; n+ Z# ySeaweedFS的filer服务3 n9 g5 f, c- d9 D' u
Nginx
80 (公网开放)
$ X! y2 ~. s6 \) A" P! e# Z' u5 w7777 (只读端口,由Nginx将公网请求转发到此端口)) u9 N6 c1 G) s- t; B0 n
8080 (内网开放)
% N, O4 W% d& u2 c& e( U7 v/ r18080 (内网开放)' V$ S* ^9 a5 ~& V4 M9 a
8888 (内网开放)
% `) e1 r' E0 o' o* F, E18888 (内网开放)
img3.diyhi.com
V4
rack2
***.100.154.197(公网)
2 `) H6 `/ y- c0 q1 M8 m1 H: ]+ @172.26.188.154(内网)
SeaweedFS的volume服务
6 T, K0 o# u9 }SeaweedFS的filer服务
# V2 X6 [: P" b& S5 O/ w' YNginx
80 (公网开放)( G8 r$ y2 A) S
7777 (只读端口,由Nginx将公网请求转发到此端口)2 j7 h- f. h: j  I. H
8080 (内网开放), M2 J0 j7 }, i( a/ g* N
18080 (内网开放)
0 R# c1 d3 ?8 O0 I4 w# a4 H8888 (内网开放)1 O" Q0 D$ g. l  g, @2 S& s* x7 b, q7 V
18888 (内网开放)
img4.diyhi.com
S1

- A4 L! w) V3 W
***.100.153.26(公网): q' S! ^/ ]/ Y  C$ {
172.26.188.155(内网)
JDK 1.8
' l8 `7 G% ~& m0 B/ W. vTomcat 8.5
, F4 `3 D5 F, q4 [MySQL 5.7( U8 \; J" x- X: t- W3 b
Nginx
80 (公网开放)
shop.diyhi.com

& T2 Z5 \: Y0 p6 S下载安装
1、打开SeaweedFS下载页面https://github.com/chrislusf/seaweedfs/releases 当前最新版本为1.41
2、下载对应当前系统版本的安装包,64位Linux适合linux_amd64.tar.gz
输入命令 wget https://github.com/chrislusf/sea ... /linux_amd64.tar.gz
3、创建目录
输入命令 mkdir /usr/local/seaweedfs/
4、解压到/usr/local/seaweedfs/
输入命令 tar zxvf linux_amd64.tar.gz -C /usr/local/seaweedfs/
5、进入目录/usr/local/seaweedfs/
输入命令 cd /usr/local/seaweedfs/
6、建立存储数据用的文件夹,若文件夹不存在启动volume时会出错
输入命令 mkdir /usr/local/seaweedfs/mdata
2 f! s, N$ c( _  z" n7 N; \输入命令 mkdir /usr/local/seaweedfs/data
' k: w% s3 |' k# F0 H& \7 C! {2 @# ?& v4 h% ?7 s& S3 Y0 b
master参数
cpuprofile
string
cpu配置文件输出文件
-defaultReplication
string
默认复制类型(如果未指定) (默认 "000")
! A( k: j' F: ?) u0 h000: 只存储一份,默认设置& d3 p6 s/ K4 W; k
001: 在相同的Rack复制一份
6 r6 ?. p7 t7 F, t: D, n010: 在同一DC的不同rack上复制一次& L, q2 H* O3 ^: N8 ]% i
100: 在不同的DC复制一次0 ~2 I7 ?, l  P4 t5 ]" f" ~
200: 在另外两个不同的DC上复制两次
5 B! C8 B5 \9 w5 P* N" L0 z! j% l110: 在不同的rack上复制一次,并在不同的DC上复制一次。
-disableHttp

* G$ j2 B+ K6 v/ G3 M& J8 T
禁用http请求,只允许gRPC操作。
-garbageThreshold
float
清空和回收空间的阈值 (默认 0.3)
-ip
string
指定ip地址 (默认 "localhost")
-ip.bind
string
要绑定的IP地址 (默认 "0.0.0.0")
-maxCpu
int
最大CPU数。 0表示可用所有CPU
-mdir
string
用于存储元数据的数据目录
-memprofile
string
内存配置文件输出文件
-peers
string
以逗号分隔的所有主(master)节点 ip:port 列表, 示例: 127.0.0.1:9093,127.0.0.1:9094
-port
int
http监听端口 (默认 9333)
-pulseSeconds
int
心跳之间的秒数 (默认 5)
-volumePreallocate
uint
预分配卷的磁盘空间
-volumeSizeLimitMB
uint
Master停止指向超大卷的写入 (默认 30000)
-whiteList
string
逗号分隔的Ip地址具有写入权限。 空的没有限制。
) o) ^) R5 a2 l7 A  z6 E
volume参数
-cpuprofile
string
输出cpu配置文件
-dataCenter
string
当前卷服务器的数据中心名称
-dir
string
用于存储数据文件的目录. dir[,dir]...
-idleTimeout
int
空闲连接时间 (默认 30)
-images.fix.orientation
+ F; c; ~( j- ?* G8 _
上传时调整jpg方向。
-index
string
内存模式[memory|leveldb|boltdb|btree]. (默认 "memory")
-ip
string
ip或服务器名称
-ip.bind
string
要绑定的IP地址 (默认 "0.0.0.0")
-max
string
最大卷(volume)个数 (默认 "7")
-maxCpu
int
最大cpu使用数,0为使用全部
-memprofile
string
输出内存配置文件
-mserver
string
逗号分隔的主(master)服务器 (默认 "localhost:9333")
-port
int
http监听端口 (默认 8080)
-port.public
string
可公开访问的端口
-publicUrl
string
可公开访问的地址
-pulseSeconds
string
master与volume的心跳间隔,心跳之间的秒数必须小于或等于主设备的设置(默认 5)
-rack
string
当前卷服务器的机架名称
-read.redirect

: k) Z; J. R9 S+ M  v) x
重定向移动或非本地卷。 (默认 true)
-whiteList
string
白名单 逗号分隔的Ip地址具有写入权限。 空的没有限制。(卷服务器上的白名单将在即将发布的版本中弃用。)

( e7 L. }/ y9 [+ |/ l/ Y- [) {
filer参数
-collection
string
所有数据都将存储在此集合中
-dataCenter
string
首选在此数据中心写入volumes
-defaultReplicaPlacement
string
默认复制类型(如果未指定) (默认 "000")! h* E' i. d6 ]) ?# `" x$ ^
000: 只存储一份,默认设置0 T0 v! c5 x' `1 P1 E+ T
001: 在相同的Rack复制一份
( j0 D( Y" T- Z4 g- t# U( H010: 在同一DC的不同rack上复制一次2 ^2 `/ k- T& V7 H/ d9 n' J
100: 在不同的DC复制一次
. x7 ~) m: M7 C% ]8 |200: 在另外两个不同的DC上复制两次! i* l7 |& u5 r+ q. z
110: 在不同的rack上复制一次,并在不同的DC上复制一次。
-dirListLimit
int
限制子目录列表大小 (默认 100000)
-disableDirListing

8 n3 g: z. j. a& c7 R
关闭目录列表
-disableHttp
6 I' X; E9 \8 p$ ^! k3 _9 t2 Y: @
禁用http请求,只允许gRpc操作
-ip
string
filer服务器http监听ip地址
-master
string
逗号分隔的主服务器 (默认 "localhost:9333")
-maxMB
int
分割大于限制的文件 (默认 32)
-port
int
文件服务器http监听端口 (默认 8888)
-port.grpc
int
Filer服务器的 grpc监听端口,默认为 http的端口+10000
-port.readonly
int
开放的公共只读端口
-redirectOnRead
6 h; ?+ s+ @0 m) u' Y! I
是否在文件GET请求期间代理或重定向到卷(volume)服务器

2 `2 X! f) ?1 e. E4 G- N. a- S3 Ngrpc端口
grpc端口为-port +10000 如果您使用“-port = 18081”启动卷(volume)服务器,则grpc端口为10000 + 18081 = 28081
, n: @+ C  g* S& M3 P; o默认的grpc端口:9 j# ]5 o+ F  }
主服务器(master) -- 默认http为 9333,grpc为 19333
! e* ?6 ?4 c9 ?, |9 H* S卷服务器(volume) -- 默认http为 8080,grpc为 18080% ?7 s2 @5 j! R9 v5 b' g
管理服务器(filer) -- 默认http为 8888,grpc为 18888
: w3 d# Q8 |1 ^' Q4 y; p

- w: Z" k. A1 f2 j4 C: {- m
# D) d/ A" r' d- d! q! r, s$ r& jIP地址" port protocol="tcp" port="端口号" accept'
# G; f: B' |. s3 ~* u#例如移除9333端口策略
( X4 `- P0 `4 b+ G" E, wfirewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.26.188.0/24" port protocol="tcp" port="9333" accept', U  h+ g/ }; t* A9 [5 d
输入命令 firewall-cmd --reload 执行完命令要刷新才能生效
, p, I' L: W: N5 J- R
  T: R. Q$ j* R; P1 e4 r. u' l
  Y- D% c( w" C- N

0 n9 ?* A* M0 A& wIP地址" port protocol="tcp" port="端口号" accept'
' ~2 \, g. G0 |8 |: k1 \#例如移除8080端口策略
1 A2 r4 S: o. l, Afirewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.26.188.0/24" port protocol="tcp" port="8080" accept'
8 X6 F* x: w) ?% V" x输入命令 firewall-cmd --reload 执行完命令要刷新才能生效
+ `4 ~6 T  g) M" e* o. i7 P; Q4 ]* ?
' T/ }) P% V8 j
1 j9 \" F8 ]3 H5 g8 r! I0 }) P
& l* F! L8 w1 M6 b
IP地址" port protocol="tcp" port="端口号" accept'9 w/ x* Z' J( n7 ?
#例如移除8080端口策略% C2 W' {- ~& t
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.26.188.0/24" port protocol="tcp" port="8080" accept'/ O! Q. {2 O% I# i  n! b/ b
输入命令 firewall-cmd --reload 执行完命令要刷新才能生效
) I; E% ~- d0 Y9 h* t3 z
: m. x" o. u1 i+ [9 ~

' ^8 L" o1 Z1 F  B' u  ~
$ _( }' Q) `) ^; v% A$ T, S卷服务(volume)配置 主机:V3...  ...- w; m! h: y! O# O6 x
...  ...
7 J( Y) K5 ?; M' |省略的教程和上面的主机V1,V2配置相同
: L. J' A! ~3 i...  ..." h+ \+ v% g, s/ Z+ n$ B
...  ...
( L: R# P* [( d7 m
3.配置开机启动卷服务(volume)脚本
A.增加seaweedfs-volume.service 在/usr/lib/systemd/system目录下增加seaweedfs-volume.service,目录必须是绝对目录
输入命令 cd /usr/lib/systemd/system
输入命令 vim seaweedfs-volume.service
B. 将下面的配置内容复制到seaweedfs-volume.service文件中。请按实际情况更改下面的IP地址。
[UnitDescription=SeaweedFS VolumeAfter=network.target[ServiceType=simpleUser=seaweedfsGroup=seaweedfsExecStart=/usr/local/seaweedfs/weed -v=0 volume -max=5 -mserver=172.26.188.150:9333 -ip=172.26.188.153 -port=8080 -dir=/usr/local/seaweedfs/data -dataCenter=dc1 -rack=rack2WorkingDirectory=/usr/local/seaweedfs/SyslogIdentifier=seaweedfs-volume[InstallWantedBy=multi-user.target复制
/ v+ D& v# U8 E& f' s
. w# N8 L7 j5 r# c( a% D( I' L" n0 `6 T
保存配置文件后执行systemctl daemon-reload命令刷新
输入命令 systemctl daemon-reload
注意:-max 参数为最大逻辑卷数量。例如硬盘可用空间为800G,则大约800/30 ≈ 26,最大可设置为26' T9 B; {' o7 z+ |& B* Y
...  ...' K9 k. ]1 k! A7 z3 n
...  ...3 p0 L0 s1 ~6 H4 D5 M3 ~
...  ..., \) A* w) E6 y0 j6 ~) c
配置Nginx转发请求
配置Nginx将80端口的请求转发到7777端口
server {   listen 80;   server_name _;   return 404;}server {    listen       80;    server_name  img3.diyhi.com;    location /{                #屏蔽目录                if ($uri !~ . ) {                        return 403;                }                proxy_set_header Host $host;                proxy_set_header X-Real-Ip $remote_addr;                proxy_set_header X-Forwarded-For $remote_addr;                proxy_pass $scheme://172.26.188.153:7777;     }}复制
0 H! s! m& R0 U+ `% C" d3 ]0 M  H5 x  M
2 A3 ^# [% {" T$ J( E# T

& u. E) H; I/ C" Y! B: k. x# |% O' X" [9 n+ D. P
...  ...3 g( _! M: V! `6 l
...  ...3 h$ v% b2 l; j% q
...  ...
2 o0 Z. P* D* t5 {2 w/ C% }) Y

; \! ?6 S- M  Z1 {6 x, h% m' j, x: r2 ^& ^( S* l5 R9 E

0 p  d; |/ h0 e2 \- A  L卷服务(volume)配置 主机:V4...  ...
. X8 F- N! f' ~5 N* D4 @% r( P6 x: C...  ...8 M) _# K) f4 R! i2 p+ g1 q
省略的教程和上面的主机V1,V2配置相同4 z# |" N! n% B* j$ ~& d+ d9 L
...  ...! O+ E6 |% ~/ K& d/ Q* f; t* i8 D7 n6 m8 b
...  ...% O% l' ^/ t* l
3.配置开机启动卷服务(volume)脚本
A.增加seaweedfs-volume.service 在/usr/lib/systemd/system目录下增加seaweedfs-volume.service,目录必须是绝对目录
输入命令 cd /usr/lib/systemd/system
输入命令 vim seaweedfs-volume.service
B. 将下面的配置内容复制到seaweedfs-volume.service文件中。请按实际情况更改下面的IP地址。
[UnitDescription=SeaweedFS VolumeAfter=network.target[ServiceType=simpleUser=seaweedfsGroup=seaweedfsExecStart=/usr/local/seaweedfs/weed -v=0 volume -max=5 -mserver=172.26.188.150:9333 -ip=172.26.188.154 -port=8080 -dir=/usr/local/seaweedfs/data -dataCenter=dc1 -rack=rack2WorkingDirectory=/usr/local/seaweedfs/SyslogIdentifier=seaweedfs-volume[InstallWantedBy=multi-user.target复制
# Y. I6 P( F4 k
8 `+ P" k8 ^. O2 H( X7 @" X
) l0 I: ~, T* ?6 J4 P
保存配置文件后执行systemctl daemon-reload命令刷新
输入命令 systemctl daemon-reload
注意:-max 参数为最大逻辑卷数量。例如硬盘可用空间为800G,则大约800/30 ≈ 26,最大可设置为26
+ v  d( z4 [! Z...  ...3 L0 v; u! ~# {* ~% T! ?% w) f) W
...  ...
/ s8 z; M$ W, x8 n5 n...  ...
" S# T. s. N- [8 H' k, P配置Nginx转发请求
配置Nginx将80端口的请求转发到7777端口
server {   listen 80;   server_name _;   return 404;}server {    listen       80;    server_name  img4.diyhi.com;    location /{                #屏蔽目录                if ($uri !~ . ) {                        return 403;                }                proxy_set_header Host $host;                proxy_set_header X-Real-Ip $remote_addr;                proxy_set_header X-Forwarded-For $remote_addr;                proxy_pass $scheme://172.26.188.154:7777;     }}复制2 }- z8 Z3 a0 d' J# \
- o( N* [) v0 c/ b
+ a( C8 S1 k! q' h
' x* O% Z: P2 Y! u

8 ?9 [3 C. j2 N) D; }4 W...  ...
8 t5 _) A. r9 `7 O+ {+ W...  ...
' g- h4 t# K5 X- `" m0 D$ I9 t" i...  ...
6 H. Q0 J$ P6 n8 U! l

9 h3 j2 f' e$ J. q5 Q" z4 ?  D4 C! {, {
9 j3 B8 J2 T1 R0 z
商城系统安装SeaweedFS配置参数
+ }" [. A1 v8 L/ A) Z
商城管理后台分布式文件系统状态图

8 b6 P5 k: N! e' ]# D% ?) a& V& S1 v+ Q$ p% v  k
备份逻辑卷(volume)
使用自带的backup命令可以创建备份,在一个磁盘空间充足的服务器上运行“weed backup”命令进行备份。假如我们要备份第5卷。
A、进入目录/usr/local/seaweedfs/
输入命令 cd /usr/local/seaweedfs/
B、建立存储数据用的文件夹
输入命令 mkdir /usr/local/seaweedfs/backup7 j# m4 n' r+ g/ o- P
C、执行备份命令
输入命令 ./weed backup -server=172.26.188.150:9333 -dir=/usr/local/seaweedfs/backup/ -volumeId=5+ X/ e4 x1 U1 O; G( a
远端不存在的volume ID也是可以运行的,但不会在本地创建任何文件,如果远端增加了此volume,则下次备份会进行同步
此命令不是服务,要想连续运行需要设置为定时任务,每次运行都会和本地卷比对一次,进行增量备份,备份多个volume可以用脚本遍历一定范围的volume(如1-100)
8 [! w; J$ B7 V! i
* h" v! s+ Q( e

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-8 08:50:27 | 显示全部楼层
那么我们就可以执行如下命令进行备份(注意替换自己的server即master地址和weed执行文件的位置)
7 H; {" D: ^/ p  m8 c/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=18 }/ ^- S. W- y! y. x9 Z
/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=2
6 ^$ b: ]( B8 v8 i... ...8 r/ C& L3 Y$ B6 m
/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=199+ O3 S9 k, k4 s- Q9 T
/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=200
但是我不可能写200行命令,所以可以参考下面我编写的shell命令,来执行备份(注意替换自己的server即master地址和weed执行文件的位置)3 v1 A$ c4 b) {+ N
#!/bin/bash- Z1 g2 Z7 {# U5 c
for i in $(seq 1 200)+ {& Q+ U& G; x5 d  u1 W
do
$ v; f. ?# g, ^* C /application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=$i) ]3 ?+ l2 _# n( L5 o  i4 }7 p
done
我们可以看下备份完成之后的备份文件大小【193G】
如果filer使用了store,那么还需要备份下数据库,数据库的备份根据各种数据库类型备份不同,这里就不赘述了。
Async Backup 方式
详情可以通过官方wiki的解决来看下,下面我就我的理解与操作进行演示说明
这里使用的是weed filer.backup的方式进行备份的,这个命令在2.30版本之后才开始有的。
可以通过help查看一下帮助文档
首先我们要通过scaffold获取标准的replication.toml
weed scaffold -config=replication
2 g9 C8 b5 L$ A+ N# t
现在次备份支持两种模式,一种是与filer同目录的,增量备份,一种是修改的单独文件夹。看下官方的说明。
我这里使用的增量模式,也就是第一种,所以配置is_incremental为true,部分有效代码如下
[source.filer]
( a+ _# I& O& ?9 _/ b. N  P+ Wenabled = true- u' H& |. w- z3 P; L  ^
grpcAddress = "localhost:18888"; H! h8 ?' z) z
# all files under this directory tree are replicated.' M$ R0 U2 p% Q2 L6 y
# this is not a directory on your hard drive, but on your filer.
! C& V& ~3 w+ F3 @7 x# i.e., all files with this "prefix" are sent to notification message queue.5 ?6 v" c1 Q2 C! E' c4 j3 N6 w; B
directory = "/buckets"% P, f9 x! Q8 B1 n
[sink.local]
1 `. @8 t+ z4 n, v9 wenabled = true
" Z6 Y) p& u. G/ P- x. @directory = "/backup/cdn_backup"- B+ q0 Q  m$ z6 I" k( A$ j
# all replicated files are under modified time as yyyy-mm-dd directories2 e( t/ m3 q" g* ^) U3 ^& W
# so each date directory contains all new and updated files.4 ^7 L. a" W$ _+ z7 U6 Q
is_incremental = true6 ?0 q) w( E3 |
配置文件中的source.filer中虽然已经配置了directory,但也可以在执行命令的时候进行配置,如下所示
PS:这里我执行是在与replication.toml同文件夹下进行执行的,你可以可以根据seaweedfs的官方说明,放到指定的位置./replication.toml、$HOME/.seaweedfs/replication.toml、/etc/seaweedfs/replication.toml。
% x0 y1 j7 o8 v" V$ Y./weed filer.backup --filerPath /buckets/img1
此命令是连续的,也就是实时监控变化,如果你不自动终止,他会一直运行(可以做成service)
此备份方法是备份的源文件,所以不需要备份数据库。
我们看下备份之后的文件夹大下【44G】
两种差异分析
Data backup的方式比Async backup的方式数据差额很大,当前我的测试数据相差【149G】,对于我来说这些空间已经很奢侈了。
但是我们可以增加一个参数查看下占用的空间
可以看到有好多是31G的,但是我们实际的使用并没有达到这个值,原因是因为在启动master的时候,我们默认了volumePreallocate,这个参数会预分配空间,所以致使如此的结果。
那如果我把Data Backup的备份文件使用ZIP普通压缩下(大文件的压缩,数据量小,层级少,一般情况下压缩比较快),可以看到文件的大小是【13G】,这比源文件备份是要小很多的。(当然源文件备份对于删除的在备份的文件下是不会删除的,但是我当前的测试是没有删除的文件的)
那既然这样,我们再把Aysnc backup的结果再压缩下(小文件的压缩,数据量大,层级多,一般情况下压缩比较慢),保证其对比基础是一样的。
从下图可以看到,经过漫长的压缩之后,体积依旧还是【44G】
归纳总结
从上面分析可以看出,第一种方式的压缩之后的占用还是比较小的,而且压缩速度也非常的快,在这之前也可以使用master的volumePreallocate配置不预留空间,这样备份的文件也是小的,压缩之后的文件也是小的。
这种方式需要备份数据库,并且如果要还原的话,需要有相同的环境,包括weed的运行环境以及相关的配置文件及配置文件依赖的各种key。
第二种方法是把所有的文件都存储到本地,即使后续没有weed的环境,也可以查询到相关的文件,但是因为文件的数量比较多,所以备份的速度非常慢,后续越多越慢。
但是第二种可以用增量的方式进行备份,即第一次的时候比较慢,但后续可以通过只备份压缩增量的减少压缩的时间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 02:06 , Processed in 0.042891 second(s), 32 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表