centos下LVM配置与管理

centos下LVM配置与管理

LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

 

LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。

 

LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

 

LVM的主要功能:容量组合,动态调整容量大小。

LVM是将多块硬盘从逻辑上组合成一个大容量的存储空间(即VG),最终要划分成小的LV逻辑卷来使用这些空间。

LVM的管理流程:先给硬盘分区(也可以不分区),再创建PV,再创建VG,再创建LV,再格式化LV,再手动或自动挂载LV,再写入数据。

 

 

基本的逻辑卷管理概念:

 

PV(Physical Volume)- 物理卷 

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。

 

VG(Volumne Group)- 卷组 

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

 

LV(Logical Volume)- 逻辑卷 

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

 

关系图如下:

PE(Physical Extent)- 物理块    

LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE 会影响到LVM 的最大容量!不过,在 CentOS 6.x 以后,由于直接使用 lvm2 的各项格式功能,因此这个限制已经不存在了。

功能/命令

物理卷管理(PV)

卷组管理(VG)

逻辑卷管理(LV)

扫描查询系统中的LVM设备

pvscan 

vgscan 

lvscan 

建立

pvcreate 

vgcreate 

lvcreate

显示

pvdisplay 

vgdisplay 

lvdisplay 

状态

pvs 

vgs 

lvs 

删除

pvremove 

vgremove 

lvremove 

扩展(增加容量)

 

vgextend 

lvextend/lvresize 

缩容(缩小容量)

 

vgreduce 

lvreduce/lvresize 

调整系统中看到的容量

resize2fs/xfs_growfs 

 

LVM逻辑卷管理的思路:先给硬盘分区(也可以不分区),再创建pv,再创建vg,再创建lv,再格式化,再手动或自动挂载,再测试数据的写入。

创建PV物理卷:

  1. [root@serve1 ~]# lsblk
    NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda           8:0    0   20G  0 disk
    ├─sda1        8:1    0    1G  0 part /boot
    └─sda2        8:2    0   19G  0 part
     ├─cl-root 253:0    0   17G  0 lvm  /
     └─cl-swap 253:1    0    2G  0 lvm  [SWAP]
    sdb           8:16   0   20G  0 disk
    sdc           8:32   0   20G  0 disk
    sr0          11:0    1  7.7G  0 rom

    #创建PV
    [root@serve1 ~]# pvcreate /dev/sd[b-c]
     Physical volume "/dev/sdb" successfully created.
     Physical volume "/dev/sdc" successfully created.
     
    #查看PV的状态  
    [root@serve1 ~]# pvs
     PV         VG Fmt  Attr PSize   PFree
     /dev/sda2  cl lvm2 a--  <19.00g     0
     /dev/sdb      lvm2 ---   20.00g 20.00g
     /dev/sdc      lvm2 ---   20.00g 20.00g
     
    #查看PV的详细信息
    [root@serve1 ~]# pvdisplay
     --- Physical volume ---
     PV Name               /dev/sda2
     VG Name               cl
     PV Size               <19.00 GiB / not usable 3.00 MiB
     Allocatable           yes (but full)
     PE Size               4.00 MiB
     Total PE              4863
     Free PE               0
     Allocated PE          4863
     PV UUID               fnufKb-qQ1k-jEH3-tS3R-7dvF-Ldrd-6PMuoG

     "/dev/sdb" is a new physical volume of "20.00 GiB"
     --- NEW Physical volume ---
     PV Name               /dev/sdb
     VG Name
     PV Size               20.00 GiB
     Allocatable           NO
     PE Size               0
     Total PE              0
     Free PE               0
     Allocated PE          0
     PV UUID               koMQS3-Omw9-bg8r-Lluq-vM7C-nm0B-KqKIaH

     "/dev/sdc" is a new physical volume of "20.00 GiB"
     --- NEW Physical volume ---
     PV Name               /dev/sdc
     VG Name
     PV Size               20.00 GiB
     Allocatable           NO
     PE Size               0
     Total PE              0
     Free PE               0
     Allocated PE          0
     PV UUID               mzTDJw-Ak2N-CzDD-eEcO-bczl-wA0r-44LHqd

创建VG卷组:

  1. [root@serve1 ~]# vgcreate vg1 /dev/sd[b-c]
     Volume group "vg1" successfully created
     
    [root@serve1 ~]# vgs
     VG  #PV #LV #SN Attr   VSize   VFree
     cl    1   2   0 wz--n- <19.00g     0
     vg1   2   0   0 wz--n-  39.99g 39.99g
    [root@serve1 ~]# vgdisplay
     --- Volume group ---
     VG Name               vg1
     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               39.99 GiB
     PE Size               4.00 MiB
     Total PE              10238
     Alloc PE / Size       0 / 0
     Free  PE / Size       10238 / 39.99 GiB
     VG UUID               xfNGUD-pYdS-eUI9-5Y0u-Ulqx-rwWW-EI5gso

     --- Volume group ---
     VG Name               cl
     System ID
     Format                lvm2
     Metadata Areas        1
     Metadata Sequence No  3
     VG Access             read/write
     VG Status             resizable
     MAX LV                0
     Cur LV                2
     Open LV               2
     Max PV                0
     Cur PV                1
     Act PV                1
     VG Size               <19.00 GiB
     PE Size               4.00 MiB
     Total PE              4863
     Alloc PE / Size       4863 / <19.00 GiB
     Free  PE / Size       0 / 0
     VG UUID               cxM7kS-b357-Y4MX-439j-EkVT-3X4l-5tTZp1

说明:vg1指的是卷组名称,/dev/[b-c]是卷组中的设备

创建LV逻辑卷(这里我创建了2个LV逻辑卷):

  1. [root@serve1 ~]# lvcreate -L 25G -n lv1 vg1    #创建LV逻辑卷 
  2.   Logical volume "lv1" created.
  3.   
  4. [root@serve1 ~]# lvs
  5.   LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  6.   root cl  -wi-ao---- <17.00g
  7.   swap cl  -wi-ao----   2.00g
  8.   lv1  vg1 -wi-a-----  25.00g
  9.   
  10. [root@serve1 ~]# lvdisplay
  11.   --- Logical volume ---
  12.   LV Path                /dev/vg1/lv1
  13.   LV Name                lv1
  14.   VG Name                vg1
  15.   LV UUID                PDVaXp-eih9-ogif-PvBu-Mve2-nCUf-086A8o
  16.   LV Write Access        read/write
  17.   LV Creation host, time serve1, 2017-11-18 23:32:49 +0800
  18.   LV Status              available
  19.   # open                 0
  20.   LV Size                25.00 GiB
  21.   Current LE             6400
  22.   Segments               2
  23.   Allocation             inherit
  24.   Read ahead sectors     auto
  25.   - currently set to     8192
  26.   Block device           253:2
  27.  
  28.   --- Logical volume ---
  29.   LV Path                /dev/cl/swap
  30.   LV Name                swap
  31.   VG Name                cl
  32.   LV UUID                fjdF4f-JxFB-gtEh-7k4C-74BC-odR2-wIL6Sy
  33.   LV Write Access        read/write
  34.   LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
  35.   LV Status              available
  36.   # open                 2
  37.   LV Size                2.00 GiB
  38.   Current LE             512
  39.   Segments               1
  40.   Allocation             inherit
  41.   Read ahead sectors     auto
  42.   - currently set to     8192
  43.   Block device           253:1
  44.  
  45.   --- Logical volume ---
  46.   LV Path                /dev/cl/root
  47.   LV Name                root
  48.   VG Name                cl
  49.   LV UUID                OddHW1-lehU-NcYT-uO19-nD7y-kdSx-PO3ZW0
  50.   LV Write Access        read/write
  51.   LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
  52.   LV Status              available
  53.   # open                 1
  54.   LV Size                <17.00 GiB
  55.   Current LE             4351
  56.   Segments               1
  57.   Allocation             inherit
  58.   Read ahead sectors     auto
  59.   - currently set to     8192
  60.   Block device           253:0

说明:-L:指定逻辑卷的大小,单位为"kKmMgGtT"字节; -n:指定逻辑卷的名称; vg1是卷组的名称,卷组的名称要和上面创建的卷组名称一致。

  1. [root@serve1 ~]# lvcreate -l +100%FREE -n lv2 vg1
     Logical volume "lv2" created.
     
    [root@serve1 ~]# lvs
     LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
     root cl  -wi-ao---- <17.00g
     swap cl  -wi-ao----   2.00g
     lv1  vg1 -wi-a-----  25.00g
     lv2  vg1 -wi-a-----  14.99g
     
    [root@serve1 ~]# lvdisplay
     --- Logical volume ---
     LV Path                /dev/vg1/lv1
     LV Name                lv1
     VG Name                vg1
     LV UUID                PDVaXp-eih9-ogif-PvBu-Mve2-nCUf-086A8o
     LV Write Access        read/write
     LV Creation host, time serve1, 2017-11-18 23:32:49 +0800
     LV Status              available
     # open                 0
     LV Size                25.00 GiB
     Current LE             6400
     Segments               2
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     8192
     Block device           253:2

     --- Logical volume ---
     LV Path                /dev/vg1/lv2
     LV Name                lv2
     VG Name                vg1
     LV UUID                DSymjV-ExDB-wTSR-6lns-Swjz-ZzP5-Ywf0xA
     LV Write Access        read/write
     LV Creation host, time serve1, 2017-11-18 23:42:30 +0800
     LV Status              available
     # open                 0
     LV Size                14.99 GiB
     Current LE             3838
     Segments               1
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     8192
     Block device           253:3

     --- Logical volume ---
     LV Path                /dev/cl/swap
     LV Name                swap
     VG Name                cl
     LV UUID                fjdF4f-JxFB-gtEh-7k4C-74BC-odR2-wIL6Sy
     LV Write Access        read/write
     LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
     LV Status              available
     # open                 2
     LV Size                2.00 GiB
     Current LE             512
     Segments               1
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     8192
     Block device           253:1

     --- Logical volume ---
     LV Path                /dev/cl/root
     LV Name                root
     VG Name                cl
     LV UUID                OddHW1-lehU-NcYT-uO19-nD7y-kdSx-PO3ZW0
     LV Write Access        read/write
     LV Creation host, time serve1, 2017-09-27 23:42:53 +0800
     LV Status              available
     # open                 1
     LV Size                <17.00 GiB
     Current LE             4351
     Segments               1
     Allocation             inherit
     Read ahead sectors     auto
     - currently set to     8192
     Block device           253:0

说明:-l:指定逻辑卷的大小(LE数)

 

创建挂载目录、格式化挂载并写入文件测试:

  1. #格式化LV逻辑卷
    [root@serve1 ~]# mkfs.xfs /dev/vg1/lv1
    meta-data=/dev/vg1/lv1           isize=512    agcount=4, agsize=1638400 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=6553600, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=3200, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0

    [root@serve1 ~]# mkfs.xfs /dev/vg1/lv2
    meta-data=/dev/vg1/lv2           isize=512    agcount=4, agsize=982528 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=3930112, 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@serve1 ~]# mount /dev/vg1/lv1 /web
    [root@serve1 ~]# mount /dev/vg1/lv2 /data

    [root@serve1 ~]# df -hT
    文件系统            类型      容量  已用  可用 已用% 挂载点
    /dev/mapper/cl-root xfs        17G  4.3G   13G   26% /
    devtmpfs            devtmpfs  1.9G     0  1.9G    0% /dev
    tmpfs               tmpfs     1.9G     0  1.9G    0% /dev/shm
    tmpfs               tmpfs     1.9G  9.1M  1.9G    1% /run
    tmpfs               tmpfs     1.9G     0  1.9G    0% /sys/fs/cgroup
    /dev/sda1           xfs      1014M  238M  777M   24% /boot
    tmpfs               tmpfs     378M   12K  378M    1% /run/user/42
    tmpfs               tmpfs     378M     0  378M    0% /run/user/0
    /dev/mapper/vg1-lv1 xfs        25G   33M   25G    1% /web
    /dev/mapper/vg1-lv2 xfs        15G   33M   15G    1% /data

    [root@serve1 ~]# echo /dev/mapper/vg1-lv1 /web  xfs  defaults 0  0 >>/etc/fstab
    [root@serve1 ~]# echo /dev/mapper/vg1-lv2 /date  xfs  defaults 0  0 >>/etc/fstab

    [root@serve1 ~]# cat /etc/fstab

    #
    # /etc/fstab
    # Created by anaconda on Wed Sep 27 23:42:53 2017
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    /dev/mapper/cl-root     /                       xfs     defaults        0 0
    UUID=4318c13a-c39b-484d-aaa0-ce6331eddc30 /boot                   xfs     defaults        0 0
    /dev/mapper/cl-swap     swap                    swap    defaults        0 0
    /dev/mapper/vg1-lv1 /web xfs defaults 0 0
    /dev/mapper/vg1-lv2 /date xfs defaults 0 0

说明:centos7支持xfs和etx4类型的文件系统,centos6不支持xfs类型的文件系统。

 

卸载删除LVM

思路:删除LVM的步骤和创建LVM的步骤是相反的。先删除LV逻辑卷,再删除VG卷组,最后删除PV物理卷

  1. [root@serve1 ~]# lvremove /dev/vg1/lv1
    Do you really want to remove active logical volume vg1/lv1? [y/n]: y
     Logical volume "lv1" successfully removed
    [root@serve1 ~]# lvs
      LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root cl -wi-ao---- <17.00g
      swap cl -wi-ao----   2.00g
      
    #删除VG1卷组
    [root@serve1 ~]# vgremove vg1
      Volume group "vg1" successfully removed
      
    #查看VG卷组状态
    [root@serve1 ~]# vgs
      VG #PV #LV #SN Attr   VSize   VFree
      cl   1   2   0 wz--n- <19.00g    0

    #删除sd[b-c]物理卷
    [root@serve1 ~]# pvremove /dev/sd[b-c]
      Labels on physical volume "/dev/sdb" successfully wiped.
      Labels on physical volume "/dev/sdc" successfully wiped.

    #查看PV物理卷状态
    [root@serve1 ~]# pvs
      PV         VG Fmt  Attr PSize   PFree
      /dev/sda2  cl lvm2 a--  <19.00g    0
      
    #最后注释或删掉/etc/fstab里面逻辑卷的挂载信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  原文链接:https://www.dingmr.com/post/43.html

  Tags:2017年11月

2017年11月18日 - Linux - Mr.Ding - 0 条留言 - 73 次浏览

磁盘分区 raid磁盘阵列(软阵列)

相关文章

发表评论:

窗体顶端

名称(*) 邮箱 网址 正文(*)

窗体底端

猜你喜欢

转载自www.cnblogs.com/Mr-Ding/p/9198057.html