Ubuntu系统中怎么使用LVM调整硬盘分区

本篇文章为大家展示了Ubuntu系统中怎么使用LVM调整硬盘分区,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为鸠江企业提供专业的成都网站建设、成都做网站,鸠江网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。

LVM是Logical Volume Manager(逻辑卷管理器)的简写,又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器。是Linux核心所提供的逻辑卷管理(Logical Volume Management)功能。它在硬盘的硬盘分区之上,又创建了一个逻辑层以方便系统管理硬盘分区系统。

LVM的优点:

它是建立在物理存储设备之上的一个抽象层,允许用户生成逻辑存储卷,与直接使用物理存储在管理上相比,提供了更好灵活性;

LVM将存储虚拟化,使用逻辑卷,用户不会受限于物理磁盘的大小;另外,与硬件相关的存储设置被器隐藏,用户可以不用停止应用或卸载文件系统来调整卷大小或数据迁移,可以减少操作成本。

LVM与直接使用物理存储相比,有以下优点:

1、  灵活的容量

当使用逻辑卷时,文件系统可以扩展到多个磁盘上,你可以聚合多个磁盘或磁盘分区成单一的逻辑卷.

2、  可伸缩的存储池;

你可以使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备.

3、  在线的数据再分配

你可以在线移动数据,数据可以在磁盘在线的情况下重新分配.比如,你可以在线更换可热插拔的磁盘.

4、  方便的设备命名;

逻辑卷可以按你觉得方便的方式来起任何名称.

5、  磁盘条块化

你可以生成一个逻辑盘,它的数据可以被条块化存储在2个或更多的磁盘上.这样可以明显提升数据吞吐量.

6、  镜像卷

逻辑卷提供方便的方法来镜像你的数据.

7、  卷快照

使用逻辑卷,你可以获得设备快照用来一致性备份或者测试数据更新效果而不影响真实数据.

2.版本:

LVM1 最初的LVM与1998年发布,只在Linux内核2.4版本上可用,它提供最基本的逻辑卷管理。

LVM2 LVM-1的更新版本,在Linux内核2.6中才可用,它在标准的LVM-1功能外还提供了额外的功能。

查看版本:

代码如下:


[root@localhost ~]#uname -a


Linux localhost.localdomain2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64 x86_64 x86_64GNU/Linux

代码如下:


[root@localhost ~]#uname -r


2.6.32-504.el6.x86_64

代码如下:


[root@localhost ~]#rpm -qa | grep lvm


mesa-private-llvm-3.4-3.el6.x86_64
lvm2-libs-2.02.111-2.el6.x86_64
lvm2-2.02.111-2.el6.x86_64

3.LVM基本术语:

物理存储介质(The Physical Media):

这里指系统的存储设备,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。

物理卷(PV,Physical Volume):

物理卷就是指磁盘,磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。当前LVM允许你在每个物理卷上保存这个物理卷的0至2份元数据拷贝。默认为1,保存在设备的开始处。为2时,在设备结束处保存第二份备份。

卷组(VG,Volume Group):

LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑

卷),LVM卷组由一个或多个物理卷组成。

逻辑卷(LV,Logical Volume):

LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。

线性逻辑卷(Linear Volumes):

一个线性逻辑卷聚合多个物理卷成为一个逻辑卷.比如,如果你有两个60GB硬盘,你可以生成120GB的逻辑卷.

条块化的逻辑卷(Striped Logical Volumes)

当你写数据到此逻辑卷中时,文件系统可以将数据放置到多个物理卷中.对于大量连接读写操作,它能改善数据I/O效率.

镜像的逻辑卷(MirroredLogical Volumes)

镜像在不同的设备上保存一致的数据.数据同时被写入原设备及镜像设备.它提供设备之间的容错。

快照卷(SnapshotVolumes)

快照卷提供在特定瞬间的一个设备虚拟映像,当快照开始时,它复制一份对当前数据区域的改变,由于它优先执行这些改变,所以它可以重构当前设备的状态。

PE(physical extent)

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

LE(logical extent)

逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

和非LVM系统将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处的VGDA(卷组描述符区域)中。VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。

4.LVM模块:

Physicalvolume (PV)、Volume group (VG)、Logicalvolume(LV)、 Physical extent (PE),下面我们用一个简单

的图来说明下物理卷、卷组、逻辑卷他们之间的关系:
Ubuntu系统中怎么使用LVM调整硬盘分区
逻辑卷的创建,就是将多块硬盘创建物理卷,而将这些物理卷以逻辑的形式总成一个容器,然后从这个容器里面创建大小不同的分区文件,而这个容器就是所谓的卷组(VG),而从这个容器里创建大小不同的分区文件,这个分区文件就叫做逻辑卷。


LVM实现逻辑卷镜像
LVM的镜像功能,有点儿类似于Raid1,即多块儿磁盘互相同步,确保资料不会丢失。

1、在此添加4块物理硬盘,每块2G空间
Ubuntu系统中怎么使用LVM调整硬盘分区
2、将sdb、sdc、sdd、sde 创建物理卷,将sdb、sdc、sdd 添加卷组到vmTest

代码如下:


[root@node4 ~]# pvcreate /dev/sdb


  Physical volume "/dev/sdb" successfully created

代码如下:


[root@node4 ~]# pvcreate /dev/sdc


  Physical volume "/dev/sdc" successfully created

代码如下:


[root@node4 ~]# pvcreate /dev/sdd


  Physical volume "/dev/sdd" successfully created

代码如下:


[root@node4 ~]# pvcreate /dev/sde


  Physical volume "/dev/sde" successfully created

代码如下:


[root@node4 ~]# vgcreate vgTest /dev/sdb /dev/sdc /dev/sdd


  Volume group "vgTest" successfully created

代码如下:


[root@node4 ~]#

3、创建逻辑卷

代码如下:


[root@node4 ~]# lvcreate -L 1G -m1 -n lvTest vgTest /dev/sdb /dev/sdc /dev/sdd


  Logical volume "lvTest" created

查看lvs信息

代码如下:


[root@node4 ~]# lvs -a -o +devices


  LV                VG      Attr      LSize  Pool Origin Data%  Move Log        Cpy%Sync Convert Devices                             
  lv_root          VolGroup -wi-ao----  8.54g                                                      /dev/sda2(0)                       
  lv_swap          VolGroup -wi-ao---- 992.00m                                                      /dev/sda2(2186)                     
  lvTest            vgTest  mwi-a-m---  1.00g                        lvTest_mlog  100.00        lvTest_mimage_0(0),lvTest_mimage_1(0)
  [lvTest_mimage_0] vgTest  iwi-aom---  1.00g                                                      /dev/sdb(0)                         
  [lvTest_mimage_1] vgTest  iwi-aom---  1.00g                                                      /dev/sdc(0)                         
  [lvTest_mlog]    vgTest  lwi-aom---  4.00m                                                      /dev/sdd(0)

LVM镜像需要用到-m1参数,从上面可以看出,/dev/sdb和/dev/sdc互为镜像,而/dev/sdd作为日志存储使用

4、格式化分区,在逻辑卷上创建一个文件。对/dev/sdc进行破坏。

代码如下:


[root@node4 ~]# mkfs.ext4 /dev/vgTest/lvTest


mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376
 
正在写入inode表: 完成                           
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
 
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

代码如下:


[root@node4 ~]# dd if=/dev/zero of=/dev/sdc count=10 bs=20M


记录了10+0 的读入
记录了10+0 的写出
209715200字节(210 MB)已复制,2.08666 秒,101 MB/秒

代码如下:


[root@node4 ~]# lvs -a -o +devices


  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.
  LV                VG      Attr      LSize  Pool Origin Data%  Move Log        Cpy%Sync Convert Devices                             
  lv_root          VolGroup -wi-ao----  8.54g                                                      /dev/sda2(0)                       
  lv_swap          VolGroup -wi-ao---- 992.00m                                                      /dev/sda2(2186)                     
  lvTest            vgTest  mwi-a-m-p-  1.00g                        lvTest_mlog  100.00        lvTest_mimage_0(0),lvTest_mimage_1(0)
  [lvTest_mimage_0] vgTest  iwi-aom---  1.00g                                                      /dev/sdb(0)                         
  [lvTest_mimage_1] vgTest  iwi-aom-p-  1.00g                                                      unknown device(0)                   
  [lvTest_mlog]    vgTest  lwi-aom---  4.00m                                                      /dev/sdd(0) 

代码如下:


[root@node4 ~]# lvscan


  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.
  ACTIVE            '/dev/vgTest/lvTest' [1.00 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_root' [8.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [992.00 MiB] inherit

代码如下:


[root@node4 ~]#

重新挂载逻辑卷,确认文件可以正常读取

代码如下:


[root@node4 ~]# mkdir /lvmTest
[root@node4 ~]# mount /dev/vgTest/lvTest /lvmTest/
[root@node4 ~]# cd /lvmTest/
[root@node4 lvmTest]# ls


lost+found

代码如下:


[root@node4 lvmTest]# echo "ac" > ac
[root@node4 lvmTest]# cat ac


ac

代码如下:


[root@node4 lvmTest]#

将卷组中坏掉的物理卷(/dev/sdc)移除:

代码如下:


[root@node4 lvmTest]# vgdisplay


  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.
  --- Volume group ---
  VG Name              vgTest
  System ID           
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access            read/write
  VG Status            resizable
  MAX LV                0
  Cur LV                1
  Open LV              1
  Max PV                0
  Cur PV                3
  Act PV                2
  VG Size              5.99 GiB
  PE Size              4.00 MiB
  Total PE              1533
  Alloc PE / Size      513 / 2.00 GiB
  Free  PE / Size      1020 / 3.98 GiB
  VG UUID              1qzO3A-Tjvi-by9l-Oq49-byz3-tIkx-rfSqex

代码如下:


[root@node4 lvmTest]#  vgreduce --removemissing --force vgTest


  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.
  Wrote out consistent volume group vgTest

代码如下:


[root@node4 lvmTest]#

5、向卷组中加入新的物理卷(/dev/sde):

代码如下:


[root@node4 lvmTest]# vgextend vgTest /dev/sde


  Volume group "vgTest" successfully extended

代码如下:


[root@node4 lvmTest]#

6、进行数据恢复(过程中无须解除逻辑卷的挂载)

代码如下:


[root@node4 lvmTest]# lvconvert -m1 /dev/vgTest/lvTest /dev/sdb /dev/sdd /dev/sde


  vgTest/lvTest: Converted: 0.0%
  vgTest/lvTest: Converted: 100.0%

代码如下:


[root@node4 lvmTest]# lvs -a -o +devices


  LV                VG      Attr      LSize  Pool Origin Data%  Move Log        Cpy%Sync Convert Devices                             
  lv_root          VolGroup -wi-ao----  8.54g                                                      /dev/sda2(0)                       
  lv_swap          VolGroup -wi-ao---- 992.00m                                                      /dev/sda2(2186)                     
  lvTest            vgTest  mwi-aom---  1.00g                        lvTest_mlog  100.00        lvTest_mimage_0(0),lvTest_mimage_1(0)
  [lvTest_mimage_0] vgTest  iwi-aom---  1.00g                                                      /dev/sdb(0)                         
  [lvTest_mimage_1] vgTest  iwi-aom---  1.00g                                                      /dev/sdd(0)                         
  [lvTest_mlog]    vgTest  lwi-aom---  4.00m                                                      /dev/sde(0)

7、核实原数据

代码如下:


[root@node4 lvmTest]# cat ac


ac

代码如下:


[root@node4 lvmTest]# echo "abcde" >> ac
[root@node4 lvmTest]# cat ac


ac
abcde

代码如下:


[root@node4 lvmTest]#

[root@node4 lvmTest]# lvdisplay


  --- Logical volume ---
  LV Path                /dev/vgTest/lvTest
  LV Name                lvTest
  VG Name                vgTest
  LV UUID                a8kDmI-R3ls-SfKJ-qx3d-1Tbb-wPAd-TJcQfn
  LV Write Access        read/write
  LV Creation host, time node4.lansgg.com, 2015-09-10 20:50:41 +0800
  LV Status              available
  # open                1
  LV Size                1.00 GiB
  Current LE            256
  Mirrored volumes      2
  Segments              1
  Allocation            inherit
  Read ahead sectors    auto
  - currently set to    256
  Block device          253:5

上述内容就是Ubuntu系统中怎么使用LVM调整硬盘分区,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


分享标题:Ubuntu系统中怎么使用LVM调整硬盘分区
本文地址:http://hbruida.cn/article/iiodic.html