lvm修改根分区大小
-
参考:
- 减小lvm根分区容量: http://kwokchivu.blog.51cto.com/1128937/724128
- CentOS 5 LVM逻辑卷管理: http://sunshyfangtian.blog.51cto.com/1405751/860018
目标
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逻辑卷
-
减小需先umount分区:umount /home,若提示"device is busy.",用
fuser -m -k /home
终止占用进程后再试。 - 先检查下分区: e2fsck -f /dev/vg_db/lv_home
- 缩小文件系统大小:resize2fs /dev/vg_db/lv_home 10G(其中10G为new_size,指修改为10GB。resize2fs不能用xfs文件系统,需用xfs_growfs)
-
缩小逻辑卷
- 输入lvm命令进入lvm模式
- 缩小逻辑卷:lvreduce -L 10G /dev/vg_db/lv_home
- 系统会询问是否缩小逻辑卷,输入 y 确定。
-
查看修改结果: vgdisplay,lvdisplay
减小LVM中的文件系统必须离线操作(处于umount装态),要减小文件系统和LV: # Unmount相应的文件系统 # 运行磁盘检查确保卷的完整 # 减小文件系统 # 减小LV
扩大根分区:扩大时先改LVM逻辑卷、再改文件系统
- 先检查下分区: e2fsck -f /dev/vg_db/lv_root
-
扩大逻辑卷:
- 输入lvm命令进入lvm模式
- 扩大逻辑卷:lvresize -L +40G /dev/vg_db/lv_root
-
更改文件系统大小
- resize2fs -p /dev/vg_db/lv_root
- 查看修改结果: lvscan
resize2fs报错:xfs
-
resize2fs报如下错误,有可能是文件系统不对:
resize2fs /dev/centos/root resize2fs 1.42.9 (28-Dec-2013) resize2fs: Bad magic number in super-block while trying to open /dev/centos/root Couldn't find valid filesystem superblock.
-
检查 /dev/centos/root 文件系统,发现是xfs:
mount |grep root /dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
-
xfs的文件系统重新定义大小用如下命令:
resize2fs 针对的是ext2、ext3、ext4文件系统 xfs_growfs 针对的是xfs文件系统 xfs_growfs /dev/mapper/centos-root <path> is not a mounted XFS filesystem. 需要改为挂载后的路径: xfs_growfs /
-
https://www.cnblogs.com/kevingrace/p/5825963.html
这个链里中,做xfs卷缩小实验时,操作顺序是先缩小分区、再用xfs_growfs改文件系统,有可能是操作顺序不对引起文件系统数据丢失造成? 第一步:lvreduce缩小分区,操作时提示了:THIS MAY DESTROY YOUR DATA,可能会丢数据。 第二步: xfs_growfs /dev/mapper/centos-home调整文件系统,报不是一个已挂载的文件系统错误 然后去mount失败,只能mkfs.xfs重新格式化了 (缩小操作需要先改文件系统、再改分区,是否有可能是这个操作顺序引起的失败?)
- 利用xfsdump / xfsrestore备份恢复功能缩小xfs分区:https://segmentfault.com/a/1190000008377274
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卷大小
- 取消激活swap空间: swapoff
- 修改swap分区大小: lvresize -L 4G /dev/vg_db/lv_swap
- 重新格区化: mkswap -f /dev/vb_db/lv_swap
- 激活swap空间: swapon
新建逻辑卷lv_develop
- 创建逻辑卷 : lvcreate -L 2.8G -n lv_develop /dev/vb_db
- 创建文件系统 : mkfs.ext3 /dev/vg_db/lv_develop
增加物理盘
- fdisk分区,并将分区类型为0×8e(Linux LVM)
- 创建物理卷PV: pvcreate /dev/hdb1
- 创建卷组VG: vgcreate vgtest /dev/hdb1
- 添加PV到VG: vgextend
- 创建逻辑卷LV: lvcreate -L 6000M -n mysql vgtest
- 创建文件系统: mkfs -t ext3 /dev/vgtest/mysql
- 建立新分区卷标: tune2fs –L /mysql /dev/vgtest/mysql
- 加载新分区: mount –t ext3 /dev/vgtest/mysql /mysql
-
卸载卷的顺序:
- umount
- 卸载逻辑卷:lvremove LVDEVICE
- 卸载卷组:vgremove VGNAME
- 卸载物理卷:pvremove PVDEVICE
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有点风险!