磁盘管理

磁盘管理

设备类型:

块设备:block,存取单位“块”,磁盘

字符设备:char,存取单位“字符”,键盘

 /dev/sda1
 #d固态
 #sda1   第一块磁盘 1:分区
 /dev/hda1#机械硬盘
 /dev/vd#虚拟磁盘

使用磁盘三步:

1、分区——方便管理

2、格式化=安装文件系统——方便用户使用

3、挂载

1、磁盘结构

物理结构:

名称介绍
盘片 硬盘有多个盘片,每盘片有2面(正反两面)
磁头 每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量

数据结构:

名称介绍
扇区 盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大)存放数据的最小单位,512字节
磁道 同一盘片不同半径的同心圆
柱面 不同盘片相同半径构成的圆(柱面和磁道数量相同)

04.d03z.002

存储容量:

  • 硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数

    1柱面=512 * 扇区数/磁头数×磁道=51263255=7.84M

  • 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

接口类型:参考于百度百科(https://baike.baidu.com/item/%E7%A1%AC%E7%9B%98%E6%8E%A5%E5%8F%A3%E7%B1%BB%E5%9E%8B/1490829

有IDE、SATA、SCSI、光纤通道、M2-SATA、M2-Nvme和SAS七种。

  • IDE:133MB/s,并行接口,早期家用电脑

  • SCSI:640MB/s,并行接口,早期服务器

  • SATA:6Gbps,SATA数据端口与电源(长的电源,数据线短的)端口是分开的,即需要两条线,一条数据线,一条电源线

  • SAS:6Gbps,SAS是一整条线,数据端口与电源端口是一体化的,SAS中是包含供电线的,而SATA中不包含供电线。SATA标准其实是SAS标准的一个子集,二者可兼容,SATA硬盘可以插入SAS主板上,反之不行。

  • M.2:第一是速度方面很快。M.2接口有两种类型:Socket 2(B key——ngff)和Socket 3(M key——nvme),其中Socket2支持SATA、PCI-E X2接口,而如果采用PCI-E ×2接口标准,最大的读取速度可以达到700MB/s,写入也能达到550MB/s。而其中的Socket 3可支持PCI-E ×4接口,理论带宽可达4GB/s。第二个是相比于MSATA的固态硬盘,它的体积更小。

  • 光纤接口:Fiber Channel,和SCSI接口一样光纤通道最初也不是为硬盘设计开发的接口技术,是专门为网络系统设计的,但随着存储系统对速度的需求,才逐渐应用到硬盘系统中。光纤通道硬盘是为提高多硬盘存储系统的速度和灵活性才开发的,它的出现大大提高了多硬盘系统的通信速度。光纤通道的主要特性有:热插拔性、高速带宽、远程连接、连接设备数量大等。

硬盘类型:

(HDD)机械硬盘:Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。

(SSD)固态硬盘:Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。

硬盘有两种大小:

LFF:3.5寸,一般见到的那种台式机硬盘的大小。

SFF:Small Form Factor 小形状因数,2.5寸,注意不同于2.5寸的笔记本硬盘L、S分别是大、小的意思,目前服务器或者盘柜采用sff规格的硬盘主要是考内虑增大单位密度内的磁盘容量、增强散热、减小功耗。

2、MBR与磁盘分区

2.1 分区的原因

  • 优化读写性能

  • 实现磁盘空间配额限制

  • 提高修复速度

  • 隔离系统和程序

  • 安装多个os(operatingsystem,操作系统)

  • 采用不同文件系统(文件系统负责管理文件)

分区优点:

  1. 提高读写性能

  2. 隔离系统程序

分区缺点:

  1. 分完区以后就固定了,无法扩容

  2. 必须是磁盘上连续的空间

2.2 MBR(老)与GPT(新)

MBR只支持,2T以下的硬盘(使用fdisk)

GPT可支持,2T以上的硬盘(使用jdisk)

 #分区查询
 fdisk -l #查询磁盘情况
 fdisk -l #设备名  /dev/sd{a..z}

主引导记录(MBR:master boot bootcord )

是硬盘上第一个扇区,想要读数据,要从次扇区开始

MBR一共512字节:

前446字节,是开机引导程序,操作系统是装在引导程序,引导硬件找到我们的操作系统;

后64字节分区表,硬盘分区表,表面了分区范围,分区从哪里到哪里结束;

最后两字节代表MBR结束位。(55AA 85 187)

分区表有4个分区记录区,每个分区占16个字节

image-20230727165255889

磁盘分区类型特点序号
主分区 可直接使用,安装操作系统 1-4
扩展分区 不可用直接使用,需要再划分逻辑分区,让分区超过四个 1-4
逻辑分区 可以直接使用,存储文件 5-∞

3、文件系统

是操作系统用于明确存储设备或分区上的文件的使用方法和数据结构;即在存储设备上组织使用文件的 方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进 行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的 存取,安全控制,日志,压缩,加密等。

总结:用来管理(增删改查恢复)文件的程序

iso9600是光驱

复制代码
 [root@192 ~]# cat /proc/filesystems //查看当前系统支持的 文件类型
 nodev   sysfs
 nodev   rootfs
 nodev   ramfs
 nodev   bdev
 nodev   proc
 nodev   cgroup
 nodev   cpuset
 nodev   tmpfs
 nodev   devtmpfs
 nodev   debugfs
 nodev   securityfs
 nodev   sockfs
 nodev   pipefs
 nodev   anon_inodefs
 nodev   configfs
 nodev   devpts
 nodev   hugetlbfs
 nodev   autofs
 nodev   pstore
 nodev   mqueue
 nodev   selinuxfs
     xfs
 nodev   rpc_pipefs
 nodev   nfsd
View Code
复制代码

XFS

XFS:centos7默认的文件系统

ext4是centos6默认的文件系统

  • 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

  • 用优化算法,日志记录对整体文件操作影响非常小

  • 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB(这里才到TB1TB=1024GB

  • 而支持单个文件则达到8EB能以接近裸设备I/O的性能存储

SWAP

swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足。

特点:当内存不足时,将硬盘转换成内存使用,虚拟内存。

FAT16、FAT32

且最大只能支持32GB分区,单个文件也只能支持最大4GB。

NTFS(类似xfs)主流

NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB

EXT4

Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024*1024TB

JFS

主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB

文件系统的修复

修复命令(聊胜于无,简单了解就行)

 fsck.FS_TYPE
 fsck -t FS_TYPE
 -a 自动修复
 -r 交互式修复错误

案例:

复制代码
 #先取消挂载
 [root@centos7 ~]#mount /dev/sdb2 /mnt
 [root@centos7 ~]#cp /etc/fstab /mnt/f1
 [root@centos7 ~]#cp /etc/fstab /mnt/f2
 [root@centos7 ~]#ls /mnt
 f1 f2 lost+found
 [root@centos7 ~]#dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
 1+0 records in
 1+0 records out
 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s
 [root@centos7 ~]#ls /mnt
 [root@centos7 ~]#tune2fs -l /dev/sdb1
 #查看文件系统特性,只显示 前部分
 tune2fs 1.44.6 (5-Mar-2019)
 tune2fs: Bad magic number in super-block while trying to open /dev/sdb2
 [root@centos7 ~]#df
 [root@centos7 ~]#umount /mnt
 [root@centos7 ~]#e2fsck /dev/sdb1 -y
 [root@centos7 ~]#fsck /dev/sdb1 -y 
复制代码

4、分区工具

复制代码
 分区
 fdisk
 cd /sys/class/scsi_host/
 ##刷新背板
 echo "- - -" >/sys/class/scsi_host/host0/scan
 echo "- - -" >/sys/class/scsi_host/host1/scan
 echo "- - -" >/sys/class/scsi_host/host2/scan
 ​
 lsblk
 fdisk /dev/sdb
 partprobe 立即刷新分区
复制代码

4.1 fdisk

格式:fdisk -l [磁盘设备]

fdisk [磁盘设备]

选项功能
-m 打印出菜单
-p 打印出当前分区表
-n 新建一个分区
-d 删除一个分区
-t 改变分区的属性,系统ID
-w 保存
-q 不保存退出
复制代码
 [root@192 ~]# fdisk -l /dev/sda 
 ​
 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
 Units = 扇区 of 1 * 512 = 512 bytes
 扇区大小(逻辑/物理):512 字节 / 512 字节
 I/O 大小(最小/最佳):512 字节 / 512 字节
 磁盘标签类型:dos
 磁盘标识符:0x000a8576
 ​
    设备     Boot      Start         End      Blocks     Id   System
 /dev/sda1   *        2048     2099199    1048576   83   Linux
 /dev/sda2         2099200    83886079    40893440   8e   Linux LVM
 ​
 Device:分区的设备文件名称。
 Boot:是否是引导分区。若是,则有“*”标识。主系统
 Start:该分区在硬盘中的起始位置(柱面数)。
 End:该分区在硬盘中的结束位置(柱面数)。
 Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。
 Id:分区对应的系统 ID 号。83 表示 Linux 中的 XFS 分区或 EXT4 分区、8e 表示 LVM 逻辑卷。LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。
 System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux 操作系统中,分区和格式化的过程是相对独立的
 ​
 ​
 ​
 [root@localhost data]#fdisk /dev/sdb
 欢迎使用 fdisk (util-linux 2.23.2)。
 ​
 更改将停留在内存中,直到您决定将更改写入磁盘。
 使用写入命令前请三思。
 ​
 ​
 命令(输入 m 获取帮助):
 输入 n 后
       p 主分区 e扩展分区  1逻辑分区
       设置分区:1(范围1-4 ,如按回车代表默认值)
       设置分区大小:+20G (指定大小为20G ,回车代表默认使用全部空间)
 ​
 ​
 #####创建后分区如果分区未出现可以使用 partprobe 刷新检测分区表。
View Code
复制代码

4.2 blkid

查看块设备UUID,方便永久挂载

复制代码
 [root@192 ~]# blkid 
 /dev/sda1: UUID="dd924c21-db72-4fc2-bb50-a1b807e11707" TYPE="xfs" 
 /dev/sda2: UUID="seCmIX-Qnsm-936E-LFi7-iycT-aW69-170SMy" TYPE="LVM2_member" 
 /dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
 /dev/mapper/centos-root: UUID="a186c243-8403-4d1e-826a-668de463529f" TYPE="xfs" 
 /dev/mapper/centos-swap: UUID="ad062e10-f14a-4cd6-ae86-963bbcea5829" TYPE="swap" 
View Code
复制代码

4.3 mkfs

创建文件系统(格式化)常用选项

-t {ext2|ext3|ext4|xfs} 指定文件系统类型
-b {1024|2048|4096} 指定块 block 大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i 
-i    # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N  # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m  # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定
复制代码
[root@192 ~]# mkfs         mkfs -t ext4=mkfs.ext4 
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.fat     mkfs.msdos   mkfs.xfs
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.minix   mkfs.vfat


#文件系统检测和修复
fsck.FS_TYPE
fsck -t FS_TYPE

-a 自动修复
-r 交互式修复错误

e2fsck:ext系列文件专用的检测修复工具
xfs_repair:xfs文件系统专用检测修复工具

[root@centos8 ~]#mount /dev/sdb2 /mnt
[root@centos8 ~]#cp /etc/fstab /mnt/f1
[root@centos8 ~]#cp /etc/fstab /mnt/f2
[root@centos8 ~]#ls /mnt
f1 f2 lost+found
[root@centos8 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s
[root@centos8 ~]#ls /mnt
[root@centos8 ~]#tune2fs -l /dev/sdb2
tune2fs 1.44.6 (5-Mar-2019)
tune2fs: Bad magic number in super-block while trying to open /dev/sdb2
[root@centos8 ~]#df
[root@centos8 ~]#umount /mnt
[root@centos8 ~]#e2fsck /dev/sdb2
[root@centos8 ~]#e2fsck /dev/sdb2 -y
View Code
复制代码

4.4 mkswap

swap 是特殊的分区,和普通分区不同

特殊的文件系统,缓解内存不足,为了个别应为程序加内存有点浪费

添加交换分区的空间

mkswap + 分区

swapon +分区 开启 -a 全部

swapoff +分区 关闭 -a 全部

4.5lsblk

[root@localhost ~]#lsblk -d -o name,rota
#查看当前硬盘是什么模式   固态 机械    1 机械 0 固态
NAME ROTA
sda     1
sr0     1

4.6文件系统检测和修复

复制代码
fsck.FS_TYPE
fsck -t FS_TYPE

-a 自动修复
-r 交互式修复错误

e2fsck:ext系列文件专用的检测修复工具
xfs_repair:xfs文件系统专用检测修复工具

[root@centos8 ~]#mount /dev/sdb2 /mnt
[root@centos8 ~]#cp /etc/fstab /mnt/f1
[root@centos8 ~]#cp /etc/fstab /mnt/f2
[root@centos8 ~]#ls /mnt
f1 f2 lost+found
[root@centos8 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=1
#破坏文件系统
1+0 records in
1+0 records out
1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00128317 s, 817 MB/s
[root@centos8 ~]#ls /mnt
[root@centos8 ~]#tune2fs -l /dev/sdb2
tune2fs 1.44.6 (5-Mar-2019)
tune2fs: Bad magic number in super-block while trying to open /dev/sdb2
[root@centos8 ~]#df
[root@centos8 ~]#umount /mnt
[root@centos8 ~]#e2fsck /dev/sdb2
[root@centos8 ~]#e2fsck /dev/sdb2 -y
复制代码
小实验

添加一块新硬盘,因为是第二块,所以显示为“*b”

第一步,分区;

image-20230724122025669

 

image-20230724123032269

 

image-20230724144005426

 

image-20230724154538560

 

image-20230724154610404

 

输入:“w”代表写入磁盘并退出;

第二步,格式化,添加文件系统;

image-20230724183141739

第三步,挂载

image-20230724183212034

image-20230724183411905

image-20230724183521872

之后保存就能够永久挂载了,每次开机都会来这里执行一遍,类似永久。

image-20230724192241342

5、挂载与解挂载

5.1mount

mount [ -t 类型 ] 存储设备 挂载点目录 mount -o loop ISO镜像文件 挂载点目录

挂载规则:

  • 一个挂载点同一时间只能挂载一个设备

  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏

  • 一个设备可以同时挂载到多个挂载点

  • 通常挂载点一般是已存在空的目录

    选项功能
    -t(fstype) 指定要挂载的设备上的文件系统类型,如:ext4,xfs
    -r(readonly) 只读挂载
    -w(read and write) 读写挂载,此为默认设置,可省略
    -n 不更新/etc/mtab,mount不可见
    -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
    -L(LABEL) 以卷标指定挂载设备
    -U(UUID) 以UUID指定要挂载的设备
    -B(--bind) 绑定目录到另一个目录上
    -o(options) (挂载文件系统的选项),多个选项使用逗号分隔

     

 async   异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全
 sync   同步模式,内存更改时,同时写磁盘,安全,但效率低下
 atime/noatime 包含目录和文件
 diratime/nodiratime 目录的访问时间戳
 dev/nodev 是否支持在此文件系统上使用设备文件
 acl/noacl 启用此文件系统上的acl功能
 loop 使用loop设备
 _netdev   当网络可用时才对网络资源进行挂载,如:NFS文件系统
选项功能
rw/ro 是否对挂载的文件系统拥有读写权限,rw 为默认值,表示拥有读写权限;ro 表示只读权限。
async/sync 此文件系统是否使用同步写入(sync)或异步(async)的内存机制,默认为异步 async。
dev/nodev 是否允许从该文件系统的 block 文件中提取数据,为了保证数据安装,默认是 nodev。
auto/noauto 是否允许此文件系统被以 mount -a 的方式进行自动挂载,默认是 auto。
suid/nosuid 设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有。
exec/noexec 设定在文件系统中是否允许执行可执行文件,默认是允许。
user/nouser 设定此文件系统是否允许让普通用户使用 mount 执行实现挂载,默认是不允许(nouser),仅有 root 可以。
defaults 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项。
remount 重新挂载已挂载的文件系统,一般用于指定修改特殊权

5.2解挂载

umount 设备名|挂载点
卸载时:可使用设备,也可以使用挂载点
fuser -v MOUNT_POINT
查看正在访问指定文件系统的进程
fuser -km MOUNT_POINT
终止所有在正访问指定的文件系统的进程

5.3 df

df [OPTION]... [FILE]

复制代码
[root@centos8 ~]#df -Th
Filesystem     Type     Size Used Avail Use% Mounted on
devtmpfs       devtmpfs 887M     0 887M   0% /dev
tmpfs         tmpfs     903M     0 903M   0% /dev/shm
tmpfs         tmpfs     903M  8.7M 894M   1% /run
tmpfs         tmpfs     903M     0 903M   0% /sys/fs/cgroup
/dev/sda2     xfs       100G  2.7G   98G   3% /
/dev/sda3     xfs       50G  1.4G   49G   3% /data
/dev/sda1     ext4     976M 128M 781M  15% /boot
tmpfs         tmpfs     181M     0 181M   0% /run/user/0
[root@centos8 ~]#lsblk -f
NAME   FSTYPE LABEL                     UUID                                 
MOUNTPOINT
sda                                                                            
├─sda1 ext4                               5c2216e3-ae34-444e-aa60-83cbaebb47e7 
/boot
├─sda2 xfs                               f7f53add-b184-4ddc-8d2c-5263b84d1e15 /
├─sda3 xfs                               9a2293a8-9277-4b18-bae1-498e0b9da145 
/data
├─sda4                                                                         
├─sda5 swap                               eebe3bc7-6d52-4ad9-86aa-916f1a123fd4 
[SWAP]
└─sda6                                                                         
sdb 
View Code
复制代码

 

 
posted @   Bacolate  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示