当前位置: 首页 > article >正文

linux-系统管理与监控-磁盘管理

Linux 系统管理与监控:磁盘管理

一、概述

在 Linux 系统中,磁盘管理是系统管理员日常维护的一个重要部分。合理管理和监控磁盘使用情况,可以确保系统的稳定运行,并有效利用存储资源。磁盘管理涉及的内容包括查看磁盘信息、创建和管理分区、挂载文件系统、监控磁盘使用情况、LVM(逻辑卷管理)等。


二、磁盘信息查看

在 Linux 系统中,可以使用多种命令查看系统的磁盘信息,如磁盘设备列表、分区信息、文件系统使用情况等。

1. lsblk 命令

lsblk(List Block Devices)用于列出所有的块设备,显示磁盘及其分区的层级结构。

lsblk

该命令的输出列出了所有磁盘及其分区、挂载点等信息。常用选项:

  • -f:显示文件系统类型。
  • -l:以列表格式显示,不按树状结构排列。

例如,显示文件系统类型:

lsblk -f

2. fdisk 命令

fdisk 是用于查看和管理磁盘分区的经典命令。通过 fdisk -l 可以列出所有磁盘及其分区信息。

fdisk -l

fdisk 还可以用来对磁盘进行分区操作,后文会详细介绍。

3. df 命令

df(Disk Free)命令用于显示文件系统的使用情况,包括已用空间、可用空间和挂载点信息。

df -h
  • -h:以人类可读的形式(KB、MB、GB)显示磁盘使用情况。

该命令可以帮助管理员监控磁盘的使用状态,并及时发现空间不足的问题。

4. du 命令

du(Disk Usage)命令用于显示指定目录下的磁盘使用情况,常用于检查哪些文件或目录占用了大量的磁盘空间。

du -sh /path/to/directory
  • -s:仅显示总计。
  • -h:以人类可读的格式显示结果。

例如,查看 /var 目录的使用情况:

du -sh /var

5. parted 命令

parted 是一个强大的磁盘分区工具,可以用来查看磁盘分区表以及进行磁盘分区操作。使用 parted 查看磁盘信息:

parted /dev/sda print

这个命令将打印出 /dev/sda 磁盘的分区信息。


三、磁盘分区管理

磁盘分区是磁盘管理的重要组成部分,通过分区可以将物理磁盘划分为若干逻辑部分,每个部分可以被单独格式化、挂载或管理。常用的分区工具包括 fdiskparted

1. 使用 fdisk 进行分区

fdisk 主要用于管理 MBR(Master Boot Record)分区表的磁盘。使用 fdisk 对磁盘进行分区的基本步骤如下:

fdisk /dev/sda

进入交互式命令后,常见操作有:

  • n:新建分区。
  • d:删除分区。
  • p:打印分区表。
  • w:保存并退出。
  • q:不保存退出。

例如,给磁盘 /dev/sda 添加新分区的过程:

  1. 输入 n 创建一个新的分区。
  2. 输入 p 表示创建主分区。
  3. 输入分区号(通常是 1、2、3、4)。
  4. 设置分区的起始和结束扇区(可以使用默认值)。
  5. 输入 w 保存并退出。

2. 使用 parted 进行分区

parted 是一个功能更强大的分区工具,支持 GPT(GUID Partition Table)和 MBR 分区表,并能处理 2TB 以上的大磁盘。使用 parted 对磁盘进行分区的步骤如下:

parted /dev/sda

parted 交互式终端中,常用命令包括:

  • mklabel gpt:为磁盘创建 GPT 分区表。
  • mkpart:创建新分区。
  • print:打印分区表。
  • quit:退出。

例如,为 /dev/sda 创建一个 GPT 分区表,并分一个 100GB 的分区:

parted /dev/sda mklabel gpt
parted /dev/sda mkpart primary ext4 0% 100GB

3. 格式化分区

创建分区后,必须对其进行格式化才能使用。mkfs 命令用于格式化分区。例如,格式化为 ext4 文件系统:

mkfs.ext4 /dev/sda1

其它文件系统的格式化命令如下:

  • mkfs.xfs:格式化为 XFS 文件系统。
  • mkfs.vfat:格式化为 FAT 文件系统。

四、挂载和卸载文件系统

磁盘分区创建并格式化后,需要将其挂载到文件系统中才能使用。挂载操作将设备关联到文件系统中的一个目录。

1. 手动挂载

使用 mount 命令可以手动挂载分区到指定目录。例如,将 /dev/sda1 挂载到 /mnt 目录:

mount /dev/sda1 /mnt

查看当前所有挂载的文件系统:

mount

2. 自动挂载

为了在系统重启时自动挂载分区,可以将挂载信息写入 /etc/fstab 文件。fstab 文件存储了系统启动时自动挂载的设备和对应的挂载点。

/etc/fstab 文件的格式如下:

<设备>      <挂载点>   <文件系统类型>  <选项>  <dump>  <pass>
/dev/sda1    /mnt        ext4           defaults 0 2

在编辑 fstab 文件后,可以通过以下命令立即重新挂载:

mount -a

3. 卸载文件系统

当不再需要使用某个挂载的分区时,可以使用 umount 命令将其卸载。例如,卸载 /mnt

umount /mnt

如果设备正忙而无法卸载,可以使用 lsof 命令查看占用该设备的进程:

lsof /mnt

五、LVM(逻辑卷管理)

LVM 是 Linux 系统中的逻辑卷管理工具,它允许系统管理员对物理磁盘进行抽象,创建更加灵活的分区系统。与传统的分区不同,LVM 提供了更高的灵活性,允许在线调整磁盘大小、创建快照等功能。

1. LVM 组件

LVM 由以下几个基本组件组成:

  • PV(Physical Volume):物理卷,LVM 的基础单元,可以是整个磁盘或磁盘分区。
  • VG(Volume Group):卷组,将多个物理卷整合成一个逻辑池,供逻辑卷使用。
  • LV(Logical Volume):逻辑卷,类似于传统分区,但可以动态调整大小。

2. 创建 LVM 的基本步骤

  1. 创建物理卷(PV)

    pvcreate /dev/sda1
    
  2. 创建卷组(VG)

    vgcreate vg_data /dev/sda1
    
  3. 创建逻辑卷(LV)

    创建一个大小为 10GB 的逻辑卷:

    lvcreate -L 10G -n lv_data vg_data
    
  4. 格式化逻辑卷

    将逻辑卷格式化为 ext4 文件系统:

    mkfs.ext4 /dev/vg_data/lv_data
    
  5. 挂载逻辑卷

    将逻辑卷挂载到 /mnt

    mount /dev/vg_data/lv_data /mnt
    

3. 扩展逻辑卷

如果逻辑卷空间不足,可以在线扩展逻辑卷。首先扩展逻辑卷的大小,然后扩展文件系统:

lvextend -L

 +5G /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data

六、磁盘监控

为了保证系统的稳定运行,管理员需要定期监控磁盘的使用情况,及时清理不必要的文件和释放磁盘空间。

1. 监控磁盘使用情况

使用 df 命令查看每个文件系统的使用率:

df -h

使用 du 命令可以查看目录下的文件大小,帮助发现哪些文件或目录占用了大量磁盘空间。

du -sh /var/*

2. I/O 性能监控

iostat 命令用于监控磁盘的 I/O 性能,显示磁盘读写速率、CPU 使用率等信息。

iostat -x

iotop 是一个类似于 top 的工具,用于实时显示系统中哪些进程正在占用 I/O 资源。

iotop

七、总结

磁盘管理是 Linux 系统管理中的重要组成部分。管理员通过 lsblkfdiskparted 等工具可以查看和管理磁盘分区,通过 mountumount 实现文件系统的挂载与卸载,并通过 LVM 提供灵活的存储管理。同时,通过磁盘使用情况和 I/O 性能监控,可以帮助管理员优化磁盘资源,确保系统高效稳定运行。


http://www.kler.cn/news/312386.html

相关文章:

  • mysql学习教程,从入门到精通,SQL DISTINCT 子句 (16)
  • DeDeCMS靶场漏洞复现
  • 前端vue-父传子
  • 2024年亲测好用的四大在线翻译工具大盘点!
  • keras和tensorflow可用的一组版本
  • 【百日算法计划】:每日一题,见证成长(013)
  • MySQL练手题--获得最近第二次的活动(困难)
  • 【JVM】符号引用 和 直接引用
  • 中国计算机学会(CCF)推荐中文科技期刊目录(2019年)
  • nacos报Client not connected, current status:STARTING
  • Stable Diffusion绘画 | ControlNet应用-IP-Adapter:堪比 Midjourney 垫图
  • Ubuntu在CMakeLists.txt中指定OpenCV版本的参考方法
  • 【QT基础】创建项目项目代码解释
  • Python和Java的自动化测试技术研究及应用探索
  • Linux Vim编辑器常用命令
  • 【源码+文档+调试讲解】健身房管理平台小程序
  • 【Linux修行路】网络套接字编程——UDP
  • 828华为云征文 | 云服务器Flexus X实例:one-api 部署,支持众多大模型
  • 信息化时代下的高标准农田灌区:变革与机遇并存
  • 使用Docker Compose一键部署
  • 105.游戏安全项目-基址的技术原理-分析技巧
  • 游戏性能优化
  • 硬件工程师笔试面试学习汇总——器件篇目录
  • 梳理归档文档
  • 鸿蒙开发之ArkUI 界面篇 十四 个人中心导航界面
  • 数据结构 ——— 常见的时间复杂度计算例题(上篇)
  • 使用Spring Boot和Spring WebFlux实现响应式打字效果
  • 使用 Python 高分解决 reCAPTCHA v3 的指南
  • orangepi部署web环境
  • 基于SpringBoot的考研资讯平台设计与实现