HCRM博客

如何有效管理CentOS系统中的磁盘空间?

CentOS磁盘管理指南

一、

如何有效管理CentOS系统中的磁盘空间?-图1
(图片来源网络,侵权删除)

CentOS是一种广泛使用的Linux发行版,其磁盘管理是系统管理员日常工作中的重要部分,良好的磁盘管理不仅能够提高系统的性能和稳定性,还能增强数据的安全性,本文将全面介绍CentOS下的磁盘管理,包括查看磁盘信息、磁盘分区、文件系统格式化、磁盘挂载与卸载以及逻辑卷管理(LVM)。

二、磁盘管理的重要性

性能优化:合理规划和管理磁盘可以提高系统的读写速度,减少I/O瓶颈。

资源分配:通过分区和挂载操作,可以灵活地分配和使用磁盘空间。

数据安全:分区和逻辑卷管理可以帮助我们实现数据的隔离和备份,从而提高数据安全性。

系统维护:定期检查和调整磁盘使用情况,可以预防潜在的系统问题。

如何有效管理CentOS系统中的磁盘空间?-图2
(图片来源网络,侵权删除)

三、查看磁盘信息

在磁盘管理之前,了解系统中的磁盘情况是非常重要的,以下是几个常用的命令:

lsblk命令

lsblk命令列出系统中的所有块设备,包括磁盘、分区和挂载点等信息。

lsblk

输出示例:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0  20G  0 disk
├─sda1   8:1    0  1G  0 part /boot
└─sda2   8:2    0  19G  0 part
  ├─centosroot 253:0    0  17G  0 lvm  /
  └─centosswap 253:1    0  2G  0 lvm  [SWAP]

fdisk l命令

fdisk l命令查看磁盘分区表的详细信息。

sudo fdisk l /dev/sda

输出示例:

如何有效管理CentOS系统中的磁盘空间?-图3
(图片来源网络,侵权删除)
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x12345678
Device     Boot    Start       End   Sectors Size Id Type
/dev/sda1  *        2048    2099199   2097152   1G 83 Linux
/dev/sda2        2099200   41943039  39843840  19G 8e Linux LVM

df命令

df命令用于查看文件系统的磁盘空间使用情况。

df h

输出示例:

Filesystem      Size  Used Avail Use% Mounted on
/dev/mapper/centosroot 17G  4.5G 12G  28% /
devtmpfs        636M     0  636M   0% /dev
tmpfs           640M     0  640M   0% /dev/shm
tmpfs           640M  8.0K  640M   1% /run
tmpfs           640M     0  640M   0% /sys/fs/cgroup
tmpfs            32G     0   32G   0% /tmp
/dev/sda1       1.0G  123M  877M  13% /boot

du命令

du命令用于检查特定目录的磁盘使用情况。

du sh /var/log

输出示例:

1、2G    /var/log

lsblk命令

lsblk命令以树状结构显示所有块设备及其挂载点。

lsblk f

输出示例:

NAME   FSTYPE LABEL    UUID                                FSAVAIL FSUSE% MOUNTPOINT
sda                                                     
├─sda1 vfat         EFD1234567890ABCDEF1234567890ABCDEF /boot     
└─sda2 ext4         centosroot eacfbdcedeef4567aabbccedefg1234 /

parted命令

parted命令适用于大于2TB的大容量磁盘,支持GPT磁盘标签。

sudo parted /dev/sdb

进入parted交互界面后,输入以下命令查看分区信息:

print

输出示例:

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number  Start   End     Size    File system     Name     Flags
 1      1049kB  537MB   537MB   fat32                 boot,esp
 2      537MB   21.5GB  21.0GB

四、磁盘分区

磁盘分区是将一个物理磁盘划分为多个逻辑分区的过程,在CentOS中,我们可以使用fdiskparted命令进行磁盘分区。

1. fdisk命令分区(适用于小于2TB的磁盘)

假设要对新添加的磁盘/dev/sdb进行分区。

sudo fdisk /dev/sdb

操作步骤:

输入n创建新分区。

选择分区类型(p为主要分区,e为扩展分区),输入分区号

按回车键接受默认的起始扇区,然后输入分区大小(可以用+size的方式指定分区大小,如+10G表示分区大小为10GB)。

最后输入w保存分区表并退出。

2. parted命令分区(适用于大于2TB的磁盘)

假设要对/dev/sdc磁盘进行分区。

sudo parted /dev/sdc

操作步骤:

输入mklabel gpt创建GPT磁盘标签,适用于大容量磁盘。

输入mkpart primary 0% 50%创建一个从磁盘开始的0%位置到50%位置的主分区。

输入print查看分区信息。

输入quit退出parted。

五、文件系统格式化

创建分区后,我们需要对分区进行格式化,以便在上面存储文件,CentOS支持多种文件系统,如ext4、xfs等,以下是格式化分区的命令:

格式化为ext4文件系统

假设已经创建了分区/dev/sdb1,要将其格式化为ext4文件系统。

sudo mkfs.ext4 /dev/sdb1

输出解释:格式化过程中会显示一些进度信息,格式化完成后,分区就可以用于存储文件了。

格式化为xfs文件系统

假设要将分区/dev/sdb2格式化为xfs文件系统。

sudo mkfs.xfs /dev/sdb2

特点:xfs是一种高性能的日志文件系统,适用于大容量磁盘和高并发读写的场景。

六、磁盘挂载与卸载

创建文件系统后,需要将其挂载到目录才能使用,以下是手动和自动挂载的方法:

手动挂载磁盘分区

假设已经格式化了/dev/sdb1分区为ext4文件系统,要将其挂载到/mnt/data目录下。

sudo mkdir p /mnt/data
sudo mount /dev/sdb1 /mnt/data

解释:首先创建挂载点目录/mnt/data(如果不存在),然后使用mount命令进行挂载,挂载完成后,可以通过访问/mnt/data目录来读写/dev/sdb1分区上的文件。

2. 自动挂载(通过修改/etc/fstab文件)

编辑/etc/fstab文件,添加一行类似以下内容:

/dev/sdb1 /mnt/data ext4 defaults 0 0

解释:/dev/sdb1是要挂载的分区,/mnt/data是挂载点,ext4是文件系统类型,defaults是挂载选项,第一个0表示是否在备份时检查文件系统(0为不检查),第二个0表示是否在启动时进行fsck(0为不进行),保存后,下次系统启动时,/dev/sdb1分区会自动挂载到/mnt/data目录。

卸载磁盘分区

假设要卸载已经挂载的分区/dev/sdb1

sudo umount /mnt/data

注意事项:在卸载分区前,要确保没有程序正在访问该分区上的文件,否则可能会导致数据丢失或程序出错。

七、逻辑卷管理(LVM)

逻辑卷管理(Logical Volume Manager, LVM)是一种灵活的磁盘管理方式,可以将多个物理磁盘或者分区组合成一个逻辑卷,也可以将一个逻辑卷分割成多个逻辑卷,以下是LVM的基本操作:

创建物理卷(PV)

假设已经有分区/dev/sdb2,要将其创建为物理卷。

sudo pvcreate /dev/sdb2

可以使用pvdisplay命令查看物理卷信息:

sudo pvdisplay

输出示例:

 Physical volume "/dev/sdb2" changed
 1 physical volume(s) in no volume group(s)

创建卷组(VG)

假设将物理卷/dev/sdb2添加到名为data_vg的卷组中。

sudo vgcreate data_vg /dev/sdb2

可以使用vgdisplay命令查看卷组信息:

sudo vgdisplay

输出示例:

 Volume group "data_vg" successfully created

创建逻辑卷(LV)并格式化

假设要从卷组data_vg中创建一个名为data_lv的逻辑卷,大小为10GB,并将其格式化为ext4文件系统。

sudo lvcreate L 10G n data_lv data_vg
sudo mkfs.ext4 /dev/data_vg/data_lv

可以使用lvdisplay命令查看逻辑卷信息:

sudo lvdisplay

输出示例:

 Logical volume "data_lv" created.

挂载逻辑卷

假设将逻辑卷/dev/data_vg/data_lv挂载到/mnt/data_lv目录下。

sudo mkdir p /mnt/data_lv
sudo mount /dev/data_vg/data_lv /mnt/data_lv

解释:首先创建挂载点目录/mnt/data_lv(如果不存在),然后使用mount命令进行挂载,挂载完成后,可以通过访问/mnt/data_lv目录来读写逻辑卷上的文件。

5. 自动挂载逻辑卷(通过修改/etc/fstab文件)

编辑/etc/fstab文件,添加一行类似以下内容:

/dev/data_vg/data_lv /mnt/data_lv ext4 defaults 0 0

解释:/dev/data_vg/data_lv是要挂载的逻辑卷,/mnt/data_lv是挂载点,ext4是文件系统类型,defaults是挂载选项,第一个0表示是否在备份时检查文件系统(0为不检查),第二个0表示是否在启动时进行fsck(0为不进行),保存后,下次系统启动时,逻辑卷会自动挂载到指定目录。

扩展逻辑卷的大小

假设要将逻辑卷data_lv扩展到20GB。

sudo lvextend L +10G /dev/data_vg/data_lv
sudo resize2fs /dev/data_vg/data_lv

解释:首先使用lvextend命令扩展逻辑卷的大小,然后使用resize2fs命令调整文件系统的大小,注意,扩展逻辑卷前需要确保卷组中有足够的空闲空间。

删除逻辑卷、卷组和物理卷

假设要删除逻辑卷data_lv、卷组data_vg和物理卷/dev/sdb2,先卸载逻辑卷:

sudo umount /mnt/data_lv

删除逻辑卷:

sudo lvremove /dev/data_vg/data_lv

删除卷组:

sudo vgremove data_vg

删除物理卷:

sudo pvremove /dev/sdb2

注意事项:删除操作是不可逆的,执行前请务必确认不再需要这些数据,删除卷组和物理卷前需要确保没有逻辑卷在使用它们,如果要删除逻辑卷,必须先将其卸载并从卷组中移除,删除物理卷前需要确保没有卷组在使用它,在进行删除操作前,请务必仔细确认不再需要这些数据,以免误删导致数据丢失。

分享:
扫描分享到社交APP
上一篇
下一篇