美文网首页
Linux中XFS文件系统的备份,恢复,修复

Linux中XFS文件系统的备份,恢复,修复

作者: 易霂 | 来源:发表于2020-11-26 21:48 被阅读0次

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

    一、XFS文件系统的备份与恢复

    XFS文件系统提供了整个分区备份的工具xfsdump供用户使用,用户可以在不借助第三方软件的情况下对XFS文件系统上的数据实施备份。

    创建XFS分区及测试文件

    [root@localhost ~]# ls /dev/sd*

    /dev/sda /dev/sda1 /dev/sda2 /dev/sdb

    [root@localhost ~]# fdisk /dev/sdb

    Welcome 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 set

    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): w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    Syncing disks.

    [root@localhost ~]# partprobe

    Warning: 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/sdb1

    meta-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=1

    log =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 -h

    Filesystem 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]# ls

    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分区

    [root@localhost file]# mkdir /backup

    [root@localhost file]# yum install -y xfsdump

    [root@localhost file]# xfsdump -f /backup/file.bak /file

    利用xfsdump备份挂载点/file对应的分区

    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/

    已经成功创建备份文件

    file.bak

    恢复过程

    [root@localhost file]# ls

    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

    [root@localhost file]# rm -rf *

    [root@localhost file]# ls

    [root@localhost file]# xfsrestore -f /backup/file.bak /file

    xfsrestore: 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

    已经成功恢复被删除的文件

    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

    原文来自:Linux就该这么学

    原文链接:https://www.linuxprobe.com/linux-xargs-usage.html

    相关文章

      网友评论

          本文标题:Linux中XFS文件系统的备份,恢复,修复

          本文链接:https://www.haomeiwen.com/subject/gtaziktx.html