??Velero和etcd都是用于备份和恢复的工具,但它们的应用场景和备份对象有所不同。
??综上所述,Velero主要用于备份和恢复Kubernetes集群中的应用和资源对象,而etcd快照备份则专注于备份和恢复etcd存储的数据。Velero提供了更全面的备份和恢复功能,适用于整个Kubernetes集群的备份和恢复操作,而etcd的快照备份则更专注于etcd数据的备份和恢复,用于保护etcd存储的数据的完整性和可用性。在使用时,可以根据具体需求选择合适的工具进行备份和恢复操作。
Velero和etcd备份在Kubernetes环境中有不同的应用场景:
综上所述,
在Kubernetes备份方面,Velero和etcd有以下区别:
??综上所述,Velero和etcd在Kubernetes备份方面有不同的应用和重点。Velero用于备份和恢复整个Kubernetes集群中的资源对象,而etcd备份主要用于保护etcd存储的数据的完整性和可用性。根据具体的备份需求,可以选择合适的工具来进行备份和恢复操作。通常情况下,使用Velero进行整个Kubernetes集群的备份,同时使用etcd的备份功能来保护etcd数据的安全和可用性。
??默认情况下,velero backup create 为任何持久卷制作磁盘快照。您可以通过指定额外的标志来调整快照。运行 velero backup create --help 以查看可用标志。可以使用选项禁用快照 --snapshot-volumes=false。
??在使用 Velero 进行 Kubernetes 集群备份时,如果集群发生变化(例如添加、删除或修改了资源),可能会导致一些问题。这些问题可能包括以下情况:
??为了避免这些情况,建议在进行 Velero 备份之前,确保集群处于稳定状态,并且没有进行重大的更改操作。此外,您还可以定期备份以确保数据的完整性,并测试备份的恢复过程以验证其可靠性。
??另外,值得注意的是,Velero 本身提供了一些机制来处理某些变化,例如通过标签选择器来排除或包含特定的资源。您可以根据自己的需求和情况,使用 Velero 提供的选项来管理备份和恢复过程中的变化。
??Velero 备份 PV 的过程是通过创建 PV 快照(Snapshot)来实现的。快照是 PV 数据的一个静态副本,用于后续的恢复操作。但是,快照只会捕获创建时刻的 PV 数据状态,并不会实时跟踪 PV 数据的变化。
??如果在快照创建后,PV 中的数据发生了变化,例如文件被修改、删除或添加,那么在使用 Velero 进行恢复时,恢复的 PV 数据将不包含这些变化的内容。恢复的 PV 数据将与创建快照时的状态相同,可能导致数据不一致性的问题。
??为了避免这种情况,建议在进行 Velero 备份之前,确保 PV 中的数据是一致的,并且没有进行重大的更改操作。如果您需要备份实时更新的 PV 数据,可以考虑使用其他工具或方法,如数据同步工具(如 rsync)或数据库备份工具,来定期备份 PV 中的数据。
??另外,注意 Velero 也提供了一些选项来处理 PV 数据的变化,例如通过使用 Velero 插件或钩子来在备份和恢复期间处理数据的一致性。您可以根据自己的需求和情况,使用 Velero 提供的功能来管理 PV 数据的备份和恢复过程中的变化。
??默认情况下,Velero 执行非破坏性恢复,这意味着它不会删除目标集群上的任何数据。如果备份中的资源已存在于目标集群中,Velero 将跳过该资源。您可以将 Velero 配置为使用更新策略,而不是使用 --existing-resource-policy 恢复标志。当此标志设置为 时 update,Velero 将尝试更新目标集群中的现有资源以匹配备份中的资源。
??具体操作参考:K8S集群etcd备份与恢复
??在 Kubernetes (K8s) 中,etcd 是用于存储集群配置和状态的关键组件。进行 etcd 备份和恢复的过程如下:
??请注意,进行 etcd 备份和恢复时需要小心操作,确保备份文件的完整性和一致性,并在恢复之前备份现有的数据以防止数据丢失。此外,etcd 的版本和配置也可能会影响备份和恢复的具体步骤,请参考官方文档或相关资源以获取更详细的信息。
minio在这里是用来保存velero的备份数据,如果你有其它对象存储服务,也可以用它们来替换minio。minio官网:https://min.io/ ?minio中文网站:http://www.minio.org.cn/
在群辉中部署minio:
# 可参考 https://docs.min.io/docs/minio-docker-quickstart-guide.html
version: '3'
services:
minio:
image: minio/minio:latest
container_name: minio
restart: unless-stopped
volumes:
- "./minio/data:/data"
- "./minio/minio:/minio"
- "./minio/config:/root/.minio"
environment:
TZ: Asia/Shanghai
LANG: en_US.UTF-8
MINIO_PROMETHEUS_AUTH_TYPE: "public"
MINIO_ACCESS_KEY: "root" # 登录账号
MINIO_SECRET_KEY: "password" # 登录密码
command: server /data --console-address ":9090" --address ":9000"
ports: # 映射端口
- "9000:9000" # 文件上传&预览端口
- "9090:9090" # 控制台访问端口
velero版本和k8s版本关系
高版本velerov12.3出现上述问题,原因是参数名称改变了参考https://github.com/vmware-tanzu/velero/issues/7123,https://github.com/vmware-tanzu/velero/releases/v1.10.0版本一下参数变更:
此处小编将velero版本换为1.9.3,重新执行如下
下载:https://github.com/vmware-tanzu/velero/releases
- amd64(也称为x86-64或x64)是基于Intel和AMD的64位x86架构,它是目前最常见和广泛使用的桌面和服务器处理器架构。
- arm64(也称为AArch64)是基于ARM架构的64位处理器架构,主要用于移动设备、嵌入式系统和服务器领域。
wget https://github.com/vmware-tanzu/velero/releases/download/v1.12.3/velero-v1.12.3-linux-amd64.tar.gz
tar -xvf velero-v1.12.3-linux-amd64.tar.gz
# 也可不用将velero移动,后续在解压目录执行
cp velero /usr/local/bin/
# 验证是否安装成功
velero version
# 运行该命令会有部分错误信息,该错误可能是由于Velero服务器未正确安装或配置导致的。确保Velero服务器已成功安装到Kubernetes集群中,并且已正确配置和运行。
创建Velero和minio的凭证
# 使用下述命令创建凭证文件
cat > credentials-velero << eof
[default]
aws_access_key_id = root
aws_secret_access_key = password
eof
# 查看创建文件路径,安装velero会用到
[root@ksmaster21 velero]# pwd
/opt/software/velero
# 凭证路径为/opt/software/velero/credentials-velero
aws_access_key_id和aws_secret_access_key
为安装minio是配置的账号密码,分别对应MINIO_ACCESS_KEY和MINIO_SECRET_KEY
aws插件与velero版本对应关系:https://github.com/vmware-tanzu/velero-plugin-for-aws
velero版本换为1.9.3,velero/velero-plugin-for-aws版本v1.5.5
# https://zhuanlan.zhihu.com/p/557868296
velero install \
--provider aws \
--bucket ks-data \
--use-restic \
--secret-file /opt/software/credentials-velero \
--use-volume-snapshots=false \
--plugins velero/velero-plugin-for-aws:v1.5.5 \
--backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://192.168.31.3:9000
# 指定命名空间默认velero
--namespace velero \
# 尝试执行添加如下内容
--dry-run -o yaml > velero.yaml
这是一个用于安装Velero并配置AWS作为备份提供商的命令。下面是对每个选项的解释:
- –provider aws: 指定Velero的备份提供商为AWS,这将配置Velero以使用AWS提供的备份和恢复功能。
- –bucket ks-data: 指定Velero备份存储桶的名称为"ks-data",这是用于存储备份数据的AWS S3存储桶。
- –use-restic: 启用Restic备份插件,用于增量备份和恢复数据。Restic是一种轻量级的备份工具,可提供更快的备份和恢复速度。
- –secret-file /opt/software/velero/credentials-velero: 指定Velero用于访问AWS服务的凭据文件的路径。该文件应包含访问AWS的凭据信息,如访问密钥和密钥ID。
- –use-volume-snapshots=false: 禁用使用卷快照进行备份的功能。这意味着Velero将不会使用卷快照来备份数据,而是使用其他备份方法。
- –plugins velero/velero-plugin-for-aws:v1.0.0: 指定要安装的Velero插件。在此命令中,安装了名为"velero-plugin-for-aws"的插件,并指定了版本为"v1.0.0"。该插件提供了与AWS相关的备份和恢复功能。
- –namespace velero-system:velero部署到的命名空间,会自动创建命名空间
- –backup-location-config region=minio,s3ForcePathStyle=“true”,s3Url=http://192.168.31.3:9000: 配置Velero备份位置的详细信息。在此命令中,备份位置设置为使用MinIO对象存储服务,MinIO的URL为"http://192.168.31.3:9000",并指定了存储桶的区域为"minio"。s3ForcePathStyle选项设置为"true",以指示使用路径样式的S3 URL。
通过执行此命令,Velero将被安装并配置为使用AWS作为备份提供商,将备份数据存储在指定的S3存储桶中。使用Restic插件进行增量备份,并配置备份位置为MinIO对象存储服务。
高版本velero出现上述问题,原因是参数名称改变了参考https://github.com/vmware-tanzu/velero/issues/7123,
此处小编将velero版本换为1.9.2,重新执行显示如下内内容表示成功
Velero is installed! ? Use 'kubectl logs deployment/velero -n velero-system' to view the status.
$ kubectl get pod -n velero-system
NAME READY STATUS RESTARTS AGE
restic-7hsck 1/1 Running 0 52s
restic-jbx2v 0/1 ContainerCreating 0 52s
restic-kf8p2 0/1 ContainerCreating 0 52s
restic-m87bf 1/1 Running 0 52s
restic-ntq2b 0/1 ContainerCreating 0 52s
velero-fbf774ff4-6c4h6 0/1 Init:0/1 0 52s
如果您想从集群中完全卸载Velero,则以下命令将删除由velero install创建的所有资源:
# 查看资源确定删除资源
kubectl get crds -l component=velero
kubectl get clusterrolebindings.rbac.authorization.k8s.io | grep velero
# 删除velero
kubectl delete namespace/velero clusterrolebinding/velero
kubectl delete crds -l component=velero
以下是一些常用的Velero命令,并以表格形式输出:
命令 | 描述 |
---|---|
velero install | 安装Velero到Kubernetes集群 |
velero create backup | 创建备份,将指定的资源对象备份到备份存储位置 |
velero delete backup | 删除备份 |
velero restore | 恢复备份,将指定的备份还原到Kubernetes集群中 |
velero get backups | 获取备份列表 |
velero describe backup | 查看备份的详细信息 |
velero get restores | 获取恢复列表 |
velero describe restore | 查看恢复的详细信息 |
velero schedule create | 创建备份调度任务,定期自动执行备份操作 |
velero schedule get | 获取备份调度任务列表 |
velero schedule delete | 删除备份调度任务 |
velero plugin add | 添加Velero插件,用于扩展Velero功能 |
velero plugin list | 列出已安装的Velero插件 |
velero version | 查看Velero版本信息 |
velero logs | 查看Velero组件的日志 |
备份命令模板:
# 备份持久数据需添加--default-volumes-to-restic
velero backup create <备份名称> --include-namespaces <命名空间名称> --default-volumes-to-restic
# 上述是备份单个namespace,备份整个k8s如下
velero backup create <backup-name> --include-namespaces=<namespace1,namespace2,...> --default-volumes-to-restic
# 建议单个namespace备份还原
backup选项:
执行备份操作会在minio中生成如下目录:
在 Velero 备份过程中,生成的 backups、restic 和 restores 目录分别存放着不同的数据和信息。
# 使用cron表达式备份,每天的凌晨 1 点备份
$ velero schedule create <备份计划的名称> --schedule="0 1 * * *" --include-namespaces <备份的namespace>
# 使用一些非标准的速记 cron 表达式:--schedule="@daily"
# 手动触发定时任务
$ velero backup create --from-schedule nginx-daily
–schedule更多cron示例请参考:cron package’s documentation
–schedule=“@daily” 参数表示备份计划将在每天的午夜(00:00)执行备份操作。这是一种简化的调度时间表表示法,用于指定每天的固定时间执行备份。
在使用 --schedule=“@daily” 参数时,不需要指定具体的小时和分钟。它等效于 --schedule=“0 0 * * *”,表示每天的午夜(00:00)执行备份。
这个参数可以方便地创建每天固定时间执行备份的计划,而不必关注具体的小时和分钟设置。如果您希望每天在固定时间进行备份操作,–schedule=“@daily” 是一个简单且方便的选项。
# 删除备份,删除多个空格隔开
velero backup delete <backup-name>
# 组合命令删除全部备份
velero backup get -o jsonpath='{.items[*].metadata.name}' | xargs -n 1 velero backup delete
以下是 velero backup delete 命令的所有参数以表格形式输出:
参数 | 描述 |
---|---|
–all | 删除所有备份。 |
–confirm | 在执行删除操作之前进行确认。 |
–dry-run | 执行模拟运行,不实际删除备份。 |
–selector | 根据资源选择器删除符合条件的备份。 |
–all-namespaces | 删除所有命名空间中的备份。 |
–all-resources | 删除备份中的所有资源类型。 |
–kubeconfig | 指定用于访问 Kubernetes 集群的 kubeconfig 文件的路径。 |
–kubecontext | 指定要使用的 Kubernetes 集群上下文的名称。 |
–log-level | 设置日志级别。可选值:panic、fatal、error、warn、info、debug。 |
–namespace | 限定删除操作在指定的命名空间中执行。 |
–wait | 等待删除操作完成后再返回。 |
–timeout | 设置等待删除操作完成的超时时间。默认为 5m(5 分钟)。 |
# kubectl get storageclass
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-client (default) cluster.local/nfs-client-nfs-client-provisioner Delete Immediate false 19d
rook-ceph-block rook-ceph.rbd.csi.ceph.com Delete Immediate true 5d1h
kubectl get sc <storageclassname> -o yaml > <storageclassname>.yaml
kubectl get sc nfs-client -o yaml > nfs-client-storageclass.yaml
kubectl get sc rook-ceph-block -o yaml > rook-ceph-block-storageclass.yaml
scp -r <storageclassname>.yaml root@192.168.0.8:/root/
kubectl apply -f <storageclassname>.yaml
[root@ksmaster21 velero-v1.9.3-linux-amd64]# kubectl get namespaces
NAME STATUS AGE
argocd Active 19d
base Active 19d
cert-manager Active 14d
default Active 19d
dev Active 12d
devops Active 12d
devopskf4zz Active 12d
halo Active 25h
kube-node-lease Active 19d
kube-public Active 19d
kube-system Active 19d
kubekey-system Active 19d
kubesphere-controls-system Active 19d
kubesphere-devops-system Active 19d
kubesphere-devops-worker Active 19d
kubesphere-logging-system Active 19d
kubesphere-monitoring-federated Active 19d
kubesphere-monitoring-system Active 19d
kubesphere-system Active 19d
nacos Active 24h
pro Active 12d
registry-proxy Active 7d3h
rook-ceph Active 6d21h
test Active 13d
tidb Active 3d14h
tidb-admin Active 2d15h
tidb-cluster Active 2d15h
velero-system Active 36m
weave Active 19d
备份内容主要分为三部分:
- 备份k8s kube-system:无需备份pv持久卷
- 备份kubesphere:kubesphere-system备份pv持久卷,插件无需备份pv持久卷,kubesphere日志插件建议使用外部存储,日志占用大量存储空间,外部存储就不用备份pv
- 备份企业空间项目:需备份pv持久卷
执行如下备份命令:(要备份PV时间比较久,耐心等待)
# 备份k8s kube-system
velero backup create kube-system-bak --include-namespaces kube-system
# 备份kubesphere
velero backup create kubesphere-system-bak --include-namespaces kubesphere-system --default-volumes-to-restic && \
velero backup create kubesphere-controls-system-bak --include-namespaces kubesphere-controls-system && \
velero backup create kubesphere-monitoring-system-bak --include-namespaces kubesphere-monitoring-system && \
velero backup create kubesphere-monitoring-federated-bak --include-namespaces kubesphere-monitoring-federated && \
velero backup create kubesphere-logging-system-bak --include-namespaces kubesphere-logging-system && \
velero backup create kubesphere-devops-system-bak --include-namespaces kubesphere-devops-system && \
velero backup create argocd-bak --include-namespaces argocd && \
velero backup create kubesphere-devops-worker-bak --include-namespaces kubesphere-devops-worker && \
velero backup create weave-bak --include-namespaces weave
# 备份企业空间项目
velero backup create cert-manager-bak --include-namespaces cert-manager --default-volumes-to-restic && \
velero backup create registry-proxy-bak --include-namespaces registry-proxy --default-volumes-to-restic && \
velero backup create base-bak --include-namespaces base --default-volumes-to-restic && \
velero backup create tidb-admin-bak --include-namespaces tidb-admin --default-volumes-to-restic && \
velero backup create tidb-cluster-bak --include-namespaces tidb-cluster --default-volumes-to-restic && \
velero backup create rook-ceph-bak --include-namespaces rook-ceph --default-volumes-to-restic
# 查看备份列表,状态为Completed表示完成Completed
velero backup get
# 查看备份详情
velero backup describe <备份名称>
velero backup logs <备份名称>
这个命令是使用 kubectl 工具来修改节点的污点(Taint)。让我来逐步解释每个部分的含义:
kubectl taint nodes master-restore node-role kubernetes.io/master:Noschedule-lnode/master-restore untainted
因此,该命令的目的是将名为 master-restore 的节点上与 node-role 键和 kubernetes.io/master:Noschedule-lnode/master-restore 值匹配的污点移除,使该节点不再受该污点的限制。这样,其他 Pod 将可以在该节点上调度和运行。
大致还原顺序如下:
还原kubesphere-system和kubesphere-system顺序必须在第一和第二
# 查看备份
velero backup get | grep -w bak
# 查看备份信息
velero backup get
# 还原
velero restore create --from-backup kube-system-bak
可执行截图中红色提示命令查看恢复日志和详情
# STATUS为Completed表示完成恢复
velero restore get
velero restore get 命令用于列出当前集群中的恢复操作。当你使用 Velero 进行备份并希望恢复数据时,可以使用该命令来查看已经执行的恢复操作的状态和详细信息。
执行该命令后,你将看到一个表格,其中包含以下列:
通过查看该命令的输出,你可以了解到当前集群中的恢复操作的状态,以及任何可能的警告或错误信息,以便进行故障排除或监视恢复过程。
kubectl get pod -A | grep nfs
# 执行结果No resources found表示没有Storageclass
kubectl get storageclass
kubectl apply -f <storageclassname>.yaml
老集群nfs-client-nfs-client-provisioner在kube-system空间下,如下:
nfs使用的群辉,数据在集群外,新集群还原使用的是老集群已有的数据
rook-ceph在集群内,这儿恢复会有问题,可将老集群硬盘迁移至新集群
# 查看备份信息
velero backup get
# 还原
velero restore create --from-backup kubesphere-system-bak
velero restore get
# 通过下述命令观察错误pod
kubectl get pods -A
# 通过下述命令查看pod详情信息
kubectl describe pod <pod-name> -n <namespace>
查看可能会出现很多异常情况,异常是因为组件之间可能有依赖情况,此处耐心等待所有组件恢复
注意恢复还原后密码不是原来密码,重置为了kubesphere安装时的初始密码P@w0rd
velero restore create --from-backup kubesphere-controls-bak && \
velero restore create --from-backup kubesphere-monitoring-bak && \
velero restore create --from-backup kubesphere-monitoring-federated-bak && \
velero restore create --from-backup kubesphere-logging-system-bak && \
velero restore create --from-backup kubesphere-devops-system-bak && \
velero restore create --from-backup argocd-bak && \
velero restore create --from-backup kubesphere-devops-worker-bak && \
velero restore create --from-backup weave-bak
# 还原registry-proxy项目
velero restore create --from-backup registry-proxy-bak
查看控制面板中是在企业空间项目下还原:(验证还原成功)
velero restore create --from-backup cert-manager-bak && \
velero restore create --from-backup registry-proxy-bak && \
velero restore create --from-backup base-bak && \
velero restore create --from-backup tidb-admin-bak && \
velero restore create --from-backup tidb-cluster-bak2 && \
velero restore create --from-backup rook-ceph-bak
以下验证结论,备份没有备份PV持久数据,原因是在备份时pod还在使用的PV不能进行备份,
在老集群创建mysql并修改数据,新集群恢复后查看。在原来集群dev项目下mysql中创建了test表如下:
备份集群查看mysql如下:
查看持久卷声明,新旧集群持久卷yaml中使用nfs路径如下,发现新集群没有用老集群持久卷
/volume5/ks/kubesphere-system-minio-pvc-b1b26a83-29b2-4361-8849-3b8d7784eb80
/volume5/ks/kubesphere-system-minio-pvc-f07441d5-3a35-4074-aada-3a0024e1c4ce
删除老集群中删除mysql通过velero恢复查看数据
查看eip资源
[root@ks41 eip]# kubectl get eip
error: the server doesn't have a resource type "eip"
发现没有,参考4. 云原生之kubesphere基础服务搭建安装
此处可能会遇到openelb恢复失败的情况,通过下述命令删除,然后通过应用商店安装
kubectl get clusterroles --show-labels -A | grep open
kubectl get clusterroles --show-labels -A | grep open | awk '{print $1}' | xargs kubectl delete clusterrole
请注意,这是一个危险的操作,会直接删除与搜索结果匹配的所有 ClusterRole 资源。在执行此命令之前,请确保您了解其影响,并确保您具有足够的权限来执行删除操作。建议在生产环境中谨慎使用,并先进行适当的测试。
若想备份持久化数据备份需要添加–default-volumes-to-restic参数
# 备份
velero backup create <备份名称> --include-namespaces <namespace> --default-volumes-to-restic
# 还原
velero restore create --from-backup <备份名称>
老集群mysql数据如下:
新集群恢复后myql数据如下:
对比持久卷路径并不一样
/volume5/ks/dev-mysql-dev-pvc-0d3fd22f-4c42-457b-859f-302d08724609
/volume5/ks/dev-mysql-dev-pvc-a855beff-b63f-4a76-8f1f-6c021fbd59bc
由此得出结论,没添加–default-volumes-to-restic是备份元数据,添加后会将持久数据备份到minio
删除之前备份,添加参数重新备份
# 查看备份信息
velero backup get
# 删除备份
velero backup delete <backup-name>
# 组合命令删除全部备份
velero backup get -o jsonpath='{.items[*].metadata.name}' | xargs -n 1 velero backup delete
查看minio备份已删除
上述操作将k8s数据备份到了minio中,k8s中挂载的数据都是通过群辉NFS进行挂载,即k8s全部数据都在群辉上。考虑到自建服务器稳定性,万一服务器硬件损坏、断电就凉凉了,此时小编将群晖NAS数据同步到网盘上。
WebDAV(Web Distributed Authoring and Versioning)是一种基于HTTP协议的扩展,旨在使用户能够通过网络对远程服务器上的文件进行编辑和管理。它提供了一组用于创建、修改和删除文件的标准方法,并支持文件和文件夹的属性管理。
WebDAV最初是为了解决Web上的协作和文档管理问题而设计的。它扩展了HTTP协议,引入了许多新的方法和头部,以便支持高级文件操作,如锁定文件、复制、移动和重命名文件等。
以下是WebDAV的一些关键功能和特点:
- 文件操作:WebDAV通过HTTP方法扩展了文件操作,包括创建、读取、更新和删除文件。它使用URI来标识文件,并通过HTTP请求来执行这些操作。
- 文件锁定:WebDAV支持文件级别的锁定机制,以防止多个用户同时编辑同一文件。它使用锁定机制来协调并发编辑操作,确保数据的一致性。
- 属性管理:WebDAV允许用户为文件和文件夹定义自定义属性,并通过HTTP头部进行管理。这些属性可以包括元数据、权限信息、版本号等。
- 集成性:WebDAV可以与现有的应用程序和协议进行集成,如文件管理器、文档编辑器和版本控制系统等。它提供了标准的接口和方法,使得开发者可以轻松地将WebDAV功能集成到他们的应用中。
- 平台无关性:WebDAV是基于HTTP协议的标准扩展,因此它可以在不同的操作系统和平台上使用。无论是Windows、Mac还是Linux,只要支持HTTP协议,就可以使用WebDAV进行文件管理。
WebDAV在许多领域都有广泛的应用,例如在线协作、文档管理、远程文件访问等。它为用户提供了方便的方式来管理和共享文件,同时也为开发者提供了一种标准化的协议来构建和集成文件管理功能。
请注意,WebDAV的功能和特性可能因实现方式和服务器配置而有所不同。具体实现和配置细节可以参考相关的WebDAV服务器文档或规范。
备份相当于将数据上传到百度网盘,上传是很快的,但是从百度网盘下载或者同步到群辉较慢。
浏览器中登录百度云后,点击上述下一步可检查到登录的百度网盘账号
[新版教程] 阿里云盘通过Docker挂载本地WebDAV实现全自动上传/下载 - 蓝点网
aliyundrive-webdav官网github | aliyundrive-webdav refresh token 获取
官网docker安装方式:
docker run -d --name=aliyundrive-webdav --restart=unless-stopped -p 8080:8080 \
-v /etc/aliyundrive-webdav/:/etc/aliyundrive-webdav/ \
-e REFRESH_TOKEN='your refresh token' \
-e WEBDAV_AUTH_USER=admin \
-e WEBDAV_AUTH_PASSWORD=admin \
messense/aliyundrive-webdav
改造为docker-compose.yaml
version: '3.1'
services:
webdav:
# 注意:请仔细检查下载的镜像,如果下载的是冒充的镜像,可能会导致你的数据泄露
image: messense/aliyundrive-webdav
restart: always
user: root
container_name: webdav
ports:
- "9876:8080"
volumes:
- ./aliyundrive-webdav/:/etc/aliyundrive-webdav/
- /etc/localtime:/etc/localtime
environment:
# 通过获取连接https://messense-aliyundrive-webdav-backendrefresh-token-ucs0wn.streamlit.app
- REFRESH_TOKEN= 'your refresh token'
- WEBDAV_AUTH_USER=admin # webdav的账号
- WEBDAV_AUTH_PASSWORD=admin # webdav的密码
# - TZ='Asia/Shanghai'
# - JAVA_OPTS='-Xms128m -Xmx1024m'
安装:
docker-compose up -d
# 查看容器id
docker ps | grep webdav
# 查看日志
docker logs <容器id>
出现如下日志则表示安装启动成功
在阿里云盘根目录下新建群辉备份数据目录,并上传了[阿里云上文件.txt]
在群辉nas共享目录下上传了[群辉上文件.txt文件]
服务器地址:群辉ip+aliyundrive-webdav容器暴露端口
账号密码为安装aliyundrive-webdav设置的
上述是基于群辉Cloudsync里进行数据同步和备份,若想脱离群辉在集群系统上则需安装相应同步软件,这儿介绍几款:
软件名称 | 开发公司 | 主要特点 |
---|---|---|
GoodSync | Siber Systems | 强大的文件同步和备份工具,支持多种同步方式和丰富的筛选、调度功能 |
CloudSync | Synology | 将数据同步到各种云存储服务的应用程序 |
rsync | 开源项目 | 命令行工具,支持增量备份、差异传输和压缩等功能。可用于服务器之间的数据同步和备份 |
SyncBack | 2BrightSparks | 强大的文件备份和同步工具,提供灵活的配置选项和多种同步模式 |
Duplicati | 开源项目 | 开源备份软件,支持将文件备份到云存储服务,并具有加密和压缩功能 |
Arq | Haystack Software | 备份工具,可将文件备份到云存储服务,并提供版本控制和恢复功能 |
阿里云只能查看当前目录大小,只计算了当前目录下文件大小和,不会保护子目录。这儿推荐阿里云盘如何查看整个文件夹大小?