溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么對XFS進行備份、恢復、修復

發(fā)布時間:2022-02-18 14:53:03 來源:億速云 閱讀:229 作者:小新 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關怎么對XFS進行備份、恢復、修復,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

XFS是高性能文件系統(tǒng),由于它的高性能,XFS成為了許多企業(yè)級系統(tǒng)的首選,特別是有大量數(shù)據(jù),需要結(jié)構(gòu)化伸縮性和穩(wěn)定性的。例如,RHEL/CentOS 7 和Oracle Linux將XFS作為默認文件系統(tǒng),SUSE/openSUSE已經(jīng)為XFS做了長期支持。

怎么對XFS進行備份、恢復、修復

一、XFS文件系統(tǒng)的備份與恢復

XFS文件系統(tǒng)提供了整個分區(qū)備份的工具xfsdump供用戶使用,用戶可以在不借助第三方軟件的情況下對XFS文件系統(tǒng)上的數(shù)據(jù)實施備份。

創(chuàng)建XFS分區(qū)及測試文件

[root@localhost ~]# ls /dev/sd*/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
[root@localhost ~]# fdisk /dev/sdbWelcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x08a5199d

  Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Partition type:
  p   primary (0 primary, 0 extended, 4 free)
  e   extended
Select (default p): p
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1G
Partition 1 of type Linux and of size 1 GiB is setCommand (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x08a5199d

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# partprobeWarning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@localhost ~]# ls /dev/sd*/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1
[root@localhost ~]# mkfs.xfs -f /dev/sdb1meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
        =                       sectsz=512   attr=2, projid32bit=1
        =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
        =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal log           bsize=4096   blocks=2560, version=2
        =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# blkid /dev/sdb1      /dev/sdb1: UUID="61a5e59d-92d3-458d-ac09-7d945469cda6" TYPE="xfs"[root@localhost ~]# mkdir /file[root@localhost ~]# echo "/dev/sdb1 /file xfs defaults 0 0" >> /etc/fstab[root@localhost ~]# mount -a[root@localhost ~]# df -hFilesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   17G  1.9G   16G  12% /
devtmpfs               901M     0  901M   0% /dev
tmpfs                  912M     0  912M   0% /dev/shm
tmpfs                  912M  8.7M  903M   1% /run
tmpfs                  912M     0  912M   0% /sys/fs/cgroup
/dev/sr0               3.8G  3.8G     0 100% /yum
/dev/sda1             1014M  143M  872M  15% /boot
tmpfs                  183M     0  183M   0% /run/user/0
/dev/sdb1             1014M   33M  982M   4% /file
[root@localhost ~]# cd /file/[root@localhost file]# ls[root@localhost file]# touch file{1..100}[root@localhost file]# lsfile1    file16  file23  file30  file38  file45  file52  file6   file67  file74  file81  file89  file96
file10   file17  file24  file31  file39  file46  file53  file60  file68  file75  file82  file9   file97
file100  file18  file25  file32  file4   file47  file54  file61  file69  file76  file83  file90  file98
file11   file19  file26  file33  file40  file48  file55  file62  file7   file77  file84  file91  file99
file12   file2   file27  file34  file41  file49  file56  file63  file70  file78  file85  file92
file13   file20  file28  file35  file42  file5   file57  file64  file71  file79  file86  file93
file14   file21  file29  file36  file43  file50  file58  file65  file72  file8   file87  file94
file15   file22  file3   file37  file44  file51  file59  file66  file73  file80  file88  file95

備份XFS分區(qū)

[root@localhost file]# mkdir /backup  [root@localhost file]# yum install -y xfsdump[root@localhost file]# xfsdump -f /backup/file.bak /file#利用xfsdump備份掛載點/file對應的分區(qū)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 ==============================#輸入dump會話標簽please enter label for this dump session (timeout in 300 sec)
-> file.bak
session label entered: "file.bak"--------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of localhost.localdomain:/file
xfsdump: dump date: Thu Oct 31 22:16:02 2019
xfsdump: session id: 02a1445f-5ff3-4518-ab2c-888d9e2a4c44
xfsdump: session label: "file.bak"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: 52800 bytes

============================= media label dialog =============================#輸入媒體標簽please enter label for media in drive 0 (timeout in 300 sec)
-> file
media label entered: "file"--------------------------------- 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 86544 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 27 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /backup/file.bak OK (success)
xfsdump: Dump Status: SUCCESS
[root@localhost file]# ls /backup/#已經(jīng)成功創(chuàng)建備份文件file.bak

恢復過程

[root@localhost file]# lsfile1    file16  file23  file30  file38  file45  file52  file6   file67  file74  file81  file89  file96
file10   file17  file24  file31  file39  file46  file53  file60  file68  file75  file82  file9   file97
file100  file18  file25  file32  file4   file47  file54  file61  file69  file76  file83  file90  file98
file11   file19  file26  file33  file40  file48  file55  file62  file7   file77  file84  file91  file99
file12   file2   file27  file34  file41  file49  file56  file63  file70  file78  file85  file92
file13   file20  file28  file35  file42  file5   file57  file64  file71  file79  file86  file93
file14   file21  file29  file36  file43  file50  file58  file65  file72  file8   file87  file94
file15   file22  file3   file37  file44  file51  file59  file66  file73  file80  file88  file95
[root@localhost file]# rm -rf *[root@localhost file]# ls[root@localhost file]# xfsrestore -f /backup/file.bak /filexfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description:
xfsrestore: hostname: localhost.localdomain
xfsrestore: mount point: /file
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Thu Oct 31 22:16:02 2019
xfsrestore: level: 0
xfsrestore: session label: "file.bak"xfsrestore: media label: "file"xfsrestore: file system id: 61a5e59d-92d3-458d-ac09-7d945469cda6
xfsrestore: session id: 02a1445f-5ff3-4518-ab2c-888d9e2a4c44
xfsrestore: media id: 2d1d9f33-dff3-4cfa-a2f6-bf65bd8f242b
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 100 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /backup/file.bak OK (success)
xfsrestore: Restore Status: SUCCESS
[root@localhost file]# ls#已經(jīng)成功恢復被刪除的文件file1    file16  file23  file30  file38  file45  file52  file6   file67  file74  file81  file89  file96
file10   file17  file24  file31  file39  file46  file53  file60  file68  file75  file82  file9   file97
file100  file18  file25  file32  file4   file47  file54  file61  file69  file76  file83  file90  file98
file11   file19  file26  file33  file40  file48  file55  file62  file7   file77  file84  file91  file99
file12   file2   file27  file34  file41  file49  file56  file63  file70  file78  file85  file92
file13   file20  file28  file35  file42  file5   file57  file64  file71  file79  file86  file93
file14   file21  file29  file36  file43  file50  file58  file65  file72  file8   file87  file94
file15   file22  file3   file37  file44  file51  file59  file66  file73  file80  file88  file95

二、XFS文件系統(tǒng)的檢查和修復

創(chuàng)建XFS測試分區(qū)

[root@localhost file]# fdisk /dev/sdbWelcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x08a5199d

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux

Command (m for help): n
Partition type:
  p   primary (1 primary, 0 extended, 3 free)
  e   extended
Select (default p): p
Partition number (2-4, default 2):
First sector (2099200-41943039, default 2099200):
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +1G
Partition 2 of type Linux and of size 1 GiB is setCommand (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x08a5199d

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost file]# partprobeWarning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@localhost file]# ls /dev/sd*/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdb2
[root@localhost file]# mkfs.xfs /dev/sdb2meta-data=/dev/sdb2              isize=512    agcount=4, agsize=65536 blks
        =                       sectsz=512   attr=2, projid32bit=1
        =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
        =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1log      =internal log           bsize=4096   blocks=2560, version=2
        =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

檢查XFS文件系統(tǒng),如果檢查過程中發(fā)現(xiàn)問題將會列出

[root@localhost file]# xfs_repair -n /dev/sdb2Phase 1 - find and verify superblock...
Phase 2 - using internal log       - zero log...
       - scan filesystem freespace and inode maps...
       - found root inode chunk
Phase 3 - for each AG...
       - scan (but don't clear) agi unlinked lists...
       - process known inodes and perform inode discovery...
       - agno = 0
       - agno = 1
       - agno = 2
       - agno = 3
       - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
       - setting up duplicate extent list...
       - check for inodes claiming duplicate blocks...
       - agno = 0
       - agno = 1
       - agno = 2
       - agno = 3
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
       - traversing filesystem ...
       - traversal finished ...
       - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.

自動檢查并修復XFS文件系統(tǒng)

[root@localhost file]# xfs_repair /dev/sdb2        Phase 1 - find and verify superblock...
Phase 2 - using internal log       - zero log...
       - scan filesystem freespace and inode maps...
       - found root inode chunk
Phase 3 - for each AG...
       - scan and clear agi unlinked lists...
       - process known inodes and perform inode discovery...
       - agno = 0
       - agno = 1
       - agno = 2
       - agno = 3
       - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
       - setting up duplicate extent list...
       - check for inodes claiming duplicate blocks...
       - agno = 0
       - agno = 1
       - agno = 2
       - agno = 3
Phase 5 - rebuild AG headers and trees...
       - reset superblock...
Phase 6 - check inode connectivity...
       - resetting contents of realtime bitmap and summary inodes
       - traversing filesystem ...
       - traversal finished ...
       - moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...done

關于“怎么對XFS進行備份、恢復、修復”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

xfs
AI