情况: 我想将 Homelab 服务器(Windows 操作系统)重新安装为基于 Linux 的服务器
服务器|用途:备份系统(大部分离线)
我目前有一台 HP Proliant Microserver N54
Turion II Neo N54l 2,2Ghz 、 4GB RAM
https://geizhals.at/a688459.html
设置
池中的 6 个物理磁盘(5 个 HDD、1 个 SSD)到 JBOD 存储空间 (15,6TiB)
1 个 LUN,格式化 NTFS
文件通过 Windows 共享 (SMB/Cifs) 共享
没有特殊的 NTFS 权限(因为只有我)
Windows Server 2012 R2(即将停产)启用重复数据删除,在数据 模式 = 通用文件服务器
上节省了近 4.5 TiB
客户
客户端主要是 Windows,也许在不久的将来会有一些 Linux。
通过 SMB/Cifs 和 RDP 访问服务器(管理)
是的,服务器很慢,但唯一的目的是存档,大多关闭,有时访问数据(单用户,不需要并行访问)。像现在一样工作正常
目标
由于我更想使用 Linux,而且 Server 2012 R2 已停产,因此我想在 GNU/Linux 上重新安装系统,使用相同的基础提供相同的功能。
如果我读到有关重复数据删除的内容,它总是 ZFS 或 BTRFS,但需要大量 RAM。或者使用 BorgBackup 的 OpenMediaVault...但客户端也需要 BorgBackup(客户端仍然需要 Windows)
最接近的等效 Linux 设置是什么?
答案1
请参阅适用于您的文件服务器的 Truenas Scalehttps://www.truenas.com/truenas-scale/ 有一个网络管理面板代替 RDP
我认为,如果您需要在 zfs 池上使用重复数据删除,则需要添加 RAM
答案2
因此,您可以正常地从 USB 驱动器安装 debian(通常),使用debian 12 amd64 网络安装镜像(这是当您在 debian.org 上单击“下载”时获得的默认设置)。进行“图形安装”。
如果您的网络中有 DHCP(或 IPv6 autoconf),那么您无需为网络设置任何内容 - 只需使用默认设置即可。
有时安装程序会要求您选择要用于设置磁盘的方案。使用
引导式 - 使用整个磁盘并设置 LVM
在下一个对话框中选择要从中启动的驱动器作为安装位置。 (如果有疑问,请使用SSD;它将是最需要唤醒的SSD,并且唤醒速度最快)。当询问是否将更改写入磁盘时,选择“是”。
之后会问你
您可以使用整个卷组或其中的一部分进行引导分区。...
在该对话框中,目前仅使用 20 GB。这是系统安装体积的大小,我们不需要太多。 Linux逻辑卷管理器我们使用的 (LVM) 还允许我们在运行时和以后的任何时间点根据需要添加更多空间。整洁的。
再次确认您希望将更改写入磁盘。
安装程序开始安装基本系统。完成安装,确保在软件选择中选择“SSH 服务器”和“标准系统实用程序”。由于这个盒子将是一个位于角落的无屏幕服务器,因此我们不会从安装任何图形桌面环境开始:)
一切都会被安装,并且系统会询问您将引导加载程序安装到哪里。和以前一样的驱动。
安装完成后,您可以重新启动,并且会出现一个相当沉闷的提示:
Debian GNU/Linux 12 debian tty1
debian login:
使用您在安装过程中指定的普通用户凭据。
ip address
会告诉你这台机器的IP地址。
使用另一台笔记本电脑进入ssh
新设置的机器 - 我们不会坐在它前面进一步配置它。
通过SSH登录(当然本地登录也可以),
sudo vgs
将显示卷组;你应该正好有一个,debian-vg
.
sudo lvs
将向您展示逻辑卷;您应该有两个,root
其中包含系统的文件系统,以及swap_1
,这是在 RAM 不足时使用的磁盘空间。
我们还想使用所有其他磁盘,
- 将它们添加到卷组中
- 创建一个跨多个磁盘的新的大型逻辑卷,
- 使用 XFS 格式化新的逻辑卷,最后
- 将其用作 CIFS/Windows 共享
因此,我们首先要弄清楚这些驱动器在哪里。sudo pvs
显示当前使用的物理卷,即卷组正在使用的实际存储设备。应该正好有一个。就像是/dev/sda5
。因此,/dev/sda
这将是我们在安装过程中设置的一张磁盘。
跑步sudo lsblk
。您将获得所有磁盘的列表。您的其他磁盘也会在那里。记下他们的名字。我们假设它们是sbd
、sdc
、sdd
等等。 (他们可能真的不是!)
sudo pvcreate /dev/sdb /dev/sdc /dev/sdd
将对这些磁盘的分区表造成不可挽回的损坏,并准备将它们添加到您的卷组中。
sudo vgextend debian-vg /dev/sdb /dev/sdc /dev/sdd
会将它们添加到debian-vg
卷组中。
再次检查sudo vgs
一下,看看您现在有多少 VFree Size!
让我们创建一个名为 的新逻辑卷,datavolume
它使用一半的空间:
sudo lvcreate -n datavolume -l 50%FREE debian-vg
整洁,sudo lvs
现在将显示这一点,并将sudo vgs
显示未使用空间的减少。
让我们使用 XFS 格式化该新卷:
sudo mkfs.xfs /dev/debian-vg/datavolume
哎呀!这会失败,因为我们还没有安装该mkfs.xfs
程序:
sudo apt update
sudo apt install xfsprogs
让我们再试一次:
sudo mkfs.xfs /dev/debian-vg/datavolume
那应该有效。让我们创建一个新目录山该卷,以便我们可以访问存储在其中的文件:
mkdir -p /srv/data
跑步sudo nano /etc/fstab
。添加一行
/dev/mapper/debian--vg-datavolume /srv/data xfs noatime 0 0
保存 ( Ctrl+ o) 并退出 ( Ctrl+ x)。sudo mount --all
现在将继续进行安装。它会在启动时自动发生。
正如我们之前讨论的,您希望定期删除重复数据。因此,安装duperemove
程序 ( sudo apt install duperemove
)。您可以像这样手动运行它:
sudo duperemove -rd --hashfile=/var/lib/data-deduplication.db /srv/data
它将遍历 的所有(当前未索引的)内容/srv/data
,将所有块的哈希值写入文件/var/lib/data-deduplication.db
(这样我们下次运行时就不必进行完整扫描!),比较哈希值,然后让 Linux 验证内容是实际上相同(不仅仅是哈希值),并对它们进行重复数据删除。
您可以将此命令放入 systemd 服务文件中,并在 systemd 计时器中使用它来执行诸如每周执行一次,或闲置 1 小时后执行一次之类的操作,但我会说实话:我的答案有点有点已经很久了。如果这种自动化很有趣,只需提出一个新问题(“我如何duperemove…
每周运行一次?”并附上此答案的链接)。
关于如何连接 Windows 客户端:这里通常的方法是设置 Samba,这样您就可以获得 Windows 共享。这并不难,但很多地方已经涵盖了。您需要共享 的子目录/srv/data
。 (另外,再次欢迎提问。)
如果这仅用于备份目的,还有其他选择,例如齐奏人们非常成功地使用它,它可以通过 SSH 直接登录服务器,并且不需要您设置 samba。主要看你的需求了,真的!