proxmox zfs 建立異地備份與還原

URL Link //n.sfs.tw/15056

2021-04-22 13:42:18 By igogo

 

zfs最吸引人的地方就是可以建立快照並傳輸到遠端机器, 達到增量備份, 並且隨時從任一備份檔還原

完全不怕勒索病毒

 

將vm 建立在zfs碟上

 

Step 1

建立一vm 的基準快照

zfs snapshot zfspool/vm-9991-disk-0@base

 

Step 2

傳送到遠端, 異地備份

zfs send rpool/data/vm-9991-disk-0@base | ssh 192.168.2.17 zfs recv local-zfs/vm-9991-disk-0

確認是否將資料傳輸過去

host b

zfs list

 

Step 3

建立批次備份

3-1

ssh 自動登入

#ssh-keygen

將產生的 ~/.ssh/id_rsa.pub 上傳到 host b中, 並加入

authorized_keys 中

 

#cat id_rsa.pub >> ~/.ssh/authorized_keys

 

3-2 建立批次檔

#!/bin/bash

#host a 上的 file system
hostazfs="zfspool/vm-9991-disk-0"

#host b 上欲備份的位置
hostbzfs="local-zfs/vm-9991-disk-0"

#第一個建立的snapshot
base_snapshot="base"

#遠端備份机的ip
remote_ip="192.168.2.17"

#產生時間戳記做為 tag   %N做為測試用, 定期備份用%F日期區分即可
timestamp="$(date +"%F-%N")"

#以下不用變更
/sbin/zfs snapshot "$hostazfs@$timestamp"

echo "$hostazfs@$timestamp has been created"

zfs send -RI $base_snapshot "$hostazfs@$timestamp" | ssh $remote_ip zfs recv $hostbzfs

echo "$hostazfs@$timestamp has been sent"

 

 

Step 4

restore

on hostb,

pick  a snapshot,  and clone as a file

zfs clone local-zfs/vm-9991-disk-0@2021-04-22-188237971  local-zfs/vm-9991-disk-99

create a new vm, send and receive to new vm disk, force.

# zfs send local-zfs/vm-9991-disk-99 | zfs recv -F local-zfs/vm-100-disk-0