墙裂推荐 PDF
付费版本:《UrBackup Server 2.4.x 管理手册中文版(网管小贾高级进阶版)》
<关注网管小贾微信公众号,发送 000946 获取>
此次翻译整理,并不是照本宣科,原文照搬,而是通过我大量的测试实操再结合手册中的内容做的一次大调整、大改写。
我做了以下这些事情:
- 修正了大量官网英文版中不通顺的语句(每个单词都认识,放一起愣不知道啥意思),使之更便于阅读、更易于理解。
- 根据实际场景操作添加了大量配图插画强化说明,有了图片理解起来就会很OK啊!
- 根据实际场景操作调整修正了部分说明内容(有部分官网内容由于版本更新问题,实际上并不准确甚至存在错误和误导)。
- 根据实际场景操作添加了大量官网手册中没有详细说明,甚至是压根就没提到的其他实用内容。
参考目录
- 1 开篇介绍
2 服务器安装
- 2.1
Windows
上的服务器安装 - 2.2
Ubuntu
上的服务器安装 - 2.3
Debian
上的服务器安装 - 2.4 在其他
GNU/Linux
发行版或FreeBSD
上安装服务器 - 2.5
GNU/Linux
服务器安装提示 - 2.6 操作系统独立服务器安装步骤
- 2.1
3 客户端安装
- 3.1
Windows
客户端安装 - 3.2 自动部署到多台
Windows
计算机 - 3.3
Linux
客户端安装 - 3.4
Mac OS X
客户端安装(追加内容,官网手册无此内容)
- 3.1
4 架构
- 4.1 服务器架构
- 4.2 客户端架构
5 安全
- 5.1 服务端
Web
界面的权限管理 - 5.2 让
Web
页面可通过SSL
访问 - 5.2.1
Apache
配置 5.2.2
Lighttp
配置5.3 客户端安全
- 5.4 传输安全
- 5.5 广域网模式安全
- 5.1 服务端
6 局域网中的客户端发现
7 备份过程
- 7.1 文件备份
- 7.2 映像备份
- 7.3 数据冲突概率
- 7.3.1 文件备份冲突概率
- 7.3.2 映像备份冲突概率
- 7.4 客户端和服务器上的备份前后脚本
- 7.4.1 客户端备份前后脚本
- 7.4.2 服务器后备脚本
8 广域网客户端
- 8.1 自动推送服务器配置到客户端
- 8.2 下载预配置的客户端安装程序
- 8.3 手动添加和配置客户端
- 8.4 通过
Internet
传输文件
9 服务器设置
- 9.1 全局服务器设置
- 9.1.1 备份存储路径
- 9.1.2 服务器网址
- 9.1.3 禁止磁盘镜像备份
- 9.1.4 禁止文件备份
- 9.1.5 自动关闭服务器
- 9.1.6 从更新服务器下载客户端
- 9.1.7 当新有服务器版本可用时通知我
- 9.1.8 自动更新客户端
- 9.1.9 最大同时备份数
- 9.1.10 最近活动客户端的最大数量
- 9.1.11 清理时间窗口
- 9.1.12 自动备份
UrBackup
数据库 - 9.1.13 本地网络的总体最大备份速度
- 9.1.14 全局软文件系统配额
- 9.2 邮件设置
- 9.2.1 邮件服务器设置
9.2.2 配置报告
9.3 客户端特定设置
9.3.1 备份窗口
- 9.3.2 高级备份间隔
- 9.3.3 排除文件
- 9.3.4 要备份的默认目录
9.3.5 虚拟子客户端名称
9.4 广域网设置
9.4.1 数据使用限额预估
9.5 高级设置
9.5.1 启用临时文件缓冲区
9.5.2 传输模式
- 9.5.3 增量映像备份样式
- 9.5.4 完整映像备份样式
9.5.5 批处理期间的数据库缓存大小
9.6 在增量文件备份期间使用符号链接
9.7 调试:所有文件备份的端到端验证
9.8 调试:使用客户端哈希验证文件备份
9.9 定期将
Internet
客户端的文件条目读入数据库9.10 文件备份后为客户端上的每个用户创建符号链接视图
9.11 每个客户端同时作业的最大数量
9.12 映像备份期间要分组快照的卷
9.13 文件备份期间要分组快照的卷
- 9.14
Windows
组件备份配置
10 恢复备份
- 10.1 恢复镜像备份
- 10.2 恢复文件备份
11 杂项
11.1 手动更新
UrBackup
客户端11.2 日志记录
- 11.3 使用的网络端口
- 11.4 在
GNU/Linux
上挂载(压缩)VHD
文件 11.5 在
Windows
上将VHD
挂载为卷11.6 解压
VHD
文件11.7 将多个卷
VHD
映像组装到一个磁盘VHD
映像中11.8 迁移非
btrfs
备份存储
12 存储
12.1 每晚备份删除
- 12.2 紧急清理
- 12.3 清理具有大量备份文件的服务器
- 12.4 清理具有
UrBackup
未知文件的存储文件夹 - 12.5 归档
- 12.5.1 归档窗口
- 12.6 合适的文件系统
- 12.6.1
Ext4/XFS
- 12.6.2
NTFS
- 12.6.3
btrfs
- 12.6.4
ZFS
12.7 存储设置建议
- 12.7.1
ZFS
- 12.7.2
Btrfs
- 12.7.1
12 存储
UrBackup
服务器存储系统的设计能够尽可能多地保存备份,从而尽可能多地占用存储分区上的空间。
有鉴于此,最佳做法是为备份存储使用单独的文件系统,或为 urbackup
用户设置配额。
如果某些文件系统几乎完全被占用(碎片化和性能差),则它们的性能会很差。
对于此类文件系统,你应该始终限制 UrBackup
最多可以使用全部可用空间的 95%
的配额。
你还可以在 UrBackup
中设置一个软配额(请参阅第 9.1.14
节),如果可能的话,该配额会导致 UrBackup
删除备份以保持在此配额内。
12.1 每晚备份删除
UrBackup
在凌晨 3
点到 5
点之间自动删除旧文件备份和映像备份。
当客户端的 增量/完整文件/映像
备份数量超过配置的 增量/完整文件/映像
备份的最大数量时将删除备份。
备份将被删除直到备份数量再次回到限制范围内。
如果管理员已设定自动关机,则此清理过程会在服务器开机时启动(因为服务器很可能在夜间关闭)。
删除备份和后续更新统计信息会对系统性能产生巨大影响。
在夜间备份删除期间,UrBackup
还尝试强制执行全局和客户端特殊指定的软配额。
仅当客户端已拥有比配置的最小 增量/完整文件/映像
备份数量更多的备份时,它才能删除备份。
12.2 紧急清理
如果服务器在备份期间用完存储空间,它会删除备份,直到有足够的空间再次可用。
映像优先于文件备份,最旧的备份首先被删除。
当拥有备份的客户端,其存储中配置了的最小数量的 增量/完整文件/映像备份
时,其备份仅被删除到其最小配置数量。
如果未找到符合被删除条件的备份而存储又用完了,则 UrBackup
将取消当前备份并出现致命错误。
如果发生此类错误,管理员应监控存储空间并添加存储或将 增量/完整文件/映像备份
的最小数量配置为较低水平。
12.3 清理具有大量备份文件的服务器
UrBackup
的数据库处于启用高并发的模式。
由于清理过程有时会受到数据库的限制,因此建议将数据库切换到允许较少并发但对于清理过程的某些操作来说速度较快的模式。
这在 UrBackup
运行时是不可能的,因此你应该调整备份窗口,以确保在某些时候没有运行备份。
然后你可以通过调用如下命令来停止服务器单独运行清理。
urbackupsrv cleanup --amount x
在 GNU/Linux
或 Windows
上:
cleanup.bat x
其中 x
是备份存储上要释放的空间百分比或字节/兆字节/千兆字节数,例如 20G
或 10%
。
如果想完全删除旧备份,请使用 0%
。
12.4 清理具有 UrBackup
未知文件的存储文件夹
有时,通过使用数据库备份,存储目录中可能存在 UrBackup
并不知道的备份,即数据库中没有这些备份的条目。
或者数据库中有条目不在存储目录中(文件不再存在)。
在这些情况下,可运行如下命令清理。
urbackupsrv remove-unknown
在 GNU/Linux
或 Windows
上:
remove_unknown.bat
删除 urbackup
存储目录中不存在于 UrBackup
数据库中的文件和文件夹。
这也会遍历所有软硬链接并在必要时更正它们。
12.5 归档
UrBackup
能够自动归档文件备份。
归档的文件备份不能通过夜间或紧急清理来删除 - 除非只有当它们不再是归档时。
你可以在 设置
> 归档
下为所有或特定客户端设置归档。
当归档到期且服务器当前处于归档窗口(参见 12.5.1
)时,所选类型的最后一个文件备份将在所选时间量内归档。
在那之后,它将不再自动归档。
你可以在 Web
页面的 备份
区域查看归档备份。
如果备份仅在有限的时间内归档,则复选标记旁边将显示一个时间符号。
将鼠标悬停在该时间符号上系统会告诉你该文件备份将保持归档多长时间。
12.5.1 归档窗口
归档窗口允许你在特定的时间归档备份。
格式与 crontab
非常相似。
除了没有分钟之外,这些字段是相同的:
Field/字段 | Allowed values/可用值 | Remark/备注 |
---|---|---|
Hour | 0-23 | 小时 |
Day of month | 1-31 | 日期 |
Month | 1-12 | 月份,字母名称不可用 |
Day of week | 0-7 | 周几,0 和 7 代表周日 |
要在每个月的第一个周五归档文件备份,我们会将 归档间隔
设置为 27
天。
输入我们希望归档备份的时间后,我们将添加如下代码
*;*;*;5
作为窗口(小时;月中的某天;月;周中的某天)。
要在每周五归档备份,我们会将 存档间隔
设置为大于 1
天但小于 7
天的值。
之所以可行,是因为必须满足两个条件:自上次备份归档以来的时间必须大于 归档间隔
,并且服务器当前必须位于归档窗口中。
其他例子更简单。
要在每个月的第一天归档备份,窗口将是
*;1;*;*
和 归档每个
大约 2-27
天。
可以通过逗号分隔它们来为每个字段添加多个值,像这样
*;*;*;3,5
并且 每天归档
一天将在周三和周五存档备份。
crontab
中的其他高级功能不存在。
12.6 适合的文件系统
因为 UrBackup
可以选择先将所有传入的数据保存到临时文件(参见第 9.5.1
节),然后将它们复制到并行备份的最终位置,即使备份存储空间很慢,性能仍然会很好。
这意味着你可以使用具有压缩和重复数据删除功能的全功能文件系统,而不会造成太大的性能损失。
在最坏的情况下,服务器会在晚上写完一个映像备份(白天已经将映像的内容保存到临时文件中)。
本节将显示哪些文件系统适合 UrBackup
。
12.6.1 Ext4/XFS
Ext4
和 XFS
都在 Linux
中可用,并且可以处理存储映像备份所需的大文件。
但是,它们没有压缩或重复数据删除功能。
可以通过在它们之上使用 fuse
文件系统(例如 fusecompress
)来实现压缩。
还有一些块级重复数据删除 fuse
层,但我建议不要使用它们,因为它们看起来不太稳定。
你必须使用内核 用户/组
级别配额支持来限制 UrBackup
的存储使用。
12.6.2 NTFS
如果你在 Windows
下运行 UrBackup
服务器,NTFS
几乎是你唯一的选择。
它支持大文件和压缩以及硬链接,因此比标准 Linux
文件系统的 XFS
和 Ext4
更适合 UrBackup
。
12.6.3 btrfs
Btrfs
是与 ZFS
相媲美的下一代 Linux
文件系统。
它支持压缩和离线块级重复数据删除。
UrBackup
有一个特殊的快照备份模式,使用 btrfs
可以更快地进行增量备份和删除文件备份。
使用 btrfs
UrBackup
还可以对增量文件备份进行廉价的(就 CPU
和内存要求而言)块级重复数据删除。详见 12.7.2
。
UrBackup
还有一种特殊的写时复制原始映像备份格式,它允许 永久增量
风格的映像备份。
12.6.4 ZFS
ZFS
是源自 Solaris
的文件系统。
它可用作 Linux
的熔断器模块 ( zfs-fuse
) 和内核模块 ( ZFSOnLinux
)。
存在阻止 ZFS
直接与 Linux
集成的许可问题。
如果你想要最高的性能和稳定性,一个选择是使用 FreeBSD
(例如 FreeNAS
)。
ZFS
具有一些简洁的功能,例如压缩、块级重复数据删除、快照和内置的 RAID
支持,使其非常适合备份存储。
12.7.1
节详细介绍了如何使用 ZFS
构建 UrBackup
服务器。
UrBackup
还有一种特殊的写时复制原始映像备份格式,它允许在 ZFS
上工作的 永久增量
样式的映像备份。第 12.7.1
节描述了如何设置它。
12.7 存储设置建议
在本节中,展示了使用 ZFS
的示例存储设置,它允许通过 Internet
或通过磁带进行异地备份,例如手动异地存储和使用 Linux
文件系统 btrfs
的存储设置,使用 btrfs
快照机制来加速文件备份的创建和销毁并更有效地保存文件备份。
12.7.1 ZFS
注意:假设 UrBackup
在支持 ZFS
的 Linux
或 BSD
等类似 UNIX
的系统上运行。
我们将使用所有 ZFS
功能,例如压缩、重复数据删除和快照。
假设服务器有两个专用于备份的硬盘驱动器 ( sdb
, sdc
) 和一个热插拔硬盘驱动器插槽 ( sdd
)。
假设在 /dev/sde
中也有一个缓存设备来加速重复数据删除。
即使是快速的 U
盘也可以加快重复数据删除速度,因为它比普通硬盘具有更好的随机访问性能。
使用 SSD
以获得最佳性能。
首先设置服务器,使临时目录 ( /tmp
) 位于足够大的高性能文件系统上。
如果你有一个 raid
设置,你可以将 /tmp
设置在条带设备上。
我们现在将在 /media/BACKUP
中创建一个备份存储文件系统。
从两个硬盘驱动器创建 ZFS
池备份,两者是镜像的。
将相同大小的硬盘放入热插拔硬盘插槽。
我们也将镜像它:
zpool create backup mirror /dev/sdb /dev/sdc /dev/sdd cache /dev/sde -m /media/BACKUP
启用重复数据删除和压缩。
你不需要设置配额,因为重复数据删除会分割所有内容(这就是我们需要缓存设备的原因)。
zfs set dedup=on backup
zfs set compression=on backup
现在我们想实现一个祖父、父亲、儿子或类似的备份方案,我们可以将硬盘放在防火保险箱中。
因此,每次我们想要进行异地备份时,我们都会移除热插拔设备并插入一个新设备。
然后我们要么运行
zpool replace backup /dev/sdd /dev/sdd
或者
zpool scrub
你可以使用 zpool status
查看重新银化/擦洗的进度。
完成后,你就可以将另一个硬盘放在某个地方。
现在我们想将备份保存在另一个位置的服务器上。
首先,我们在这个其他位置创建 ZFS 备份池。
然后我们传输完整的文件系统( otherserver
是对方服务器的主机名):
zfs snapshot backup@last
zfs send backup@last | ssh -l root otherserver zfs recv backup@last
完成此操作后,我们可以增量同步两个文件系统:
zfs snapshot backup@now
ssh -l root otherserver zfs rollback -r backup@last
zfs send -i backup@last backup@now | ssh -l root otherserver zfs recv backup@now
zfs destroy backup@last
zfs rename backup@last backup@now
ssh -l root otherserver zfs destory backup@last
ssh -l root otherserver zfs rename backup@last backup@now
你还可以将这些完整和增量 zfs
流保存到其他服务器上的文件中,而不是直接保存到 ZFS
文件系统中。
使用 ZFS
进行写时复制原始映像备份自 UrBackup 2.1.x
ZFS
存储还允许使用写时复制原始映像备份格式。
这种格式没有大小限制,并允许 永远增量
风格的映像备份。
UrBackup
将每个映像备份放入单独的数据集中,并将映像存储为单个大文件。
压缩和未使用区域管理由 ZFS
完成。
为了创建和删除 ZFS
快照,UrBackup
安装了一个 setuid
可执行文件 urbackup_snapshot_helper
。
但是,当前 ZFSOnLinux
会依次调用 mount
,当 urbackup_snapshot_helper
以非特权用户身份运行时会失败。
因此,你必须以 root
用户身份运行 UrBackup
服务器( urbackupsrv run -u root
)。
你应该创建一个单独的 ZFS
数据集,其中将存储映像备份,例如 tank/images
。
UrBackup
服务器将从 /etc/urbackup/dataset
读取此数据集,并从 /etc/urbackup/backupfolder
读取备份存储路径。
通过例如设置
mkdir -p /etc/urbackup
echo "tank/images" > /etc/urbackup/dataset
echo "/mnt/BACKUP/urbackup" > /etc/urbackup/backupfolder
然后以 root 身份运行测试一切是否正常:
urbackup_snapshot_helper test
然后,你应该能够享受更快的增量文件备份,这些备份使用更少的存储空间和 永久增量
风格的映像备份。
其他注意事项:UrBackup
使用 文件打孔
在增量备份后从映像文件中删除未使用的区域。
FreeBSD
当前不支持此功能,因此在 FreeBSD
上进行增量映像备份后,它将无法删除那些未使用的区域。
但是,它将它们设置为零,因此如果启用 ZFS
压缩,未使用的区域将不会占用太多空间。
使用 ZFS
进行写时复制文件备份同样,UrBackup
支持使用 ZFS
进行写时复制文件备份。
方法与下一节中 btrfs
的方法相同,但前提是不能像在 btrfs
中那样在 ZFS
数据集之间重新链接相同的文件,因为 ZFS
缺少 reflink
功能。
相反,文件将被复制,也就是说,如果文件已经有副本,UrBackup
将不会加载两次,但如果未启用 ZFS
重复数据删除,则可能会存储两次。
使用 ZFS
进行写时复制文件备份需要使用 ZFS
进行写时复制映像备份的先前设置,另外设置要存储文件备份的数据集,例如
echo "tank/files" > /etc/urbackup/dataset_file
12.7.2 Btrfs
Btrfs
是用于 Linux
的高级文件系统,能够创建子卷的写时副本快照。
要使 UrBackup
能够使用快照机制,Linux
内核必须至少为 3.6
。
如果 UrBackup
检测到 btrfs
文件系统,它会使用特殊的快照文件备份模式。
它将每个客户端的每个文件备份保存在单独的 btrfs
子卷中。
创建增量文件备份时,UrBackup
会创建最后一个文件备份的快照,并仅删除、添加和更改更新快照所需的文件。
这比普通方法快得多,其中 UrBackup
将新增量文件备份中的每个文件链接(硬链接)到最后一个文件中的文件。
它还使用较少的元数据(有关文件的信息,即目录条目)。
如果检测到新的/更改的文件与另一个客户端的文件相同或与另一个备份中的文件相同,则 UrBackup
使用跨设备引用链接在文件系统上仅将该文件中的数据保存一次。
使用 btrfs
还允许 UrBackup
以仅存储文件中更改的数据的方式备份在增量备份之间更改的文件。
这大大减少了备份所需的存储量,尤其是对于大型数据库文件(例如 Outlook
存档文件)。上一节 ( 12.7.1
) 中的 ZFS
重复数据删除节省了更多存储空间,但代价是读写性能大幅下降以及 CPU
和内存要求高。
使用 btrfs
UrBackup
还可以使用特殊的原始映像文件格式。
这种格式没有大小限制,并允许 永久增量
风格的映像备份。
UrBackup
将每个映像备份放入单独的子卷中,并将映像存储为单个大文件。
压缩和未使用区域管理由 btrfs
完成。
为了创建和删除 btrfs
快照,UrBackup
安装了一个 setuid
可执行文件 urbackup_snapshot_helper
。
UrBackup
还使用此工具来测试是否可以进行跨设备重新链接。
只有当 UrBackup
可以创建跨设备 reflink
并且能够创建和销毁 btrfs
快照时,才启用 btrfs
模式。
urbackup_snapshot_helper
需要单独告知 UrBackup
备份文件夹在哪里。
此路径从 /etc/urbackup/backupfolder
中读取。
因此,如果 /media/backup/urbackup
是 UrBackup
保存路径的文件夹,则以下命令将正确创建此文件:
mkdir /etc/urbackup
echo "/media/backup/urbackup" > /etc/urbackup/backupfolder
然后,你可以通过运行测试 UrBackup
是否会使用 btrfs
功能。
urbackup_snapshot_helper test
如果测试失败,你需要检查内核是否足够新,以及备份文件夹是否位于 btrfs
卷上。
然后,你应该能够享受更快的增量文件备份,这些备份使用更少的存储空间和 永久增量
风格的映像备份。
墙裂推荐 PDF
付费版本:《UrBackup Server 2.4.x 管理手册中文版(网管小贾高级进阶版)》
<关注网管小贾微信公众号,发送 000946 获取>
扫码关注@网管小贾,个人微信:sysadmcc
网管小贾 / sysadm.cc