全国业务电话:
4.6 逻辑卷管理器(LVM)
4.6 逻辑卷管理器(LVM)
 
  LVM 是一种把硬盘驱动器空间分配成逻辑卷的方法。使用 LVM,硬盘驱动器或硬盘驱动器集合会分配给一个或多个物理卷(physical volumes)。物理卷无法跨越一个以上驱动器。
 
  物理卷被合并成逻辑卷组(logical volume group),如 图 4-3 ,唯一的例外是/boot/分区。/boot/ 分区不能位于逻辑卷组,因为引导装载程序无法读取它。如果您想把/分区放在逻辑卷上,您需要创建一个分开的/boot/ 分区,它不属于卷组的一部分。
 

图 4-3 逻辑卷组
 
  逻辑卷组被分成逻辑卷(logical volumes,相当于无LVM环境中的“分区”),如 图 4-4 ,它们被分配了挂载点(如/home 和/),以及文件系统类型(如 ext4)。当“分区”达到了它们的极限,逻辑卷组中的空闲空间就可以被添加给逻辑卷来增加分区的大小。当某个新的硬盘驱动器被添加到系统上,它可以被添加到逻辑卷组中,逻辑卷是可以扩展的分区。
 

图 4-4 逻辑卷
 
  CGSL 默认支持 LVM,LVM 命令摘要、用法说明及示例如下:

extendfs 扩充文件系统 #extendfs /dev/vg00/rlvol3
lvmadm 显示与卷组版本关联的限制 #lvmadm -t -V 2.0
lvchange 更改逻辑卷的特性 #lvchange -t 60 /dev/vg00/lvol3
lvcreate 在卷组中创建逻辑卷 #lvcreate -L 100 /dev/vg00
lvdisplay 显示有关逻辑卷的信息 #lvdisplay -v /dev/vg00/lvol1
lvextend -m 为逻辑卷添加镜像 #lvextend -m 1 /dev/vg00/lvol3
lvextend -L 增加逻辑卷的大小 #lvextend -L 120 /dev/vg00/lvol3
lvlnboot 准备将逻辑卷用作根区域、交换区域或转储区域 #lvlnboot -d /dev/vg00/lvol2
lvreduce -L 减小逻辑卷的大小 #lvreduce -L 100 /dev/vg00/lvol3
lvreduce -m 减小逻辑卷的镜像副本的数量 #lvreduce -m 0 /dev/vg00/lvol3
lvremove 从卷组中删除逻辑卷 #lvremove /dev/vg00/lvol6
lvrmboot 删除到根区域、交换区域或转储区域的逻辑卷链路 #lvrmboot -d /dev/vg00/lvol2
lvsplit 将一个镜像逻辑卷拆分为两个逻辑卷 #lvsplit /dev/vg00/lvol4
lvsync 同步过时的逻辑卷镜像 #lvsync /dev/vg00/lvol1
pvchange 更改物理卷的特性 #pvchange -a n /dev/disk/disk2
pvck 对物理卷执行一致性检查 #pvck /dev/disk/disk47_p2
pvcreate 创建用作卷组的一部分的物理卷 #pvcreate /dev/rdisk/disk2
pvdisplay 显示有关物理卷的信息 #pvdisplay -v /dev/disk/disk2
pvmove 将盘区从一个物理卷移动到另一个物理卷 #pvmove /dev/disk/disk2 /dev/disk/disk3
pvremove 从物理卷中删除LVM数据结构 #pvremove /dev/rdisk/disk2
vgcfgbackup 保存卷组的LVM配置 #vgcfgbackup vg00
vgcfgrestore 恢复LVM配置 #vgcfgrestore -n /dev/vg00 /dev/rdisk/disk2
vgchange 打开或关闭卷组 #vgchange -a y /dev/vg00
vgchgid 更改物理卷的卷组ID #vgchgid /dev/rdisk/disk3
vgcreate 创建卷组 #vgcreate /dev/vg01 /dev/disk/disk2 /dev/disk/disk3
vgdisplay 显示有关卷组的信息 #vgdisplay -v /dev/vg00
vgextend 通过添加物理卷来扩充卷组 #vgextend /dev/vg00 /dev/disk/disk2
vgexport 从系统中删除卷组 #vgexport /dev/vg01
vgimport 向系统添加现有卷组 #vgimport -v /dev/vg04
vgmodify 修改卷组的配置参数 #vgmodify -v -t -n -r vg32
vgscan 扫描卷组的系统磁盘 #vgscan -v
vgreduce 通过从卷组中删除一个或多个物理卷来缩小卷组 #vgreduce /dev/vg00 /dev/disk/disk2
vgremove 从系统和磁盘中删除卷组定义 #vgremove /dev/vg00 /dev/disk/disk2
vgsync 同步卷组中的所有镜像逻辑卷 #vgsync vg00

4.6.1 LVM 创建及配置示例
 
  1、使用 fdisk 创建分区:

 #fdisk /dev/sdb
 
 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
                     switch off the mode (command 'c') and change display units to
                     sectors (command 'u').  

 
 Command (m for help): n
 
 Command action
 
   e   extended
 
   p   primary partition (1-4)
 
 p
 
 Partition number (1-4): 1
 
 First cylinder (1-261, default 1):
 
 Using default value 1
 
 Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261): +500M

 
 Command (m for help): t
 
 Selected partition 1
 
 Hex code (type L to list codes): 8e                                                 // 8e为LVM格式的代码
 
 Changed system type of partition 1 to 8e (Linux LVM)

 
 Command (m for help): n
 
 Command action
 
   e   extended
 
   p   primary partition (1-4)
 
 p
 
 Partition number (1-4): 2
 
 First cylinder (66-261, default 66):
 
 Using default value 66
 
 Last cylinder, +cylinders or +size{K,M,G} (66-261, default 261): +500M

 
 Command (m for help): t
 
 Partition number (1-4): 2
 
 Hex code (type L to list codes): 8e
 
 Changed system type of partition 2 to 8e (Linux LVM)

 
 Command (m for help): p

 
 Disk /dev/sdb: 2147 MB, 2147483648 bytes
 
 255 heads, 63 sectors/track, 261 cylinders
 
 Units = cylinders of 16065 * 512 = 8225280 bytes
 
 Sector size (logical/physical): 512 bytes / 512 bytes
 
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 
 Disk identifier: 0x2dfa2374

 
 Device Boot      Start         End      Blocks   Id  System
 
 /dev/sdb1               1          65      522081   8e  Linux LVM
 
 /dev/sdb2              66         130      522112+  8e  Linux LVM

 
 Command (m for help): w
 
 The partition table has been altered!

 
 Calling ioctl() to re-read partition table.
 
 Syncing disks.

  2、将分区转换为 PV(物理卷):

 #pvcreate /dev/sdb1
 
  Writing physical volume data to disk "/dev/sdb1"
 
  Physical volume "/dev/sdb1" successfully created
 
 #pvcreate /dev/sdb2
 
  Writing physical volume data to disk "/dev/sdb2"
 
  Physical volume "/dev/sdb2" successfully created

  3、将 PV 组合成卷组 VG(卷组)

 #vgcreate myvg1 /dev/sdb1 /dev/sdb2
 
  Volume group "myvg1" successfully created

  4、创建逻辑卷 LV

 #lvcreate -L 800M -n mylv1 myvg1
 
  Logical volume "mylv1" created

  5、vgdisplay 及 lvdisplay 的相关信息

 #vgdisplay
 
  --- Volume group ---
 
  VG Name               myvg1
 
  System ID
 
  Format                lvm2
 
  Metadata Areas        2
 
  Metadata Sequence No  2
 
  VG Access             read/write
 
  VG Status             resizable
 
  MAX LV                0
 
  Cur LV                1
 
  Open LV               0
 
  Max PV                0
 
  Cur PV                2
 
  Act PV                2
 
  VG Size               1016.00 MiB
 
  PE Size               4.00 MiB
 
  Total PE              254
 
  Alloc PE / Size       200 / 800.00 MiB
 
  Free  PE / Size       54 / 216.00 MiB
 
  VG UUID               622JHS-61WH-VtKK-29i0-Ef0D-Icar-dBn83k
 
 
 #lvdisplay
 
  --- Logical volume ---
 
  LV Name                /dev/myvg1/mylv1
 
  VG Name                myvg1
 
  LV UUID                IdqHyQ-cEkp-Hz4X-ulPv-kvY3-nmTi-uRmGqw
 
  LV Write Access        read/write
 
  LV Status              available
 
  # open                 0
 
  LV Size                800.00 MiB
 
  Current LE             200
 
  Segments               2
 
  Allocation             inherit
 
  Read ahead sectors     auto
 
  - currently set to     256
 
  Block device           253:2

  6、格式化 LVM 分区并挂载分区:

    #mkfs.ext4 /dev/mapper/myvg1-mylv1
 
 #mkdir /mylv1
 
 #mount /dev/mapper/myvg1-mylv1 /mylv1

  7、对已挂载的 LVM 文件系统进行扩容:
 
  未扩容前:
 
 /dev/mapper/myvg1-mylv1  788M   17M  731M   3% /mylv1
 
  使用 lvextend 和 resize2fs 进行在线扩容:
 
 #lvextend -L +100M /dev/mapper/myvg1-mylv1
 
  Extending logical volume mylv1 to 900.00 MiB
 
  Logical volume mylv1 successfully resized
 
 # resize2fs /dev/mapper/myvg1-mylv1
 
 resize2fs 1.41.12 (17-May-2010)
 
 Filesystem at /dev/mapper/myvg1-mylv1 is mounted on /mylv1; on-line resizing required
 
 old desc_blocks = 1, new_desc_blocks = 1
 
 Performing an on-line resize of /dev/mapper/myvg1-mylv1 to 230400 (4k) blocks.
 
 The filesystem on /dev/mapper/myvg1-mylv1 is now 230400 blocks long.
 
  扩容后:
 
 /dev/mapper/myvg1-mylv1  886M   17M  829M   3% /mylv1
 

 
  • 操作系统微信公众号

  • CPI微信公众号

© 2004-2020 广东中兴新支点技术有限公司  版权所有  (www.gd-linux.com)  粤ICP备15061780号-2

新支点OS业务:

QQ客服