• LVM逻辑卷管理和RAID


    LVM逻辑卷管理和RAID
    知识要点
    LVM概述
    LVM管理命令
    LVM应用实例
    LVM troubleshooting
    Raid概述
    LVM概述
    Logical Volume Manager,逻辑卷管理
    对磁盘分区进行管理的一种机制
    [root@localhost ~]# rpm -qa | grep lvm
    lvm2-2.02.143-7.el6.x86_64
    mesa-private-llvm-3.6.2-1.el6.x86_64
    lvm2-libs-2.02.143-7.el6.x86_64
    是一种将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现一种磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性,使用普通的磁盘分区,当一个磁盘的分区空间不够使用的时候,可能就会带来很大的麻烦。使用LVM在一定程度上就可以解决普通磁盘分区带来的问题。
    屏蔽了底层磁盘布局,便于动态调整磁盘容量
    相对传统分区方式的有下列优点
    空间利用率高:硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间
    可以在线扩展容量:文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求
    文件系统建立在LVM上,可以跨分区,方便使用
    可随意定义逻辑卷卷标
    /boot分区用于存放引导文件,不能应用LVM机制
    LVM概述
    LVM机制的基本概念
    PV(Physical Volume,物理卷)
    处于LVM最底层,可以是整个硬盘或使用fdisk等工具建立的普通分区
    包括许多默认4MB大小的PE(Physical Extents,基本单元),PE是PV中可以用于分配的最小存储单元
    VG(Volume Group,卷组)
    是一个或多个物理卷组合而成的整体,是建立在PV之上的。同一VG中所有PV的PE大小应该相同,当VG被创建后,我们才能正常查看PE的数量 。
    LV(Logical Volume,逻辑卷)
    从卷组中分割出的一块空间,它是建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。其实LV就是由PE组成的,不过在LV里面这些PE叫做LE。
    LE(Logical Extents)
    LE是LV中可以用于分配的最小存储单元,与PE大小相同并一一对应
    LVM管理命令
    功能
    物理卷管理
    卷组管理
    逻辑卷管理
    Scan 扫描
    pvscan
    vgscan
    lvscan
    Create 建立
    pvcreate
    vgcreate
    lvcreate
    Display 显示
    pvdisplay
    vgdisplay
    lvdisplay
    Remove 删除
    pvremove
    vgremove
    lvremove
    Extend 扩展 Reduce 减少

    vgextend vgreduce
    lvextend lvresize
    建立命令的用法
    pvcreate 设备名(硬盘,分区)
    vgcreate 卷组名 物理卷名1 物理卷名2
    lvcreate -L 大小 -n 逻辑卷名 卷组名
    LVM应用实例
    案例描述:
    公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据
    推荐步骤:
    PV --> VG -->LV --> 格式化,挂载使用文件系统
    1. 转化物理卷
    使用fdisk命令规划两个分区,类型设置为“8e”
    /dev/sdb1、/dev/sdc1
    使用pvcreate命令转换上述分区为物理卷
    2. 创建卷组
    使用vgcreate命令创建卷组mail_store
    包括物理卷:/dec/sdb1、/dev/sdc1
    3. 创建逻辑卷
    使用lvcreate命令创建逻辑卷 mail
    从卷组mail_store上划出60GB空间
    使用mkfs命令创建ext3文件系统
    调整LV大小
    为逻辑卷扩容
    使用lvextend命令为逻辑卷 mail扩充容量
    从卷组 mail_store 上再划出10GB给逻辑卷mail
    使用resize2fs命令更新文件系统大小
    调整逻辑卷大小命令
    lvextend -L +大小 /dev/卷组名/逻辑卷名
    lvresize -L +/-大小 /dev/卷组名/逻辑卷名
    如果要增大逻辑卷,先用增大逻辑卷,再用resize2fs增大文件系统
    可以在线增大逻辑卷
    给LV扩容:
    增加的空间来自lv所在的VG的空闲空间
    lv底层的分区或者硬盘可以跨多个
    // 查看分区信息
    [root@localhost ~]# fdisk -l

    Disk /dev/sda: 214.7 GB, 214748364800 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000922f6

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   * 1 26 204800 83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              26 281 2048000 82  Linux swap / Solaris
    Partition 2 does not end on cylinder boundary.
    /dev/sda3             281 26109 207461376 83  Linux

    Disk /dev/sdb: 107.4 GB, 107374182400 bytes
    255 heads, 63 sectors/track, 13054 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000


    Disk /dev/sdc: 214.7 GB, 214748364800 bytes
    255 heads, 63 sectors/track, 26108 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    //新建两个硬盘sdb200G,sdc100G
    [root@localhost ~]# ll /dev/sd*
    brw-rw----. 1 root disk 8, 0 Jan  4 15:44 /dev/sda
    brw-rw----. 1 root disk 8, 1 Jan  4 15:44 /dev/sda1
    brw-rw----. 1 root disk 8, 2 Jan  4 15:44 /dev/sda2
    brw-rw----. 1 root disk 8, 3 Jan  4 15:44 /dev/sda3
    brw-rw----. 1 root disk 8, 16 Jan  4 15:44 /dev/sdb
    brw-rw----. 1 root disk 8, 32 Jan  4 15:44 /dev/sdc
    //创建PV,两个
    [root@localhost ~]# pvcreate /dev/sdb
      Physical volume "/dev/sdb" successfully created
    [root@localhost ~]# pvcreate /dev/sdc
      Physical volume "/dev/sdc" successfully created
     //查看pv
    [root@localhost ~]# pvs
     PV VG   Fmt  Attr PSize   PFree  
     /dev/sdb        lvm2 ---- 100.00g 100.00g
     /dev/sdc        lvm2 ---- 200.00g 200.00g
    [root@localhost ~]# pvdisplay
     "/dev/sdb" is a new physical volume of "100.00 GiB"
     --- NEW Physical volume ---
     PV Name               /dev/sdb
     VG Name               
     PV Size               100.00 GiB
      Allocatable           NO
     PE Size               0 
      Total PE 0
      Free PE 0
      Allocated PE 0
     PV UUID               o7Pak2-w42B-8IQY-7ygP-s710-Z196-a8Dr7z
     
     "/dev/sdc" is a new physical volume of "200.00 GiB"
     --- NEW Physical volume ---
     PV Name               /dev/sdc
     VG Name               
     PV Size               200.00 GiB
      Allocatable           NO
     PE Size               0 
      Total PE 0
      Free PE 0
      Allocated PE 0
     PV UUID               EByPeb-ens6-svgo-STnn-9heG-1ckL-rrkYS5
     //创建vg  
    [root@localhost ~]# vgcreate mail_vg /dev/sdb /dev/sdc
      Volume group "mail_vg" successfully created
    [root@localhost ~]# vgdisplay
     --- Volume group ---
     VG Name               mail_vg
      System ID 
      Format                lvm2
      Metadata Areas        2
      Metadata Sequence No  1
     VG Access             read/write
     VG Status             resizable
     MAX LV 0
      Cur LV 0
      Open LV 0
      Max PV 0
      Cur PV 2
      Act PV 2
     VG Size               299.99 GiB
     PE Size               4.00 MiB
      Total PE 76798
      Alloc PE / Size       0 / 0 
      Free  PE / Size       76798 / 299.99 GiB
     VG UUID               xaJM2J-dWIp-GgSf-caBY-LZrD-HKGQ-xFjM8W
     //创建lv 
    [root@localhost ~]# lvcreate -L 10G -n mail_lv mail_vg
      Logical volume "mail_lv" created.
    [root@localhost ~]# lvdisplay
     --- Logical volume ---
     LV Path                /dev/mail_vg/mail_lv
     LV Name                mail_lv
     VG Name                mail_vg
     LV UUID 1gIQDH-REfe-EZ2I-0pYc-lA1B-tdd1-M1mqTY
     LV Write Access        read/write
     LV Creation host, time localhost.localdomain, 2019-01-04 15:51:39 +0800
     LV Status              available
     # open                 0
     LV Size                10.00 GiB
      Current LE 2560
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
     - currently set to     256
      Block device           253:0
     
    [root@localhost ~]# ll  /dev/mail_vg/mail_lv
    lrwxrwxrwx. 1 root root 7 Jan  4 15:51 /dev/mail_vg/mail_lv -> ../dm-0
    [root@localhost ~]# ll /dev/dm*
    brw-rw----. 1 root disk 253, 0 Jan  4 15:51 /dev/dm-0
    [root@localhost ~]# ll /dev/dm*
    brw-rw----. 1 root disk 253, 0 Jan  4 15:51 /dev/dm-0
    [root@localhost ~]# ls /dev/mapper/
    control  mail_vg-mail_lv
    [root@localhost ~]# ls /dev/mapper/ -l
    total 0
    crw-rw----. 1 root root 10, 58 Jan  4 15:44 control
    lrwxrwxrwx. 1 root root      7 Jan  4 15:51 mail_vg-mail_lv -> ../dm-0
    [root@localhost ~]# lvs
     LV VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      mail_lv mail_vg -wi-a----- 10.00g                                                    
    //格式化
    [root@localhost ~]# mkfs.ext4 /dev/mail_vg/mail_lv
    mke2fs 1.41.12 (17-May-2010)
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    Stride=0 blocks, Stripe width=0 blocks
    655360 inodes, 2621440 blocks
    131072 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=2684354560
    80 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

    Writing inode tables: done                            
    Creating journal (32768 blocks): done
    Writing superblocks and filesystem accounting information: done

    This filesystem will be automatically checked every 31 mounts or
    180 days, whichever comes first. Use tune2fs -c or -i to override.
    //创建
    [root@localhost ~]# mkdir /mail
    //挂载
    [root@localhost ~]# mount /dev/mail_vg/mail_lv /mail
    [root@localhost ~]# df
    Filesystem           1K-blocks    Used Available Use% Mounted on
    /dev/sda3            204074816 2152260 191549488 2% /
    tmpfs                   953140 0 953140 0% /dev/shm
    /dev/sda1               194241 38688 145313 22% /boot
    /dev/mapper/mail_vg-mail_lv
     10190136 23028 9642820 1% /mail
    [root@localhost ~]# df -P
    Filesystem                  1024-blocks    Used Available Capacity Mounted on
    /dev/sda3                     204074816 2152260 191549488 2% /
    tmpfs                            953140 0 953140 0% /dev/shm
    /dev/sda1                        194241 38688 145313 22% /boot
    /dev/mapper/mail_vg-mail_lv    10190136 23028 9642820 1% /mail
    //查看UUID
    [root@localhost ~]# blkid /dev/mapper/mail_vg-mail_lv
    /dev/mapper/mail_vg-mail_lv: UUID="4c4a8e9b-cb19-47a5-9765-b2412

    [root@localhost ~]# vim /etc/fstab
    //UUID=4c4a8e9b-cb19-47a5-9765-b2412417df8f /mail ext4 defaults 0 0
    [root@localhost ~]# vim /etc/fstab
    [root@localhost ~]# mount -a    //检查格式是否出错



    //扩容
    [root@localhost ~]# lvextend -L +20G /dev/mail_vg/mail_lv
      Size of logical volume mail_vg/mail_lv changed from 10.00 GiB (2560 extents) to 30.00 GiB (7680 extents).
      Logical volume mail_lv successfully resized.
    [root@localhost ~]# lvs
     LV VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      mail_lv mail_vg -wi-ao---- 30.00g                                                    
    [root@localhost ~]# df -P
    Filesystem                  1024-blocks    Used Available Capacity Mounted on
    /dev/sda3                     204074816 2152276 191549472 2% /
    tmpfs                            953140 0 953140 0% /dev/shm
    /dev/sda1                        194241 38688 145313 22% /boot
    /dev/mapper/mail_vg-mail_lv    10190136 23028 9642820 1% /mail
    [root@localhost ~]# df -Ph
    Filesystem                   Size  Used Avail Use% Mounted on
    /dev/sda3                    195G  2.1G  183G   2% /
    tmpfs                        931M     0 931M   0% /dev/shm
    /dev/sda1                    190M   38M  142M  22% /boot
    /dev/mapper/mail_vg-mail_lv  9.8G   23M  9.2G   1% /mail
    [root@localhost ~]# df -PhT
    Filesystem                  Type   Size  Used Avail Use% Mounted on
    /dev/sda3                   ext4   195G  2.1G  183G   2% /
    tmpfs                       tmpfs  931M     0 931M   0% /dev/shm
    /dev/sda1                   ext4   190M   38M  142M  22% /boot
    /dev/mapper/mail_vg-mail_lv ext4   9.8G   23M  9.2G   1% /mail
    [root@localhost ~]# resize2fs
    resize2fs 1.41.12 (17-May-2010)
    Usage: resize2fs [-d debug_flags] [-f] [-F] [-M] [-P] [-p] device [new_size]



    //刷新
    [root@localhost ~]# resize2fs /dev/mapper/mail_vg-mail_lv
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/mapper/mail_vg-mail_lv is mounted on /mail; on-line resizing required
    old desc_blocks = 1, new_desc_blocks = 2
    Performing an on-line resize of /dev/mapper/mail_vg-mail_lv to 7864320 (4k) blocks.
    The filesystem on /dev/mapper/mail_vg-mail_lv is now 7864320 blocks long.

    [root@localhost ~]# df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda3             195G  2.1G  183G   2% /
    tmpfs                 931M     0 931M   0% /dev/shm

    如果要缩小逻辑卷,先用resizefs缩小文件系统再缩小逻辑卷
    必须先卸载文件系统
    步骤:
    1、查看文件系统已用空间
    2、卸载文件系统
    3、强制检查文件系统,确保文件系统处于一致性状态
    4、缩小文件系统 resize2fs
    5、缩小lv
    6、挂载文件系统
    注意:lv和文件系统的大小要一致
    调整VG大小
    调整卷组大小命令
    卷组扩容
    vgextend 卷组名 物理卷
    卷组收缩
    查看卷组包含的PV
    命令:pvs
    vgreduce 卷组名 物理卷
    如果某一块磁盘或者分区故障了如何将数据快速转移到相同卷组的其他空间去?
    步骤:
    1、通过pvmove命令转移空间数据
    2、通过vgreduce命令将坏的磁盘或者分区从卷组里面移除。
    3、通过pvremove命令将坏的磁盘或者分区从系统中删除掉。
    正确的关闭LVM
    千万不要在没有关闭LVM的情况下删除分区
    正确关闭LVM的步骤
    umount卸载lvm文件系统
    清除/etc/fstab中LVM的挂载记录
    lvremove删除逻辑卷
    vgremove删除卷组
    pvremove删除物理卷
    fdisk修改分区ID
    LVM troubleshooting
    pv、vg、lv都正常,但文件系统不正常
    模拟故障
    备份逻辑卷
    dd if=/dev/vg0/lv0 of=lv0.bak
    模拟对逻辑卷的破坏操作
    dd if=/dev/zero of=/dev/vg0/lv0 bs=512 count=4
    检查是否能挂载该分区
    报错:mount: you must specify the filesystem type
    对逻辑卷进行修复
    fsck -yt ext3 /dev/vg0/lv0
    再次挂载该分区
    RAID概述
    RAID廉价冗余磁盘阵列
    硬件RAID
    速度快,性能好,支持热插拔
    需专门的RAID磁盘阵列卡,价格昂贵,还需配合相应的驱动
    软件RAID
    使用mdadm软件仿真磁盘阵列功能
    无需专门硬件,性价比较好
    设备文件标识是/dev/md0
    根据可靠性、性能和成本对RAID划分了等级
    RAID0、RAID1、RAID5、RAID6、RAID10、RAID01
    常见RAID等级
    RAID0:条带(striping)
    硬盘数目>=2
    读写性能最快,同时读取,硬盘数目越多,读取速度越快
    没有冗余
    不允许其中的一块盘有故障
    空间利用率100%
    RAID1:镜像(mirroring)
    硬盘数目=2
    存储数据一样
    两块硬盘的数据相同,允许一块出现故障
    存储到一个,同步到另一个
    空间利用率50%
    一搬用于安装OS
    RAID4:带校验的条带
    允许坏掉一块,不允许坏掉两块
    空间利用率(4-1)/4=75%
    RAID5:条带+分布校验
    硬盘数目>=3
    读写性能较快
    有冗余,有校验
    最多允许其中的一块盘有故障
    空间利用率(n-1)/n n:硬盘数量
    更换新硬盘之后,重新写入,此时速度较慢(恢复+写入)
    RAID6:条带+分布校验+分布校验
    RAID10:镜像+条带
    应用最多
    RAID1+0
    硬盘数目>=4
    每两个组合成镜像组,底层先做RAID1,再做RSID0
    同时读写,速度快
    空间利用率50%
    有冗余
    一般用于数据库服务器
    RAID01:条带+镜像
    RAID等级总结
    RAID配置总结
    级别
    RAID0
    RAID1
    RAID5
    RAID10
    磁盘数
    >=2
    2
    >=3
    >=4
    容错功能
    较强
    读写速度
    最快
    写入慢
    较快
    较快
    磁盘空间 利用
    100%
    50%
    n-1
    50%
    1、配置RAID
    2、安装OS
    RAID卡有缓存,一般以G为单位(2G)
    本章总结
    弄清逻辑卷管理中PV、VG、LV的概念
    熟悉逻辑卷的扩大和缩小的方法
    常用RAID的等级和特点
    练习
  • 相关阅读:
    Linux cooked-mode capture 格式转换
    lo口环路问题分析
    感知器与多层感知机
    梯度下降
    Unity UGUI Canvas 使用Slider制作角色血条
    NGUI 通过按压Button控制角色持续行走
    python基础--函数(二)
    python基础--函数(一)
    python基础--推导式
    python基础--公共操作
  • 原文地址:https://www.cnblogs.com/qluzzh/p/10306170.html
Copyright © 2020-2023  润新知