3.xfs文件系統分區、格式化、掛載、備份和恢復

XFS提供了xfsdump和xfsrestore工具協助備份XFS文件系統中的數據。linux

centos7選擇xfs格式做爲默認文件系統,並且再也不使用之前的ext,仍然支持ext4。
xfs專爲大數據產生,單個文件系統最大能夠支持8eb,單個文件能夠支持16tb,不只數據量大,並且擴展性高。還能夠經過xfsdump,xfsrestore來備份和恢復。centos

與傳統的UNIX文件系統不一樣,XFS不須要在備份前被卸載,對使用中的XFS文件系統作備份就能夠保證鏡像的一致性。XFS的備份和恢復的過程是能夠被中斷而後繼續的,無須凍結文件系統。xfsdump甚至提供了高性能的多線程備份操做,它把一次dump拆分紅多個數據流,每一個數據流能夠被髮往不一樣的目的地。服務器

xfsdump的備份級別有如下兩種,默認爲0(即徹底備份)session

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

說明:
徹底備份:每次都把指定的備份目錄完整的複製一遍,無論目錄下的文件有沒有變化;
增量備份:每次將以前(第一次、第二次、直到前一次)作過備份以後有變化的文件進行備份;
差別備份:每次都將第一次完整備份以來有變化的文件進行備份。多線程

增長一塊虛擬磁盤

分區-->格式化-->掛載app

  1. 分區
    [root@app ~] fdisk /dev/sdb #指定分區的設備
    歡迎使用 fdisk (util-linux 2.23.2)。
    更改將停留在內存中,直到您決定將更改寫入磁盤。
    使用寫入命令前請三思。
    Device does not contain a recognized partition table
    使用磁盤標識符 0x06d5a427 建立新的 DOS 磁盤標籤。
    命令(輸入 m 獲取幫助):n #建立一個新的分區
    Partition type: p primary (0 primary, 0 extended, 4 free) e extended
    Select (default p): p #建立一個主分區
    分區號 (1-4,默認 1):
    起始 扇區 (2048-41943039,默認爲 2048):
    將使用默認值 2048
    Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認爲 41943039):+1G #指定分區大小
    分區 1 已設置爲 Linux 類型,大小設爲 1 GiB
    命令(輸入 m 獲取幫助):p #打印分區表
    磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
    Units = 扇區 of 1 * 512 = 512 bytes
    扇區大小(邏輯/物理):512 字節 / 512 字節
    I/O 大小(最小/最佳):512 字節 / 512 字節
    磁盤標籤類型:dos
    磁盤標識符:0x06d5a427
    設備 Boot Start End Blocks Id System
    /dev/sdb1 2048 2099199 1048576 83 Linux
    命令(輸入 m 獲取幫助):w #保存
    The partition table has been altered!
    Calling ioctl() to re-read partition table.
    正在同步磁盤。
    [root@app ~]# ls /dev/sdb*
    /dev/sdb /dev/sdb1
  2. 格式化-->掛載
    [root@app ~]# mkfs.xfs /dev/sdb1
    [root@app ~]# mkdir /sdb1 #建立掛載點
    [root@app ~]# mount /dev/sdb1 /sdb1 #掛載

備份

  1. 備份整個分區。(這個功能就像是虛擬機的快照,服務器被黑後,進行快速恢復)
    xfsdump -f 備份存放位置 要備份路徑或設備文件
    注意:備份的路徑這裏不能寫成/sdb1/。能夠是/dev/sdb1 或/sdb1工具

    [root@app sdb1]# xfsdump -f /opt/dump_sdb1  /dev/sdb1
       xfsdump: using file dump (drive_simple) strategy
       xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control
       ========== dump label dialog ==============================
       please enter label for this dump session (timeout in 300 sec)
         -> dump_sdb1  #指定備份會話標籤
       session label entered: "dump_sdb1"
        --------------------------------- end dialog ---------------------------------
       xfsdump: level 0 dump of xuegod63.cn:/sdb1
       xfsdump: dump date: Fri Nov 17 12:24:53 2017
       xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a
       xfsdump: session label: "dump_sdb1"
       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: 25856 bytes
       ============== media label dialog =============================
       please enter label for media in drive 0 (timeout in 300 sec)
        -> sdb1  #指定設備標籤,就是對要備份的設備作一個描述
       media label entered: "sdb1"
        --------------------------------- end dialog --------------------------------
       xfsdump: creating dump session media file 0 (media 0, file 0)
       xfsdump: dumping ino map
       xfsdump: dumping directories
       xfsdump: dumping non-directory files
       xfsdump: ending media file
       xfsdump: media file size 24544 bytes
       xfsdump: dump size (non-dir files) : 2592 bytes
       xfsdump: dump complete: 46 seconds elapsed
       xfsdump: Dump Summary:
       xfsdump:   stream 0 /opt/dump_sdb1 OK (success)
       xfsdump: Dump Status: SUCCESS
  2. 備份時免交互操做性能

    xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1
       -L:xfsdump 紀錄每次備份的session標頭,這裏能夠填寫針對此文件系統的簡易說明。
       -M:xfsdump 能夠紀錄儲存媒體的標頭,這裏能夠填寫此媒體的簡易說明。
  3. 指定只備份分區中某個目錄大數據

    xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1
       參數:-s 文件路徑  只對指定的文件進行備份,-s指定時,路徑寫的是相對路徑(-s能夠是文件或目錄)
  4. 查看備份信息與內容:備份成功後,咱們就能夠在/var/lib/xfsdump/inventory目錄下看到生成的檔案信息this

    xfsdump  -I

恢復

語法:xfsrestore -f 指定恢復文件的位置 指定存放恢復後的文件的路徑

xfsrestore -f /opt/dump_sdb1 /sdb1 #恢復整個分區
xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg /var/test/ #恢復單個文件
xfsrestore -f /opt/dump_grub2 -s grub2 /var/test/  #恢復目錄

注意:

  1. xfsdump 不支持沒有掛載的文件系統備份!因此只能備份已掛載的!
  2. xfsdump 必須使用 root 的權限才能操做 (涉及文件系統的關係)
  3. xfsdump 只能備份 XFS 文件系統
  4. xfsdump 備份下來的數據 (檔案或儲存媒體) 只能讓 xfsrestore 解析
  5. xfsdump 是透過文件系統的 UUID 來分辨各個備份檔的,所以不能備份兩個具備相同 UUID 的文件系統。

增量備份

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

增量備份是指在一次全備份或上一次增量備份後,之後每次的備份只需備份與前一次相比增長或者被修改的文件。這就意味着,第一次增量備份的對象是進行全備後所產生的增長和修改的文件;第二次增量備份的對象是進行第一次增量備份後所產生的增長和修改的文件,以此類推。
優勢:沒有重複的備份數據,所以備份的數據量不大,備份所需的時間很短。
缺點:數據恢復相對比較麻煩,它須要上一次全備份和全部增量備份的內容纔可以徹底恢復成功,而且它們必須沿着從全備份到依次增量備份的時間順序逐個反推恢復,所以可能會延長恢復時間。

第一次全備:

xfsdump -f /opt/test-full /sdb1 -L test-full -M media0

作一個等級爲1的增量備份:

xfsdump -l 1 -f /opt/test-back1 /sdb1 -L test-bak1 -M media0

作一個等級爲2的增量備份:

xfsdump -l 2 -f /opt/test-back2 /sdb1 -L test-bak2 -M media0

恢復

  1. 先恢復徹底備份

    xfsrestore -f /opt/test-full /sdb1/
  2. 若是兩次增量備份都是1級的,因此只須要恢復最後一個增量就能夠了

    xfsrestore -f /opt/test-back1 /sdb1/
  3. 若是你作的是第一次是1級備,第二次是2級備,那麼你在恢復的時候就須要先恢復徹底備份,而後是1級備,最後是2級備

    xfsrestore -f /opt/test-back1 /sdb1/
       xfsrestore -f /opt/test-back2 /sdb1/
相關文章
相關標籤/搜索