- 磁盘空间不够了,于是查看当前机器上一共磁盘空间是多少。输入相关的命令发现,当前磁盘一共是108G的大小。
$ fdisk -l
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
- 输入df -h,将所有挂载的磁盘空间相加,发现只有70G左右的空间。因此,还有40G的空间未使用。
- 查看系统磁盘的分区和使用情况。发现/dev/sda5的下的40G空间还未被使用。
[root@k8s-master ~]# lsblk -pf
NAME FSTYPE LABEL UUID MOUNTPOINT
/dev/sda
├─/dev/sda1 xfs 63d25408-e2a9-4afa-b6b6-056471073a89 /boot
├─/dev/sda2 LVM2_member 4ot5Vr-PLOI-Al1a-uY62-6Iob-wfZq-Hcyvso
│ ├─/dev/mapper/vg_srv-lv_root xfs 5262deca-cc03-42b6-9fe5-fad501053f22 /
│ ├─/dev/mapper/vg_srv-lv_swap swap d973e004-8ef4-45aa-89ca-c0c307f74130
│ ├─/dev/mapper/vg_srv-lv_home xfs 0d15a3e7-788c-44f7-bf53-b27c41533640 /home
│ ├─/dev/mapper/vg_srv-lv_var xfs bcf82e94-b178-4604-80d4-fad7e0f14685 /var
│ └─/dev/mapper/vg_srv-lv_tmp xfs 227a6b29-1555-4ff8-ac42-ad732f97a685 /tmp
├─/dev/sda3 LVM2_member yaal5p-zn5f-DI0P-IUts-Gm9i-4vzj-HAy3lg
│ ├─/dev/mapper/vg_srv-lv_app xfs e9b7c1ae-a3b8-45c7-a2ff-3bde7cf80fff /app
│ └─/dev/mapper/vg_srv-lv_logs xfs 07b3f85b-f933-43ea-8598-cbd8187c5271 /app/logs
├─/dev/sda4
└─/dev/sda5 LVM2_member VN7D52-srvQ-fXcJ-2gcj-tE53-Rfai-TLF0kD
/dev/sr0
解决方法一
- 直接将/dev/sda5格式化,并挂载即可。
[root@k8s-master ~]# mkfs.xfs -f /dev/sda5
meta-data=/dev/sda5 isize=512 agcount=4, agsize=2621376 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=10485504, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=5119, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@k8s-master ~]# mkdir /data1
[root@k8s-master ~]# mount /dev/sda5 /data1
[root@k8s-master data1]# df -hT
/dev/sda5 xfs 40G 33M 40G 1% /data1
接下来即可直接在/data1下写数据。
解决方法二
本方法是基于linux-lvm逻辑卷管理进行磁盘的分区和使用。
如果你已经按照解决方法一将/dev/sda5进行了格式化,则以恢复步骤帮你将系统恢复至原本的设置。
恢复
如果未执行解决方法一,跳过本恢复小节。
- 查看当前磁盘分区的状态,可看到sda5已经被格式化为xfs文件系统,并被挂载在/data1目录下。如果/dev/sda5是LVM2_member,则直接跳过本恢复小节。
[root@k8s-master data1]# lsblk -fp
NAME FSTYPE LABEL UUID MOUNTPOINT
/dev/sda
├─/dev/sda1 xfs 63d25408-e2a9-4afa-b6b6-056471073a89 /boot
├─/dev/sda2 LVM2_member 4ot5Vr-PLOI-Al1a-uY62-6Iob-wfZq-Hcyvso
│ ├─/dev/mapper/vg_srv-lv_root xfs 5262deca-cc03-42b6-9fe5-fad501053f22 /
│ ├─/dev/mapper/vg_srv-lv_swap swap d973e004-8ef4-45aa-89ca-c0c307f74130
│ ├─/dev/mapper/vg_srv-lv_home xfs 0d15a3e7-788c-44f7-bf53-b27c41533640 /home
│ ├─/dev/mapper/vg_srv-lv_var xfs bcf82e94-b178-4604-80d4-fad7e0f14685 /var
│ └─/dev/mapper/vg_srv-lv_tmp xfs 227a6b29-1555-4ff8-ac42-ad732f97a685 /tmp
├─/dev/sda3 LVM2_member yaal5p-zn5f-DI0P-IUts-Gm9i-4vzj-HAy3lg
│ ├─/dev/mapper/vg_srv-lv_app xfs e9b7c1ae-a3b8-45c7-a2ff-3bde7cf80fff /app
│ └─/dev/mapper/vg_srv-lv_logs xfs 07b3f85b-f933-43ea-8598-cbd8187c5271 /app/logs
├─/dev/sda4
└─/dev/sda5 xfs 2f46ec52-8f1f-44b2-b0bb-bc49aa17e99b /data1
/dev/sr0
- 卸载挂载目录
$ umount /data1
[root@k8s-master /]# lsblk -fp # 检查是否卸载成功,发现/dev/sda5后边的/data1已经被卸载
NAME FSTYPE LABEL UUID MOUNTPOINT
/dev/sda
├─/dev/sda1 xfs 63d25408-e2a9-4afa-b6b6-056471073a89 /boot
├─/dev/sda2 LVM2_member 4ot5Vr-PLOI-Al1a-uY62-6Iob-wfZq-Hcyvso
│ ├─/dev/mapper/vg_srv-lv_root xfs 5262deca-cc03-42b6-9fe5-fad501053f22 /
│ ├─/dev/mapper/vg_srv-lv_swap swap d973e004-8ef4-45aa-89ca-c0c307f74130
│ ├─/dev/mapper/vg_srv-lv_home xfs 0d15a3e7-788c-44f7-bf53-b27c41533640 /home
│ ├─/dev/mapper/vg_srv-lv_var xfs bcf82e94-b178-4604-80d4-fad7e0f14685 /var
│ └─/dev/mapper/vg_srv-lv_tmp xfs 227a6b29-1555-4ff8-ac42-ad732f97a685 /tmp
├─/dev/sda3 LVM2_member yaal5p-zn5f-DI0P-IUts-Gm9i-4vzj-HAy3lg
│ ├─/dev/mapper/vg_srv-lv_app xfs e9b7c1ae-a3b8-45c7-a2ff-3bde7cf80fff /app
│ └─/dev/mapper/vg_srv-lv_logs xfs 07b3f85b-f933-43ea-8598-cbd8187c5271 /app/logs
├─/dev/sda4
└─/dev/sda5 xfs 2f46ec52-8f1f-44b2-b0bb-bc49aa17e99b
- 由于之前的暴力方法,破坏了/dev/sda5的物理卷相关信息,因此,此时系统的卷组信息并不一致。输入相关命令,会出现[unknown]的信息。且会出现 WARNING: Device for PV VN7D52-srvQ-fXcJ-2gcj-tE53-Rfai-TLF0kD not found or rejected by a filter. 输入相关的命令,比如_pvs或者pvdisplay命令_都会出现类似的warnings信息。
[root@k8s-master /]# pvscan
WARNING: Device for PV VN7D52-srvQ-fXcJ-2gcj-tE53-Rfai-TLF0kD not found or rejected by a filter.
PV /dev/sda2 VG vg_srv lvm2 [48.00 GiB / 0 free]
PV /dev/sda3 VG vg_srv lvm2 [<11.80 GiB / <5.80 GiB free]
PV [unknown] VG vg_srv lvm2 [<40.00 GiB / <40.00 GiB free]
Total: 3 [99.79 GiB] / in use: 3 [99.79 GiB] / in no VG: 0 [0 ]
- 步骤3中的错误主要是由于PV信息的缺失导致的,为解决上述问题,可输入以下命令解决。
[root@k8s-master /]# vgreduce --removemissing vg_srv # 注意:vg_srv是vg的名字,如果不知道vg的名字,可通过命令 pvdisplay命令查看,其中VG Name这一行即该vg的名字。
- 验证步骤4是否执行成功,输入pvs或者pvdisplay发现没有unknown即可。
- 接下来的步骤将/dev/sda5重新加入vg_srv卷组。
[root@k8s-master /]# pvcreate /dev/sda5
WARNING: xfs signature detected on /dev/sda5 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sda5.
Physical volume "/dev/sda5" successfully created.
[root@k8s-master /]# pvs # 检查是否加入成功
PV VG Fmt Attr PSize PFree
/dev/sda2 vg_srv lvm2 a-- 48.00g 0
/dev/sda3 vg_srv lvm2 a-- <11.80g <5.80g
/dev/sda5 lvm2 --- <40.00g <40.00g
[root@k8s-master /]# vgextend vg_srv /dev/sda5 # 将设备加入vg_srv卷组
Volume group "vg_srv" successfully extended
[root@k8s-master /]# pvdisplay # 查看sda5是否加入成功
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_srv
PV Size 48.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 12288
Free PE 0
Allocated PE 12288
PV UUID 4ot5Vr-PLOI-Al1a-uY62-6Iob-wfZq-Hcyvso
--- Physical volume ---
PV Name /dev/sda3
VG Name vg_srv
PV Size <11.80 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 3020
Free PE 1484
Allocated PE 1536
PV UUID yaal5p-zn5f-DI0P-IUts-Gm9i-4vzj-HAy3lg
--- Physical volume ---
PV Name /dev/sda5
VG Name vg_srv
PV Size <40.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 10239
Free PE 10239
Allocated PE 0
PV UUID XU7yqx-fgEE-hYgc-h47W-ssbD-Yid2-2HPurq
[root@k8s-master /]# lsblk -pf #检查/dev/sda5是否变为LVM2_member状态
NAME FSTYPE LABEL UUID MOUNTPOINT
/dev/sda
├─/dev/sda1 xfs 63d25408-e2a9-4afa-b6b6-056471073a89 /boot
├─/dev/sda2 LVM2_member 4ot5Vr-PLOI-Al1a-uY62-6Iob-wfZq-Hcyvso
│ ├─/dev/mapper/vg_srv-lv_root xfs 5262deca-cc03-42b6-9fe5-fad501053f22 /
│ ├─/dev/mapper/vg_srv-lv_swap swap d973e004-8ef4-45aa-89ca-c0c307f74130
│ ├─/dev/mapper/vg_srv-lv_home xfs 0d15a3e7-788c-44f7-bf53-b27c41533640 /home
│ ├─/dev/mapper/vg_srv-lv_var xfs bcf82e94-b178-4604-80d4-fad7e0f14685 /var
│ └─/dev/mapper/vg_srv-lv_tmp xfs 227a6b29-1555-4ff8-ac42-ad732f97a685 /tmp
├─/dev/sda3 LVM2_member yaal5p-zn5f-DI0P-IUts-Gm9i-4vzj-HAy3lg
│ ├─/dev/mapper/vg_srv-lv_app xfs e9b7c1ae-a3b8-45c7-a2ff-3bde7cf80fff /app
│ └─/dev/mapper/vg_srv-lv_logs xfs 07b3f85b-f933-43ea-8598-cbd8187c5271 /app/logs
├─/dev/sda4
└─/dev/sda5 LVM2_member XU7yqx-fgEE-hYgc-h47W-ssbD-Yid2-2HPurq
/dev/sr0
增大容量
$ lvcreate -L 38G -n lv_data vg_srv #因为可用容量为40G,创建的大小按照需要创建即可。
$ mkfs -t ext4 /dev/mapper/vg_srv-lv_data
$ lsblk -pf
NAME FSTYPE LABEL UUID MOUNTPOINT
/dev/sda
├─/dev/sda1 xfs 63d25408-e2a9-4afa-b6b6-056471073a89 /boot
├─/dev/sda2 LVM2_member 4ot5Vr-PLOI-Al1a-uY62-6Iob-wfZq-Hcyvso
│ ├─/dev/mapper/vg_srv-lv_root xfs 5262deca-cc03-42b6-9fe5-fad501053f22 /
│ ├─/dev/mapper/vg_srv-lv_swap swap d973e004-8ef4-45aa-89ca-c0c307f74130 [SWAP]
│ ├─/dev/mapper/vg_srv-lv_home xfs 0d15a3e7-788c-44f7-bf53-b27c41533640 /home
│ ├─/dev/mapper/vg_srv-lv_var xfs bcf82e94-b178-4604-80d4-fad7e0f14685 /var
│ └─/dev/mapper/vg_srv-lv_tmp xfs 227a6b29-1555-4ff8-ac42-ad732f97a685 /tmp
├─/dev/sda3 LVM2_member yaal5p-zn5f-DI0P-IUts-Gm9i-4vzj-HAy3lg
│ ├─/dev/mapper/vg_srv-lv_app xfs e9b7c1ae-a3b8-45c7-a2ff-3bde7cf80fff /app
│ └─/dev/mapper/vg_srv-lv_logs xfs 07b3f85b-f933-43ea-8598-cbd8187c5271 /app/logs
├─/dev/sda4
└─/dev/sda5 LVM2_member 26uEWO-57Zm-0Cem-olr1-x66m-b8uc-sw15tJ
└─/dev/mapper/vg_srv-lv_data ext4 59f579ba-557f-4d08-93b8-9ea713bd028e
/dev/sr0
$ mount /dev/mapper/vg_srv-lv_data /data1
$ vi /etc/fstab #配置为开机自动挂载
/dev/mapper/vg_srv-lv_data /data1 ext4 defaults 0 0