使用 samba4 和 vfs_shadow2 公开 Btrfs 快照

使用 samba4 和 vfs_shadow2 公开 Btrfs 快照

我正在尝试使用在 Fedora 22 上运行的 samba 4.2 实现 vfs_shadow2 模块,以使客户端上的 Windows 资源管理器功能“以前的版本”能够正常工作。

共享“文件夹”实际上是一个 Btrfs 子卷,SELinux 已启用,已设置适当的上下文,并且共享可供用户浏览、读取和写入,正如预期的那样。此外,我创建了两个快照作为共享的直接子项,并将它们命名为(如 vfs_shadow_copy 文档 [1] 中所述),例如 @GMT-YYYY.MM.DD-hh.mm.ss。

关于该共享的 smb.conf 是

[btrfs]
    comment = btrfs storagepool with subfolders, subvolumes and snapshots
    path = /srv/btrfs/subvol01
    vfs objects = shadow_copy2
    browseable = yes
    valid users = testuser

尽管如此,当连接 Windows 客户端(Win 8.1 Professional x64)并尝试将文件恢复到以前的版本时,我只收到无法找到以前版本的提示。

我遗漏了什么?是否需要安装额外的 RPM 包(尽管我已经安装了名称中包含 samba 或 vfs 的所有内容)?任何帮助都将不胜感激。谢谢。

亲切的问候!

[1]https://www.samba.org/samba/docs/man/manpages/vfs_shadow_copy2.8.html

答案1

使用这篇文章解决了:[指南] Windows 先前版本和 Samba (Btrfs - Atomic COW - 卷影复制)

如何在 Fedora22 上重现工作配置

1)创建BTRFS子卷


mount /dev/sda5 /mnt #your BTRFS partition
btrfs subvolume create /mnt/share
brtfs subvolume create /mnt/share/.snapshots
umount /mnt

2)编辑 fstab(或根据要求手动安装)

  
UUID={uuid_of_btrfs_partition} /share brtfs subvol=share 0 0
UUID={uuid_of_btrfs_partition} /share/.snapshots btrfs subvol=share/.snapshots 0 0

3)创建 Samba 共享


[btrfs]  
    path = /share  
    vfs objects = shadow_copy2  
    shadow:format = @GMT_%Y.%m.%d-%H.%M.%S  
    shadow:sort = desc  
    shadow:snapdir = .snapshots  

4)创建只读快照


    brtfs subvolume snapshot -r /share /share/.snapshots/@GMT_`date +%Y.%m.%d-%H.%M.%S`

5)如何删除快照


btrfs subvolume delete /share/.snapshots/@GMT_2015.07.31-14.01.20

相关内容