CentOS 改变默认的磁盘配置

2017/3/10 posted in  linux
  • release

CentOS 默认情况安装会把所有的磁盘都安装到home的目录下,导致根目录十分小,需要重新划分一下磁盘大小,否则过一段时间以后磁盘就会占满。

基本流程

所以下面要做的步骤大概为:(最好能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 查看当前磁盘占用情况

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_hansapdb-lv_root
                       50G   43G  4.1G  92% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             477M   33M  419M   8% /boot
/dev/mapper/vg_hansapdb-lv_home
                      238G  1.3G  225G   1% /home

查看当前磁盘格式

查看 _etc_fstatb 来查看当前各个盘符的问题

# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Jan 13 10:20:24 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_hansapdb-lv_root /                       ext4    defaults        1 1
UUID=60c8ed49-535a-4b0d-9e42-a73f61f7b2f0 /boot                   ext4    defaults        1 2
/dev/mapper/vg_hansapdb-lv_home /home                   ext4    defaults        1 2
/dev/mapper/vg_hansapdb-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

查看 当前逻辑卷组和逻辑卷的情况

使用vgdisplay查询磁盘组

vgdisplay
  --- Volume group ---
  VG Name               vg_hansapdb
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  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               299.51 GiB
  PE Size               4.00 MiB
  Total PE              76674
  Alloc PE / Size       76674 / 299.51 GiB
  Free  PE / Size       0 / 0
  VG UUID               8lXkCf-vbGm-QXpu-avsd-6aRo-75RY-iOwEoG

使用lvdisplay查询逻辑磁盘

lvdisplay
  --- Logical volume ---
  LV Path                /dev/vg_hansapdb/lv_root
  LV Name                lv_root
  VG Name                vg_hansapdb
  LV UUID                yJ5F91-atmr-NYb8-mgtd-bG1R-H6Ot-zLGxQg
  LV Write Access        read/write
  LV Creation host, time hansapdb, 2016-01-13 10:16:37 +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

  --- Logical volume ---
  LV Path                /dev/vg_hansapdb/lv_home
  LV Name                lv_home
  VG Name                vg_hansapdb
  LV UUID                vPxjPg-JiMb-RqoF-gI4r-Jkdy-MSIt-nwWARx
  LV Write Access        read/write
  LV Creation host, time hansapdb, 2016-01-13 10:17:03 +0800
  LV Status              available
  # open                 1
  LV Size                241.68 GiB
  Current LE             61870
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/vg_hansapdb/lv_swap
  LV Name                lv_swap
  VG Name                vg_hansapdb
  LV UUID                IawfNu-JEkc-SnXw-V1cl-isWv-MlGo-YjPlix
  LV Write Access        read/write
  LV Creation host, time hansapdb, 2016-01-13 10:18:41 +0800
  LV Status              available
  # open                 1
  LV Size                7.83 GiB
  Current LE             2004
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

配置流程

备份/home目录数据

有数据的话还是尽量的对数据进行一个备份,否则后面可能会把数据删掉

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

unmount /home

如果无法删除,则可以采用fuser 来强制删除

# umount /home
umount: /home: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@hansapdb /]# fuser -m /home
/home:               15798c

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

新建卷

新建一个卷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上建立ext4文件系统

# mkfs.ext4 /dev/vg_hansapdb/lv_home
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
3276800 inodes, 13107200 blocks
655360 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424

正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

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

mount /dev/vg_hansapweb/lv_home /home/

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

lvextend -L +150G /dev/vg_hansapweb/lv_root

再次激活下卷组centos

resize2fs -p /dev/vg_hansapweb/lv_home

方法二,改变大小(可参考使用)

1.首先查看磁盘使用情况
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on

_dev_mapper/VolGroup-lv_root 154G 7.9G 139G 6% /
tmpfs 1.9G 100K 1.9G 1% _dev_shm
_dev_sda1 485M 69M 391M 15% /boot
_dev_mapper/VolGroup-lv_home 299G 984M 283G 1% /home

2、卸载/home
[root@localhost ~]# umount /home
umount _home 如果提示无法卸载,则是有进程占用_home,使用如下命令来终止占用进程:
[root@localhost ~]# fuser -m /home

如果还是无法卸载,执行umount -l /home
3、调整分区大小
[root@localhost ~]# resize2fs -p _dev_mapper/VolGroup-lv_home 20G
如果提示运行“e2fsck -f _dev_mapper/VolGroup-lv_home”,则执行相关命令:
[root@localhost ~]# e2fsck -f _dev_mapper/VolGroup-lv_home 然后重新执行命令:
[root@localhost ~]# resize2fs -p _dev_mapper/VolGroup-lv_home 20G
注:resize2fs 为重新设定磁盘大小,只是重新指定一下大小,并不对结果有影响,需要下面lvreduce的配合

4、挂载上/home,查看磁盘使用情况
[root@localhost ~]# mount /home
[root@localhost ~]# df -h

5、设置空闲空间
使用lvreduce指令用于减少LVM逻辑卷占用的空间大小。可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。记得输入 “y”
[root@localhost ~]# lvreduce -L 20G _dev_mapper/VolGroup-lv_home
注:lvreduce -L 20G的意思为设置当前文件系统为20G,如果lvreduce -l 20G是指从当前文件系统上减少20G
使用lvreduce减小逻辑卷的大小。注意:减小后的大小不能小于文件的大小,否则会丢失数据。

可以使用vgdisplay命令等查看一下可以操作的大小。也可以是用fdisk -l命令查看详细信息。
[root@localhost ~]# vgdisplay
查看“Free PE / Size”剩余空间
Free PE / Size 265598 / 283G
注:vgdisplay为显示LVM卷组的元数据信息

6.把闲置空间挂在到根目录下
[root@localhost ~]# lvextend -L +283G _dev_mapper/VolGroup-lv_root
注:lvextend -L +283G为在文件系统上增加283G 这里的283G容量为上一步查看的剩余空间,就是红色部分
[root@localhost ~]# resize2fs -p _dev_mapper/VolGroup-lv_root
这一步比较慢,耐心等待。

7、检查调整结果
[root@localhost ~]# df -h