墙裂推荐 PDF 付费版本:《UrBackup Server 2.4.x 管理手册中文版(网管小贾高级进阶版)》

<关注网管小贾微信公众号,发送 000946 获取>

https://www.sysadm.cc/index.php/xitongyunwei/946-download-advanced-chinese-version-of-urbackup-server-2-4-x-administration-manual

此次翻译整理,并不是照本宣科,原文照搬,而是通过我大量的测试实操再结合手册中的内容做的一次大调整、大改写。

我做了以下这些事情:

  1. 修正了大量官网英文版中不通顺的语句(每个单词都认识,放一起愣不知道啥意思),使之更便于阅读、更易于理解。
  2. 根据实际场景操作添加了大量配图插画强化说明,有了图片理解起来就会很OK啊!
  3. 根据实际场景操作调整修正了部分说明内容(有部分官网内容由于版本更新问题,实际上并不准确甚至存在错误和误导)。
  4. 根据实际场景操作添加了大量官网手册中没有详细说明,甚至是压根就没提到的其他实用内容。


参考目录

  • 1 开篇介绍
  • 2 服务器安装

    • 2.1 Windows 上的服务器安装
    • 2.2 Ubuntu 上的服务器安装
    • 2.3 Debian 上的服务器安装
    • 2.4 在其他 GNU/Linux 发行版或 FreeBSD 上安装服务器
    • 2.5 GNU/Linux 服务器安装提示
    • 2.6 操作系统独立服务器安装步骤
  • 3 客户端安装

    • 3.1 Windows 客户端安装
    • 3.2 自动部署到多台 Windows 计算机
    • 3.3 Linux 客户端安装
    • 3.4 Mac OS X 客户端安装(追加内容,官网手册无此内容)
  • 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 广域网模式安全
  • 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 存储

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/LinuxWindows 上:

cleanup.bat x
 

其中 x 是备份存储上要释放的空间百分比或字节/兆字节/千兆字节数,例如 20G10%

如果想完全删除旧备份,请使用 0%


12.4 清理具有 UrBackup 未知文件的存储文件夹

有时,通过使用数据库备份,存储目录中可能存在 UrBackup 并不知道的备份,即数据库中没有这些备份的条目。

或者数据库中有条目不在存储目录中(文件不再存在)。

在这些情况下,可运行如下命令清理。

urbackupsrv remove-unknown
 

GNU/LinuxWindows 上:

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 周几,07 代表周日


要在每个月的第一个周五归档文件备份,我们会将 归档间隔 设置为 27 天。

输入我们希望归档备份的时间后,我们将添加如下代码

*;*;*;5
 

作为窗口(小时;月中的某天;月;周中的某天)。

要在每周五归档备份,我们会将 存档间隔 设置为大于 1 天但小于 7 天的值。

之所以可行,是因为必须满足两个条件:自上次备份归档以来的时间必须大于 归档间隔 ,并且服务器当前必须位于归档窗口中。

其他例子更简单。

要在每个月的第一天归档备份,窗口将是

*;1;*;*
 

归档每个 大约 2-27 天。

可以通过逗号分隔它们来为每个字段添加多个值,像这样

*;*;*;3,5
 

并且 每天归档 一天将在周三和周五存档备份。

crontab 中的其他高级功能不存在。


12.6 适合的文件系统

因为 UrBackup 可以选择先将所有传入的数据保存到临时文件(参见第 9.5.1 节),然后将它们复制到并行备份的最终位置,即使备份存储空间很慢,性能仍然会很好。

这意味着你可以使用具有压缩和重复数据删除功能的全功能文件系统,而不会造成太大的性能损失。

在最坏的情况下,服务器会在晚上写完一个映像备份(白天已经将映像的内容保存到临时文件中)。

本节将显示哪些文件系统适合 UrBackup


12.6.1 Ext4/XFS

Ext4XFS 都在 Linux 中可用,并且可以处理存储映像备份所需的大文件。

但是,它们没有压缩或重复数据删除功能。

可以通过在它们之上使用 fuse 文件系统(例如 fusecompress )来实现压缩。

还有一些块级重复数据删除 fuse 层,但我建议不要使用它们,因为它们看起来不太稳定。

你必须使用内核 用户/组 级别配额支持来限制 UrBackup 的存储使用。


12.6.2 NTFS

如果你在 Windows 下运行 UrBackup 服务器,NTFS 几乎是你唯一的选择。

它支持大文件和压缩以及硬链接,因此比标准 Linux 文件系统的 XFSExt4 更适合 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在支持 ZFSLinuxBSD 等类似 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/urbackupUrBackup 保存路径的文件夹,则以下命令将正确创建此文件:

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



暂无评论

登录并提交评论

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接