web-dev-qa-db-ja.com

samba4とvfs_shadow2でBtrfsスナップショットを公開する

クライアントでWindowsエクスプローラー機能の「以前のバージョン」を機能させるために、Fedora22で実行されているsamba4.2でvfs_shadow2モジュールを実装しようとしています。

共有された「フォルダー」は実際にはBtrfsサブボリュームであり、SELinuxが有効になっており、適切なコンテキストが設定されており、ユーザーは期待どおりに共有を閲覧、読み取り、書き込みできます。また、共有の直接の子として2つのスナップショットを作成し、@ GMT-YYYY.MM.DD-hh.mm.ssのように名前を付けました(vfs_shadow_copyドキュメント[1]に記載されています)。

そのシェアに関する私の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パッケージですか(名前にvfsのsambaを含むすべてのものをすでにインストールしていますが)?どんな助けでも大歓迎です。ありがとうございました。

敬具!

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

2
CKlink

このアーティケルを使用して解決: [GUIDE] 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
3
CKlink