LVM逻辑卷与磁盘配额

LVM逻辑卷与磁盘配额

 

一、LVM逻辑卷

1、LVM概述

LVM(Logical Volume Manager,逻辑卷管理)重点在于可以弹性地调整文件系统的容量,需要文件的读写性能或是数据的可靠性,LVM可以整合多个物理分区,让这些分区看起来像是一块磁盘一样,能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性。
注意:/boot分区用于存放引导文件,不能基于LVM创建

2、 LVM机制的基本概念(可结合末尾关系图进行理解)

2.1 PE(Physical Extent,物理扩展块)

VM默认使用4MB的PE数据块,它是整个LVM中最小的存储数据单位,也就是说我们的文件数据都是借由写入PE来完成的

2.2 PV ( Physical Volume, 物理卷)

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

2.3 VG (Volume Group, 卷组)

由一个或多个物理卷组成一个整体,即称为卷组,许多个物理卷可以分别组成不同的卷组,卷组的名称可以由我们自行定义,在卷组中可以随时根据需求动态地添加或移除物理卷。

2.4 LV (Logical Volume,逻辑卷)

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

分区的优点:

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

分区的缺点:

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

什么是逻辑卷

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

建立逻辑卷

  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 @   风夏呀  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示