虞造华 發表於 2019-10-18 12:36:00

centos 7 重新设置分区大小

<p>一、基础概念<br>Cent0S 7默认启用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之后的主流文件系统。</p>
<p>几个概念的关系:M个物理硬盘HD或者物理硬盘中的分区一起组建为一个逻辑卷组VG及存储池,在卷组VG中创建N个逻辑卷LV,在一个逻辑卷LV中创建文件系统比如xfs。物理硬盘/分区、逻辑卷有最小基本寻址单元,CentOS7默认的大小为4MB,二者一一对应,类似于链接或者变量引用,但是一个二者关系并非一直不变,因为物理硬盘可能发生变化而逻辑卷自动调整。创建卷组和逻辑卷,会类似于创建分区一样在磁盘开始位置写入卷的信息VGDA(卷组描述符区域,Volume Group Descriptor Area)用于识别。逻辑卷的好处在于屏蔽物理底层支撑,可自由扩展变更,而不用担心硬盘或者分区的物理空间局限,也就不会存在为了扩展分区大小而去备份/扩展分区重新格式化硬盘等问题。</p>
<p>&nbsp;</p>
<p>HD/分区--通过pvcreate-&gt;PV--通过vgcreate(vgchange)/vgextend--&gt;VG--通过lvcreate/lvextend--&gt;LV--通过mkfs--&gt;FS--通过xfs_growfs等--&gt;df磁盘生效</p>
<p>但是关键点在于,CentOS 7默认安装时/home占用太多空间,根目录相较而言就小得多(只有50G),而OpenStack安装以及存储的东西都在根目录下。上传几个镜像说不定就把你的根目录空间耗尽。不像其他文件系统ext3,ext4或者reiserfs等,有命令(resize2fs,resize_reiserfs)直接支持缩小文件系统的大小,默认安装的xfs支持扩展增大但是不支持缩小空间!</p>
<p>&nbsp;</p>
<p>二、步骤概览<br>所以下面要做的步骤大概为:(直接root用户登录系统,本机或者ssh root过去,如果使用当前普通用户会遇到点不必要的麻烦)</p>
<p>1. 备份/home/用户文件,要是没啥内容则忽略这步(为什么非要这个/home,删掉直接用root?还是保留它,它存在也有道理的,再说生产环境还是不要只用root)</p>
<p>2. umount /home 卸载并lvremove删除这个home逻辑卷,释放它的空间,vgdisplay查看卷组可用空间大小</p>
<p>3. lvcreate新建一个新的home卷,并在其上mkfs建立xfs文件系统,(分配挂载到/home - 不用更改/etc/fstab,重启即可,) 拷贝回来之前的内容</p>
<p>(这个时候空余的空间随便你分配,可以再建立别的逻辑卷,或者直接空闲下来以后使用,也可以直奔主题的走下面的第四步)</p>
<p>4. 把之前的home逻辑卷释放并分配新卷home之后剩下的空间,lvextend分配给root卷,并用命令xfs_growfs扩展它的文件系统空间</p>
<p>&nbsp;</p>
<p>三、相关命令<br>看看大概的命令有哪些</p>
<p># pv</p>
<p>pvchange   pvck       pvcreate   pvdisplaypvmove   pvremove   pvresize   pvs      pvscan<br># vb</p>
<p>vgcfgbackup    vgchange       vgconvert      vgdisplay      vgextend       vgimportclonevgmknodes      vgremove       vgs<br>vgsplit      vgcfgrestore   vgck         vgcreate       vgexport       vgimport       vgmerge      vgreduce       vgrename<br>vgscan<br># lv<br>lvchange   lvcreate   lvextend   lvmchange    lvmdiskscanlvmetad      lvmsar       lvremove   lvresize   lvscan<br>lvconvert    lvdisplay    lvm</p>
<p>四、默认安装情况<br># df -h //查看磁盘使用情况,逻辑卷的挂载格式为/dev/mapper/VolumeGroupName-LogicalVolumeName</p>
<p>Filesystem               SizeUsed Avail Use% Mounted on<br>/dev/mapper/centos-root   50G4.8G   46G10% /<br>devtmpfs               3.9G   03.9G   0% /dev<br>tmpfs                  3.9G140K3.9G   1% /dev/shm<br>tmpfs                  3.9G8.9M3.9G   1% /run<br>tmpfs                  3.9G   03.9G   0% /sys/fs/cgroup<br>/dev/mapper/centos-home873G   12G862G   2% /home<br>/dev/sda1                494M133M362M27% /boot<br># cat /etc/fstab<br>/dev/mapper/centos-root /                     xfs   defaults      0 0<br>UUID=6abe266a-12fe-4361-9417-8d317bc25c8d /boot xfs   defaults      0 0<br>/dev/mapper/centos-home /home                   xfs   defaults      0 0<br>/dev/mapper/centos-swap swap                  swap    defaults      0 0<br># vgdisplay //查看逻辑卷组情况<br>--- Volume group ---<br>VG Name               centos<br>System ID             <br>Format                lvm2<br>Metadata Areas      1<br>Metadata Sequence No6<br>VG Access             read/write<br>VG Status             resizable<br>MAX LV                0<br>Cur LV                3<br>Open LV               3<br>Max PV                0<br>Cur PV                1<br>Act PV                1<br>VG Size               931.02 GiB<br>PE Size               4.00 MiB<br>Total PE            238341<br>Alloc PE / Size       238325 / 930.96 GiB<br>FreePE / Size       16 / 64.00 MiB<br>VG UUID               IFQnYm-fCLh-38mD-Duid-nYXQ-qktX-3F1atk</p>
<p># lvdisplay //查看逻辑卷情况,默认三个,root、home和交换空间swap<br>--- Logical volume ---<br>LV Path                /dev/centos/swap<br>LV Name                swap<br>VG Name                centos<br>LV UUID                FGrPuO-2T02-1OfG-0dcz-oVTy-qcsh-IxEmd4<br>LV Write Access      read/write<br>LV Creation host, time localhost, 2015-11-11 04:46:00 +0800<br>LV Status            available<br># open               2<br>LV Size                7.75 GiB<br>Current LE             1984<br>Segments               1<br>Allocation             inherit<br>Read ahead sectors   auto<br>- currently set to   256<br>Block device         253:1<br>   <br>--- Logical volume ---<br>LV Path                /dev/centos/home<br>LV Name                home<br>VG Name                centos<br>LV UUID                x7Oh0t-6R1x-ey7G-G5OX-PnBO-VI0C-kcRuvO<br>LV Write Access      read/write<br>LV Creation host, time localhost, 2015-11-11 04:46:01 +0800<br>LV Status            available<br># open               1<br>LV Size                873.21 GiB<br>Current LE             223541<br>Segments               1<br>Allocation             inherit<br>Read ahead sectors   auto<br>- currently set to   256<br>Block device         253:2<br>   <br>--- Logical volume ---<br>LV Path                /dev/centos/root<br>LV Name                root<br>VG Name                centos<br>LV UUID                PgscNL-rvyY-21Z1-tVe3-80vC-ONCw-VlvmYs<br>LV Write Access      read/write<br>LV Creation host, time localhost, 2015-11-11 04:46:04 +0800<br>LV Status            available<br># open               1<br>LV Size                50.00 GiB<br>Current LE             12800<br>Segments               1<br>Allocation             inherit<br>Read ahead sectors   auto<br>- currently set to   256<br>Block device         253:0</p>
<p><br>五、操作步骤<br>1. 备份/home中的用户数据<br># mkdir /backup &amp;&amp; mv /home/* /backup<br># ls /home/<br>2. 卸载这个/home并删除逻辑卷home</p>
<p># umount /home</p>
<p># df -h //查看磁盘情况</p>
<p>Filesystem               SizeUsed Avail Use% Mounted on<br>/dev/mapper/centos-root   50G   17G   34G33% /<br>devtmpfs               3.9G   03.9G   0% /dev<br>tmpfs                  3.9G   84K3.9G   1% /dev/shm<br>tmpfs                  3.9G9.0M3.9G   1% /run<br>tmpfs                  3.9G   03.9G   0% /sys/fs/cgroup<br>/dev/sda1                494M133M362M27% /boot<br># lvremove /dev/centos/home //删除逻辑卷home</p>
<p>Do you really want to remove active logical volume home? : y<br>Logical volume "home" successfully removed<br># vgdisplay //查看卷组可用空间</p>
<p>--- Volume group ---<br>VG Name               centos<br>System ID             <br>Format                lvm2<br>Metadata Areas      1<br>Metadata Sequence No7<br>VG Access             read/write<br>VG Status             resizable<br>MAX LV                0<br>Cur LV                2<br>Open LV               2<br>Max PV                0<br>Cur PV                1<br>Act PV                1<br>VG Size               931.02 GiB<br>PE Size               4.00 MiB<br>Total PE            238341<br>Alloc PE / Size       14784 / 57.75 GiB<br>FreePE / Size       223557 / 873.27 GiB<br>VG UUID               IFQnYm-fCLh-38mD-Duid-nYXQ-qktX-3F1atk<br>这里注意,Free PE / Size 中显示的空间为卷组的空闲空间873G,之前为64M,也就是刚才删除的逻辑卷home所占用的空间,我们就从这个当中拿出一部分比如50G作为home<br>3. 新建一个卷home,fdisk格式化为8e格式,文件系统还是搞为xfs(同样挂载到/home)</p>
<p># lvcreate -L 50G -n home centos //L表示大小,默认单位为M;n表示卷名;这里的centos是CentOS7安装系统的时候就默认建立好的卷组名</p>
<p>WARNING: xfs signature detected on /dev/centos/home at offset 0. Wipe it? : y<br>Wiping xfs signature on /dev/centos/home.<br>Logical volume "home" created.<br># lvdisplay //查看逻辑卷home</p>
<p>--- Logical volume ---<br>LV Path                /dev/centos/home<br>LV Name                home<br>VG Name                centos<br>LV UUID                b5lLlv-FQPY-dT43-SmzV-sSLA-4QqP-gdQqAP<br>LV Write Access      read/write<br>LV Creation host, time localhost, 2015-11-13 14:05:06 +0800<br>LV Status            available<br># open               0<br>LV Size                50.00 GiB<br>Current LE             12800<br>Segments               1<br>Allocation             inherit<br>Read ahead sectors   auto<br>- currently set to   256<br>Block device         253:2<br># vgdisplay //再次查看卷组空间大小<br>--- Volume group ---<br>VG Name               centos<br>System ID             <br>Format                lvm2<br>Metadata Areas      1<br>Metadata Sequence No8<br>VG Access             read/write<br>VG Status             resizable<br>MAX LV                0<br>Cur LV                3<br>Open LV               2<br>Max PV                0<br>Cur PV                1<br>Act PV                1<br>VG Size               931.02 GiB<br>PE Size               4.00 MiB<br>Total PE            238341<br>Alloc PE / Size       27584 / 107.75 GiB<br>FreePE / Size       210757 / 823.27 GiB<br>VG UUID               IFQnYm-fCLh-38mD-Duid-nYXQ-qktX-3F1atk<br>[# vgchange -ay centos&nbsp; //可选步骤:激活卷组centos,使得这个新建的home逻辑卷生效(用vgchange而不用lvchange)]</p>
<p>3 logical volume(s) in volume group "centos" now active<br># mkfs -t xfs /dev/centos/home //在新建的逻辑卷home上建立xfs文件系统<br>meta-data=/dev/centos/home       isize=256    agcount=4, agsize=3276800 blks<br>         =                     sectsz=4096attr=2, projid32bit=1<br>         =                     crc=0      finobt=0<br>data   =                     bsize=4096   blocks=13107200, imaxpct=25<br>         =                     sunit=0      swidth=0 blks<br>naming   =version 2            bsize=4096   ascii-ci=0 ftype=0<br>log      =internal log         bsize=4096   blocks=6400, version=2<br>         =                     sectsz=4096sunit=1 blks, lazy-count=1<br>realtime =none                   extsz=4096   blocks=0, rtextents=0<br># mount /dev/centos/home /home/ //把这个新逻辑卷home挂到之前的文件夹/home中去,直接重启用fstab来挂载也行<br># df -h //现在来查看磁盘使用情况</p>
<p>Filesystem               SizeUsed Avail Use% Mounted on<br>/dev/mapper/centos-root   50G   17G   34G33% /<br>devtmpfs               3.9G   03.9G   0% /dev<br>tmpfs                  3.9G   84K3.9G   1% /dev/shm<br>tmpfs                  3.9G9.0M3.9G   1% /run<br>tmpfs                  3.9G   03.9G   0% /sys/fs/cgroup<br>/dev/sda1                494M133M362M27% /boot<br>/dev/mapper/centos-home   50G   33M   50G   1% /home<br># mv /backup/* /home/ //再把之前拷出来的东西拷回新建的/home中,拷贝完成就可以直接用这个普通用户来桌面登录系统了,不用重启<br>4. 最后再把释放出来多余的空间分配给root卷并xfs_growfs扩展文件系统<br># lvextend -L +823G /dev/centos/root //把剩下的823G现在分配给root卷,剩下那点渣渣空间让它闲着;+号表示在原来的基础上额外增加,不要加好则设定为具体额度</p>
<p>Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 873.00 GiB (223488 extents).<br>Logical volume root successfully resized<br># lvdisplay //查看逻辑卷和卷组情况,这下root的空间就多达到873G,之前的是50G</p>
<p>--- Logical volume ---<br>LV Path                /dev/centos/root<br>LV Name                root<br>VG Name                centos<br>LV UUID                PgscNL-rvyY-21Z1-tVe3-80vC-ONCw-VlvmYs<br>LV Write Access      read/write<br>LV Creation host, time localhost, 2015-11-11 04:46:04 +0800<br>LV Status            available<br># open               1<br>LV Size                873.00 GiB<br>Current LE             223488<br>Segments               2<br>Allocation             inherit<br>Read ahead sectors   auto<br>- currently set to   256<br>Block device         253:0<br>[# vgchange -ay centos //可选步骤:再次激活下卷组centos]<br># df -h //不使用xfs_growfs扩展文件系统,磁盘是不认得多的空间的</p>
<p>Filesystem               SizeUsed Avail Use% Mounted on<br>/dev/mapper/centos-root   50G4.8G   46G10% /<br>devtmpfs               3.9G   03.9G   0% /dev<br>tmpfs                  3.9G140K3.9G   1% /dev/shm<br>tmpfs                  3.9G9.0M3.9G   1% /run<br>tmpfs                  3.9G   03.9G   0% /sys/fs/cgroup<br>/dev/sda1                494M133M362M27% /boot<br>/dev/mapper/centos-home   50G   12G   39G23% /home<br># xfs_growfs /dev/centos/root //扩展root卷<br>meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3276800 blks<br>         =                     sectsz=4096attr=2, projid32bit=1<br>         =                     crc=0      finobt=0<br>data   =                     bsize=4096   blocks=13107200, imaxpct=25<br>         =                     sunit=0      swidth=0 blks<br>naming   =version 2            bsize=4096   ascii-ci=0 ftype=0<br>log      =internal               bsize=4096   blocks=6400, version=2<br>         =                     sectsz=4096sunit=1 blks, lazy-count=1<br>realtime =none                   extsz=4096   blocks=0, rtextents=0<br>data blocks changed from 13107200 to 228851712<br># df -h //再看root大小已经生效,800多G了<br>Filesystem               SizeUsed Avail Use% Mounted on<br>/dev/mapper/centos-root873G4.8G869G   1% /<br>devtmpfs               3.9G   03.9G   0% /dev<br>tmpfs                  3.9G140K3.9G   1% /dev/shm<br>tmpfs                  3.9G9.0M3.9G   1% /run<br>tmpfs                  3.9G   03.9G   0% /sys/fs/cgroup<br>/dev/sda1                494M133M362M27% /boot<br>/dev/mapper/centos-home   50G   12G   39G23% /home</p>
<p><br>六、命令汇总<br>简单总结下,就是下面几条命令:</p>
<p># mkdir /backup<br># mv /home/* /backup/<br># umount /home<br># lvremove /dev/centos/home<br># lvcreate -L 50G -n home cents<br># mkfs -t xfs /dev/centos/home<br># mv /backup/* /home/<br># lvextend -L +xxxG /dev/centos/root<br># xfs_growfs /dev/centos/root<br># rm -rf /backup</p><br><br>
来源:https://www.cnblogs.com/wangshuyi/p/11697690.html
頁: [1]
查看完整版本: centos 7 重新设置分区大小