zoukankan      html  css  js  c++  java
  • 017 文件xfs_repair恢复,xfs_dump恢复,lvm动态扩容

    xfs_repair

    dd命令

    dd if=/dev/zero of=/dev/sdb bs=500M count=1 
     
    if : 从哪里读文件
    of : 写入到哪里
    bs : 写入500M
    count : 写一块
    

    模拟文件系统出问题

    1、直接向硬盘中写数据,*不能测试向分区写数据
    2、卸载之后重新挂载
    [root@localhost ~]# mount /dev/sdc1 /root/test
    mount: mount /dev/sdc1 on /root/test failed: Structure needs cleaning
    
    3、对文件系统进行修复
    xfs_repair [磁盘或分区路径]
    
    注: xfs_repair修改硬盘之后,硬盘数据丢失,所以对重要的数据要进行数据备份
    

    文件系统的备份与恢复

    备份:另外再保存一份
    恢复:将以前保存的数据进行还原
    
    touch 1.txt
    echo aaaa > 1.txt
    cp  1.txt   2.txt
    
    rm 1.txt
    
    cp 2.txt 1.txt
    
    1.log   1T = 1024G
    
    全量备份和增量备份
    全量备份:将需要备份的文件全部复制一份
    增量备份:在原来备份基础上,把新增数据重新备份一份
    
    备份与恢复的命令
    xfsdump : 备份的命令
    xfsrestore  : 恢复的命令
    
    
    # 备份的步骤
    1、安装备份命令
    [root@localhost test]# yum install xfsdump -y
    
    2、备份的等级
    0  全量备份
    1 ~ 9 增量备份(等级)
    
    3、备份的参数
    -L :记录每次备份的地方
    -M :注释,此次备份的注释
    -l :指定备份的等级
    -f :备份的文件名称
    -I :查看备份信息
    
    4、备份的条件(限制)
    	1、必须使用root权限
    	2、只能备份已经挂载的内容
    	3、只能备份xfs文件系统
    	4、只能够用xfsrestore来恢复
    
    5、备份的命令格式
    xfsdump -L [信息] -M [备注] -l [级别] -f [源文件] [目标目录]
    
    xfsdump -L sdb1_bak -M "sbd1_from_xxx" -l 0 -f sdb1_from_bak_1 /root/oldboy
    
    6、数据恢复
    xfsrestore
    
    7、恢复数据的参数
    -f : 指定备份的文件路径
    
    8、恢复的格式
    xfsrestore -f [备份的文件] [恢复的目标目录]
    
    [root@localhost oldboy]# xfsrestore -f /root/sdb1_from_bak_3 /root/oldboy/
    

    LVM

    1、什么是lvm
    
    你如何保证你的硬盘空间恰好够用?
    如果你的硬盘你不够用了怎么扩容?
    
    LVM是文件系统管理工具
    
    /root/oldboy --->  lv[5G]
    /root/oldboy --->  lv[3G]
    
    2、LVM的优点
    	1、可以动态扩容与缩容
    	2、可以将新增加的硬盘添加到VG存储池
    	3、可以突破物理存储卷的限制
    
    3、使用lvm
    	1、安装lvm软件包
    		yum install lvm2 -y
    	2、将磁盘交给pv
    		pvreate [磁盘/磁盘分区]
    	3、查看pv
    		pvs
    		pvscan
    	4、创建vg
    		vgcreate [vg名称] [pv路径]
    		[root@test1 ~]# vgcreate vg1 /dev/sdb2 /dev/sdb3
     		 Volume group "vg1" successfully created
    	5、查看vg
    		vgs
    	6、创建lvm逻辑卷(lv)
    		-L : 创建逻辑卷的大小
    		-n : 逻辑卷的名字
    		lvcreate -L [大小] -n [lv名] [vg路径]
    		[root@test1 ~]# lvcreate -L 30G -n lv1 vg1
      		Logical volume "lv1" created.
      		
    	7、制作文件系统
    		mkfs.xfs /dev/vg1/xxx
    	
    	8、挂载文件系统
    		mount [lv的路径] [挂载点的路径]
    

    在线动态扩容

    在线扩容的意思为:在不⽤卸载的情况下完成扩容.

    lvextend -L [+]MGT /dev/VG_NAME/VL_NAME
    # 注意:-L 100M 与 -L +100M不是⼀个意思,后者代表在原有的基础上扩容
    
    lvextend -L [扩容量] [目标盘]
    
    [root@test1 ~]# lvextend -L +8G /dev/mapper/vg1_sdc-lv1_vg1_sdc 
      Size of logical volume vg1_sdc/lv1_vg1_sdc changed from 20.00 GiB (5120 extents) to 28.00 GiB (7168 extents).
      Logical volume vg1_sdc/lv1_vg1_sdc successfully resized.
    
    [root@test1 ~]# df -h
    Filesystem                       Size  Used Avail Use% Mounted on
    devtmpfs                         979M     0  979M   0% /dev
    tmpfs                            991M     0  991M   0% /dev/shm
    tmpfs                            991M  9.5M  981M   1% /run
    tmpfs                            991M     0  991M   0% /sys/fs/cgroup
    /dev/mapper/centos-root           18G  3.9G   15G  22% /
    /dev/sda1                       1014M  194M  821M  20% /boot
    tmpfs                            199M     0  199M   0% /run/user/0
    /dev/mapper/vg1_sdc-lv1_vg1_sdc   20G   33M   20G   1% /root/sdb1
    
    #这时候需要更新fs⽂件系统
    [root@test1 ~]# xfs_growfs /dev/mapper/vg1_sdc-lv1_vg1_sdc 
    meta-data=/dev/mapper/vg1_sdc-lv1_vg1_sdc isize=512    agcount=4, agsize=1310720 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0 spinodes=0
    data     =                       bsize=4096   blocks=5242880, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal               bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 5242880 to 7340032
    
    #这时候再查看一下发现增长了
    [root@test1 ~]# df -h
    Filesystem                       Size  Used Avail Use% Mounted on
    devtmpfs                         979M     0  979M   0% /dev
    tmpfs                            991M     0  991M   0% /dev/shm
    tmpfs                            991M  9.5M  981M   1% /run
    tmpfs                            991M     0  991M   0% /sys/fs/cgroup
    /dev/mapper/centos-root           18G  3.9G   15G  22% /
    /dev/sda1                       1014M  194M  821M  20% /boot
    tmpfs                            199M     0  199M   0% /run/user/0
    /dev/mapper/vg1_sdc-lv1_vg1_sdc   28G   33M   28G   1% /root/sdb1
    
    #删除
    # 删除lv之前需要先卸载挂载点
    [root@egon ~]# umount /test3
    [root@egon ~]# lvremove /dev/vg2/lv1_from_vg2
    # 删vg
    [root@egon ~]# vgremove vg2
    # 删pv:只能删掉那些不属于任何vg的pv
    [root@egon ~]# pvremove /dev/sdb2
    [root@egon ~]# pvremove /dev/sdb3
    
  • 相关阅读:
    Sql获取表中随机1到n条数据
    SQLite相关
    Eclipse自动生成api时报错“警告: 编码 GBK 的不可映射字符”
    Git基础命令
    Oracle查询结果行转列,列转行
    字符串编码方式转换
    Java字符串匹配正则表达式
    python爬虫--编码问题y
    GET与POST方法
    python爬虫(1)--Urllib库的基本使用
  • 原文地址:https://www.cnblogs.com/zhaokunhao/p/14594419.html
Copyright © 2011-2022 走看看