您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關怎么對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文件系統(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
創(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)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。