linux xfs文件系統

centos7使用了xfs格式做爲默認文件系統,centos

xfs提供了xfsdump備份, xfsrestore恢復session

 

  • xfs的備份和恢復過程是能夠被中斷而後繼續的,無需凍結文件,無需凍結文件系統
  • xfsdump甚至提供了高性能的多線程備份操做----他把一次dump拆分紅多個數據流,每一個數據流能夠被髮往不一樣的目的地

xfsdump的備份級別有如下兩種,默認爲0多線程

  1. 0 級別表明 : 徹底備份
  2. 1到9級別表明 : 增量備份

 

  • 徹底備份:每次都把指定的備份目錄完整的複製一遍,無論目錄下的文件有沒有變化
  • 增量備份:每次將以前(第一次,第二次,直到前一次)作過備份以後又變化的文件備份
  • 差別備份:每次都將第一次完整備份依賴有變化的文件進行備份

 

centos7,添加一塊虛擬硬盤,(準備一個測試環境)性能

正常使用一塊硬盤的過程測試

  • 添加磁盤 > 分區 > 格式化 > 掛載

1添加磁盤centos7

關閉centos
經過虛擬機>硬盤>添加設備>新硬盤, 
開機centos

 

2分區spa

ls /dev/sd*
能夠看到多了一個/dev/sdb,這就是第二個磁盤(剛剛添加的)
使用fdisk對它進行分區
fdisk /dev/sdb
輸入p查看分區

n新建分區
選擇p主分區
w保存

 

3格式化線程

格式化成xfs文件系統
mkfs.xfs /dev/sdb1

 

4掛載rest

建立掛載點
mkdir /sdb1
掛載
mount /dev/sdb1 /sdb1/

 

備份整個系統code

xfsdump -f 備份存放位置 要備份路徑或者目錄
  • 注意:備份的路徑不能寫成/sdb1/
  • 能夠寫成/dev/sdb1 或者/sdb1
xfsdump -f /opt/dump_sdb1 /dev/sdb1

會提示指定會話標籤 : dump_sdb1

提示指定設備標籤 : sdb1 

 

也能夠指定備份時免交互,方便後期作定時備份

xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1
  • -L 指定會話標籤,,記錄每次備份的session標頭,這裏填寫對此文件系統的簡易說明
  • -M 指定設備標籤,, 記錄存儲媒體的標頭,這裏填寫此媒體的簡易說明

 

固然也能夠備份分區中的某一個目錄

參數 : -s

  • -s 文件路徑 只對指定的文件進行備份
  • -s指定時,路徑寫的是相對路徑
xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grup2 -M boot
  • 這條命令中-s後面指定的grub2/grub.cfg位於boot目錄下面

 

文件系統的恢復

xfsrestore -f 指定恢復文件的位置,指定存放恢復後的文件的路徑
xfsrestore -f /opt/dump_sdb1 /sdb1
  •  恢復單個文件
xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /boot

在使用xfsdump時有以下限制

xfsdump不支持沒有掛載的文件備份命令
xfsdump必須root的權限才能操做
xfsdump只能備份xfs文件系統
xfsdump備份的數據,只能讓xfsrestore解析

 

 

 

增量備份

概念:是指在上一次全備份或者在上一次增量備份後,之後每次的備份只需備份與前一次相比增長或者刪除的文件

第一次增量備份的對象是進行全備份後產生的增長和修改的文件,第二次增量備份的對象時進行第一次增量備份後所產生的增長和修改的文件

 

  • 優勢:沒有重複的備份數據,所以備份的數據量不大,備份所需的時間比較短
  • 缺點:數據恢復相對比較麻煩,他須要上一次全備份和全部增量備份的內容纔可以徹底恢復成功,而且它們必須沿着從全備份到以此增量備份的時間順序逐個反推恢復,所以可能會延長恢復時間

 

實戰:

1    第一次徹底備份

xfsdump -f /opt/dump_sdb1 /dev/sdb1 -L dump_sdb1 -M sdb1

 

2   將要備份的目錄添加內容,進行增量備份

xfsdump -l 1 -f /opt/dump_sdb1.1 /dev/sdb1 -L dump_sdb1.1 -M sdb1

-l <level> : 作一個等級爲1的備份

 

3    接着添加內容,繼續進行增量備份

xfsdump -l 2 -f /opt/dump_sdb1.2 /dev/sdb1 -L dump_sdb1.2 -M sdb1
-l <level>作一個等級爲2的備份

 

4    刪除原始數據,

rm -rf /sdb1/*

 

 

如今改如何恢復呢
步驟:

  1. 先恢復徹底備份
    1. 狀況一:恢復最後一次增量備份,(若是兩次增量備份都是1級別的因此只須要備份最後一個增量就能夠了)
    2. 狀況二:若是你作的是第一次是1級倍,第二次是2級倍,那麼你在恢復的時候就須要先恢復1級倍,而後是2級倍,以此類推
  • 那麼很明顯,咱們這個實例是狀況二
恢復徹底備份
xfsrestore -f /opt/dump_sdb1 /sdb1

第一次增量恢復
xfsrestore -f /opt/dump_sdb1.1 /sdb1

第二次增量恢復
xfsrestore -f /opt/dump_sdb1.2 /sdb1

通過測試發現第一次和第二次增量恢復的順序是能夠顛倒的,由於他們備份的都是特定的數據