1. 程式人生 > >LVM邏輯卷

LVM邏輯卷

linux 邏輯卷 lvm

邏輯卷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跟分區,設置分區屬性

[[email protected]~]# 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
[[email protected]~]#

然後用pvscan可以來查看具有PV的磁盤

[[email protected]~]# 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]
[[email protected]~]#

設置完pv吧pv設置成一個vg,pe設置為4M,名字test隨便自己指定

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

這裏也有查看VG的命令那就是vgscan

[[email protected]~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "test" usingmetadata type lvm2
[[email protected]~]#   有test字樣

上面所介紹的lv可用來使用掛載,當空間不夠可以從VG來擴容,但是VG空間不夠這就要往裏面加LV(分區)了增加VG的容量。命令為vgextend test /dev/sdb* (前提設置成pv也就是使用pvcreate)

看看下面的命令:

[[email protected]~]# 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]
[[email protected]~]# vgex
vgexport  vgextend 
[[email protected]~]# vgextend test /dev/sdb3
  Volume group "test" successfullyextended
[[email protected]~]# 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   ]
[[email protected]~]#

下面就來設置LV命令lvcreate(發現沒有lv,vg,pv三個創建命令都是後跟上create也就是創建的意思,是不是很好記),LV的單位就是上面所設置的PE。

這裏有兩個選項一個小寫l一個大寫L,大寫可以跟上MGT單位,直接設置容量,而小寫就是設置pe個數,自己計算打消了。。。。。下面就來設置一下看看

[[email protected]~]# lvcreate -L 20G -n testlv test
  Logical volume "testlv" created.
[[email protected]~]#
之後用來ls –l查看一下  lvdisplay查看lv的具體信息
[[email protected]~]# ll /dev/test/testlv   
lrwxrwxrwx.1 root root 7 Aug 23 19:16 /dev/test/testlv -> ../dm-0
[[email protected]~]#
[[email protected]~]# 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
   
[[email protected]~]#

lv是創建完了,該給這個東西設置一下他的文件系統了,然後掛載

[[email protected] ~]# 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.
[[email protected] ~]# mount /dev/test/testlv /mnt/
[[email protected] ~]# 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
[[email protected] ~]#

上面提到了怎麽加VG的大小,但是LV不夠了怎麽從VG裏面忘LV裏面加呢。來我們就好好說說!

[[email protected] ~]# lvscan   查看大小
  ACTIVE            ‘/dev/test/testlv‘ [20.00 GiB] inherit
[[email protected] ~]# 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.
[[email protected] ~]# lvscan   成功加到40G
  ACTIVE            ‘/dev/test/testlv‘ [40.00 GiB] inherit
[[email protected] ~]#

到這裏差不多就設置完了,因為縮小一般也用不到,誰沒事會縮小容量啊 !多數情況都是大小不夠往上加。所以就不在提及了!

本文出自 “mlon客” 博客,請務必保留此出處http://13154101.blog.51cto.com/13144101/1959574

LVM邏輯卷