逻辑卷LVM小实验

LVM全名是 Logical Volume Manager,中文翻译作逡辑滚动条管理员,我还是喜欢叫逻辑卷。简单好记QWQ

逻辑卷里面有几个名词需要介绍一下!

1.PhysicalVolume,实体滚动条,简称PV。

2.Physical Extend,实体延伸区坑,简称PE。

3.VolumeGroup,滚动条群组,简称VG。

4.LogicalVolume,逻辑滚动条,简称LV。

举个简单的例子,如果三个人要吃两个苹果这要怎么分?那就是准备三个盘子。把苹果都切成块,均分放在盘上里然后三个人每人一个盘子。好!这里苹果就是PV,每一小块就是PE,所有苹果放在一起就是一个VG组,在分成三份而每一份就是一个LV。在linux中组成逻辑卷可以是分区,里面好像有个独立的单位就是PE,所有分区加起来组成VG组。这样接下来说到某些名词可能就不是那么陌生了。

好,那么就来实验看看怎么个用法。这里本人只用/dev/sdb5-8来试验,具体怎么分区那就自行百度吧!这里就不涉及了。

首先,第一个命令pvcreate跟分区,设置分区属性

[root@centos6~]# pvcreate /dev/sdb{5,6,7,8}
  Physical volume "/dev/sdb5"successfully created
  Physical volume "/dev/sdb6"successfully created
  Physical volume "/dev/sdb7"successfully created
  Physical volume "/dev/sdb8"successfully created
[root@centos6~]#

然后用pvscan可以来查看具有PV的磁盘

[root@centos6~]# pvscan
  PV /dev/sdb5                      lvm2 [10.00 GiB]
  PV /dev/sdb6                      lvm2 [10.00 GiB]
  PV /dev/sdb7                      lvm2 [10.00 GiB]
  PV /dev/sdb8                      lvm2 [10.00 GiB]
  Total: 4 [40.00 GiB] / in use: 0 [0   ] / in no VG: 4 [40.00 GiB]
[root@centos6~]#

设置完pv吧pv设置成一个vg,pe设置为4M,名字test随便自己指定

[root@centos6~]# vgcreate -s 4M test /dev/sdb{5,6,7,8}
  Volume group "test" successfullycreated
[root@centos6~]#

这里也有查看VG的命令那就是vgscan

[root@centos6~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "test" usingmetadata type lvm2
[root@centos6~]#   有test字样

上面所介绍的lv可用来使用挂载,当空间不够可以从VG来扩容,但是VG空间不够这就要往里面加LV(分区)了增加VG的容量。命令为vgextend test /dev/sdb* (前提设置成pv也就是使用pvcreate)

看看下面的命令:

[root@centos6~]# pvscan
  PV /dev/sdb5  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb6  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb7  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb8  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb3                      lvm2 [10.00 GiB]
  Total: 5 [49.98 GiB] / in use: 4 [39.98 GiB]/ in no VG: 1 [10.00 GiB]
[root@centos6~]# vgex
vgexport  vgextend 
[root@centos6~]# vgextend test /dev/sdb3
  Volume group "test" successfullyextended
[root@centos6~]# pvscan 
  PV /dev/sdb5  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb6  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb7  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb8  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  PV /dev/sdb3  VG test            lvm2 [10.00 GiB/ 10.00 GiB free]
  Total: 5 [49.98 GiB] / in use: 5 [49.98 GiB]/ in no VG: 0 [0   ]
[root@centos6~]#

下面就来设置LV命令lvcreate(发现没有lv,vg,pv三个创建命令都是后跟上create也就是创建的意思,是不是很好记),LV的单位就是上面所设置的PE。

这里有两个选项一个小写l一个大写L,大写可以跟上MGT单位,直接设置容量,而小写就是设置pe个数,自己计算打消了。。。。。下面就来设置一下看看

[root@centos6~]# lvcreate -L 20G -n testlv test
  Logical volume "testlv" created.
[root@centos6~]#
之后用来ls –l查看一下  lvdisplay查看lv的具体信息
[root@centos6~]# ll /dev/test/testlv   
lrwxrwxrwx.1 root root 7 Aug 23 19:16 /dev/test/testlv -> ../dm-0
[root@centos6~]#
[root@centos6~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/test/testlv
  LV Name                testlv
  VG Name                test
  LV UUID               TVTd6G-SDbb-uIfS-7LAt-BNLR-iBas-pStuLG
  LV Write Access        read/write
  LV Creation host, time centos6.magedu.com,2017-08-23 19:16:16 +0800
  LV Status              available
  # open                 0
  LV Size                20.00 GiB
  Current LE             5120
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[root@centos6~]#

lv是创建完了,该给这个东西设置一下他的文件系统了,然后挂载 

[root@centos6 ~]# mkfs.ext4 /dev/test/testlv 
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
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
160 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

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

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@centos6 ~]# mount /dev/test/testlv /mnt/
[root@centos6 ~]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/sda2             51475068 5107900  43745728  11% /
tmpfs                   502056      76    501980   1% /dev/shm
/dev/sda3             51475068   53088  48800540   1% /app
/dev/sda1               999320   34952    911940   4% /boot
/dev/sr0               3878870 3878870         0 100% /media/CentOS_6.9_Final
/dev/mapper/test-testlv
                      20511356   44992  19417788   1% /mnt
[root@centos6 ~]#

        上面提到了怎么加VG的大小,但是LV不够了怎么从VG里面忘LV里面加呢。来我们就好好说说!

[root@centos6 ~]# lvscan   查看大小
  ACTIVE            '/dev/test/testlv' [20.00 GiB] inherit
[root@centos6 ~]# lvresize -L +20G /dev/test/testlv 
  Size of logical volume test/testlv changed from 20.00 GiB (5120 extents) to 40.00 GiB (10240 extents).
  Logical volume testlv successfully resized.
[root@centos6 ~]# lvscan   成功加到40G
  ACTIVE            '/dev/test/testlv' [40.00 GiB] inherit
[root@centos6 ~]#

到这里差不多就设置完了,因为缩小一般也用不到,谁没事会缩小容量啊 !多数情况都是大小不够往上加。所以就不在提及了!