lvm修改根分区大小

LVM结构

目标

home、根各为50GB空间,根空间不足,需缩小home至10GB、扩大根为90GB。

lvm> lvscan
  ACTIVE            '/dev/vg_db/lv_root' [50.00 GiB] inherit
  ACTIVE            '/dev/vg_db/lv_home' [50.00 GiB] inherit
  ACTIVE            '/dev/vg_db/lv_swap' [9.83 GiB] inherit

缩小home、增大根分区

进入rescue模式

增大root分区是否可以在线完成、不用进rescue状态?找机会试试...

从Linux安装光盘启动进入rescue模式;

选择相关的语言,键盘模式,当系统提示启用网络设备时,选择“NO”;

然后在提示允许rescue模式挂载本地Linux系统到/mnt/sysimage下时选择“Skip”,文件系统必须不被挂载才可以对/分区减小容量操作。

最后系统会提示选择进入shell终端还是reboot机器,选择进入shell终端。

激活分区

输入lvm命令,进入lvm界面,依次输入pvscan、vgscan、lvscan三个命令扫描pv、vg、lv相关信息。

然后输入lvchange -ay /dev/vg_db/lv_root(上文提到的/分区名称)此命令是激活/分区所在的逻辑卷,输入 quit返回到bash shell界面。

lvchange -ay /dev/vg_db/lv_home
lvchange -ay /dev/vg_db/lv_root

缩小home分区:缩小时先改文件系统、再改LVM逻辑卷

扩大根分区:扩大时先改LVM逻辑卷、再改文件系统

resize2fs报错:xfs

XFS是一个开源的(GPL)日志文件系统,最初由硅谷图形(SGI)开发,现在大多数的Linux发行版都支持。事实上,XFS已被最新的CentOS/RHEL 7采用,成为其默认的文件系统。在其众多的特性中,包含了“在线调整大小”这一特性,使得现存的XFS文件系统在已经挂载的情况下可以进行扩展。然而,对于XFS文件系统的缩减却还没有支持。

要扩展一个现存的XFS文件系统,你可以使用命令行工具xfs_growfs,这在大多数Linux发行版上都默认可用。由于XFS支持在线调整大小,目标文件系统可以挂在,也可以不挂载。

# xfs_growfs info /dev/centos/root        #检查数据块大小和数量
# xfs_growfs /dev/centos/root -D 1986208  #将XFS文件扩展到1986208
# xfs_growfs /dev/centos/root             #自动扩展XFS文件系统到最大的可用大小

# 安装xfs备份恢复工具
yum -y install xfsdump

#备份/home
xfsdump -f /home.xfsdump /home

# 将 /home 分区缩减为 5GB
umount /home
lvreduce -L 5G /dev/mapper/centos-home

# 将/home分出来的空间分给/dev/mapper/centos-root,并延展xfs文件系统
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /dev/centos/root

# 重新格式化home分区,恢复/home的内容
mkfs.xfs -f /dev/mapper/centos-home
mount /home
xfsrestore -f /home.xfsdump /home

其他操作

修改swap卷大小

新建逻辑卷lv_develop

增加物理盘

LVM分区在线扩容

2011-12-19 15:24:16

http://share.blog.51cto.com/278008/745479

今天对三台服务器的LV分区进行了一次扩容。本文有点标题党嫌疑,因为只有一台服务器是在线扩容,其它两台都是先卸载再扩容的。

在线扩容的这台服务器,LV分区格式为xfs,原大小1.2TB。增加了一块硬盘,大小为1.8TB。

fdisk /dev/cciss/c0d1                              # 创建分区,并指定分区类型为LVM (8e) 
pvcreate /dev/cciss/c0d1p1                         # 创建pv
vgextend VolGroup00 /dev/cciss/c0d1p1              # 添加新创建的pv到原有vg
lvextend -L +1.8T /dev/mapper/VolGroup00-LogVol05  # 在线扩容指定lv分区
xfs_growfs /dev/mapper/VolGroup00-LogVol05         # 使扩容生效。注意xfs文件系统的生效命令! 

其它两台服务器也是新增了一个1.8TB的硬盘,要扩容的LV分区格式为ext3。之所以没有进行在线扩容,是因为没有找到ext2online命令;后来发现,resize2fs也是支持在线扩容的!

lvextend -l +100%FREE /dev/mapper/VolGroup00-LogVol05
umount -l /dev/mapper/VolGroup00-LogVol05
e2fsck -f /dev/mapper/VolGroup00-LogVol05    # 过程比较长 
resize2fs /dev/mapper/VolGroup00-LogVol05    # 也要几分钟时间 
mount /dev/mapper/VolGroup00-LogVol05 /hdfs 

虽然resize2fs可以在线使用,但是对在线lv分区执行e2fsck有点风险!