linux lvm

本文详细介绍了如何在CentOS系统中通过LVM进行磁盘扩容的操作步骤,包括添加新磁盘、创建物理卷、扩展卷组、调整逻辑卷大小及挂载新卷的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


zhuan: http://blog.haohtml.com/archives/10328


打算给系统装一个oracle,发现磁盘空间不足。在安装系统的时候我选择的是自动分区,系统就会自动以LVM的方式分区。为了保证系统后期的可用性,建议所有新系统安装都采用LVM,之后生产上的设备我也打算这样做。

参于LVM基本介绍与常用命令请参考:http://blog.haohtml.com/archives/11957

lvm

LVM结构图

扩容之前的磁盘状况

[root@localhost ~]# df -h

文件系统             容量 已用 可用已用%%挂载点

/dev/mapper/VolGroup-lv_root 5.3G  2.5G  2.6G  50% /

tmpfs                 538M     0  538M   0% /dev/shm

/dev/sda1             485M   30M  430M   7% /boot

[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes

...............

Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          64      512000   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              64        1045     7875584   8e  Linux LVM

 

Disk /dev/mapper/VolGroup-lv_root: 5779 MB, 5779750912 bytes

........

Disk /dev/mapper/VolGroup-lv_swap: 2281 MB, 2281701376 bytes

.........

 

此次扩容的方案为:

1、加1个5G的空间给/

2、加1个10G的空间给/oracle

 

(一)   在VM中加一个15G的磁盘

重启后#fdisk –l可以看到新的磁盘已经认出来了。

 

Disk /dev/sdb: 16.1 GB, 16106127360 bytes

............................

Disk /dev/sdb doesn't contain a valid partition table

 

(二)创建物理卷(PV)

#pvcreate /dev/sdb

查看系统PV的情况:

[root@localhost ~]# pvdisplay

--- Physical volume ---

PV Name               /dev/sda2  //原有硬盘上的PV

VG Name               VolGroup

PV Size               7.51 GiB / not usable 3.00 MiB

Allocatable           yes (but full)

PE Size               4.00 MiB

Total PE              1922

Free PE               0

Allocated PE          1922

PV UUID               SGH1dY-4tp2-Nr1a-w93Z-V4LA-pQBh-VGzzTH

"/dev/sdb" is a new physical volume of "15.00 GiB"

--- NEW Physical volume ---

PV Name               /dev/sdb

VG Name                //新建的PV的VG name是空的,下一步就是把PV加入VG

PV Size               15.00 GiB

Allocatable           NO

PE Size               0

Total PE              0

Free PE               0

Allocated PE          0

PV UUID               8TZUlz-YyUp-RBvf-lSzm-7MgG-DSZS-qNqX1Z

查看原VG的情况

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name               VolGroup //注意记录此名字,扩容时将新的pv加入指定的名字

System ID

Format                lvm2

Metadata Areas        1

Metadata Sequence No  3

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                1

Act PV                1

VG Size               7.51 GiB

PE Size               4.00 MiB

Total PE              1922

AllocPE / Size       1922 / 7.51 GiB

Free  PE / Size       0 / 0

VG UUID               FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1

 

(三)#扩展卷组,将/dev/sdb物理卷添加到VolGroup卷组中

[root@localhost ~]# vgextend VolGroup /dev/sdb

Volume group "VolGroup" successfully extended

再查看VG情况,可以看到VG大小变化,空余空间。

[root@localhost ~]# vgdisplay

--- Volume group ---

VG Name               VolGroup

System ID

Format                lvm2

Metadata Areas        2

Metadata Sequence No  4

VG Access             read/write

VG Status             resizable

MAX LV                0

Cur LV                2

Open LV               2

Max PV                0

Cur PV                2

Act PV                2

VG Size               22.50 GiB

PE Size               4.00 MiB

Total PE              5761

AllocPE / Size       1922 / 7.51 GiB

Free  PE / Size       3839 / 15.00 GiB

VG UUID               FnUsmX-s284-GeRK-hJNJ-BbIG-Vpe7-OuFZE1

(四)将新的VG空间划入LV(扩容lv_root)

#直接扩展5G给/root分区,不用umount,也不需要重启

# lvextend -L +5G  /dev/mapper/VolGroup-lv_root

Extending logical volume lv_root to 10.38 GiB

Logical volume lv_root successfully resized

也可以使用命令

 # lvextend -l +30%FREE /dev/mapper/VolGroup-lv_root

此时,如果有df命令查看的话,会发现root空间并没有增加的.还需要执行以下两步操作才可以.

#检查/root逻辑卷

#e2fsck -f /dev/mapper/VolGroup-lv_root

#重新定义分区大小

#resize2fs /dev/mapper/VolGroup-lv_root

 


查看/目录大小


可以看到/目录已经从原来的5.3G扩容到了11G。

 

(五)LV卷空间分配(新增lv_oracle)

在VG中还有新增的10G没有用,可以将VG中的空余空间划分为LV,并将新的LV挂载在目录下。

# vgs

VG       #PV #LV #SN Attr   VSize  VFree

VolGroup   2   2   0 wz--n- 22.50g10.00g

//可以通过#vgs命令查看vg信息统计,可以看到VFree还有10G。

 

将VG空余的空间化分为LV

#lvcreate -L 10G -n lv_oracle VolGroup


图四

//少了一点点空间…

//可以用-l 分,它是按pv块数来分的。一个pv默认是4M,可是从vgdisplay中去查vg中还剩多少pv以及总数是多少。


图五

//查到剩余2559个PE,于是执行

# lvcreate -l 2559 -n lv_oracle VolGroup

Logical volume "lv_oracle" created

提示创建成功后,用vgs和lvs命令分别查看。

图六

 

(五)挂载LV到目录下

接下来就是要把lv_oracle挂到/oracle,目录下

#cd /
#mkdir oracle
#chmod 777 /oracle

创建/oracle目录并修改权限

# vi /etc/fstab

可以看到目前挂载分区的情况

图七

//我们可以参照/的分区把oracle的加上去。加入这行:

/dev/mapper/VolGroup-lv_oracle      /oracle    ext4 defaults  0 0

 然后把lv_oracle格式化成ext4

#mkfs.ext4 /dev/mapper/VolGroup-lv_oracle

图八

将lv_oracle  mount到目录/oracle上

# mount /dev/mapper/VolGroup-lv_oracle /oracle之后查看一下分区情况


图九

可以重启系统检查一下是否正常。


图十

#df –h

挂载正常,可以收工了。

相关教程:

Centos下root根目录磁盘扩充:http://blog.haohtml.com/archives/13339

CentOS下lvm分区简介:http://blog.haohtml.com/archives/10298

创建Raid阵列和lvm逻辑卷组: http://docs.haohtml.com/download/linux/%b4%b4%bd%a8Raid%d5%f3%c1%d0%ba%cdlvm%c2%df%bc%ad%be%ed%d7%e9.pdf


<think>好的,用户想要了解Linux LVM的相关信息或解决相关问题,需要一份指南或故障排除方法。首先,我需要回忆LVM的基本概念和常见问题,然后结合提供的引用内容来组织回答。 首先,LVM的三个核心概念是物理卷(PV)、卷组(VG)和逻辑卷(LV)。物理卷是实际的磁盘或分区,卷组由多个物理卷组成,逻辑卷是从卷组中划分出来的虚拟磁盘。这样的结构允许动态调整磁盘空间,非常灵活。 接下来,用户可能需要安装和配置LVM的步骤。根据引用[3],安装grub和efibootmgr时,如果是双系统还需要os-prober,但LVM的安装可能需要额外的包,比如lvm2。需要检查系统是否已安装这些包,如果没有,需要用包管理器安装,比如在Arch上使用pacman,在Debian/Ubuntu上用apt。 然后,配置步骤包括创建物理卷、卷组和逻辑卷。常用的命令如pvcreate、vgcreate、lvcreate等,这些命令的具体用法需要详细说明,让用户能一步步操作。 常见操作部分,扩展逻辑卷是一个重要点,用户经常需要调整分区大小。这里需要提到lvextend和resize2fs(针对ext文件系统)或xfs_growfs(针对XFS)。另外,添加新磁盘到卷组也是一个常见需求,用vgextend命令。 在故障排除方面,可能遇到逻辑卷无法挂载、卷组无法激活、快照问题等。例如,如果逻辑卷无法挂载,可能需要检查文件系统错误,使用fsck修复。卷组无法激活可能与物理卷丢失有关,需要检查pvscan和vgchange命令。快照空间不足时,需要扩展快照卷或创建更大的快照。 引用中提到的资源,引用[3]涉及安装grub和双系统配置,可能与LVM的引导问题有关,比如在LVM分区上安装GRUB需要注意的事项。虽然其他引用如[1]和[2]是关于KVM和RAID的,可能不直接相关,但需要确保回答中引用的内容正确关联。例如,引用[3]的安装步骤可能帮助用户在LVM环境中正确配置引导。 最后,生成相关问题需要考虑用户可能进一步想知道的内容,比如LVM快照的工作原理、与RAID的结合使用,以及性能优化等。这些问题能够帮助用户深入理解LVM的应用和高级配置。</think>### Linux LVM 指南与故障排除 #### 一、LVM 核心概念 Linux 逻辑卷管理(LVM)通过抽象化物理存储设备,提供动态调整存储空间的能力。其核心组件包括: 1. **物理卷(PV)**:物理磁盘或分区,需初始化为 LVM 可识别的格式,例如:`pvcreate /dev/sda1`。 2. **卷组(VG)**:由多个 PV 组成的逻辑存储池,例如:`vgcreate my_vg /dev/sda1 /dev/sdb1`。 3. **逻辑卷(LV)**:从 VG 中划分的虚拟块设备,可挂载使用,例如:`lvcreate -L 10G -n my_lv my_vg`[^3]。 #### 二、安装与配置 1. **安装 LVM 工具包** 在多数 Linux 发行版中,LVM 功能由 `lvm2` 包提供: - Debian/Ubuntu: `sudo apt install lvm2` - Arch Linux: `sudo pacman -S lvm2` 若涉及双系统引导(如 Windows + Linux),需额外安装 `os-prober` 以支持多系统识别。 2. **初始化物理卷** ```bash pvcreate /dev/sdb1 # 将分区初始化为物理卷 ``` 3. **创建卷组与逻辑卷** ```bash vgcreate my_volume_group /dev/sdb1 # 创建卷组 lvcreate -L 20G -n my_logical_volume my_volume_group # 创建逻辑卷 mkfs.ext4 /dev/my_volume_group/my_logical_volume # 格式化 mount /dev/my_volume_group/my_logical_volume /mnt # 挂载 ``` #### 三、常见操作 1. **扩展逻辑卷** - 扩展 LV 大小:`lvextend -L +5G /dev/my_vg/my_lv` - 调整文件系统(以 ext4 为例):`resize2fs /dev/my_vg/my_lv` 2. **添加新磁盘到卷组** ```bash pvcreate /dev/sdc1 # 初始化新磁盘 vgextend my_vg /dev/sdc1 # 将新 PV 加入现有 VG ``` 3. **创建快照** ```bash lvcreate -s -n snap_my_lv -L 2G /dev/my_vg/my_lv # 创建快照 ``` #### 四、故障排除 1. **逻辑卷无法挂载** - **可能原因**:文件系统损坏或 LVM 元数据错误。 - **解决步骤**: ```bash fsck /dev/my_vg/my_lv # 检查并修复文件系统 vgscan --mknodes # 重新扫描卷组 ``` 2. **卷组无法激活** - **可能原因**:物理卷丢失或元数据不一致。 - **解决步骤**: ```bash pvscan # 检查物理卷状态 vgchange -a y my_vg # 强制激活卷组 ``` 3. **快照空间不足** - **现象**:快照卷满导致 I/O 错误。 - **解决方案**:扩展快照空间或创建新快照: ```bash lvextend -L +1G /dev/my_vg/snap_my_lv ``` #### 五、性能优化 - **缓存策略**:为逻辑卷启用写缓存(需硬件支持): ```bash lvchange --cachemode writeback /dev/my_vg/my_lv ``` - **条带化(RAID 0)**:提升多磁盘并发性能: ```bash lvcreate -i 2 -I 64 -L 50G -n striped_lv my_vg # -i 指定条带数,-I 指定条带大小 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值