5.打包與壓縮
本章同步視頻:https://edu.51cto.com/sd/e4874
5.3 xfs文件系統的備份和恢復
XFS提供了 xfsdump 和 xfsrestore 工具協助備份XFS文件系統中的數據。XFS不需要在備份前被卸載;對使用中的XFS文件系統做備份就可以保證鏡像的一致性。XFS的備份和恢復的過程是可以被中斷然後繼續的,無須凍結文件系統。xfsdump 甚至提供了高性能的多線程備份操作——它把一次dump拆分成多個數據流,每個數據流可以被髮往不同的目的地。
5.3.1 備份策略
完全備份是指把所有需要備份的數據全部備份。完全備份可以備份整塊硬盤、整個分區或某個具體的目錄。
完全備份的好處是,所有數據都進行了備份,系統中任何數據丟失都能恢復,且恢復效率較高。
完全備份的缺點也很明顯,那就是需要備份的數據量較大,備份時間較長,備份了很多無用數據,佔用的空間較大,所以完全備份不可能每天執行。
累計增量備份是指先進行一次完全備份,服務器運行一段時間之後,比較當前系統和完全備份的備份數據之間的差異,只備份有差異的數據。服務器繼續運行,再經過一段時間,進行第二次增量備份。在進行第二次增量備份時,當前系統和第一次增量備份的數據進行比較,也是隻備份有差異的數據。第三次增量備份是和第二次增量備份的數據進行比較,以此類推。
採用累計增量備份的好處是,每次備份需要備份的數據較少,耗時較短,佔用的空間較小;壞處是數據恢復比較麻煩,那麼當進行數據恢復時,就要先恢復完全備份的數據,再依次恢復第一次增量備份的數據、第二次增量備份的數據和第三次增量備份的數據,最終才能恢復所有的數據。
差異備份也要先進行一次完全備份,但是和累計增量備份不同的是,每次差異備份都備份和原始的完全備份不同的數據。也就是說,差異備份每次備份的參照物都是原始的完全備份,而不是上一次的差異備份。
相比較而言,差異備份既不像完全備份一樣把所有數據都進行備份,也不像增量備份在進行數據恢復時那麼麻煩,只要先恢復完全備份的數據,再恢復差異備份的數據即可。不過,隨着時間的增加,和完全備份相比,變動的數據越來越多,那麼差異備份也可能會變得數據量龐大、備份速度緩慢、佔用空間較大。
5.3.2 XFS 文件系統備份xfsdump
u xfsdump不支援沒有掛載的文件系統備份!所以只能備份已掛載的!
u xfsdump必須使用 root 的權限才能操作 (涉及文件系統的關係)
u xfsdump備份下來的數據 (檔案或儲存媒體) 只能讓xfsrestore解析
u xfsdump是透過文件系統的 UUID 來分辨各個備份檔的,因此不能備份兩個具有相同 UUID 的文件系統喔!
2.xfsdump - XFS filesystem incremental dump utility
[root@study ~]# xfsdump [-L S_label] [-M M_label] [-l #] [-f 備份檔] 待備份資料
-L :xfsdump會紀錄每次備份的 session 標頭,這裏可以填寫針對此文件系統的簡易說明
-M :xfsdump可以紀錄儲存媒體的標頭,這裏可以填寫此媒體的簡易說明
-l :是 L 的小寫,就是指定等級~有 0~9 共 10 個等級喔! (預設爲 0,即完整備份)
-f :有點類似 tar 啦!後面接產生的檔案,亦可接例如 /dev/st0 裝置文件名或其他一般檔案檔名等
-I :從 /var/lib/xfsdump/inventory 列出目前備份的信息狀態
使用fdisk劃分一個分區sda3,並格式化爲xfs。(此部分操作省略)
[root@localhost mnt]# mount /dev/sda3 /mnt/sda3/ #掛載
[root@localhost mnt]# df -h /dev/sda3 #查看掛載情況,可省略
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 197M 11M 187M 6% /mnt/sda3
[root@localhost mnt]# blkid /dev/sda3 #查看分區信息,可省略
/dev/sda3: UUID="f598c75c-bd26-4543-af2f-8192841c4c8b" TYPE="xfs"
[root@localhost mnt]# touch /mnt/sda3/1.txt
[root@localhost mnt]# xfsdump -l 0 -f /tmp/sda3 /dev/sda3
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.3 (dump format 3.0) - type ^C for status and control
=============== dump label dialog =================
please enter label for this dump session (timeout in 300 sec)
session label entered: "dump_sda3_20200331"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of localhost.localdomain:/mnt/sda3
xfsdump: dump date: Tue Mar 31 20:30:53 2020
xfsdump: session id: 0dab0e83-90fb-4fef-88db-974bd0e5a2f3
xfsdump: session label: "dump_sda3_20200331"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 21120 bytes
xfsdump: /var/lib/xfsdump/inventory created
=============== media label dialog =================
please enter label for media in drive 0 (timeout in 300 sec)
--------------------------------- end dialog ---------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping non-directory files
xfsdump: media file size 21656 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 33 seconds elapsed
xfsdump: stream 0 /tmp/sda3 OK (success)
[root@localhost mnt]# ls /tmp/
[root@localhost mnt]# xfsdump -l 0 -L dump_sda3_20200331 -M sda3 -f /tmp/sda3 /dev/sda3
[root@localhost mnt]# xfsdump -I #
fs id: f598c75c-bd26-4543-af2f-8192841c4c8b
mount point: localhost.localdomain:/mnt/sda3
device: localhost.localdomain:/dev/sda3
time: Tue Mar 31 20:42:51 2020
session label: "dump_sda3_20200331"
session id: b2315293-f79f-43b2-9276-157268eea187
media id: 23a27bd0-e47b-4bee-9005-d530e6303f63
[root@localhost mnt]# ls sda3/
[root@localhost mnt]# touch sda3/2.txt
[root@localhost mnt]# ls sda3/
[root@localhost mnt]# xfsdump -l 1 -L dump_sda3_20200331-1 -M sda3 -f /tmp/sda3-1 /dev/sda3
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.3 (dump format 3.0) - type ^C for status and control
xfsdump: level 1 incremental dump of localhost.localdomain:/mnt/sda3 based on level 0 dump begun Tue Mar 31 20:42:51 2020
xfsdump: dump date: Tue Mar 31 20:47:58 2020
xfsdump: session id: 989e4ade-b8c3-40be-9714-10c648f6b46c
xfsdump: session label: "dump_sda3_20200331-1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 21120 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping non-directory files
xfsdump: media file size 21680 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: stream 0 /tmp/sda3-1 OK (success)
[root@localhost mnt]# xfsdump -I
fs id: f598c75c-bd26-4543-af2f-8192841c4c8b
mount point: localhost.localdomain:/mnt/sda3
device: localhost.localdomain:/dev/sda3
time: Tue Mar 31 20:42:51 2020
session label: "dump_sda3_20200331"
session id: b2315293-f79f-43b2-9276-157268eea187
media id: 23a27bd0-e47b-4bee-9005-d530e6303f63
mount point: localhost.localdomain:/mnt/sda3
device: localhost.localdomain:/dev/sda3
time: Tue Mar 31 20:47:58 2020
session label: "dump_sda3_20200331-1"
session id: 989e4ade-b8c3-40be-9714-10c648f6b46c
media id: 42121b62-abf0-4e26-98f1-48d50f01b633
[root@localhost mnt]# touch sda3/{3,4,5,6}.txt
[root@localhost mnt]# ls sda3/
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt
[root@localhost mnt]# xfsdump -l 2 -L dump_sda3_20200331-2 -M sda3 -f /tmp/sda3-2 /dev/sda3
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.3 (dump format 3.0) - type ^C for status and control
xfsdump: level 2 incremental dump of localhost.localdomain:/mnt/sda3 based on level 1 dump begun Tue Mar 31 20:47:58 2020
xfsdump: dump date: Tue Mar 31 20:56:34 2020
xfsdump: session id: 1a6e946b-fd0e-4e70-bb00-b82c04291de7
xfsdump: session label: "dump_sda3_20200331-2"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 22080 bytes
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping non-directory files
xfsdump: media file size 23624 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 0 seconds elapsed
xfsdump: stream 0 /tmp/sda3-2 OK (success)
[root@localhost mnt]# xfsdump -I
fs id: f598c75c-bd26-4543-af2f-8192841c4c8b
mount point: localhost.localdomain:/mnt/sda3
device: localhost.localdomain:/dev/sda3
time: Tue Mar 31 20:42:51 2020
session label: "dump_sda3_20200331"
session id: b2315293-f79f-43b2-9276-157268eea187
media id: 23a27bd0-e47b-4bee-9005-d530e6303f63
mount point: localhost.localdomain:/mnt/sda3
device: localhost.localdomain:/dev/sda3
time: Tue Mar 31 20:47:58 2020
session label: "dump_sda3_20200331-1"
session id: 989e4ade-b8c3-40be-9714-10c648f6b46c
media id: 42121b62-abf0-4e26-98f1-48d50f01b633
mount point: localhost.localdomain:/mnt/sda3
device: localhost.localdomain:/dev/sda3
time: Tue Mar 31 20:56:34 2020
session label: "dump_sda3_20200331-2"
session id: 1a6e946b-fd0e-4e70-bb00-b82c04291de7
media id: f410ea13-eada-4566-87c8-844b1a939ce1