LVM逻辑卷管理

一、简单的原理图

LVM(Logical volume Manager)逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑卷。

 

作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。

 

PE  ( physical extend) 物理扩展,是逻辑卷磁盘管理的基础单位,默认是4M大小
PV  (physical volumes) 物理卷
VG (volume groups)     卷组
LV  (logical volumes)  逻辑卷

二、创建LVM

在虚拟机中增加两块10G的磁盘/dev/sdb和/dev/sdc

 

 

[root@localhost ~]# yum install lvm2 -y                # 如果是最小化安装系统,需要先安装lvm2
[root@localhost
~]# pvcreate /dev/sdb /dev/sdc # 将一块或多块物理磁盘初始化为物理卷 Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created.
[root@localhost
~]# vgcreate lzfn /dev/sdb /dev/sdc # 创建卷组,并将PV加入到卷组中 Volume group "lzfn" successfully created
[root@localhost
~]# lvcreate -n data01 -L 2G lzfn # 基于卷组创建逻辑卷data01,大小设置为2G Logical volume "data01" created.
[root@localhost
~]# mkfs.ext4 /dev/lzfn/data01 # 将创建好的逻辑卷格式化文件系统 mke2fs 1.42.9 (28-Dec-2013) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131072 inodes, 524288 blocks 26214 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=536870912 16 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done [root@localhost ~]# mkdir /data01 [root@localhost ~]# mount /dev/lzfn/data01 /data01/ # 挂载到目录进行使用 [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 28G 1.2G 27G 5% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 97M 92M 4.9M 95% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/mapper/lzfn-data01 2.0G 6.0M 1.8G 1% /data01

三、查看LVM

# 查看物理卷信息
[root@localhost ~]# pvdisplay     # 详细
  --- Physical volume ---
  PV Name               /dev/sdb
  VG Name               lzfn
  PV Size               10.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2559
  Free PE               2047
  Allocated PE          512
  PV UUID               YtXz3s-LbJK-4WcI-FcHh-WYh3-CfGU-B2l2yw
   
  --- Physical volume ---
  PV Name               /dev/sdc
  VG Name               lzfn
  PV Size               10.00 GiB / not usable 4.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2559
  Free PE               2559
  Allocated PE          0
  PV UUID               eyLvyn-ckUh-8ES1-ejdh-JZaU-vc8x-NYwoeV
   
[root@localhost ~]# pvs            # 简单
  PV         VG   Fmt  Attr PSize   PFree  
  /dev/sdb   lzfn lvm2 a--  <10.00g  <8.00g
  /dev/sdc   lzfn lvm2 a--  <10.00g <10.00g

# 查看卷组信息
[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               lzfn
  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               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       512 / 2.00 GiB
  Free  PE / Size       4606 / 17.99 GiB
  VG UUID               qQjlvL-k10O-N23m-J9zV-6ufY-Xzzx-QYzLJX
   
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  lzfn   2   1   0 wz--n- 19.99g 17.99g

# 查看逻辑卷信息
[root@localhost ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/lzfn/data01
  LV Name                data01
  VG Name                lzfn
  LV UUID                mmpUBB-4uMY-HLlL-8EBm-1CIP-GYi1-Mvjvdx
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2021-09-28 22:32:25 +0800
  LV Status              available
  # open                 1
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
[root@localhost ~]# lvs
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  data01 lzfn -wi-ao---- 2.00g    

四、删除LVM

一定要按此顺序删除,如果要删除卷组,就要先把逻辑卷删除完成之后,才能继续删除卷组,最后是物理卷。

[root@localhost ~]# umount /data01 
[root@localhost ~]# lvremove /dev/lzfn/data01 
Do you really want to remove active logical volume lzfn/data01? [y/n]: y
  Logical volume "data01" successfully removed
[root@localhost ~]# vgremove lzfn 
  Volume group "lzfn" successfully removed
[root@localhost ~]# pvremove /dev/sdb /dev/sdc
  Labels on physical volume "/dev/sdb" successfully wiped.
  Labels on physical volume "/dev/sdc" successfully wiped.

五、扩展逻辑卷

 将data01由5G扩容到9G

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/sda3                 28G  1.2G   27G   5% /
devtmpfs                 479M     0  479M   0% /dev
tmpfs                    489M     0  489M   0% /dev/shm
tmpfs                    489M  6.8M  482M   2% /run
tmpfs                    489M     0  489M   0% /sys/fs/cgroup
/dev/sda1                 97M   92M  4.9M  95% /boot
tmpfs                     98M     0   98M   0% /run/user/0
/dev/mapper/lzfn-data01  4.8G   20M  4.6G   1% /data01        # 要扩容的逻辑卷 
[root@localhost
~]# vgs # 查看是否还有可用卷组空间进行扩容 VG #PV #LV #SN Attr VSize VFree lzfn 2 1 0 wz--n- 19.99g 14.99g
[root@localhost
~]# lvextend -L +4G /dev/lzfn/data01 # 将逻辑卷扩容4G,也可以使用 -n lzfn 参数 Size of logical volume lzfn/data01 changed from 5.00 GiB (1280 extents) to 9.00 GiB (2304 extents). Logical volume lzfn/data01 successfully resized.
[root@localhost
~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 28G 1.2G 27G 5% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 97M 92M 4.9M 95% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/mapper/lzfn-data01 4.8G 20M 4.6G 1% /data01
[root@localhost
~]# resize2fs /dev/lzfn/data01 # 扩容后要调整文件系统后才会生效 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/lzfn/data01 is mounted on /data01; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/lzfn/data01 is now 2359296 blocks long. [root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 28G 1.2G 27G 5% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 482M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 97M 92M 4.9M 95% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/mapper/lzfn-data01 8.8G 23M 8.3G 1% /data01

如果是xfs文件系统则使用xfs_growfs命令进行调整文件系统

# xfs_growfs /dev/rootvg/lv_var 
meta-data=/dev/mapper/rootvg-lv_var isize=512    agcount=4, agsize=320000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=1280000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1280000 to 3901440

六、扩展一个PV

再将一块10G的磁盘加入到物理卷中

[root@localhost ~]# fdisk -l /dev/sdd

Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize   PFree   
  /dev/sdb   lzfn lvm2 a--  <10.00g 1020.00m
  /dev/sdc   lzfn lvm2 a--  <10.00g  <10.00g
[root@localhost ~]# pvcreate /dev/sdd            # 将要添加的vg硬盘格式化成pv
  Physical volume "/dev/sdd" successfully created.
[root@localhost
~]# vgextend lzfn /dev/sdd # 将新的pv加到指定卷组中 Volume group "lzfn" successfully extended
[root@localhost
~]# vgs # 扩容成功 VG #PV #LV #SN Attr VSize VFree lzfn 3 1 0 wz--n- <29.99g <20.99g
[root@localhost
~]# pvs # 已经扩容成功 PV VG Fmt Attr PSize PFree /dev/sdb lzfn lvm2 a-- <10.00g 1020.00m /dev/sdc lzfn lvm2 a-- <10.00g <10.00g /dev/sdd lzfn lvm2 a-- <10.00g <10.00g

 vmware动态添加磁盘后如果看不到不用重启虚拟机的办法,重新扫描SCSI总线来添加设备。host0..host2

echo "- - -" > /sys/class/scsi_host/host0/scan

# 使用for循环
for i in `find /sys/class/scsi_host/ -name "host*"`; do echo '- - -' >$i/scan ;done

 

# 另外一种方法
echo
'1' > /sys/block/sdb/device/rescan

 

posted @ 2021-09-28 22:57  林中龙虾  阅读(251)  评论(0编辑  收藏  举报