找回密码
 注册
查看: 482|回复: 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)上。

  E- G+ E! E5 i9 I实现规划
主机名称
机架
IP地址
安装软件
开放端口
绑定域名
M1

0 g% a/ l) W8 Z5 M2 F
***.100.100.49(公网)
! E; I5 i8 n, _0 y172.26.188.150(内网)
Redis(端口:6379 密码:asdbgt123456)6 U5 {) S, ~% E, R
SeaweedFS的master服务
6379 (内网开放)6 W- a" y1 }6 n' [: M' k4 B
9333 (内网开放)
2 p) h5 w; F; n9 a: F19333 (内网开放)
7 o) m8 I! E2 [0 G% J
V1
rack1
***.92.29.143(公网)2 F, G3 Q, w5 K4 b# l$ j6 K( }
172.26.188.151(内网)
SeaweedFS的volume服务
- n& F: S, n. Z; g4 a& `SeaweedFS的filer服务1 P$ L6 B' g% Y& H& t1 |
Nginx
80 (公网开放)0 p! S# W% R9 G/ p- X
7777 (只读端口,由Nginx将公网请求转发到此端口)4 [; |) {& h: ?# }( C1 P& z2 ~
8080 (内网开放)1 \& W! Y7 n! C
18080 (内网开放)
: g( W8 g6 B0 c' _, _/ w8888 (内网开放)/ C- ^5 w7 S( j3 }7 F
18888 (内网开放)
img1.diyhi.com
V2
rack1
***.100.150.81(公网); v# ?. E% e7 y; |) {) c' ]
172.26.188.152(内网)
SeaweedFS的volume服务1 ?. z% ^0 W9 f) K- I3 N# [) M. r
SeaweedFS的filer服务
0 w& a& M) u3 A% y3 mNginx
80 (公网开放)
2 R% n4 t# F" ]7777 (只读端口,由Nginx将公网请求转发到此端口)+ h0 s% Q/ T" o' x  o  A
8080 (内网开放)6 h3 r0 T! g. N3 @) u' L( K- k
18080 (内网开放)7 c2 e+ s, M$ q$ S
8888 (内网开放)9 B, [. X# w) X" @# [
18888 (内网开放)
img2.diyhi.com
V3
rack2
***.92.122.114(公网)
0 a) U. A/ n* _  N172.26.188.153(内网)
SeaweedFS的volume服务9 P- T) `% r# g$ A
SeaweedFS的filer服务
9 J/ r4 C$ y1 s) z; ~Nginx
80 (公网开放)9 a9 u! g0 ]! J+ N; C" K
7777 (只读端口,由Nginx将公网请求转发到此端口): j( ?" G, b# D$ K$ l- C! D
8080 (内网开放)
% A; O- A7 w7 n6 o, |18080 (内网开放)
8 F% _+ T- L' _( T8888 (内网开放)
$ \& e/ G  `7 @# ^. y# H18888 (内网开放)
img3.diyhi.com
V4
rack2
***.100.154.197(公网); J% v6 h( P+ w9 W4 ~8 h) X$ A
172.26.188.154(内网)
SeaweedFS的volume服务
- u* i3 K! _4 D6 T% L' k$ lSeaweedFS的filer服务
1 m* v7 H8 [) e1 g. _Nginx
80 (公网开放)' @$ ]) G  @! S
7777 (只读端口,由Nginx将公网请求转发到此端口)
/ H& k  V) q' c, S% G5 T8080 (内网开放)
4 s- t! D' t  ]/ T% t6 L7 A# n18080 (内网开放)2 c2 I  N$ K* \; M; s- S# S: v
8888 (内网开放)$ P" Y. \$ j: n. [6 d9 F$ s  d
18888 (内网开放)
img4.diyhi.com
S1

8 N2 J6 ]3 ~0 D1 A! I4 ~
***.100.153.26(公网); n+ W( c7 \6 c( |& {$ ~4 S* V
172.26.188.155(内网)
JDK 1.8
; A) ^1 A6 s( i, D, U) Q) C2 aTomcat 8.5
4 Y, }* H& o( ^/ p5 lMySQL 5.7
4 J; {2 }5 H" w; W0 d* UNginx
80 (公网开放)
shop.diyhi.com

" C3 M! a3 z- C+ u" d1 W  M下载安装
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/mdata1 V4 e( n/ p8 y+ \
输入命令 mkdir /usr/local/seaweedfs/data
) \1 ~5 }4 H& r, C; S, Q$ \) C/ Y4 x* E+ y; |3 q# G( i
master参数
cpuprofile
string
cpu配置文件输出文件
-defaultReplication
string
默认复制类型(如果未指定) (默认 "000")
0 l+ n$ `- x( ^( R, Z000: 只存储一份,默认设置
$ [1 l. k3 @0 }" Y& L001: 在相同的Rack复制一份5 `: W" i, x$ f/ Q8 X8 o
010: 在同一DC的不同rack上复制一次7 U; M, r" U0 z+ e
100: 在不同的DC复制一次
6 @* E! `% @  X8 ~0 k200: 在另外两个不同的DC上复制两次
+ o2 r) P$ k8 u0 I; _110: 在不同的rack上复制一次,并在不同的DC上复制一次。
-disableHttp

+ }; Z0 ~! ?  z
禁用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地址具有写入权限。 空的没有限制。
- q) L% S* h- H" l) V
volume参数
-cpuprofile
string
输出cpu配置文件
-dataCenter
string
当前卷服务器的数据中心名称
-dir
string
用于存储数据文件的目录. dir[,dir]...
-idleTimeout
int
空闲连接时间 (默认 30)
-images.fix.orientation

8 U- q7 y3 c2 |
上传时调整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

+ S! K8 J4 `. j  u/ [( q
重定向移动或非本地卷。 (默认 true)
-whiteList
string
白名单 逗号分隔的Ip地址具有写入权限。 空的没有限制。(卷服务器上的白名单将在即将发布的版本中弃用。)

/ |  c% C: V- i4 T* d
filer参数
-collection
string
所有数据都将存储在此集合中
-dataCenter
string
首选在此数据中心写入volumes
-defaultReplicaPlacement
string
默认复制类型(如果未指定) (默认 "000")3 I( S+ l" |5 X6 L: w/ z
000: 只存储一份,默认设置
) m' }4 d- h! G5 t001: 在相同的Rack复制一份
4 l$ l8 N) Z" V$ ?% _, L. X! y* m010: 在同一DC的不同rack上复制一次7 k2 Y. `$ v" k9 [$ `. [) N
100: 在不同的DC复制一次, T; l  R+ o$ i( x
200: 在另外两个不同的DC上复制两次
8 z5 K) I6 Y2 W  T110: 在不同的rack上复制一次,并在不同的DC上复制一次。
-dirListLimit
int
限制子目录列表大小 (默认 100000)
-disableDirListing
2 F0 }2 e' ?/ _5 [
关闭目录列表
-disableHttp

8 }- }/ ^$ f6 g$ Y, a' y9 T" E
禁用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 ^8 f+ v* f; C# G0 I! c9 @2 b
是否在文件GET请求期间代理或重定向到卷(volume)服务器
3 x" b- b1 O. @+ {6 o; H' F1 M
grpc端口
grpc端口为-port +10000 如果您使用“-port = 18081”启动卷(volume)服务器,则grpc端口为10000 + 18081 = 280819 D) B* T0 S  f7 x
默认的grpc端口:8 C; a. V; J$ ^" a# ]4 I
主服务器(master) -- 默认http为 9333,grpc为 19333
( G  @# g, `+ R卷服务器(volume) -- 默认http为 8080,grpc为 180801 ?* R7 P$ x/ e& A1 J
管理服务器(filer) -- 默认http为 8888,grpc为 18888# ~7 T; g# c8 w4 J
; J/ y1 P; Z# V6 ]/ A1 C; l
9 \: i' M0 c1 w# q! K& y0 v0 B3 J
IP地址" port protocol="tcp" port="端口号" accept', \) V1 c3 A$ r4 k. u7 T$ z9 I
#例如移除9333端口策略& e4 w* I0 E' j" @! s, \
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.26.188.0/24" port protocol="tcp" port="9333" accept'
4 P) H- k* }- c* p( m; H/ o+ _' w输入命令 firewall-cmd --reload 执行完命令要刷新才能生效
* c) v/ i6 v) P- C1 ]
3 `. B* y! T# |4 r: ]7 D; n8 X9 o

8 T5 H9 f0 X% |/ Q* _: m  ^  Y0 B+ U5 B+ Y7 d8 M
IP地址" port protocol="tcp" port="端口号" accept'
: c$ [. _" X* @5 r8 _" h$ G#例如移除8080端口策略
+ x0 ~3 M9 u7 r* R+ T# G1 ^firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.26.188.0/24" port protocol="tcp" port="8080" accept'
3 v" y. N4 O1 y9 y' U$ k& r输入命令 firewall-cmd --reload 执行完命令要刷新才能生效, ]. R9 Q& N  u: ^; b; g
  w( [" W" G2 y5 I

) l1 c- ^0 v1 }3 w* w: E8 [* S4 E4 Z
IP地址" port protocol="tcp" port="端口号" accept'
& @' \- W, L! _) Q& _#例如移除8080端口策略% [; e8 a9 m  F0 |0 l
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="172.26.188.0/24" port protocol="tcp" port="8080" accept'" s1 O% f9 s" U' S+ a: F
输入命令 firewall-cmd --reload 执行完命令要刷新才能生效
; [/ J7 w. j$ X; O) o  @# M

2 K; K( [  L/ n8 x
) w. E2 j3 V! e$ k7 X5 }! T' g
- i5 i+ `+ U! |8 q4 a卷服务(volume)配置 主机:V3...  ...( {, C" F7 W9 Z' E) I' J+ C& o
...  ...3 s1 m* e% v" W" M
省略的教程和上面的主机V1,V2配置相同
# Z( w4 }8 B2 u9 K; g1 b...  ...
1 g: j# N; j+ s( _. e& K0 P...  ...
4 e8 ~6 _8 J& [8 @9 l4 J
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复制
+ j5 A  M9 j2 M5 d7 L  Q1 ^$ Z( q2 G1 q& Q5 s9 y

9 M5 @+ x7 j5 {* J5 A
保存配置文件后执行systemctl daemon-reload命令刷新
输入命令 systemctl daemon-reload
注意:-max 参数为最大逻辑卷数量。例如硬盘可用空间为800G,则大约800/30 ≈ 26,最大可设置为26
6 M* `! R. R+ M/ i...  ...
: N" O8 l( W+ }8 G...  ...
* x3 f' M6 v3 W& b, W. f...  ...3 c7 @, z' a" {( A% e* I, T% ]) c% x
配置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;     }}复制
8 u3 i  H  X3 w0 f+ W$ j
$ X; ?7 H/ L  h5 k4 v: \% D! M) Z( o5 E! `: k4 D
5 Y2 B: x& f- v  F/ k' ^

8 C% `+ p* k+ W1 Y9 c...  ...( K. L0 S; i, g0 e. z+ z. @
...  ...9 p. U+ R( d8 G2 B
...  ...3 x: I; O0 _( H; `
( h& _; z2 p0 V% q
2 V8 e- o# L; Q% f2 y

7 @0 U$ {4 |9 U- e- t卷服务(volume)配置 主机:V4...  ...
& N  \% G1 q% p% h+ H...  ...
, U$ d5 y/ z! C$ k* ]省略的教程和上面的主机V1,V2配置相同" _8 t; S8 M  B) F7 c
...  ...
* I5 Y0 ^4 }, O/ |. N...  ...
. ]1 a6 R  ]9 A
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复制4 q- z2 [% S7 s7 }

! n7 `, X* l" H' {* y% E
/ m  Q! a5 T* V5 i6 S) e
保存配置文件后执行systemctl daemon-reload命令刷新
输入命令 systemctl daemon-reload
注意:-max 参数为最大逻辑卷数量。例如硬盘可用空间为800G,则大约800/30 ≈ 26,最大可设置为26- c9 h$ z3 S. n: R3 X
...  ...
6 S  g- t% A$ Q/ q; F/ f...  ...- f6 S" ~; C2 ?( h. s/ O
...  ...& V( t2 I6 V& ~- e6 c
配置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;     }}复制
4 W. C5 g. w( a6 W6 e- v4 H* Y0 j
9 V$ [% c. I1 M. q0 ?% I
! J! {, C% _* h
/ E. S' f1 O- U7 x" C9 n" t- j8 p, P. }0 o. B
...  ...
# b6 }! Y, v8 k% |...  ...) A( n; I9 a0 D  h# _
...  ...+ ~& Y0 \3 o; v% f( u0 L! ?( b( x( Z

# J  z/ w8 W2 @# U( a
4 n- b: k# I5 I2 S5 H; z3 F
8 B) S. z# F1 n9 R5 g$ o1 j8 r商城系统安装SeaweedFS配置参数4 g9 _4 n7 k- c8 r( s- J( O# G3 i4 y
商城管理后台分布式文件系统状态图

8 m. _0 Q9 r( q# c6 ]1 l# l8 e% ?) p+ C# x% x/ Q/ m5 P! z" C( s  j  U( B
备份逻辑卷(volume)
使用自带的backup命令可以创建备份,在一个磁盘空间充足的服务器上运行“weed backup”命令进行备份。假如我们要备份第5卷。
A、进入目录/usr/local/seaweedfs/
输入命令 cd /usr/local/seaweedfs/
B、建立存储数据用的文件夹
输入命令 mkdir /usr/local/seaweedfs/backup4 y# {! G0 C1 T+ R' h$ d0 l
C、执行备份命令
输入命令 ./weed backup -server=172.26.188.150:9333 -dir=/usr/local/seaweedfs/backup/ -volumeId=57 u7 a2 z% B$ q/ b' L% n
远端不存在的volume ID也是可以运行的,但不会在本地创建任何文件,如果远端增加了此volume,则下次备份会进行同步
此命令不是服务,要想连续运行需要设置为定时任务,每次运行都会和本地卷比对一次,进行增量备份,备份多个volume可以用脚本遍历一定范围的volume(如1-100)
, }8 I8 g: D3 j5 R1 r& `: r
8 m2 Q% k) K* S! j. v; `( D

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-8 08:50:27 | 显示全部楼层
那么我们就可以执行如下命令进行备份(注意替换自己的server即master地址和weed执行文件的位置)8 I1 b+ u: J, z  a! g
/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=1: X; |+ `' X' p, G
/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=2
# J+ @/ w$ I6 B; g- z... ...; @6 n/ H( V. C; z) F6 O4 x4 J
/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=199
4 z( b7 O& p0 [/application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=200
但是我不可能写200行命令,所以可以参考下面我编写的shell命令,来执行备份(注意替换自己的server即master地址和weed执行文件的位置)
* t0 R1 b  d9 q- r/ }5 M$ g  k#!/bin/bash. L4 h+ w. _! J+ i5 g: d1 w, @5 n
for i in $(seq 1 200): o; Q) R+ ?/ J
do
- E  h( J( }5 c; j* T /application/seaweedfs/weed backup -server=127.0.0.1:9333 -dir /datahub/test -volumeId=$i5 u9 O& o/ S  y  D6 s9 ]- @3 @+ {3 `
done
我们可以看下备份完成之后的备份文件大小【193G】
如果filer使用了store,那么还需要备份下数据库,数据库的备份根据各种数据库类型备份不同,这里就不赘述了。
Async Backup 方式
详情可以通过官方wiki的解决来看下,下面我就我的理解与操作进行演示说明
这里使用的是weed filer.backup的方式进行备份的,这个命令在2.30版本之后才开始有的。
可以通过help查看一下帮助文档
首先我们要通过scaffold获取标准的replication.toml
weed scaffold -config=replication
+ L: t& X0 J0 b1 E2 b! u% A* |% F
现在次备份支持两种模式,一种是与filer同目录的,增量备份,一种是修改的单独文件夹。看下官方的说明。
我这里使用的增量模式,也就是第一种,所以配置is_incremental为true,部分有效代码如下
[source.filer]' x  K1 h! {) T. o( d6 C
enabled = true0 q+ W) H6 m7 A
grpcAddress = "localhost:18888". N2 U/ o5 @' N7 v) n% C0 e
# all files under this directory tree are replicated.1 I, G' B6 L5 _6 V0 j; P
# this is not a directory on your hard drive, but on your filer.
' q" l& C0 Y$ b" P! a/ h. S# i.e., all files with this "prefix" are sent to notification message queue.8 N5 n* ^% c7 Z# A5 r6 T
directory = "/buckets"! h$ |8 z0 c/ U; B
[sink.local]
5 E+ h- h% J$ Y/ uenabled = true* v2 S$ L1 u! @! G6 f
directory = "/backup/cdn_backup"6 J2 S. I7 n5 {8 c
# all replicated files are under modified time as yyyy-mm-dd directories( t" ^; k8 n, L2 f
# so each date directory contains all new and updated files.
$ H! O8 I, y: A: I# {is_incremental = true1 y% \6 g+ Q. M1 K+ I% G. u0 [. @% t
配置文件中的source.filer中虽然已经配置了directory,但也可以在执行命令的时候进行配置,如下所示
PS:这里我执行是在与replication.toml同文件夹下进行执行的,你可以可以根据seaweedfs的官方说明,放到指定的位置./replication.toml、$HOME/.seaweedfs/replication.toml、/etc/seaweedfs/replication.toml。3 X0 N1 W1 e7 F7 b* u
./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 04:22 , Processed in 0.042985 second(s), 29 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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