LinuxProbe 发表于 2020-8-24 23:44:08

XFS文件系统的备份、恢复、修复


XFS文件系统是硅谷图形公司(Silicon Graphics Inc,简称SGI)开发的用于IRIX(一个UNIX操作系统)的文件系统,后将XFS移植到Linux操作系统上。XFS是高级日志文件系统,其特点极具伸缩性,同时也很健壮。2000年5月XFS通过GNU通用公共许可证移植到Linux系统上,通过十多年的不断修改已经成为一款非常成熟的文件系统。在多项针对XFS的性能测试上,XFS都取得了不俗的成绩,高并发环境下甚至已经超过ext4。

一、XFS文件系统的备份与恢复
XFS文件系统提供了整个分区备份的工具xfsdump供用户使用,用户可以在不借助第三方软件的情况下对XFS文件系统上的数据实施备份。创建XFS分区及测试文件
# ls /dev/sd*/dev/sda/dev/sda1/dev/sda2/dev/sdb# 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): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x08a5199d   Device Boot      Start         End      Blocks   IdSystemCommand (m for help): nPartition type:   p   primary (0 primary, 0 extended, 4 free)   e   extendedSelect (default p): pFirst sector (2048-41943039, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1GPartition 1 of type Linux and of size 1 GiB is setCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x08a5199d   Device Boot      Start         End      Blocks   IdSystem/dev/sdb1            2048   2099199   1048576   83LinuxCommand (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.# partprobeWarning: Unable to open /dev/sr0 read-write (Read-only file system)./dev/sr0 has been opened read-only.# ls /dev/sd*/dev/sda/dev/sda1/dev/sda2/dev/sdb/dev/sdb1# 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=0data   =                     bsize=4096   blocks=262144, imaxpct=25         =                     sunit=0      swidth=0 blksnaming   =version 2            bsize=4096   ascii-ci=0 ftype=1log      =internal log         bsize=4096   blocks=2560, version=2         =                     sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0# blkid /dev/sdb1      /dev/sdb1: UUID="61a5e59d-92d3-458d-ac09-7d945469cda6" TYPE="xfs" # mkdir /file# echo "/dev/sdb1 /file xfs defaults 0 0" >> /etc/fstab # mount -a# df -hFilesystem             SizeUsed Avail Use% Mounted on/dev/mapper/rhel-root   17G1.9G   16G12% /devtmpfs               901M   0901M   0% /devtmpfs                  912M   0912M   0% /dev/shmtmpfs                  912M8.7M903M   1% /runtmpfs                  912M   0912M   0% /sys/fs/cgroup/dev/sr0               3.8G3.8G   0 100% /yum/dev/sda1             1014M143M872M15% /boottmpfs                  183M   0183M   0% /run/user/0/dev/sdb1             1014M   33M982M   4% /file# cd /file/# ls# touch file{1..100}# lsfile1    file16file23file30file38file45file52file6   file67file74file81file89file96file10   file17file24file31file39file46file53file60file68file75file82file9   file97file100file18file25file32file4   file47file54file61file69file76file83file90file98file11   file19file26file33file40file48file55file62file7   file77file84file91file99file12   file2   file27file34file41file49file56file63file70file78file85file92file13   file20file28file35file42file5   file57file64file71file79file86file93file14   file21file29file36file43file50file58file65file72file8   file87file94file15   file22file3   file37file44file51file59file66file73file80file88file95备份XFS分区
# mkdir /backup# yum install -y xfsdump# xfsdump -f /backup/file.bak /file#利用xfsdump备份挂载点/file对应的分区xfsdump: using file dump (drive_simple) strategyxfsdump: 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.baksession label entered: "file.bak" --------------------------------- end dialog ---------------------------------xfsdump: level 0 dump of localhost.localdomain:/filexfsdump: dump date: Thu Oct 31 22:16:02 2019xfsdump: session id: 02a1445f-5ff3-4518-ab2c-888d9e2a4c44xfsdump: session label: "file.bak"xfsdump: ino map phase 1: constructing initial dump listxfsdump: ino map phase 2: skipping (no pruning necessary)xfsdump: ino map phase 3: skipping (only one dump stream)xfsdump: ino map construction completexfsdump: estimated dump size: 52800 bytes ============================= media label dialog =============================#输入媒体标签please enter label for media in drive 0 (timeout in 300 sec) -> filemedia label entered: "file" --------------------------------- end dialog ---------------------------------xfsdump: creating dump session media file 0 (media 0, file 0)xfsdump: dumping ino mapxfsdump: dumping directoriesxfsdump: dumping non-directory filesxfsdump: ending media filexfsdump: media file size 86544 bytesxfsdump: dump size (non-dir files) : 0 bytesxfsdump: dump complete: 27 seconds elapsedxfsdump: Dump Summary:xfsdump:   stream 0 /backup/file.bak OK (success)xfsdump: Dump Status: SUCCESS# ls /backup/#已经成功创建备份文件file.bak恢复过程
# lsfile1    file16file23file30file38file45file52file6   file67file74file81file89file96file10   file17file24file31file39file46file53file60file68file75file82file9   file97file100file18file25file32file4   file47file54file61file69file76file83file90file98file11   file19file26file33file40file48file55file62file7   file77file84file91file99file12   file2   file27file34file41file49file56file63file70file78file85file92file13   file20file28file35file42file5   file57file64file71file79file86file93file14   file21file29file36file43file50file58file65file72file8   file87file94file15   file22file3   file37file44file51file59file66file73file80file88file95# rm -rf *# ls# xfsrestore -f /backup/file.bak /filexfsrestore: using file dump (drive_simple) strategyxfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and controlxfsrestore: searching media for dumpxfsrestore: examining media file 0xfsrestore: dump description: xfsrestore: hostname: localhost.localdomainxfsrestore: mount point: /filexfsrestore: volume: /dev/sdb1xfsrestore: session time: Thu Oct 31 22:16:02 2019xfsrestore: level: 0xfsrestore: session label: "file.bak"xfsrestore: media label: "file"xfsrestore: file system id: 61a5e59d-92d3-458d-ac09-7d945469cda6xfsrestore: session id: 02a1445f-5ff3-4518-ab2c-888d9e2a4c44xfsrestore: media id: 2d1d9f33-dff3-4cfa-a2f6-bf65bd8f242bxfsrestore: using online session inventoryxfsrestore: searching media for directory dumpxfsrestore: reading directoriesxfsrestore: 1 directories and 100 entries processedxfsrestore: directory post-processingxfsrestore: restoring non-directory filesxfsrestore: restore complete: 0 seconds elapsedxfsrestore: Restore Summary:xfsrestore:   stream 0 /backup/file.bak OK (success)xfsrestore: Restore Status: SUCCESS# ls#已经成功恢复被删除的文件file1    file16file23file30file38file45file52file6   file67file74file81file89file96file10   file17file24file31file39file46file53file60file68file75file82file9   file97file100file18file25file32file4   file47file54file61file69file76file83file90file98file11   file19file26file33file40file48file55file62file7   file77file84file91file99file12   file2   file27file34file41file49file56file63file70file78file85file92file13   file20file28file35file42file5   file57file64file71file79file86file93file14   file21file29file36file43file50file58file65file72file8   file87file94file15   file22file3   file37file44file51file59file66file73file80file88file95二、XFS文件系统的检查和修复
创建XFS测试分区
# 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): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x08a5199d   Device Boot      Start         End      Blocks   IdSystem/dev/sdb1            2048   2099199   1048576   83LinuxCommand (m for help): nPartition type:   p   primary (1 primary, 0 extended, 3 free)   e   extendedSelect (default p): pPartition number (2-4, default 2): First sector (2099200-41943039, default 2099200): Using default value 2099200Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +1GPartition 2 of type Linux and of size 1 GiB is setCommand (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x08a5199d   Device Boot      Start         End      Blocks   IdSystem/dev/sdb1            2048   2099199   1048576   83Linux/dev/sdb2         2099200   4196351   1048576   83LinuxCommand (m for help): wThe 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 atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.# partprobeWarning: Unable to open /dev/sr0 read-write (Read-only file system)./dev/sr0 has been opened read-only.# ls /dev/sd*/dev/sda/dev/sda1/dev/sda2/dev/sdb/dev/sdb1/dev/sdb2# 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=0data   =                     bsize=4096   blocks=262144, imaxpct=25         =                     sunit=0      swidth=0 blksnaming   =version 2            bsize=4096   ascii-ci=0 ftype=1log      =internal log         bsize=4096   blocks=2560, version=2         =                     sectsz=512   sunit=0 blks, lazy-count=1realtime =none                   extsz=4096   blocks=0, rtextents=0检查XFS文件系统,如果检查过程中发现问题将会列出
# 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 chunkPhase 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 = 3No modify flag set, skipping phase 5Phase 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文件系统
# 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 chunkPhase 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 = 3Phase 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

ileochen 发表于 2020-8-25 08:58:40

这格式乱了,看起来有点不顺
页: [1]
查看完整版本: XFS文件系统的备份、恢复、修复