線上書籍

Home

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

  1. 重點:
    1. 將快照 zfs/samba@1 到 zfs/samba@2 之間的差異 傳送到遠端主機
    2. 從原始快照傳送增量串流以建立複製。接收端必須存有原始快照,才能接受增量串流。
       
  2. 建立兩邊預設同步的快照
     
    1. 先建立 zfs/samba 快照
      root@debian8:~# zfs snapshot zfs/samba@1
       
    2. 將 zfs/samba@1 傳送到遠端主機的  bacupd/samba dataset
      root@debian8:~# zfs send     zfs/samba@1 | ssh localhost      zfs receive      backup/samba -F
      root@localhost's password:    <------這裡輸入遠端主機的密碼
      cannot receive new filesystem stream: I/O error
       
    3. 現在兩邊主機的 dataset 目前已同步
      root@debian8:~# zfs list -t snapshot

      NAME             USED  AVAIL  REFER  MOUNTPOINT
      backup/samba@1      0      -   152K  -
      zfs/samba@1         0      -   152K  -

       

  3. 來源端增量
     

    1. 在 /zfs/samba/ dataset 下增加檔案/目錄
      root@debian8:~# cd /zfs/samba/

    2. 將 /var/ 目錄複製到 /zfs/samba/ 底下
      root@debian8:/zfs/samba# rsync -avP      /var/     /zfs/samba/var/

      root@debian8:/zfs/samba# ls -alF
      總計 34
      drwxr-xr-x  4 root root  4  7月  4 23:17 ./
      drwxr-xr-x  4 root root  4  7月  3 22:22 ../
      drwxr-xr-x  6 root root  6  7月  1 10:10 01-教導處/
      drwxr-xr-x 11 root root 13  6月 13 14:04 var/
       

    3. 目錄容量明顯增加
      root@debian8:/zfs/samba# du -d1 -h
      43K    ./01-教導處
      145M    ./var
      145M

       

  4. /zfs/samba/ 檔案及目錄增加或修改過後

    1. 製作第2次快照
      root@debian8:/zfs/samba# zfs snapshot zfs/samba@2
       

    2. 目前快照
      root@debian8:/zfs/samba# zfs list -t snapshot
      NAME             USED  AVAIL  REFER  MOUNTPOINT
      backup/samba@1      0      -   152K  -
      zfs/samba@1       96K      -   152K  -
      zfs/samba@2         0      -   144M  -
       

  5. 將增量的部份傳送到遠端主機

    1. 使用 參數 -I (大寫的 i ) 來傳送增量快照
      ~# zfs send -I zfs/samba@1 zfs/samba@2 | ssh localhost zfs receive backup/samba -F
      root@localhost's password:     <-----這裡輸入遠端主機密碼
      root@debian8:/zfs/samba#
       

    2. 目前快照,可以發現本端主機與遠端主機的快照也同步了
      root@debian8:/zfs/samba# zfs list -t snapshot
      NAME             USED  AVAIL  REFER  MOUNTPOINT
      backup/samba@1    96K      -   152K  -
      backup/samba@2      0      -   144M  -
      zfs/samba@1       96K      -   152K  -
      zfs/samba@2       88K      -   144M  -

       

  6. 使用增量快照的方式,在資料的傳輸上要比傳統使用 rsync 的方式所需要傳輸的資料少,時間上也較節省。若有一個10G的大檔案變更檔名,以rsync的方式來同步時,就必須重新傳送10G的資料量,而以zfs快照增量的方式,僅僅只需要傳送「變更檔名」的改變。
    而且,zfs還提供本機與遠端每一次變更的快照。

     

  7. 參考資料
    http://docs.oracle.com/cd/E19253-01/819-0362/ghgfx/index.html