随笔- 91  文章- 0  评论- 2  阅读- 9016 

1.简介

LVM是逻辑卷管理(Logical Volume Manager)的简称,他是linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,用来提高磁盘分区管理的灵活性。

LVM最大的特点就是可以对磁盘进行动态管理,可以动态调整分区大小,而这是标准分区做不到的。

 

2.LVM包含的组件

PV ( Physical Volume, 物理卷)

物理卷是LVM机制的基本存储设备,处于逻辑卷管理的最底层,通常对应为一个普通分区或整个硬盘,也可以是raid设备。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(PE),从而构成物理卷。物理卷一般直接使用设备文件名称,例如:/dev/sdb1、/dev/sdc1、/dev/sdd 等。

 VG (Volume Group, 卷组)

卷组建立在物理卷之上,一个卷组至少包含一个物理卷,在卷组中可以随时根据需求动态地添加或移除物理卷。

LV (Logical Volume,逻辑卷)

逻辑卷基于PE建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从卷组未分配的空间中分割出的一块空间,形成逻辑卷,逻辑卷建立之后可以动态扩展或者缩小空间。使用mkfs 等工具可在逻辑卷上创建文件系统,就可以挂载到Linux系统中的目录下使用。

3.分区的优点:

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

分区的缺点:

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

建立逻辑卷

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

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

 

实际应用

配置逻辑卷

实验步骤

步骤一:划立分区

复制代码
[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,c} //创建物理卷 Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdbc" successfully created.

 

 

 

步骤三:建立卷组

 

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

 

 

步骤四:建立逻辑卷

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

 

 

 

步骤五:建立文件系统

[root@localhost ~]# mkfs.xfs /dev/vg0/xhz //建立xfs文件系统 meta-data=/dev/vg0/xhz 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

 

 

 

步骤六:挂载

[root@localhost ~]# mount /dev/vg0/xhz /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-xhz xfs 10G 33M 10G 1% /mnt

 

 

 

逻辑卷扩容

实验内容:

现要求将ky再扩容10G

实验步骤:

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

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

 

 

步骤二:给卷组扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@localhost ~]# lvextend -r -L +10G /dev/vg0/xhz
  Size of logical volume vg0/xhz changed from 10.00 GiB (2560 extents) to 20.00 GiB (5120 extents).
  Logical volume vg0/xhz 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-xhz      xfs        20G   33M   20G    1% /mnt       //查看磁盘信息,已经扩容成功

  

 

 

注意: lvextend -L +10G /dev/vg0/xhz 如果是xfs文件系统要使用挂载点刷新 xfs_growfs /mnt 如果是ext4的格式需要刷新逻辑卷 resize2fs /dev/vg0/xhz-r 直接扩容

 

 

总结

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

 
 posted on   游明诚  阅读(211)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示