LVM逻辑卷

120 阅读6分钟

LVM逻辑卷

分区的优点:

  • 优化读写性能
  • 实现磁盘空间配额限制
  • 提高修复速度
  • 隔离系统和程序
  • 安装多个OS
  • 采用不同文件系统

分区的缺点:

  • 只能使用一块硬盘的空间
  • 如果过分区必须是连续的空间
  • 如果一旦分区不能改变大小(不能随意改变大小,删除分区会造成数据丢失)

什么是逻辑卷

将硬盘拆分成最小单位PE,然后组成逻辑卷

建立逻辑卷

  1. .要有物理磁盘:物理卷(分区 可以是一整块硬盘)
  2. 将多个物理卷组合成 卷组的容量是从物理卷中提取
  3. 建立逻辑卷的容量是从卷组当中提取
    /dev/sdc 表示整块硬盘
    /dev/sdc1 表示一个分区

注意使用分区作为物理卷,分区一定要是8e 格式

image.png

实际应用

配置逻辑卷

实验步骤

步骤一:划立分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x8fd606b5 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-125829119,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):N
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (20973568-125829119,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-125829119,默认为 125829119):+10G
分区 2 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):N
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (41945088-125829119,默认为 41945088):
将使用默认值 41945088
Last 扇区, +扇区 or +size{K,M,G} (41945088-125829119,默认为 125829119):+10G
分区 3 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):
命令(输入 m 获取帮助):N
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): 
Using default response e
已选择分区 4
起始 扇区 (62916608-125829119,默认为 62916608):
将使用默认值 62916608
Last 扇区, +扇区 or +size{K,M,G} (62916608-125829119,默认为 125829119):+10G
分区 4 已设置为 Extended 类型,大小设为 10 GiB

命令(输入 m 获取帮助):W
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# lsblk 
NAME       MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda          8:0    0   60G  0 disk 
├─sda1       8:1    0    1G  0 part /boot
└─sda2       8:2    0   59G  0 part 
  ├─centos-root
           253:0    0 38.3G  0 lvm  /
  ├─centos-swap
           253:1    0    2G  0 lvm  [SWAP]
  └─centos-home
           253:2    0 18.7G  0 lvm  /home
sdb          8:16   0   60G  0 disk 
├─sdb1       8:17   0   10G  0 part 
├─sdb2       8:18   0   10G  0 part 
├─sdb3       8:19   0   10G  0 part 
└─sdb4       8:20   0    1K  0 part 
sr0         11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

步骤二:建立物理卷

[root@localhost ~]# pvcreate /dev/sd{b1,b2}    //创建物理卷
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.

image.png

步骤三:建立卷组

[root@localhost ~]# vgcreate vg0 /dev/sd{b1,b2}   //创建卷组
  Volume group "vg0" successfully created

image.png

步骤四:建立逻辑卷

[root@localhost ~]# lvcreate -L 10G -n ky vg0   //建立逻辑卷
  Logical volume "ky" created.

image.png

步骤五:建立文件系统

[root@localhost ~]# mkfs.xfs /dev/vg0/ky      //建立xfs文件系统
meta-data=/dev/vg0/ky            isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

image.png

步骤六:挂载

[root@localhost ~]# mount /dev/vg0/ky /mnt/    //将逻辑卷挂载到/mnt下
[root@localhost ~]# df -Th    ////查看磁盘信息
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        39G  4.9G   34G   13% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.0M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        19G   37M   19G    1% /home
tmpfs                   tmpfs     183M   32K  183M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg0-ky      xfs        10G   33M   10G    1% /mnt

image.png

逻辑卷扩容

实验内容:

现要求将ky再扩容10G

实验步骤:

步骤一:给卷组扩容(原本卷组没有足够空间)

[root@localhost ~]# vgextend vg0 /dev/sdb3      //为vg0 增加一个物理卷
  Physical volume "/dev/sdb3" successfully created.
  Volume group "vg0" successfully extended

image.png

步骤二:给卷组扩容

[root@localhost ~]# lvextend -r -L +10G /dev/vg0/ky 
  Size of logical volume vg0/ky changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
  Logical volume vg0/ky successfully resized.
[root@localhost ~]# df -Th
文件系统                类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs        39G  4.9G   34G   13% /
devtmpfs                devtmpfs  897M     0  897M    0% /dev
tmpfs                   tmpfs     912M     0  912M    0% /dev/shm
tmpfs                   tmpfs     912M  9.0M  903M    1% /run
tmpfs                   tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1               xfs      1014M  179M  836M   18% /boot
/dev/mapper/centos-home xfs        19G   37M   19G    1% /home
tmpfs                   tmpfs     183M   32K  183M    1% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg0-ky      xfs        20G   33M   20G    1% /mnt       //查看磁盘信息,已经扩容成功

image.png

image.png

注意:
lvextend -L  +10G /dev/vg0/ky
如果是xfs文件系统要使用挂载点刷新
xfs_growfs /mnt

如果是ext4的格式需要刷新逻辑卷
resize2fs /dev/vg0/ky   

-r  直接扩容

总结

LVM逻辑卷的建立和扩容是最基础的使用,也可用同样的方式对根目录进行扩容,可以有效解决内存不足的问题