• 第7章 使用RAID与LVM磁盘阵列技术


    章节简述:

    您好,此章节为新增加的知识内容,正在努力的排版完善,预习2016年9月中旬完成,感谢您的支持,QQ群:340829。

    7.1  磁盘冗余阵列
    1988年由加利福尼亚大学伯克利分校发表的文章首次提到并定义了RAID,当今CPU性能每年可提升30%-50%但硬盘仅提升7%,渐渐的已经成为计算机整体性能的瓶颈,并且为了避免硬盘的突然损坏导致数据丢失还加入了冗余备份机制。
    RAID的早先设计理念为"redundant array of Inexpensive disks"即不贵的硬盘组,而现在的定义是"Redundant Array of Independent Disks"即独立的硬盘组,作用是防止硬盘物理损坏以及增加存储设备的吞吐量RAID常见的组合有01510
    RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
    第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
    将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
    RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。
    第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
    实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
    RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。
     
    第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
    如上图所示"parity"块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
    这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
     
    RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。
    第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
     
    继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
    因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
     
    mdadm命令用于管理系统软件RAID硬盘阵列,格式为:"mdadm [模式] <RAID设备名称> [选项] [成员设备名称]"。
    mdadm管理RAID阵列的动作有:
    编辑
    名称 作用
    Assemble 将设备加入到以前定义的阵列
    Build 创建一个没有超级块的阵列
    Create 创建一个新的阵列,每个设备具有超级块。
    Manage 管理阵列(如添加和删除)。
    Misc 允许单独对阵列中的某个设备进行操作(如停止阵列)。
    Follow or Monitor 监控状态。
    Grow 改变阵列的容量或设备数目。
    mdadm管理RAID阵列的参数有:
    编辑
    参数 作用
    -a 检测设备名称
    -n 指定设备数量
    -l 指定raid级别
    -C 创建
    -v 显示过程
    -f 模拟设备损坏
    -r 移除设备
    -Q 查看摘要信息
    -D 查看详细信息
    -S 停止阵列
    模拟训练:RAID10配置流程:
    第1步:在虚拟机中再添加4块硬盘:
    第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
    第2步:使用mdadm命令创建RAID10,名称为"/dev/md0"。

    -C代表创建操作,-v显示创建过程,-a yes检查RAID名称,-n是用到的硬盘个数,-l是定义RAID的级别而后面写上要加入阵列的硬盘名称。

    [root@linuxprobe ~]#mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
    mdadm: layout defaults to n2
    mdadm: layout defaults to n2
    mdadm: chunk size defaults to 512K
    mdadm: size set to 20954624K
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

    第3步:格式化并挂载使用

    将RAID磁盘阵列格式化为ext4格式:

    [root@linuxprobe ~]# mkfs.ext4 /dev/md0
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=128 blocks, Stripe width=256 blocks
    2621440 inodes, 10477312 blocks
    523865 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2157969408
    320 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    

    创建挂载目录:

    [root@linuxprobe ~]# mkdir /RAID
    

    进行文件系统的挂载:

    [root@linuxprobe ~]# mount /dev/md0 /RAID
    

    查看磁盘挂载信息:

    [root@linuxprobe ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 18G 3.0G 15G 17% /
    devtmpfs 905M 0 905M 0% /dev
    tmpfs 914M 84K 914M 1% /dev/shm
    tmpfs 914M 8.9M 905M 1% /run
    tmpfs 914M 0 914M 0% /sys/fs/cgroup
    /dev/sr0 3.5G 3.5G 0 100% /media/cdrom
    /dev/sda1 497M 119M 379M 24% /boot
    /dev/md0 40G 49M 38G 1% /RAID
    

    将此磁盘阵列挂载信息设置为重启后也依然生效:

    [root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
    

    第4步:查看/dev/md0设备信息

    参数-D查看RAID阵列的详细信息:

    [root@linuxprobe ~]# mdadm -D /dev/md0
    /dev/md0:
    Version : 1.2
    Creation Time : Tue May 5 07:43:26 2015
    Raid Level : raid10
    Array Size : 41909248 (39.97 GiB 42.92 GB)
    Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
    Raid Devices : 4
    Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Tue May 5 07:46:59 2015
    State : clean
    Active Devices : 4
    Working Devices : 4
    Failed Devices : 0
    Spare Devices : 0
    Layout : near=2
    Chunk Size : 512K
    Name : localhost.localdomain:0 (local to host localhost.localdomain)
    UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c
    Events : 17
    Number Major Minor RaidDevice State
    0 8 16 0 active sync /dev/sdb
    1 8 32 1 active sync /dev/sdc
    2 8 48 2 active sync /dev/sdd
    3 8 64 3 active sync /dev/sde
    

    第5步:模拟有1块硬盘损坏的情况
    使用mdadm的-f参数将/dev/sdb移出阵列:

    [root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
    mdadm: set /dev/sdb faulty in /dev/md0
    

    再看下阵列的状态(此时的/dev/sdb状态被是移除,失败状态):

    [root@linuxprobe ~]# mdadm -D /dev/md0
    /dev/md0:
    Version : 1.2
    Creation Time : Fri May 8 08:11:00 2015
    Raid Level : raid10
    Array Size : 41909248 (39.97 GiB 42.92 GB)
    Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
    Raid Devices : 4
    Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Fri May 8 08:27:18 2015
    State : clean, degraded
    Active Devices : 3
    Working Devices : 3
    Failed Devices : 1
    Spare Devices : 0
    Layout : near=2
    Chunk Size : 512K
    Name : linuxprobe.com:0 (local to host linuxprobe.com)
    UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0
    Events : 21
    Number Major Minor RaidDevice State
    0 0 0 0 removed
    1 8 32 1 active sync /dev/sdc
    2 8 48 2 active sync /dev/sdd
    3 8 64 3 active sync /dev/sde
    0 8 16 - faulty /dev/sdb
    

    第6步:损坏后依然正常使用

    因为RAID10级别能够允许一组RAID1硬盘中存在一个故障盘而不影响使用,所以依然可以正常的创建或删除文件~

    现在就把新的硬盘添加进去吧,当然也可以让硬盘sdb恢复使用:重启后执行“ mdadm /dev/md0 -a /dev/sdb”。

    第7步:设置冗余备份磁盘

    现在发现了一个问题没?运维人员需要在硬盘硬件出现故障后手工添加新的磁盘进去,这样会不会比较不方便?
    假如初始化RAID5阵列时直接给予4块硬盘,其中1块硬盘设备用于在阵列某块磁盘故障时自动的替换上去,这样很棒吧!
    先将磁盘系统卸载:

    [root@linuxprobe ~]# umount /dev/md0
    

    停止该阵列设备,彻底的停用:

    [root@linuxprobe ~]# mdadm -S /dev/md0
    mdadm: stopped /dev/md0
    

    现在该阵列已经找不到了:

    [root@linuxprobe ~]# mdadm -D /dev/md0
    mdadm: cannot open /dev/md0: No such file or directory
    

    创建RAID5并设置1块备份故障盘:

    [root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
    mdadm: layout defaults to left-symmetric
    mdadm: layout defaults to left-symmetric
    mdadm: chunk size defaults to 512K
    mdadm: /dev/sdb appears to be part of a raid array:
    level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
    mdadm: /dev/sdc appears to be part of a raid array:
    level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
    mdadm: /dev/sdd appears to be part of a raid array:
    level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
    mdadm: /dev/sde appears to be part of a raid array:
    level=raid10 devices=4 ctime=Fri May 8 08:11:00 2015
    mdadm: size set to 20954624K
    

    此处需要输入y,确认创建这个阵列:

    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

    查看下阵列的详细信息(Spare Devices数量为1):

    [root@linuxprobe ~]# mdadm -D /dev/md0
    /dev/md0:
    Version : 1.2
    Creation Time : Fri May 8 09:20:35 2015
    Raid Level : raid5
    Array Size : 41909248 (39.97 GiB 42.92 GB)
    Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
    Raid Devices : 3
    Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Fri May 8 09:22:22 2015
    State : clean
    Active Devices : 3
    Working Devices : 4
    Failed Devices : 0
    Spare Devices : 1
    Layout : left-symmetric
    Chunk Size : 512K
    Name : linuxprobe.com:0 (local to host linuxprobe.com)
    UUID : 44b1a152:3f1809d3:1d234916:4ac70481
    Events : 18
    Number Major Minor RaidDevice State
    0 8 16 0 active sync /dev/sdb
    1 8 32 1 active sync /dev/sdc
    4 8 48 2 active sync /dev/sdd
    3 8 64 - spare /dev/sde
    

    将磁盘阵列格式化为ext4系统:

    [root@linuxprobe ~]# mkfs.ext4 /dev/md0
    mke2fs 1.42.9 (28-Dec-2013)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=128 blocks, Stripe width=256 blocks
    2621440 inodes, 10477312 blocks
    523865 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2157969408
    320 block groups
    32768 blocks per group, 32768 fragments per group
    8192 inodes per group
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done
    

    因为前面设置过fstab文件,所以现在可以直接给挂载:

    [root@linuxprobe ~]# mount -a
    

    将/dev/sdb设备设置为故障并移出阵列:

    [root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
    mdadm: set /dev/sdb faulty in /dev/md0
    

    再来看下阵列的详细信息(此时硬盘sde直接顶替上去了):

    [root@linuxprobe ~]# mdadm -D /dev/md0
    /dev/md0:
    Version : 1.2
    Creation Time : Fri May 8 09:20:35 2015
    Raid Level : raid5
    Array Size : 41909248 (39.97 GiB 42.92 GB)
    Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
    Raid Devices : 3
    Total Devices : 4
    Persistence : Superblock is persistent
    Update Time : Fri May 8 09:23:51 2015
    State : active, degraded, recovering
    Active Devices : 2
    Working Devices : 3
    Failed Devices : 1
    Spare Devices : 1
    Layout : left-symmetric
    Chunk Size : 512K
    Rebuild Status : 0% complete
    Name : linuxprobe.com:0 (local to host linuxprobe.com)
    UUID : 44b1a152:3f1809d3:1d234916:4ac70481
    Events : 21
    Number Major Minor RaidDevice State
    3 8 64 0 spare rebuilding /dev/sde
    1 8 32 1 active sync /dev/sdc
    4 8 48 2 active sync /dev/sdd
    0 8 16 - faulty /dev/sdb
    

    出现问题?大胆提问!

    因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

    Linux技术交流请加A群:560843(),B群:340829(推荐),点此查看全国群

    *本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

    7.2 逻辑卷管理器
    当用户根据实际情况需要对分区增加、减小等调整时,经常会受到硬盘“灵活性”的限制,很不方便。
    逻辑卷管理器则是在磁盘分区与文件系统之间添加的逻辑层,提供一个抽象的卷组,使得管理者可以忽略底层磁盘布局,从而实现对分区的灵活动态调整,这毫不夸张,所以红帽RHEL7系统已经默认启用了LVM(Logical Volume Manager)机制。第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
    物理卷(PV,Physical Volume): 整个硬盘设备或使用fdisk命令建立的硬盘分区。
    卷组(VG,Volume Group)       :由一个或多个物理卷(PV)组成的整体
    逻辑卷(LV,Logical Volume)  :从卷组(VG)出切割出的空间来用于创建文件系统,大小由PE的个数决定。
                  基本单元(PE,Physical Extent)默认为4MB的基本块。
    编辑
    功能/命令 物理卷管理 卷组管理 逻辑卷管理
    扫描 pvscan vgscan lvscan
    建立 pvcreate vgcreate lvcreate
    显示 pvdisplay vgdisplay lvdisplay
    删除 pvremove vgremove lvremove
    扩展   vgextend lvextend
    模拟训练A:创建一个容量为150M的逻辑卷vo,格式化为XFS并挂载到/mnt/xfs。
    第1步:在虚拟机中添加1块用来做逻辑卷实验的硬盘
    第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
    请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。
    • 第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
      第2步:选择磁盘。
    • 第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
      第3步:选择磁盘类型。
    • 第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
      第4步:选择创建新的磁盘。
    • 第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
      第5步:设置磁盘的大小。
    • 第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
      第6步:默认的磁盘名称即可。
    • 第7章 使用RAID与LVM磁盘阵列技术。第7章 使用RAID与LVM磁盘阵列技术。
      第7步:成功添加的硬盘出现在列表中。
    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6

    第2步:创建一个大小为300M的分区(sdb1),标签为lvm:

    对硬盘sdb进行分区:

    [root@linuxprobe ~]# fdisk /dev/sdb
    Device does not contain a recognized partition table
    

    创建新的分区:

    Command (m for help): n
    

    类型为主分区:

    Partition type:
    p primary (0 primary, 0 extended, 4 free)
    e extended
    Select (default p): p
    

    分区号为1:

    Partition number (1-4, default 1): 1
    

    直接写“+300M”即可生成大小为300M的分区:

    First sector (2048-41943039, default 2048):
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +300M
    Partition 1 of type Linux and of size 300 MiB is set
    

    查看下分区信息:

    Command (m for help): p
    Device Boot Start End Blocks Id System
    /dev/sdb1 2048 616447 307200 83 Linux
    

    修改分区类型:

    Command (m for help): t
    Selected partition 1
    

    修改分区类型为lvm(代码是8e):

    Hex code (type L to list all codes): 8e
    Changed type of partition 'Linux' to 'Linux LVM'
    

    再看下分区信息:

    Command (m for help): p
    Device Boot Start End Blocks Id System
    /dev/sdb1 2048 309247 153600 8e Linux LVM
    

    确认无误,写入分区表信息:

    Command (m for help): w
    The partition table has been altered!
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    让内核同步分区信息(此步骤仅在没有找到分区设备的情况下才需要执行,非必要动作。):

    [root@linuxprobe ~]# partprobe
    

    第3步:启用LVM并创建vo逻辑卷并格式化为ext4格式
    将新建的分区设置为物理卷:

    [root@linuxprobe ~]# pvcreate /dev/sdb1
    Physical volume "/dev/sdb1" successfully created
    

    将物理卷加入卷组:

    [root@linuxprobe ~]# vgcreate rhcsa /dev/sdb1
    Volume group "rhcsa" successfully created
    

    查看卷组信息:

    [root@linuxprobe ~]# vgdisplay
    --- Volume group ---
    VG Size 296.00 MiB
    PE Size 4.00 MiB
    Total PE 74
    Alloc PE / Size 0 / 0
    Free PE / Size 74 / 296.00 MiB
    VG UUID 8hLPQU-Tc6f-PMsa-4tq5-iT0p-vSbI-sOafqG
    

    生成大小为37个PE的逻辑卷(37*4MiB为148M):

    [root@linuxprobe ~]# lvcreate -n vo -l 37 rhcsa
    Logical volume "vo" created
    

    格式化为ext4:

    [root@linuxprobe ~]# mkfs.ext4 /dev/rhcsa/vo
    Writing superblocks and filesystem accounting information: done
    

    创建一个名为/rhcsa的目录用于挂载该逻辑卷。

    [root@linuxprobe ~]# mkdir /rhcsa
    

    挂载硬盘设备:

    [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa
    

    查看挂载信息(rhcsa-vo为140M是合理取值):

    [root@linuxprobe ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 18G 3.0G 15G 17% /
    devtmpfs 905M 0 905M 0% /dev
    tmpfs 914M 140K 914M 1% /dev/shm
    tmpfs 914M 8.9M 905M 1% /run
    tmpfs 914M 0 914M 0% /sys/fs/cgroup
    /dev/sda1 497M 119M 379M 24% /boot
    /dev/sr0 3.5G 3.5G 0 100% /run/media/root/RHEL-7.0 Server.x86_64
    /dev/mapper/rhcsa-vo 140M 1.6M 128M 2% /rhcsa
    
    模拟训练B:将上个实验中的逻辑卷vo容量扩展到290M。

    若要对LVM进行调整,一定要先卸载:

    [root@linuxprobe ~]# umount /rhcsa
    

    将逻辑卷扩展到290M:

    [root@linuxprobe ~]# lvextend -L 290M /dev/rhcsa/vo
    Rounding size to boundary between physical extents: 292.00 MiB
    Extending logical volume vo to 292.00 MiB
    Logical volume vo successfully resized
    

    检查磁盘完整性,重置硬盘容量:

    [root@linuxprobe ~]# e2fsck -f /dev/rhcsa/vo
    /dev/rhcsa/vo: 11/38000 files (0.0% non-contiguous), 10453/151552 blocks
    [root@linuxprobe ~]# resize2fs /dev/rhcsa/vo
    Resizing the filesystem on /dev/rhcsa/vo to 299008 (1k) blocks.
    The filesystem on /dev/rhcsa/vo is now 299008 blocks long.
    

    重新挂载硬盘设备:

    [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa
    

    看到挂载信息(当前逻辑卷大小已为279M):

    [root@linuxprobe ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 18G 3.0G 15G 17% /
    devtmpfs 905M 0 905M 0% /dev
    tmpfs 914M 140K 914M 1% /dev/shm
    tmpfs 914M 8.9M 905M 1% /run
    tmpfs 914M 0 914M 0% /sys/fs/cgroup
    /dev/sda1 497M 119M 379M 24% /boot
    /dev/sr0 3.5G 3.5G 0 100% /run/media/root/RHEL-7.0 Server.x86_64
    /dev/mapper/rhcsa-vo 279M 2.1M 259M 1% /rhcsa
    

    模拟训练C:将上个实验中的逻辑卷vo容量减小到120M。

    卸载文件系统:

    [root@linuxprobe ~]# umount /rhcsa
    

    检查文件系统的完整性:

    [root@linuxprobe ~]# e2fsck -f /dev/rhcsa/vo
    e2fsck 1.42.9 (28-Dec-2013)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/rhcsa/vo: 11/74000 files (0.0% non-contiguous), 15507/299008 blocks
    

    将逻辑卷的减小到120M:

    [root@linuxprobe ~]# resize2fs /dev/rhcsa/vo 120M
    resize2fs 1.42.9 (28-Dec-2013)
    Resizing the filesystem on /dev/rhcsa/vo to 122880 (1k) blocks.
    The filesystem on /dev/rhcsa/vo is now 122880 blocks long.
    

    使用lvreduce命令将文件系统调整为120M:

    [root@linuxprobe ~]# lvreduce -L 120M /dev/rhcsa/vo
    WARNING: Reducing active logical volume to 120.00 MiB
    THIS MAY DESTROY YOUR DATA (filesystem etc.)
    Do you really want to reduce vo? [y/n]: y
    Reducing logical volume vo to 120.00 MiB
    Logical volume vo successfully resized
    

    重新挂载文件系统:

    [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa
    

    查看挂载信息,(逻辑卷已经变成113M):

    [root@linuxprobe ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 18G 3.7G 14G 21% /
    devtmpfs 734M 0 734M 0% /dev
    tmpfs 742M 140K 742M 1% /dev/shm
    tmpfs 742M 8.8M 734M 2% /run
    tmpfs 742M 0 742M 0% /sys/fs/cgroup
    /dev/sr0 3.5G 3.5G 0 100% /media/cdrom
    /dev/sda1 497M 119M 379M 24% /boot
    /dev/mapper/rhcsa-vo 113M 1.6M 103M 2% /rhcsa
    

    模拟训练D:使用逻辑卷快照功能

    LVM的逻辑卷快照功能可以将逻辑卷的数据保存为备份、以及快速的数据恢复。
    查看到逻辑卷详细信息(容量共计296M,已用120M,剩余176M):

    [root@linuxprobe ~]# vgdisplay
    --- Volume group ---
    VG Name rhcsa
    System ID
    Format lvm2
    Metadata Areas 1
    Metadata Sequence No 4
    VG Access read/write
    VG Status resizable
    MAX LV 0
    Cur LV 1
    Open LV 1
    Max PV 0
    Cur PV 1
    Act PV 1
    VG Size 296.00 MiB
    PE Size 4.00 MiB
    Total PE 74
    Alloc PE / Size 30 / 120.00 MiB
    Free PE / Size 44 / 176.00 MiB
    VG UUID QxBS5f-beVv-FJnu-GKyu-UWWF-JS8x-ytiAN9
    

    创建原始文件,写入一行文字:

    [root@linuxprobe ~]# echo "Welcome to Linuxprobe.com" > /rhcsa/readme.txt
    [root@linuxprobe ~]# ls /rhcsa
    lost+found readme.txt
    

    对rhcsa卷组的vo逻辑卷做一个名称为SNAP而大小为150M的逻辑卷快照:

    [root@linuxprobe ~]# lvcreate -L 150M -s -n SNAP /dev/rhcsa/vo
    Rounding up size to full physical extent 152.00 MiB
    Reducing COW size 152.00 MiB down to maximum usable size 124.00 MiB.
    Logical volume "SNAP" created
    

    查看逻辑卷和快照的信息:

    [root@linuxprobe ~]# lvs
    LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
    SNAP rhcsa swi-a-s--- 124.00m vo 0.01
    vo rhcsa owi-aos--- 120.00m
    root rhel -wi-ao---- 17.51g
    swap rhel -wi-ao---- 2.00g
    

    在逻辑卷中创建一个100M的文件:

    [root@linuxprobe ~]# dd if=/dev/zero of=/rhcsa/files count=1 bs=100M
    1+0 records in
    1+0 records out
    104857600 bytes (105 MB) copied, 1.31474 s, 79.8 MB/s
    

    再来看下逻辑卷快照的使用量:

    [root@linuxprobe ~]# lvs
    LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
    SNAP rhcsa swi-a-s--- 124.00m vo 89.76
    vo rhcsa owi-aos--- 120.00m
    root rhel -wi-ao---- 17.51g
    swap rhel -wi-ao---- 2.00g
    

    将文件系统卸载:

    [root@linuxprobe ~]# umount /rhcsa
    

    恢复SNAP逻辑卷快照内容:

    [root@linuxprobe ~]# lvconvert --merge /dev/rhcsa/SNAP
    Merging of volume SNAP started.
    vo: Merged: 18.2%
    vo: Merged: 100.0%
    Merge of snapshot into logical volume vo has finished.
    Logical volume "SNAP" successfully removed
    

    快照恢复一次后会被自动删除:

    [root@linuxprobe ~]# lvs
    LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
    vo rhcsa -wi-a----- 120.00m
    root rhel -wi-ao---- 17.51g
    swap rhel -wi-ao---- 2.00
    

    重新挂载文件系统:

    [root@linuxprobe ~]# mount /dev/rhcsa/vo /rhcsa
    

    原始的文件还在,但刚刚创建的100M大文件被清除了:

    [root@linuxprobe ~]# ls /rhcsa
    lost+found readme.txt
    

     

  • 相关阅读:
    什么是动态链接库
    <<TCP/IP高效编程>>读书笔记
    C++ 函数
    我的vim配置
    FastReport4.6程序员手册_翻译
    DUnit研究初步
    ADO BUG之'无法为更新定位行....' 解决之道
    极限编程的集成测试工具Dunit
    总结
    项目管理检查清单项目启动
  • 原文地址:https://www.cnblogs.com/linux130/p/5743245.html
Copyright © 2020-2023  润新知