Linux文件目录扩容

一、普通目录扩容
先查看当前磁盘使用情况:

[root@lvm ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

创建一个/app目录,给该目录分配5G空间,下面开始实验:
1、创建PV物理卷:

[root@lvm ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.

2、创建VG卷组:

[root@lvm ~]# vgcreate app /dev/sdb /dev/sdc
  Volume group "app" successfully created

3、在上面app卷组基础上创建LVM逻辑卷:

[root@lvm ~]# lvcreate -n lvapp -L 5G app
  Logical volume "lvapp" created.

4、格式化lvapp这个逻辑卷:

[root@lvm ~]# mkfs.ext4 /dev/app/lvapp 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 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

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

5、创建一个/app目录,并将/dev/app/lvapp挂载至/app目录:

[root@lvm ~]# mkdir /app
[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    4.8G   20M  4.6G    1% /app

下面开始测试给/app目录扩容至6G。
6、先取消挂载:

[root@lvm ~]# umount /app/
[root@lvm ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0

7、使用lvextend命令扩容:

[root@lvm ~]# lvextend -L 6G /dev/app/lvapp 
  Size of logical volume app/lvapp changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
  Logical volume app/lvapp successfully resized.

8、检查磁盘完整性:

[root@lvm ~]# e2fsck -f /dev/app/lvapp 
e2fsck 1.42.9 (28-Dec-2013)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第3步: 检查目录连接性
Pass 4: Checking reference counts
第5步: 检查簇概要信息
/dev/app/lvapp: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks

9、重置磁盘容量:

[root@lvm ~]# resize2fs /dev/app/lvapp 
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/app/lvapp to 1572864 (4k) blocks.
The filesystem on /dev/app/lvapp is now 1572864 blocks long.

10、重新挂载:

[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    5.8G   20M  5.5G    1% /app

二、根目录扩容
1、检查文件系统使用情况:

[root@lvm ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   17G  1.2G   16G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    5.8G   20M  5.5G    1% /app

2、使用fdisk创建一个新的分区:

[root@lvm ~]# fdisk /dev/sdd 
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x4260a25f 创建新的 DOS 磁盘标签。
#此处输入n,表示创建新的分区
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
#此处输入p表示创建主分区
Select (default p): p
#分区号根据实际情况写,我们这是第一次创建分区,所以默认是1,可以不写使用默认值也行
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
#这里行末输入要创建多大的分区,我们选择2G,所以输入+2G
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
#w表示写入
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

3、使用pvcreate命令创建/dev/sdd1物理卷:

[root@lvm ~]# pvcreate /dev/sdd1 
  Physical volume "/dev/sdd1" successfully created.

4、vgdisplay 查看系统中的卷组,根目录所在的卷组是centos:

[root@lvm ~]# vgdisplay 
  --- Volume group ---
  VG Name               app
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       1536 / 6.00 GiB
  Free  PE / Size       3582 / 13.99 GiB
  VG UUID               A9fjGc-PbU6-vrJv-DXy5-3hcE-Punp-ceda1p
   
  --- Volume group ---
  VG Name               centos
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               9TVteP-AgrQ-2I0y-H4yO-5kVI-nD5l-KOI24h

5、通过 vgextend 将物理卷sdd1加入卷组centos:

[root@lvm ~]# vgextend centos /dev/sdd1 
  Volume group "centos" successfully extended

这个时候只是卷组扩大了,但根目录所在的逻辑卷/dev/mapper/centos-root并没有扩大,所以根目录空间并没有变化,下面开始扩展根目录可用空间。

6、使用lvextend扩展/dev/mapper/centos-root逻辑卷的大小,这个要注意的是,我们上面只给卷组扩容了2G,下面扩容逻辑卷的时候,必须要小于2G,等于2G也不行:

[root@lvm ~]# lvextend -L +1G /dev/mapper/centos-root
  Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <18.00 GiB (4607 extents).
  Logical volume centos/root successfully resized.

7、根目录的文件系统xfs,使用 xfs_growfs 命令重置硬盘容量:

[root@lvm ~]# xfs_growfs /dev/mapper/centos-root 
meta-data=/dev/mapper/centos-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4455424 to 4717568

8、查看根目录文件系统使用情况,之前总容量是17G,可用16G,现在总容量是18G,可用17G:

[root@lvm ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   18G  1.2G   17G    7% /
devtmpfs                 475M     0  475M    0% /dev
tmpfs                    487M     0  487M    0% /dev/shm
tmpfs                    487M  7.7M  479M    2% /run
tmpfs                    487M     0  487M    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
tmpfs                     98M     0   98M    0% /run/user/0
/dev/mapper/app-lvapp    5.8G   20M  5.5G    1% /app

总结:
1、对于根目录扩容,如果分区已经使用完,则需要使用fdisk命令,新建分区,然后新建PV物理卷,再将物理卷加入根目录所在的卷组,接着再扩容逻辑卷。
2、对于普通文件目录,如果物理卷组的空间够用,则可以直接扩容逻辑卷组;对于有些目录,取消挂载的话,可能会影响生产环境的业务。

你可能感兴趣的:(Linux,操作系统,lvm,linux)