3-2-1 备份计划与 Fedora ARM 服务器

Fedora 服务器版适用于 Raspberry Pi 等单板计算机 (SBC)。 本文旨在为希望利用可靠的服务器系统和 Cockpit 等内置工具的用户提供数据备份和恢复个人数据。 它描述了 3 个级别的备份。

先决条件

要使用本指南,您只需要一个工作 Fedora Linux 工作站和以下项目。

  • 您应该阅读、理解和实践文档中记录的要求 Fedora 文档 服务器安装行政
  • SBC(单板计算机),经过测试 Fedora Linux。 查看 硬件状态在这里.
  • Fedora 手臂 服务器 原始映像和 ARM 映像安装程序
  • 可选择 microSD 卡(64 GB / Class 10)和 SSD 设备
  • 网线/DHCP 保留 IP 或静态 IP
  • 准备好 ssh 密钥的 Linux 客户端工作站
  • 选择云存储服务
  • 有一个额外的 Linux 工作站可用

有了这个设置,我选择了 Raspberry Pi 3B+/4B+(一个用于热插拔),因为在撰写本文时价格和可用性。 当 Pi 服务器使用 Cockpit 远程连接时,您可以将 Pi 放置在路由器附近以进行整洁的设置。

加强服务器安全

在 SBC 上完成服务器安装和管理之后,最好使用 firewalld 加强服务器安全性。

您必须在服务器在线后立即配置防火墙,然后再将存储设备连接到服务器。 Firewalld 是基于区域的防火墙。 在遵循安装和管理指南后,它会创建一个预定义区域“FedoraServer” Fedora 文档。

firewalld 中丰富的规则

丰富的规则用于阻止或允许特定的 IP 地址或地址范围。 以下规则仅接受来自具有注册 IP(客户端工作站)的主机的 SSH 连接,并丢弃其他连接。 在 Cockpit 终端或客户端工作站中的终端中运行命令,通过 ssh 连接到服务器。

firewall-cmd --add-rich-rule="rule family=ipv4 source address=<registered_ip_address>/24 service name=ssh log prefix="SSH Logs" level="notice" accept"

拒绝来自所有主机的 ping 请求

使用此命令设置 icmp 拒绝和禁止 ping 请求

firewall-cmd --add-rich-rule="rule protocol value=icmp reject"

要执行其他防火墙控制,例如管理端口和区域,请参阅下面的链接。 请注意,错误配置防火墙可能使其容易受到安全漏洞的攻击。

在 Cockpit 中管理防火墙
防火墙规则

为文件服务器配置存储

下一步是将存储设备连接到 SBC 并使用 Cockpit 对新连接的存储设备进行分区。 使用 Cockpit 的图形服务器管理界面,管理家庭实验室(无论是单台服务器还是多台服务器)比以前简单得多。 Fedora Linux 服务器提供 Cockpit 作为标准配置。

在此设置中,由 SBC 的 USB 端口供电的 SSD 设备无需额外电源即可投入使用。

  • 将存储设备连接到 SBC 的 USB 端口
  • Cockpit 运行后(在先决条件中设置),访问 机器的 IP 地址:9090 在客户端工作站的 Web 浏览器中
  • 登录 Cockpit 后,单击 Cockpit 页面顶部的“打开管理访问权限”
  • 单击左侧窗格中的“存储”
  • 选择“驱动器”部分下的设备以格式化和分区空白存储设备
驾驶舱存储管理
  • 在所选存储设备的屏幕上创建新分区表或格式化并创建新分区。 提示初始化磁盘时,在“Partitioning”类型中,选择GPT分区
  • 对于下拉列表中的文件系统类型(XFS 和 ext4),选择 ext4。 这适用于 I/O 能力有限(如 USB 2.0 端口)和带宽有限(小于 200MB/s)的 SBC
在 Cockpit 中创建分区
  • 要创建一个占用设备上所有存储空间的分区,请指定其挂载点,例如“/media”,然后单击“确定”
  • 点击“创建分区”,创建一个挂载在“/media”的新分区。

创建备份并从备份还原

备份很少是万能的。 有几个选择可供选择,例如备份数据的位置、备份数据所采取的步骤、识别任何自动化以及确定如何恢复备份数据。

备份工作流程 – 1.0 版

备份 1. rsync 从客户端到文件服务器(Raspberry Pi)

用于此传输的命令是:

rsync -azP ~/source syncuser@host1:/destination
Options:
-a, --archive
-z, --compress
-P, --progress

要使用其他选项运行 rsync,请设置以下标志:

就地更新目标文件

--inplace

将数据附加到较短的文件中

--append

源端重复数据删除与压缩相结合是在数据进入备份存储之前减少要备份的数据大小的最有效方法。

我在一天结束时手动运行它。 一旦我适应了云备份工作流程,自动化脚本就很有优势。

有关 rsync 的详细信息,请访问 Fedora 杂志文章在这里。

备份 2. rsync 从文件服务器到主云存储

选择云存储时要考虑的因素是;

  • 费用:上传、存储和下载费用
  • rsync,支持 sftp
  • 数据冗余(RAID 10 或数据中心冗余计划到位)
  • 快照

符合这些标准的云存储之一是 Hetzner 托管的 Nextcloud – 储物盒. 您不受供应商的约束,可以自由切换而不会受到退出处罚。

生成 SSH 密钥并在文件服务器中创建授权密钥文件

使用 ssh-keygen 为文件服务器和云存储生成一对新的 SSH 密钥。

ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key . . . 

将所需的公共 SSH 密钥插入到新的本地 authorized_keys 文件中。

cat .ssh/id_rsa.pub >> storagebox_authorized_keys

将密钥传输到云存储

下一步是将生成的authorized_keys文件上传到Storage Box。 为此,请使用权限 700 创建目录 .ssh 并使用公共 SSH 密钥和权限 600 创建文件 authorized_keys。运行以下命令。

echo -e "mkdir .ssh n chmod 700 .ssh n put storagebox_authorized_keys .ssh/authorized_keys n chmod 600 .ssh/authorized_keys" | sftp <username>@<username>.your-storagebox.de

通过 ssh 使用 rsync

使用 rsync 将文件目录的当前状态同步到 Storage Box。

rsync --progress -e 'ssh -p23' --recursive <local_directory> <username>@<username>.your-storagebox.de:<target_directory>

此过程称为推送操作,因为它将目录从本地系统“推送”到远程系统。

从云存储恢复目录

要从 Storage Box 恢复目录,请交换目录:

rsync --progress -e 'ssh -p23' --recursive <username>@<username>.your-storagebox.de:<remote_directory> <local_directory>

备份 3. 客户端备份到二级云存储

Deja Dup 在 Fedora 软件仓库,使其成为快速备份解决方案 Fedora 工作站。 它处理 GPG 加密、调度和文件包含(要备份的目录)。

备份到辅助云
从云存储恢复文件

存档个人数据

并非所有数据都需要 3-2-1 备份策略。 那是个人数据共享。 我将一台带有 1TB 硬盘的二手笔记本电脑重新用作个人数据(家庭照片)的存档。

转到设置中的“共享”(在我的例子中是 GNOME 文件管理器)并切换滑块以启用共享。

打开“文件共享”、“网络”和“所需密码”,这允许您使用 WebDAV 与本地网络上的其他工作站共享您的公用文件夹。

准备后备选项

未经测试的备份并不比没有备份好。 我在家庭实验室环境中采用“热插拔”方法,在这种环境中确实会发生频繁断电或液体损坏等中断。 但是,我的建议与企业 IT 中的灾难恢复计划或自动故障转移相去甚远。

  • 定期试运行文件恢复
  • 将 ssh/GPG 密钥备份到外部存储设备上
  • 复制原始图像 Fedora ARM 服务器到 SD 卡上
  • 在主云存储中保留完整备份的快照
  • 自动化备份过程以最大程度地减少人为错误或疏忽

使用 Cockpit 跟踪活动和故障排除

随着项目的增长,您管理的服务器数量也会增加。 Cockpit 中的活动和警报跟踪可减轻您的管理负担。 您可以使用 Cockpit 的图形界面通过三种方式实现此目的。

SELinux 菜单

如何在 Cockpit 中诊断网络问题、查找日志和排除故障

  • 去 SELinux 查看日志
  • 检查“解决方案详细信息”
  • 必要时选择“应用此解决方案”
  • 查看自动化脚本并在必要时运行它
SELinux 日志

网络或存储日志

服务器日志跟踪与系统日志相关的 CPU 负载、内存使用、网络活动和存储性能的详细指标。 日志组织在网络或存储仪表板下。

Cockpit 中的存储日志

软件更新

Cockpit 有助于按预设时间和频率进行安全更新。 您可以在需要时运行所有更新。

软件更新

恭喜您设置了文件/备份服务器 Fedora ARM 服务器版。