``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 608K 7.94G 0% 1.00x ONLINE - zfs 7.94G 608k 7.94G 0% 1.00x ONLINE - ``` 3. 名為 *`zfs`* 的儲存池為主要的儲存池,資料會定期寫入與讀取的位置。第二個儲存池 *`backup`* 用來待命 (Standby),萬一主要儲存池無法使用時可替換。注意,ZFS 並不會自動做容錯移轉 (Fail-over),必須要由系統管理者在需要的時候手動完成。快照會用來提供一個與檔系統一致的版本來做備份,*`zfs`* 的快照建立之後,便可以複製到 *`backup`* 儲存池,只有快照可以做備份,最近一次快照之後所做的變更不會含在內容裡面。 ``` ``` # ``` zfs snapshot zfs/samba@backup1 ``` # ``` zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT zfs@backup1 80k - 160k - ``` 4. 快照存在以後,便可以使用 `zfs send` 來建立一個代表快照內容的串流,這個串流可以儲存成檔案或由其他儲存池接收。串流會寫入到標準輸出,但是必須要重新導向到一個檔案或轉接到其他地方,否則會錯誤: ``` ``` # ``` zfs send zfs@backup1 Error: Stream can not be written to a terminal. You must redirect standard output. ``` 6. 要使用 `zfs send` 備份一個資料集,可重新導向到一個位於在已掛載到備份儲存池上的檔案。確定該儲存池有足夠的空間容納要傳送的快照,這裡指的是該快照中內含的所有資料,並非只有上次快照到該快照間的變更。 ``` ``` # ``` zfs send zfs@backup1 > /backup/backup1 ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 608K 7.94G 0% 1.00x ONLINE - zfs 7.94G 608k 7.94G 0% 1.00x ONLINE - ``` 7. `zfs send` 會傳輸在快照 *`backup1`* 中所有的資料到儲存池 *`backup`*。可以使用 [cron(8)](http://www.FreeBSD.org/cgi/man.cgi?query=cron&sektion=8&manpath=freebsd-release-ports) 排程來自動完成建立與傳送快照的動作。 8. 若不想將備份以封存檔案儲存,ZFS 可用實際的檔案系統來接收資料,讓備份的資料可以直接被存取。要取得實際包含在串流中的資料可以用 `zfs receive` 將串流轉換回檔案與目錄。 以下例子會以管線符號連接 `zfs send` 及 `zfs receive`,將資料從一個儲存池複製到另一個,傳輸完成後可以直接使用接收儲存池上的資料。一個資料集只可以被複製到另一個空的資料集。 ``` ``` # ``` zfs snapshot zfs@replica1 ``` # ``` zfs send -v zfs@replica1 | zfs receive -F backup/mypool <--- 若不存在 backup/mypool ,zfs會自動建立一個 dataset send from @ to mypool@replica1 estimated size is 50.1M total estimated size is 50.1M TIME SENT SNAPSHOT ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 1.28M 7.94G 0% 1.00x ONLINE - zfs 7.94G 1.04M 7.94G 0% 1.00x ONLINE - ```
zpool list
``` # ``` zfs snapshot zfs/samba@backup1 ``` # ``` zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT zfs@backup1 80k - 160k - ``` 4. 快照存在以後,便可以使用 `zfs send` 來建立一個代表快照內容的串流,這個串流可以儲存成檔案或由其他儲存池接收。串流會寫入到標準輸出,但是必須要重新導向到一個檔案或轉接到其他地方,否則會錯誤: ``` ``` # ``` zfs send zfs@backup1 Error: Stream can not be written to a terminal. You must redirect standard output. ``` 6. 要使用 `zfs send` 備份一個資料集,可重新導向到一個位於在已掛載到備份儲存池上的檔案。確定該儲存池有足夠的空間容納要傳送的快照,這裡指的是該快照中內含的所有資料,並非只有上次快照到該快照間的變更。 ``` ``` # ``` zfs send zfs@backup1 > /backup/backup1 ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 608K 7.94G 0% 1.00x ONLINE - zfs 7.94G 608k 7.94G 0% 1.00x ONLINE - ``` 7. `zfs send` 會傳輸在快照 *`backup1`* 中所有的資料到儲存池 *`backup`*。可以使用 [cron(8)](http://www.FreeBSD.org/cgi/man.cgi?query=cron&sektion=8&manpath=freebsd-release-ports) 排程來自動完成建立與傳送快照的動作。 8. 若不想將備份以封存檔案儲存,ZFS 可用實際的檔案系統來接收資料,讓備份的資料可以直接被存取。要取得實際包含在串流中的資料可以用 `zfs receive` 將串流轉換回檔案與目錄。 以下例子會以管線符號連接 `zfs send` 及 `zfs receive`,將資料從一個儲存池複製到另一個,傳輸完成後可以直接使用接收儲存池上的資料。一個資料集只可以被複製到另一個空的資料集。 ``` ``` # ``` zfs snapshot zfs@replica1 ``` # ``` zfs send -v zfs@replica1 | zfs receive -F backup/mypool <--- 若不存在 backup/mypool ,zfs會自動建立一個 dataset send from @ to mypool@replica1 estimated size is 50.1M total estimated size is 50.1M TIME SENT SNAPSHOT ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 1.28M 7.94G 0% 1.00x ONLINE - zfs 7.94G 1.04M 7.94G 0% 1.00x ONLINE - ```
zfs snapshot zfs/samba@backup1
zfs/samba
backup1
zfs list -t snapshot
``` # ``` zfs send zfs@backup1 Error: Stream can not be written to a terminal. You must redirect standard output. ``` 6. 要使用 `zfs send` 備份一個資料集,可重新導向到一個位於在已掛載到備份儲存池上的檔案。確定該儲存池有足夠的空間容納要傳送的快照,這裡指的是該快照中內含的所有資料,並非只有上次快照到該快照間的變更。 ``` ``` # ``` zfs send zfs@backup1 > /backup/backup1 ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 608K 7.94G 0% 1.00x ONLINE - zfs 7.94G 608k 7.94G 0% 1.00x ONLINE - ``` 7. `zfs send` 會傳輸在快照 *`backup1`* 中所有的資料到儲存池 *`backup`*。可以使用 [cron(8)](http://www.FreeBSD.org/cgi/man.cgi?query=cron&sektion=8&manpath=freebsd-release-ports) 排程來自動完成建立與傳送快照的動作。 8. 若不想將備份以封存檔案儲存,ZFS 可用實際的檔案系統來接收資料,讓備份的資料可以直接被存取。要取得實際包含在串流中的資料可以用 `zfs receive` 將串流轉換回檔案與目錄。 以下例子會以管線符號連接 `zfs send` 及 `zfs receive`,將資料從一個儲存池複製到另一個,傳輸完成後可以直接使用接收儲存池上的資料。一個資料集只可以被複製到另一個空的資料集。 ``` ``` # ``` zfs snapshot zfs@replica1 ``` # ``` zfs send -v zfs@replica1 | zfs receive -F backup/mypool <--- 若不存在 backup/mypool ,zfs會自動建立一個 dataset send from @ to mypool@replica1 estimated size is 50.1M total estimated size is 50.1M TIME SENT SNAPSHOT ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 1.28M 7.94G 0% 1.00x ONLINE - zfs 7.94G 1.04M 7.94G 0% 1.00x ONLINE - ```
zfs send zfs@backup1
``` # ``` zfs send zfs@backup1 > /backup/backup1 ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 608K 7.94G 0% 1.00x ONLINE - zfs 7.94G 608k 7.94G 0% 1.00x ONLINE - ``` 7. `zfs send` 會傳輸在快照 *`backup1`* 中所有的資料到儲存池 *`backup`*。可以使用 [cron(8)](http://www.FreeBSD.org/cgi/man.cgi?query=cron&sektion=8&manpath=freebsd-release-ports) 排程來自動完成建立與傳送快照的動作。 8. 若不想將備份以封存檔案儲存,ZFS 可用實際的檔案系統來接收資料,讓備份的資料可以直接被存取。要取得實際包含在串流中的資料可以用 `zfs receive` 將串流轉換回檔案與目錄。 以下例子會以管線符號連接 `zfs send` 及 `zfs receive`,將資料從一個儲存池複製到另一個,傳輸完成後可以直接使用接收儲存池上的資料。一個資料集只可以被複製到另一個空的資料集。 ``` ``` # ``` zfs snapshot zfs@replica1 ``` # ``` zfs send -v zfs@replica1 | zfs receive -F backup/mypool <--- 若不存在 backup/mypool ,zfs會自動建立一個 dataset send from @ to mypool@replica1 estimated size is 50.1M total estimated size is 50.1M TIME SENT SNAPSHOT ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 1.28M 7.94G 0% 1.00x ONLINE - zfs 7.94G 1.04M 7.94G 0% 1.00x ONLINE - ```
zfs send zfs@backup1 > /backup/backup1
zfs
/backup/backup1
``` # ``` zfs snapshot zfs@replica1 ``` # ``` zfs send -v zfs@replica1 | zfs receive -F backup/mypool <--- 若不存在 backup/mypool ,zfs會自動建立一個 dataset send from @ to mypool@replica1 estimated size is 50.1M total estimated size is 50.1M TIME SENT SNAPSHOT ``` # ``` zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 7.94G 1.28M 7.94G 0% 1.00x ONLINE - zfs 7.94G 1.04M 7.94G 0% 1.00x ONLINE - ```
zfs snapshot zfs@replica1
replica1
zfs send -v zfs@replica1 | zfs receive -F backup/mypool
-F backup/mypool
10人線上 (6人在瀏覽線上書籍)
會員: 0
訪客: 10