線上書籍

Home

自建 samba + ZFS (snhpshot快照/任意還原點)檔案伺服器

步驟:

  1. 製作快照:將要傳送的資料池(dataset, 相當於分割區的概念)製作快照
  2. 將製作的快照傳送到另一台主機(pve)

實作:

  1. 將虛擬機 的 dataset zfs/samba 先建立快照
    root@debian8:~# zfs snapshot -r zfs/samba@GMT-`date -u +%Y.%m.%d-%H.%M.%S`
    root@debian8:~# zfs list -t snapshot
    NAME                                USED  AVAIL  REFER  MOUNTPOINT
    zfs/samba@GMT-2017.07.04-13.45.57      0      -   152K  -
    root@debian8:~#
  2. 將虛擬機 的 dataset zfs/samba 建立的快照 zfs/samba@GMT-2017.07.04-13.45.57
    透過網路 以zfs 複製/備份 到
    另一台主機 pve 的 backup/samba dataset

    來源:本  機
    zfs dataset:zfs/samba@GMT-2017.07.04-13.45.57
    目的:遠端主機 pve (或 主機pve的ip 192.168.200.12)
    zfs dataset:backup/samba

    開始傳送
    # zfs send zfs/samba@GMT-2017.07.04-13.45.57 | ssh pve zfs receive backup/samba

    # zfs send zfs/samba@GMT-2017.07.04-13.45.57 | ssh 192.168.200.12 zfs receive backup/samba

    說明:
    1. 1.zfs     zfs檔案系統提供的處理指令
    2. @GMT-2017.07.04-13.45.57 dataset 因為還掛載於系統上(使用中),所以先製作快照,zfs會將這個dataset 的時間點快照複製到遠端主機,這樣才不會影響到系統對這個dataset的讀寫
    3. send 傳送
    4. ssh pve 透過ssh 連線到 主機 pve 或 主機的ip
    5. receive 接收
    6. 若遠端主機(接收方)的目的 dataset (backup/samba)原本不存在,zfs會自動建立。
    7. 但遠端目的dataset文件系統若已經存在,為避免將遠端覆蓋zfs會自動停止傳送,可加上 -F 參數強制 覆蓋.
      # zfs send zfs/samba@GMT-2017.07.04-13.45.57 | ssh pve zfs receive backup/samba  -F