本地驱动器上的 Time Machine,然后将该驱动器设为另一台计算机上的网络驱动器(通过 Server.app)

4 backup nas time-machine afp macos

我有两台运行 OS X 10.10.3 的 Mac。一个安装了 Server.app,通过以太网连接到互联网,还有一个通过 USB 连接的 2 TB 磁盘,有两个分区——“备份”和“存储”。我的另一台 Mac 是用于做功课的笔记本电脑。

使用 Server.app 的 Time Machine 功能,我能够使用标准 Time Machine 界面开始通过网络将本地 mac 备份到服务器 mac 上的“备份”卷。

但是,我发现通过 AFP 复制 1 GB 文件需要 7 分钟,因此在我的本地 mac 上备份 300 GB 至少需要 35 小时。

所以,我试图找出一种方法,我可以通过 USB 将初始 300GB 备份到“备份”上,然后将该外部硬盘驱动器连接到服务器 mac 并继续通过网络进行备份。这样,增量网络备份将远小于 300GB,并且可以在合理的时间段内完成,例如一夜之间。

有什么建议?我阅读了 tmutil 的手册页,但我对它还不是很满意。

ıɾu*_*uǝʞ 5

迟到总比没有好,这里有一个技巧来实现这一点:

sudo ifconfig lo0 alias 127.0.0.2/32

插入您的 USB 驱动器,然后通过System Preferences/Sharing将 smb 共享添加到time-machine-macbook驱动器中的文件夹time-machine-usb 然后,添加目标备份(Time Machine 会将其视为网络共享)

sudo tmutil setdestination -a "smb://user:password@127.0.0.2/time-machine-macbook"

你可以看看它是否可以:

tmutil  destinationinfo
> ==================================================
Name          : time-machine4
Kind          : Network
URL           : smb://kenji@realserver._smb._tcp.local./time-machine
ID            : D820D053-C74A-4A06-A7E1-E60C8EA7934F
====================================================
Name          : time-machine-macbook
Kind          : Network
URL           : smb://user@127.0.0.2/time-machine-macbook
Mount Point   : /Volumes/time-machine-macbook
ID            : F707BD0B-64DF-4DB6-A3B7-824470FB5EB2
Run Code Online (Sandbox Code Playgroud)

然后启动备份与tmutil startbackupmount将显示:

/dev/disk3s1 on /Volumes/time-machine-usb (apfs, local, nodev, nosuid, journaled, noowners)
//user@127.0.0.2/time-machine-macbook on /Volumes/time-machine-macbook (smbfs, nobrowse)
Run Code Online (Sandbox Code Playgroud)

您可以通过以下方式查看详细进度tmutil status

Backup session status:
{
    BackupPhase = Copying;
    ClientID = "com.apple.backupd";
    DateOfStateChange = "2018-06-28 17:38:21 +0000";
    DestinationID = "F707BD0B-57DC-4DB6-A3B7-824470FB5EB2";
    DestinationMountPoint = "/Volumes/Time Machine Backups";
    FirstBackup = 1;
    Percent = "0.08711567546702646";
    Progress =     {
        TimeRemaining = 32679;
        "_raw_totalBytes" = 355694600192;
        bytes = 34429528173;
        files = 887351;
        totalBytes = 391264060211;
        totalFiles = 2922384;
    };
    Running = 1;
    Stopping = 0;
    "_raw_Percent" = "0.09679519496336274";
}
Run Code Online (Sandbox Code Playgroud)

就我而言,在大约两个小时内完成了近 1000000 个文件(USB2 磁盘损失,而通过 Wi-Fi 超过 8 小时),我用一个小脚本计算百分比:

tm-progress.sh
Files : 918702 / 2922384 (31.43%) - Bytes : 32.21 GiB / 364.39 GiB (8.84%)
Run Code Online (Sandbox Code Playgroud)

我们可以在这里看到许多文件可以使 Time Machine 以字节为单位“缓慢”前进,但近 1/3 的文件已被复制。

下一步,备份完成后,将 USB 驱动器插入您的 Realserver 并将 sparsebundle 复制到“未完成的”(或在共享文件夹中)。当然,在此步骤中应该禁用Time Machine以防止安装部分复制的 sparsebundle(并且可能会损坏它)

我已经使用 apfs 驱动器来利用快照(为了能够在 sparsebundle 损坏的情况下恢复到以前的“备份数据库”,尚未测试

编辑:更快的模式:


一旦备份达到BackupPhase = Copying以使其更快,您可以通过取消备份、重命名My-Computer.backupbundle为类似的名称1My-Computer.backupbundle并创建符号链接来直接安装备份包(无需通过 smb 发送每个操作):

ln -s /Volumes/time-machine-usb/1My-Computer.backupbundle /Volumes/time-machine-macbook/My-Computer.backupbundle

这会诱使 timemachine 跟踪本地备份包的链接,而不是通过 smb 挂载它,从而加快备份速度。完成本地备份后,请确保将备份包移回。



Spi*_*iff 1

将 Time Machine 备份从本地硬盘驱动器移动到远程服务器(反之亦然)的棘手之处在于,Time Machine 直接使用本机 HFS+ 分区进行本地备份,但是当通过 AFP 备份到服务器时,它会创建“sparsebundle”磁盘映像。

您可以使用磁盘实用程序制作 HFS+ 分区的稀疏包映像,然后将该映像放入服务器的共享卷之一中,但我不确定您是否需要对稀疏包执行任何其他操作才能使时间机器自动识别并使用它。例如,您可能必须完全正确地命名它,并且它可能会在稀疏包或其他东西中寻找某种隐藏文件。