lvm extend vg_centos-lv_root 大小

本文详细介绍如何在CentOS 6.3系统中调整磁盘分区大小,包括将/home目录下的空闲空间转移到/根目录的过程。文章提供了具体的命令示例及步骤说明。

遇到的问题:在创建表空间时候发现/u01下的空间不够用,df -h 之后发现根目录下空间不足50G,使用率99%,而/home目录下却又3.2T使用率不足1%,故而把/home目录下多余空间重新划分到/root下


一、目的

在使用CentOS6.3版本linux系统的时候,发现根目录(/)的空间不是很充足,而其他目录空间有很大的空闲,所以本文主要是针对现在已有的空间进行调整。首先,先来查看一下系统的空间分配情况:

  1. [root@CentOS-78 /]# df -h  
  2. Filesystem            Size  Used Avail Use% Mounted on  
  3. /dev/mapper/vg_centos-lv_root  
  4.                        50G   14G   34G  30% /  
  5. tmpfs                 1.9G     0  1.9G   0% /dev/shm  
  6. /dev/sda1             485M   37M  423M   8% /boot  
  7. /dev/mapper/vg_centos-lv_home  
  8.                       404G  670M  382G   1% /home  
下面的详细步骤部分将从vg_centos-lv_home分区下取出100G的空间添加到/vg_centos-lv_root分区上去。

 

二、详细步骤

1、卸载vg_centos-lv_home分区

  1. [root@CentOS-78 /]# umount /home  

此时在用df命令查看将会发现/home目录已经看不见了,如下所示:
  1. [root@CentOS-78 /]# df -h  
  2. Filesystem            Size  Used Avail Use% Mounted on  
  3. /dev/mapper/vg_centos-lv_root  
  4.                        50G   14G   34G  30% /  
  5. tmpfs                 1.9G     0  1.9G   0% /dev/shm  
  6. /dev/sda1             485M   37M  423M   8% /boot  

2、从新设定vg_home-lv_home的大小

  1. [root@CentOS-78 /]# resize2fs -p /dev/mapper/vg_centos-lv_home 282G  
  2. resize2fs 1.41.12 (17-May-2010)  
  3. Please run 'e2fsck -f /dev/mapper/vg_centos-lv_home' first.  

这一步设定vg_home-lv_home大小没有成功,系统提示我们先运行下面的命令,操作如下:
  1. [root@CentOS-78 /]# e2fsck -f /dev/mapper/vg_centos-lv_home  
  2. e2fsck 1.41.12 (17-May-2010)  
  3. Pass 1: Checking inodes, blocks, and sizes  
  4. Pass 2: Checking directory structure  
  5. Pass 3: Checking directory connectivity  
  6. Pass 4: Checking reference counts  
  7. Pass 5: Checking group summary information  
  8. /dev/mapper/vg_centos-lv_home: 1386/26836992 files (0.9% non-contiguous), 1855856/107344896 blocks  


从新设定vg_home-lv_home的大小:
  1. [root@CentOS-78 /]# resize2fs -p /dev/mapper/vg_centos-lv_home 282G  
  2. resize2fs 1.41.12 (17-May-2010)  
  3. Resizing the filesystem on /dev/mapper/vg_centos-lv_home to 73924608 (4k) blocks.  
  4. Begin pass 2 (max = 43)  
  5. Relocating blocks             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
  6. Begin pass 3 (max = 3276)  
  7. Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
  8. Begin pass 4 (max = 266)  
  9. Updating inode references     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  
  10. The filesystem on /dev/mapper/vg_centos-lv_home is now 73924608 blocks long.  


检查是否成功:
  1. [root@CentOS-78 /]# mount /home  
  2. [root@CentOS-78 /]#  
  3. [root@CentOS-78 /]# df -h  
  4. Filesystem            Size  Used Avail Use% Mounted on  
  5. /dev/mapper/vg_centos-lv_root  
  6.                        50G   14G   34G  30% /  
  7. tmpfs                 1.9G     0  1.9G   0% /dev/shm  
  8. /dev/sda1             485M   37M  423M   8% /boot  
  9. /dev/mapper/vg_centos-lv_home  
  10.                       278G  663M  263G   1% /home  
  11. [root@CentOS-78 /]#  

3、将lv_home逻辑分区减小到指定大小
  1. [root@CentOS-78 /]# lvreduce -L 282G /dev/mapper/vg_centos-lv_home  
  2.   WARNING: Reducing active and open logical volume to 282.00 GiB  
  3.   THIS MAY DESTROY YOUR DATA (filesystem etc.)  
  4. Do you really want to reduce lv_home? [y/n]: y  
  5.   Reducing logical volume lv_home to 282.00 GiB  
  6.   Logical volume lv_home successfully resized  
  7. [root@CentOS-78 /]#  
我认为这个命令是将已经减少的100G空间拿到系统公共的区域,可以被其他分区加载和利用。


查询卷组的信息:

  1. [root@CentOS-78 /]# vgdisplay  
  2.   --- Volume group ---  
  3.   VG Name               vg_centos  
  4.   System ID  
  5.   Format                lvm2  
  6.   Metadata Areas        1  
  7.   Metadata Sequence No  5  
  8.   VG Access             read/write  
  9.   VG Status             resizable  
  10.   MAX LV                0  
  11.   Cur LV                3  
  12.   Open LV               3  
  13.   Max PV                0  
  14.   Cur PV                1  
  15.   Act PV                1  
  16.   VG Size               465.27 GiB  
  17.   PE Size               4.00 MiB  
  18.   Total PE              119109  
  19.   Alloc PE / Size       86472 / 337.78 GiB  
  20.   Free  PE / Size       32637 / 127.49 GiB  
  21.   VG UUID               1k4ooN-RFV9-uyf1-uMYf-aERG-YaGs-ZNoSD6  

Free PE / Size指定的应该是现在可在分配的空间。



4、增加vg_centos-lv_root分区的大小

将可用的空间添加到vg_centos-lv_root分区上面:

  1. [root@CentOS-78 /]# lvextend -L +127.40G /dev/mapper/vg_centos-lv_root  
  2.   Rounding up size to full physical extent 127.40 GiB  
  3.   Extending logical volume lv_root to 177.40 GiB  
  4.   Logical volume lv_root successfully resized  
  5. [root@CentOS-78 /]#  

把剩余的所有可用空间都赋予 /dev/mapper/vg_centos-lv_root  下
     lvextend -l +100%FREE /dev/mapper/vg_centos-lv_root  


从新设定该分区的大小:
  1. [root@CentOS-78 /]# resize2fs -p /dev/mapper/vg_centos-lv_root  
  2. resize2fs 1.41.12 (17-May-2010)  
  3. Filesystem at /dev/mapper/vg_centos-lv_root is mounted on /; on-line resizing required  
  4. old desc_blocks = 4, new_desc_blocks = 12  
  5. Performing an on-line resize of /dev/mapper/vg_centos-lv_root to 46504960 (4k) blocks.  
  6. The filesystem on /dev/mapper/vg_centos-lv_root is now 46504960 blocks long.  

5、再次查看分区大小
  1. [root@CentOS-78 /]# df -h  
  2. Filesystem            Size  Used Avail Use% Mounted on  
  3. /dev/mapper/vg_centos-lv_root  
  4.                       175G   14G  153G   9% /  
  5. tmpfs                 1.9G     0  1.9G   0% /dev/shm  
  6. /dev/sda1             485M   37M  423M   8% /boot  
  7. /dev/mapper/vg_centos-lv_home  
  8.                       278G  663M  263G   1% /home  
我们发现vg_centos-lv_root分区的空间已经增加了125G,之所以比lv_home减少的空间要多25G主要是由于我们把系统所有的可用的空间都加在了lv_root分区。


三、所遇到的问题

1、在卸载/home目录的时候失败

可先执行如下fuser命令,然后再umount即可:

  1. [root@CentOS-78 /]# fuser -m /home  
  2. [root@CentOS-78 /]#  
2、设定完lv_home的大小,再次mount该分区时,发现用df命令无法看到给分区,此时只要在mount一次即可

3、在设定lv_root的大小时,不要把Free PE / Size的空间全部都用上,这很可能会出现Free PE空间不足的现象,建议保留一点Free PE的空间。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29952014/viewspace-2120452/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29952014/viewspace-2120452/

<think>我们参考用户提供的信息以及之前的回答,现在需要执行以下操作:1.从现有逻辑卷`vg_data_lv_docker`中缩减100G空间(注意:该卷当前大小为350G,缩减后应为250G)2.用这100G空间创建新的逻辑卷`vg_data_lv_aaa`3.确保数据安全,特别是缩减步骤中文件系统类型(如果是xfs则不能在线缩减,需要采用备份重建方式)根据引用[4]:“注意:xfs文件系统是不能缩减的,只能增加。可使用lvs命令查看lv信息。”因此我们首先要确定文件系统类型。步骤概述:1.确认文件系统类型和当前使用空间2.根据文件系统类型选择缩减方式(ext4在线缩减或xfs重建)3.执行缩减操作并创建新逻辑卷4.创建文件系统并挂载新逻辑卷具体步骤:###步骤1:确认当前逻辑卷状态使用以下命令查看逻辑卷详细信息:```bashlvsdf-Th/data/docker#假设挂载点为/data/dockerblkid/dev/vg_data/lv_docker#确认文件系统类型```假设我们检查到文件系统为ext4,且当前使用空间小于250G(即缩减后容量),则可以安全缩减。###步骤2:缩减逻辑卷(以ext4为例)注意:缩减文件系统必须先于缩减逻辑卷(lvreduce)进行,以避免数据丢失。1.**强制文件系统检查**:```bashe2fsck-f/dev/vg_data/lv_docker```2.**缩小文件系统**(缩减文件系统到250G):```bashresize2fs/dev/vg_data/lv_docker250G```3.**缩小逻辑卷**:```bashlvreduce-L250G/dev/vg_data/lv_docker```4.**再次检查文件系统**:```bashe2fsck-f/dev/vg_data/lv_docker```5.**重新挂载**(如果缩减过程中系统自动卸载则需要重新挂载,但通常在线缩减不需要卸载):```bashmount/dev/vg_data/lv_docker/data/docker```###如果文件系统是xfs(则不能直接缩减):根据引用[4]和之前的回答,xfs不支持缩减,必须采用备份-重建-恢复的方式:1.备份数据2.卸载文件系统3.删除原逻辑卷并重建为所需大小(250G)4.重新创建xfs文件系统并恢复数据5.重新挂载具体步骤:```bash#1.备份数据(确保备份位置有足够空间)mkdir/backup/dockercp-a/data/docker/*/backup/docker/#2.卸载umount/data/docker#3.删除逻辑卷lvremove/dev/vg_data/lv_docker#4.重新创建逻辑卷(大小为250G)lvcreate-L250G-nlv_dockervg_data#5.格式化mkfs.xfs/dev/vg_data/lv_docker#6.挂载并恢复数据mount/dev/vg_data/lv_docker/data/dockercp-a/backup/docker/*/data/docker/```###步骤3:创建新逻辑卷`vg_data_lv_aaa`从释放的100G空间创建新逻辑卷:```bashlvcreate-L100G-nlv_aaavg_data```###步骤4:格式化并挂载新逻辑卷```bash#格式化(假设使用ext4)mkfs.ext4/dev/vg_data/lv_aaa#创建挂载点mkdir/data/aaa#挂载mount/dev/vg_data/lv_aaa/data/aaa```###步骤5:更新/etc/fstab以实现永久挂载获取新逻辑卷的UUID并添加到/etc/fstab中:```bashblkid/dev/vg_data/lv_aaa```编辑/etc/fstab,添加一行:```iniUUID=<新UUID>/data/aaaext4defaults00```###步骤6:验证```bashlvs#查看逻辑卷大小是否正确df-h/data/docker/data/aaa#查看挂载和使用情况```注意:以上操作需要谨慎,特别是对生产环境。建议先备份重要数据并在非高峰时段操作。根据引用[1][2][3]中提供的命令,我们使用了lvreduce,lvcreate等命令完成操作。§§相关问题§§1.如何检查文件系统类型对LVM调整的影响?2.在缩小逻辑卷时,为什么先缩小文件系统再缩小逻辑卷?3.如何避免LVM调整过程中数据丢失的风险?4.LVM快照在调整逻辑卷大小过程中能起到什么作用?</think> ### 如何缩减`vg_data_lv_docker`并创建`vg_data_lv_aaa` 以下是完整的操作步骤,注意不同文件系统(ext4/xfs)需采取不同处理方式: --- #### **步骤1:确认当前状态** ```bash # 查看逻辑卷信息 lvs vg_data/lv_docker df -h /data/docker # 确认挂载点和使用空间 blkid /dev/vg_data/lv_docker # 确认文件系统类型[^1] ``` - **关键检查**: - 文件系统类型(ext4/xfs) - 实际数据使用量 < 250G(350G → 250G) - 确保备份重要数据:`rsync -a /data/docker/ /backup/` --- #### **步骤2:处理文件系统类型** ##### **情况A:ext4文件系统(支持在线缩减)** ```bash # 强制文件系统检查 e2fsck -f /dev/vg_data/lv_docker # 先缩减文件系统到250G resize2fs /dev/vg_data/lv_docker 250G # 再缩减逻辑卷 lvreduce -L 250G /dev/vg_data/lv_docker # 重新挂载验证 mount -o remount /data/docker df -h /data/docker ``` ##### **情况B:xfs文件系统(不支持缩减)**[^4] ```bash # 卸载文件系统(需停止服务) umount /data/docker # 删除原逻辑卷 lvremove /dev/vg_data/lv_docker # 重建250G逻辑卷 lvcreate -L 250G -n lv_docker vg_data mkfs.xfs /dev/vg_data/lv_docker # 恢复数据并挂载 mount /dev/vg_data/lv_docker /data/docker rsync -a /backup/ /data/docker/ ``` --- #### **步骤3:创建新逻辑卷** ```bash # 从释放空间创建100G新卷 lvcreate -L 100G -n lv_aaa vg_data # 格式化并挂载 mkfs.ext4 /dev/vg_data/lv_aaa # 或mkfs.xfs mkdir /data/aaa mount /dev/vg_data/lv_aaa /data/aaa ``` --- #### **步骤4:持久化配置** ```bash # 获取UUID blkid /dev/vg_data/lv_aaa # 更新/etc/fstab echo "UUID=<新UUID> /data/aaa ext4 defaults 0 0" >> /etc/fstab ``` 示例配置: ```ini # /etc/fstab /dev/vg_data/lv_docker /data/docker xfs defaults 0 0 # 原卷配置 UUID=5f96b8e7-7a8a /data/aaa ext4 defaults 0 0 # 新卷配置 ``` --- #### **步骤5:验证结果** ```bash lvs # 确认vg_data/lv_docker=250G,vg_data/lv_aaa=100G df -h /data/docker /data/aaa # 检查挂载点 diff -r /backup/ /data/docker/ # 数据完整性校验 ``` --- #### **技术原理** 缩减公式: $$ \text{安全条件}:\text{数据量} + 10\% \text{预留} < \text{缩减后容量} $$ - **ext4缩减顺序**:`resize2fs`(文件系统)→ `lvreduce`(逻辑卷)[^1] - **空间回收**:缩减后空间加入卷组空闲池:`vgdisplay vg_data | grep Free` - **xfs限制**:物理卷只能扩展不能缩减,需重建卷[^4] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值