Cent0S7默认启用LVM2(Logical Volume Manager),把机器的一块硬盘分为两个区sda1和sda2,其中分区sda1作为系统盘/boot挂载,少量空间;sda2作为一个物理卷并且完全作为逻辑卷组VG(Volume Group)centos,在这个逻辑卷组centos中建立三个逻辑卷LV(Logical Volume)root和home还有swap,分别挂载到根目录/和/home以及swap。而两个分区sda1和sda2上都建立了文件系统XFS,文件系统XFS作为RedHat的默认文件系统也有它的考虑,成为继ext3,ext4之后的主流文件系统。


        几个概念的关系:M个物理硬盘HD或者物理硬盘中的分区一起组建为一个逻辑卷组VG及存储池,在卷组VG中创建N个逻辑卷LV,在一个逻辑卷LV中创建文件系统比如xfs。物理硬盘/分区、逻辑卷有最小基本寻址单元,CentOS7默认的大小为4MB,二者一一对应,类似于链接或者变量引用,但是一个二者关系并非一直不变,因为物理硬盘可能发生变化而逻辑卷自动调整。创建卷组和逻辑卷,会类似于创建分区一样在磁盘开始位置写入卷的信息VGDA(卷组描述符区域,Volume Group Descriptor Area)用于识别。逻辑卷的好处在于屏蔽物理底层支撑,可自由扩展变更,而不用担心硬盘或者分区的物理空间局限,也就不会存在为了扩展分区大小而去备份/扩展分区重新格式化硬盘等问题。


HD/分区--通过pvcreate->PV--通过vgcreate(vgchange)/vgextend-->VG--通过lvcreate/lvextend-->LV--通过mkfs-->FS--通过xfs_growfs等-->df磁盘生效,磁盘生效但是关键点在于,CentOS 7的/home占用太多空间,根目录相较而言就小得多,而OpenStack安装以及存储的东西都在根目录下。上传几个镜像说不定就把你的根目录空间耗尽。不像其他文件系统ext3,ext4或者reiserfs等,有命令(resize2fs,resize_reiserfs)直接支持缩小文件系统的大小,xfs支持扩展增大但是不支持缩小空间!


所以下面要做的步骤大概为:(最好能root用户登录系统,本机或者ssh root过去,免得不必要的麻烦)
1. 备份/home/用户文件,要是没啥内容则忽略这步(为什么非要这个/home,删掉直接用root?还是保留它,它存在也有道理的,再说生产环境还是不要只用root)
2. umount /home 卸载并lvremove删除这个home逻辑卷,释放它的空间
3. lvcreate新建一个小的卷,并在其上mkfs建立xfs文件系统,分配挂载到/home,拷贝回来之前的内容
(这个时候空余的空间随便你分配,可以再建立别的逻辑卷,或者直接空闲下来以后使用,也可以直奔主题的走下面的第四步)
4. 把之前的home逻辑卷释放并分配新卷home之后剩下的空间,lvextend分配给root卷,并用命令xfs_growfs扩展它的文件系统空间


首先看看当前默认的磁盘使用及挂载情况,home占用的空间真的太大而根目录太小,其中的逻辑卷的挂载格式为/dev/mapper/VolumeGroupName-LogicalVolumeName

df -h
Filesystem               Size  Used Avail Use% Mounted on  
/dev/mapper/centos-root   50G  4.8G   46G  10% /  
devtmpfs                 3.9G     0  3.9G   0% /dev  
tmpfs                    3.9G  140K  3.9G   1% /dev/shm  
tmpfs                    3.9G  8.9M  3.9G   1% /run  
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup  
/dev/mapper/centos-home  873G   12G  862G   2% /home  
/dev/sda1                494M  133M  362M  27% /boot

cat /etc/fstatb
/dev/mapper/centos-root /                       xfs     defaults        0 0  
UUID=6abe266a-12fe-4361-9417-8d317bc25c8d /boot xfs     defaults        0 0  
/dev/mapper/centos-home /home                   xfs     defaults        0 0  
/dev/mapper/centos-swap swap                    swap    defaults        0 0

#当前逻辑卷组和逻辑卷的情况
vgdisplay
--- Volume group ---  
VG Name               centos  
System ID               
Format                lvm2  
Metadata Areas        1  
Metadata Sequence No  6  
VG Access             read/write  
VG Status             resizable  
MAX LV                0  
Cur LV                3  
Open LV               3  
Max PV                0  
Cur PV                1  
Act PV                1  
VG Size               931.02 GiB  
PE Size               4.00 MiB  
Total PE              238341  
Alloc PE / Size       238325 / 930.96 GiB  
Free  PE / Size       16 / 64.00 MiB  
VG UUID               IFQnYm-fCLh-38mD-Duid-nYXQ-qktX-3F1atk

lvdisplay
--- Logical volume ---  
LV Path                /dev/centos/swap  
LV Name                swap  
VG Name                centos  
LV UUID                FGrPuO-2T02-1OfG-0dcz-oVTy-qcsh-IxEmd4  
LV Write Access        read/write  
LV Creation host, time localhost, 2015-11-11 04:46:00 +0800  
LV Status              available  
# open                 2  
LV Size                7.75 GiB  
Current LE             1984  
Segments               1  
Allocation             inherit  
Read ahead sectors     auto  
- currently set to     256  
Block device           253:1  
   
--- Logical volume ---  
LV Path                /dev/centos/home  
LV Name                home  
VG Name                centos  
LV UUID                x7Oh0t-6R1x-ey7G-G5OX-PnBO-VI0C-kcRuvO  
LV Write Access        read/write  
LV Creation host, time localhost, 2015-11-11 04:46:01 +0800  
LV Status              available  
# open                 1  
LV Size                873.21 GiB  
Current LE             223541  
Segments               1  
Allocation             inherit  
Read ahead sectors     auto  
- currently set to     256  
Block device           253:2  
   
--- Logical volume ---  
LV Path                /dev/centos/root  
LV Name                root  
VG Name                centos  
LV UUID                PgscNL-rvyY-21Z1-tVe3-80vC-ONCw-VlvmYs  
LV Write Access        read/write  
LV Creation host, time localhost, 2015-11-11 04:46:04 +0800  
LV Status              available  
# open                 1  
LV Size                50.00 GiB  
Current LE             12800  
Segments               1  
Allocation             inherit  
Read ahead sectors     auto  
- currently set to     256  
Block device           253:0

1.备份/home目录数据

2.卸载这个/home并删除这个逻辑卷home

unmount /home

3.删除/dev/mapper/centos-home这个逻辑卷

lvremove /dev/mapper/centos-home
Do you really want to remove active logical volume home? [y/n]: y  
  Logical volume "home" successfully removed

4.新建一个卷home,fdisk格式化为8e格式,文件系统还是搞为xfs,同时分配挂载到home

#L表示大小,默认单位为M;n表示卷名;这里的centos是CentOS7安装系统的时候就默认建立好的卷组名
lvcreate -L 50G -n home centos
 WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? [y/n]: y  
  Wiping xfs signature on /dev/centos/home.  
  Logical volume "home" created.
  
#激活卷组centos,使得这个新建的home逻辑卷生效(用vgchange而不用lvchange)
vgchange -ay centos

#在新建的逻辑卷home上建立xfs文件系统
mkfs -t xfs /dev/centos/home

#把这个新逻辑卷home挂到之前的文件夹/home中去
mount /dev/centos/home /home/

5.最后再把释放出来多余的空间分配给root卷并xfs_growfs扩展文件系统

lvextend -L +823G /dev/centos/root
#再次激活下卷组centos
vgchange -ay centos
#扩展这个区
xfs_growfs root


http://blog.csdn.net/evandeng2009/article/details/49814097