LVM 逻辑卷管理器

1、什么是LVM:PV、PE、VG、LV的意义   

LVM:Logical Volume Manager(逻辑卷管理器),可以将多个物理分区整合成看起来像一个磁盘一样,并可随意增加或减少逻辑卷大小

dm:device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块;

/dev/mapper/VG_NAME-LV_NAME

    /dev/mapper/vo10-root

/dev/VG_NAME/LV-NAME

   /dev/vo10/root

  • PV(Physical Volume),物理卷

通过fdisk /dev/sdb命令调整分区系统标识符system ID成为8e(LVM标识符),然后再经过pvcreate的命令将它转成LVM最底层的物理卷(PV)。

  • PE(Physical Extend),物理扩展块

PE是LVM最小的存储块,如像文件系统的block大小。LVM默认的PE大小是4MB,而LVM的VG最多仅能含有65534个PE,因此默认的LVM VG会有4M*65534/(1024/G)=256G,调整PE的大小会影响到VG的最大容量。

  • VG(Volume Group),卷组

VG就是将多个PV组合成一个VG,所以VG就是LVM组合起来的大磁盘。

  • LV(Logical Volume),逻辑卷

最终的VG还会被切成LV,LV就是最后被格式化后挂载使用的分区,LV的设备文件名通常为“/dev/VG_NAME/LV_NAME”的样式 

2、LVM的创建流程

准备工作:

(1)准备一个40G的磁盘,分出4个分区,每个分区大小5G,并调整分区系统标识符system ID成为8e(LVM标识符);

(2)4个分区组合成一个VG,VG名称设置为vgtest;且PE大小为16MB;

(3)VG的容量全部划给LV,LV名称设置为lvtest;lvtest格式化为ext4文件系统,并挂载至/tmp/lvm;

[root@centos6 ~]# fdisk /dev/sdb    #划分磁盘分区,并设置system ID分区为8e(LVM标识符)
...具体划分磁盘分区在此忽略...
[root@centos6 ~]# partprobe    #更新分区表
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (Device or resource busy).  As a result, it may not reflect all of your changes until after reboot.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
Error: Invalid partition table - recursive partition on /dev/sr0.
[root@centos6 ~]# cat /proc/partitions 
major minor  #blocks  name

   8        0   20971520 sda
   8        1     204800 sda1
   8        2    4194304 sda2
   8        3   16571392 sda3
   8       16   83886080 sdb
   8       17    5253223 sdb1
   8       18    5253255 sdb2
   8       19    5253255 sdb3
   8       20    5253255 sdb4
  • PV阶段管理工具

pvs:或pvscan命令,简要显示pv信息

pvdisplay:显示pv的详细信息

pvcreate /dev/DEVICE:将物理分区创建成PV;

pvremove /dev/DEVICE:将物理分区移除PV属性;

[root@centos6 ~]# pvscan    #显示当前pv信息
  No matching physical volumes found   #找不到任何的pv
[root@centos6 ~]# pvcreate /dev/sdb{1,2,3,4}    #新建/dev/sdb{1,2,3,4}四个分区成为pv
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created
  Physical volume "/dev/sdb4" successfully created
[root@centos6 ~]# pvs   #显示当前pv信息,pvs命令是pvscan命令的简写,所实现的功能是一样的。
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb1       lvm2 a--  5.01g 5.01g
  /dev/sdb2       lvm2 a--  5.01g 5.01g
  /dev/sdb3       lvm2 a--  5.01g 5.01g
  /dev/sdb4       lvm2 a--  5.01g 5.01g
[root@centos6 ~]# pvdisplay     #显示pv的详细信息
  "/dev/sdb1" is a new physical volume of "5.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1    #分区设备名称
  VG Name                            #因为VG未分配出去,所以是空白
  PV Size               5.01 GiB     #PV的容量   
  Allocatable           NO           #此PV是否被分配,未分配则显示NO
  PE Size               0            #PV内的PE大小   
  Total PE              0            #共分出几个PE
  Free PE               0            #未使用的PE有几个
  Allocated PE          0            #可分配出去的PE数量
  PV UUID               jbc02o-1Wl6-s73v-csLZ-47DX-xQov-4Hm1N8
...下面省略...
  • vg阶段管理工具

vgs:简要显示vg信息

vgdisplay:显示vg的详细信息

vgcreate:新建VG的命令,语法如下:

    vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevi-cePath…]

       -s:参数后面接PE的大小,单位m、g、t(大小写均可)

vgextend:在VG内增加PV,语法如下:

    vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevi-cePath…]

vgreduce:在VG内删除PV,语法如下:

    vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevi-cePath…]

vgremove:删除一个VG;

vgchange:设置VG是否启动;

[root@centos6 ~]# vgcreate -s 16M vg_1 /dev/sdb{2,3,4}    #将/dev/sdb{2,3,4}新建成为一个VG,名称为:vg_1,指定PE大小为16M
  Volume group "vg_1" successfully created
[root@centos6 ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg_1   3   0   0 wz--n- 15.00g 15.00g
[root@centos6 ~]# pvs    #查看PV信息显示,/dev/sdb{2,3,4}三个PV已经用掉,剩下/dev/sdb1的PV没被用掉;
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb1       lvm2 a--  5.01g 5.01g
  /dev/sdb2  vg_1 lvm2 a--  5.00g 5.00g
  /dev/sdb3  vg_1 lvm2 a--  5.00g 5.00g
  /dev/sdb4  vg_1 lvm2 a--  5.00g 5.00g
[root@centos6 ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg_1
  System ID             
  Format                lvm2
  Metadata Areas        3
  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                3
  Act PV                3
  VG Size               15.00 GiB    #vg的容量
  PE Size               16.00 MiB    #每个PE的大小
  Total PE              960          #共有多少个PE
  Alloc PE / Size       0 / 0        #已经分配的PE数量
  Free  PE / Size       960 / 15.00 GiB    #未分配的PE数量
  VG UUID               NpO8m2-s4rx-WOIA-SbCt-yqQV-MU1w-wru4cS

#增加vg的容量,将/dev/sdb1添加至vg_1中;
[root@centos6 ~]# vgextend vg_1 /dev/sdb1
  Volume group "vg_1" successfully extended
[root@centos6 ~]# vgdisplay
  --- Volume group ---
  VG Name               vg_1
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               20.00 GiB    #vg容量变成了20G
  PE Size               16.00 MiB
  Total PE              1280         #PE的数量也增加了
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1280 / 20.00 GiB
  VG UUID               NpO8m2-s4rx-WOIA-SbCt-yqQV-MU1w-wru4cS
  • lv阶段管理工具

创建了VG这个大磁盘后,我就对针对vg_1这个大磁盘进行分区,即创建lv。

lvs:显示lv简要信息;

lvdisplay:显示lv的详细信息

lvcreate:新建lv;

    lvcreate -L #[mMgGtT] -n LV_NAME VG_NAME

    lvcreate -l N -n LV_NAME VG_NAME

    -L:后面接容量,单位可以是M、G、T等,最小单位为PE,这个数量是PE的倍数;

    -l:后面接PE的个数;

    -n:后面接LV的名称

lvextend:在lv内增加容量;

lvreduce:在lv内减少容量;

lvremove:删除一个lv;

lvremove /dev/VG_NAME/LV_NAME

[root@centos6 ~]# lvcreate -l 1280 -n lv_1 vg_1    #将vg_1全部分配给lv_1
  Logical volume "lv_1" created
#也可使用lvcreate -L 20G -n lv_1 vg_1这条命令来创建
[root@centos6 ~]# ll /dev/vg_1/lv_1 
lrwxrwxrwx. 1 root root 7 Sep  9 14:10 /dev/vg_1/lv_1 -> ../dm-0
[root@centos6 ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  lv_1 vg_1 -wi-a----- 20.00g
[root@centos6 ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg_1/lv_1    #lv的全名
  LV Name                lv_1
  VG Name                vg_1
  LV UUID                BMuWIa-fngq-Z025-naPO-e7kC-ACmd-L4XrYb
  LV Write Access        read/write
  LV Creation host, time centos6.5, 2016-09-09 14:10:22 +0800
  LV Status              available
  # open                 0
  LV Size                20.00 GiB    #lv的容量
  Current LE             1280
  Segments               4
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  • 文件系统阶段

格式化、挂载LV

[root@centos6 ~]# mkfs -t ext4 /dev/vg_1/lv_1 #注意要全名
[root@centos6 ~]# mkdir /mnt/lvm
[root@centos6 ~]# mount /dev/vg_1/lv_1 /mnt/lvm
[root@centos6 ~]# df -lh
Filesystem             Size  Used Avail Use% Mounted on
/dev/sda3               16G  1.5G   14G  11% /
tmpfs                  112M     0  112M   0% /dev/shm
/dev/sda1              194M   29M  155M  16% /boot
/dev/mapper/vg_1-lv_1   20G  172M   19G   1% /mnt/lvm   
#其实LV的名称构建成为/dev/vg_1/lv_1是为了让用户理直观找到数据,实际LVM使用的设备是放置到/dev/mapper/目录下

原创文章,作者:zhuckee,如若转载,请注明出处:http://www.178linux.com/46435

(0)
zhuckeezhuckee
上一篇 2016-09-19
下一篇 2016-09-19

相关推荐

  • Linux用户和组的基础概念

    用户,组和权限管理   Multi-tasks,  Multi-Users 每个使用者:    用户标识,密码:    认证:Authentication    授权:Authorization    审计:Audition    3A 组…

    Linux干货 2016-12-21
  • wordpress配置安装

    1、首先进行lamp框架的搭建 服务器环境:Linux Centos 7.2.1511 64位 内存:2G  磁盘空间100GB IP地址:10.55.10.79 进行httpd,php,php-mysql,mariadb-server的安装,安装均使用yum安装 ~]# yum -y install httpd php php-mysql mar…

    Linux干货 2016-11-04
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。  cp复制,mv移动,rm删除     1、cp:             1,用法:      &n…

    Linux干货 2016-07-04
  • 实现NFS为lamp环境web站点提供共享存储

    1.实验需求 (1)nfs server导出/data/application/web,在目录中提供wordpress; (2)nfs client挂载nfs server导出的文件系统,至/var/www/html; (3)客户端1(lamp)部署wordpress,并让其正常访问,要确保正常发文章,上传图片。 (4)客户端2(lamp),挂载nfs se…

    Linux干货 2017-05-02
  • Linux—文本处理(查看,统计,排序,抽取,合并,grep,基本正则表达式)

    Linux的文本管理有着众多的文本命令工具,这些工具基本可以满足不同的文本处理要求,很是灵活,掌握文本管理命令对系统的维护是必备基础技能。 1.文本查看命令:     (1)cat        语法:        cat [OPTION]… […

    Linux干货 2016-08-07
  • RAID解说

    RAID(RedundantArrays of Inexpensive Disks,RAID),又叫独立的磁盘阵列。有“价格便宜具有冗余能力的磁盘阵列”之意。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术…

    2017-03-14