Linux磁盘管理详解

简介: Linux磁盘管理详解

本文基于Centos7.9操作系统完成!

磁盘是一种存储设备,所有的从操作系统和应用程序都安装在磁盘上。

1.磁盘分类

一般应用于服务器的磁盘主要有三种:

  • SATA磁盘
  • SAS磁盘
  • SSD磁盘
  • 我目前工作的地方也是用这三种

2.磁盘容量

  • 磁盘结构一般包括磁道、柱面、扇区、磁头。
  • 磁盘容量计算如下:
一个磁道大小=512字节x扇区数
一个柱面大小=磁道大小x磁道数
一个磁盘大小=柱面大小x磁头数
  • 查看系统磁盘信息命令如下:
[root@centos7 ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000e4d7e

3.磁盘分区

  • Linux系统一般分为三个分区:boot分区、swap分区、/(根)分区
  • 主分区编号为1-4,逻辑分区编号从5开始
  • 生产环境中分区建议:
最少也要有boot分区、swap分区、/(根)分区三个分区
建议swap分区为内存的2倍,如果内存大于16G,则设置为16G
/boot分区用来存储引导文件和内核文件,建议设置100~200M

4.磁盘分区工具

4.1.fdisk分区工具

  • 针对磁盘容量小于2T的磁盘,通过实例进行讲解
  • 由于我的系统是中文,所以看起来就很直观,所有的选项不了解可以通过输入m查看
  • 输入的选项依次为:n——p——1——回车——回车——w
[root@centos7 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xfb956fa6 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
  • 完成分区后还要进行格式化和挂载才能使用
[root@centos7 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242624, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
  • 创建一个目录/data,将分区挂载到/data目录下
[root@centos7 ~]# mkdir /data
[root@centos7 ~]# mount /dev/sdb1 /data
[root@centos7 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 979M     0  979M    0% /dev
tmpfs                    991M     0  991M    0% /dev/shm
tmpfs                    991M  9.6M  981M    1% /run
tmpfs                    991M     0  991M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  2.2G   15G   13% /
/dev/sda1               1014M  138M  877M   14% /boot
tmpfs                    199M     0  199M    0% /run/user/0
/dev/sdb1                 20G   33M   20G    1% /data
# 可以看到最下边的dev/sdb1已经挂载到/data目录下

4.2.parted分区工具

  • 针对磁盘容量等于大于2T的磁盘进行分区,过程如下:
# 将磁盘转换成gpt格式
[root@centos7 ~]# parted /dev/sdc mklabel gpt
# 设置主分区范围
[root@centos7 ~]# parted /dev/sdc mkpart primary 0 100%   
# 打印分区表信息
[root@centos7 ~]# parted /dev/sdc p                                       
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 
Number  Start   End     Size    File system  Name     标志
 1      17.4kB  21.5GB  21.5GB               primary
# 进行格式化
[root@centos7 ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1              isize=512    agcount=4, agsize=1310718 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242871, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@centos7 ~]# mkdir /data2
[root@centos7 ~]# mount /dev/sdc1 /data2
[root@centos7 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 979M     0  979M    0% /dev
tmpfs                    991M     0  991M    0% /dev/shm
tmpfs                    991M  9.6M  981M    1% /run
tmpfs                    991M     0  991M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  2.2G   15G   13% /
/dev/sda1               1014M  138M  877M   14% /boot
tmpfs                    199M     0  199M    0% /run/user/0
/dev/sdb1                 20G   33M   20G    1% /data
/dev/sdc1                 20G   33M   20G    1% /data2
# 可以看到新建的sdc1也已经挂载成功

5.RAID技术简述

  • RAID叫做独立冗余磁盘阵列系统。是将多块物理磁盘按不同的技术方式组合在一起形成一个磁盘组,在逻辑上形成一块大容量磁盘。
  • RAID的设置在服务器开机过程中,注意要求你按什么键进入设置,(也有一些服务器需要先进BIOS设置)因为每一种设置都不怎么相同,这里就不说了。
  • RAID可分为基于软件的RAID和基于硬件的RAID;前者很少用了,后者需要服务器上安装RAID卡。
  • RAID级别可分为RAID{0、1、2、3、4、5、6、7、10}几个级别;我那里用的有0、1、5、6这几种。
  • RAID的优点:提升磁盘读写性能;提高数据存储量;提升数据安全性
  • 常用RAID的优缺点:
RAID0:读写速度最快;没有冗余;适用对冗余要求不高的场景
RAID1:100%冗余;读写性能一般,成本高;用于比较重要的场景(如系统安装)
RAID5:读性能较好,有一定冗余,允许坏一块盘;写性能不高;一般业务可用
RAID10:读写速度快,100%冗余;成本很高;适用比较重要业务

6.磁盘管理命令

6.1.查看系统磁盘使用情况-df

  • df:用于查看系统磁盘空间使用情况
  • 常用选项如下:
-h:以可读的格式输出磁盘分区使用情况
-k:以KB为单位
-m:以MB为单位
-i:显示磁盘分区文件系统的inode信息
-T:显示磁盘分区文件系统的类型
  • 例:显示当前系统磁盘分区使用情况,以MB为单位
[root@centos7 ~]# df -hm
文件系统                1M-块  已用  可用 已用% 挂载点
devtmpfs                  979     0   979    0% /dev
tmpfs                     991     0   991    0% /dev/shm
tmpfs                     991    10   981    1% /run
tmpfs                     991     0   991    0% /sys/fs/cgroup
/dev/mapper/centos-root 17394  2169 15226   13% /
/dev/sda1                1014   138   877   14% /boot
tmpfs                     199     0   199    0% /run/user/0
/dev/sdb1               20469    33 20437    1% /data
/dev/sdc1               20470    33 20438    1% /data2

6.2.显示磁盘空间占用情况-du

  • du:用于显示文件或目录占用磁盘空间的情况
  • 常见选项如下:
-h:以可读格式输出文件或目录大小
-b:以字节为单位输出文件或目录大小
-吗:以MB为 单位输出文件或目录大小
-s:显示文件或整个目录大小,单位为KB
--exclude=<文件名或目录>:忽略指定的文件或目录
  • 例:显示根目录的大小,忽略/usr目录
[root@centos7 ~]# du -sh / --exclude=/usr
343M  /

6.3.fdisk与parted

  • 这两个命令就不继续说了
  • 常用fdisk -l来查看分区信息

6.4.文件系统挂载命令-mount

  • mount:用于挂在文件系统到指定的挂载点
mount 选项 文件系统 挂载点
  • 上面的内容里也有举例,就不多说了,详细的内容请查看专门的mount内容讲解

加油!奥里给!!!

目录
相关文章
|
4天前
|
存储 监控 安全
《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)
《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)
32 1
|
4天前
|
Prometheus 运维 监控
linux磁盘I/O监控
【4月更文挑战第1天】在Linux中监控磁盘I/O性能至关重要,工具如iostat(-d显示磁盘统计)、iotop(进程级I/O查看)、vmstat、/proc/diskstats(详细统计信息)、Node Exporter(Prometheus集成)和Zabbix(动态监控与LLD)提供关键指标,如IOPS、吞吐量、利用率和服务时间,助力系统优化和故障排查。
48 4
linux磁盘I/O监控
|
4天前
|
Linux Shell C语言
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
【Shell 命令集合 磁盘维护 】Linux 分区管理的工具 sfdisk命令使用教程
33 1
|
4天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
46 1
|
4天前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
33 1
|
4天前
|
监控 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
【Shell 命令集合 磁盘维护 】Linux 交换分区的特殊文件或设备 swapon命令使用指南
42 1
|
4天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
4天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
31 0
|
4天前
|
IDE Linux Shell
linux查看硬盘是否挂载--和磁盘相关命令
linux查看硬盘是否挂载--和磁盘相关命令
52 0
|
4天前
|
Ubuntu Linux 数据库
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器