Linux根目录扩容方法及其涉及的相关磁盘操作
Linux根目录扩容方法及其涉及的相关磁盘操作
linux下与存储相关的命令
命令 | 作用 |
---|---|
free | 查看内存使用情况 |
df | 查看文件系统/挂载点的存储使用情况 |
mkfs | 对磁盘进行格式化 |
du | 查看某个文件或者目录所占用的存储空间大小 |
fdisl | 查看系统所有的磁盘和磁盘分区;对物理磁盘进行分区 |
fdisk
fdisk -l
fdisk /dev/sdb
LVM简介
LVM全称Logical Volume Manager,逻辑卷管理,在linux系统下对磁盘分区进行管理的机制,是建立在物理磁盘上的抽象层。
物理卷(pv,physical volume)
可以理解为linux下的物理磁盘或者磁盘分区,如/dev/sdb(磁盘)、/dev/sdb1(磁盘分区,通过fdisk对/dev/sdb进行操作划分出来的磁盘分区,类似于windows下的C、D、E盘),但是和物理磁盘以及磁盘分区不同的是,物理卷含有和LVM相关的参数
卷组(vg,volume group)
由一个或者多个物理卷组成的卷组
逻辑卷(lv,logical volume)
通过卷组划分出来的分区,可以用来建立文件系统,例如/dev/mapper/centos-root 是根目录的文件系统挂载点,它就是建立在一个逻辑卷之上的,该文件系统的大小就是这个逻辑卷的大小
物理块(PE,physical extent)
每个物理卷被分为若干个物理块,是LVM寻址中的最小单元,有唯一编号,可以设置大小,默认为4MB
逻辑块(LE,logical extent)
每个逻辑卷被分为若干个逻辑卷,与PE是一一对应的
案例:centos根目录扩容
[root@slave01 ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 6981632 6086596 895036 88% /
devtmpfs 1232124 0 1232124 0% /dev
tmpfs 1242128 0 1242128 0% /dev/shm
tmpfs 1242128 24092 1218036 2% /run
tmpfs 1242128 0 1242128 0% /sys/fs/cgroup
/dev/sda1 508588 124772 383816 25% /boot
tmpfs 248428 0 248428 0% /run/user/0
可以看到根目录只有12%的空间可用了,需要扩容一下
1.假设系统中有一块硬盘或者虚拟机的虚拟硬盘 /dev/sdb
2.通过上面 fdisk 部分的 fdisk /dev/sdb 操作来分出一块分区/dev/sdb1
[aaa@qq.com ~]# fdisk /dev/sd
sda sda1 sda2 sdb
[aaa@qq.com ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x4472a336 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[aaa@qq.com ~]# fdisk -l
···
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4472a336
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
···
3.通过 pvcreate 命令创建物理卷
[root@slave01 ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
4.查看刚刚创建的物理卷/dev/sdb1
[root@slave01 ~]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 7.51 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1922
Free PE 10
Allocated PE 1912
PV UUID SFY7mk-Tkm3-pvih-tydL-zNaQ-3OcT-hv7hES
"/dev/sdb1" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID MLLBUH-e9bY-2eMd-Lgpk-70px-4uan-nTRfHQ
5.vgdisplay 查看系统中的卷组,看到Free PE(空闲物理块)只有10块
[aaa@qq.com ~]# vgdisplay
--- 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 <7.51 GiB
PE Size 4.00 MiB
Total PE 1922
Alloc PE / Size 1912 / <7.47 GiB
Free PE / Size 10 / 40.00 MiB
VG UUID O40ce2-OEPo-N8l1-tuu7-vmf8-kDHE-mHQdY9
6.通过 vgextend 将物理卷sdb1加入卷组centos
[aaa@qq.com ~]# vgextend centos /dev/sdb1
Volume group "centos" successfully extended
7.再次查看卷组,可以看到Free PE(空闲物理块)已经是265块
[aaa@qq.com ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 8.50 GiB
PE Size 4.00 MiB
Total PE 2177
Alloc PE / Size 1912 / <7.47 GiB
Free PE / Size 265 / <1.04 GiB
VG UUID O40ce2-OEPo-N8l1-tuu7-vmf8-kDHE-mHQdY9
8.通过 lvextend 命令扩展根目录挂载点 /dev/mapper/centos-root
[aaa@qq.com ~]# lvextend -L +1G /dev/mapper/centos-root
Size of logical volume centos/root changed from <6.67 GiB (1707 extents) to <7.67 GiB (1963 extents).
Logical volume centos/root successfully resized.
到此只是对逻辑卷进行了扩容,通过df还看不到根目录的空间扩充,还要对文件系统进行扩容才能完成
9.通过 resize2fs 或者 xfs_growfs 命令对文件系统进行扩容
[root@slave01 ~]# resize2fs /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block 当尝试打开 /dev/mapper/centos-root 时
找不到有效的文件系统超级块.
这里有时候使用 resize2fs 会出错,查看一下根目录的文件系统
查看/dev/mapper/centos-root文件系统
[root@slave01 ~]# cat /etc/fstab | grep centos-root
/dev/mapper/centos-root / xfs defaults 0 0
10.看到文件系统xfs,使用 xfs_growfs 命令
[root@slave01 ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=256 agcount=4, agsize=436992 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=1747968, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
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 1747968 to 2010112
11.df 查看扩容后的各个目录和挂载点大小
[root@slave01 ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 8030208 6090720 1939488 76% /
devtmpfs 1232124 0 1232124 0% /dev
tmpfs 1242128 0 1242128 0% /dev/shm
tmpfs 1242128 24096 1218032 2% /run
tmpfs 1242128 0 1242128 0% /sys/fs/cgroup
/dev/sda1 508588 124772 383816 25% /boot
tmpfs 248428 0 248428 0% /run/user/0
可以看到现在现在根目录 / 现在有24%的可用空间了