Linux的磁盘管理

 1.磁盘结构

1.1硬盘的物理结构

盘片:硬盘有多个盘片,每盘片有2面(正反两面)

磁头:每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量

1.2硬盘的数据结构

  • 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大) 存放数据的最小单位 512字节

  • 磁道:同一盘片不同半径的同心圆

  • 柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)

1.4 硬盘接口的类型

硬盘接口类

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

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

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

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

  • M.2:

  • 光纤接口

服务器硬盘大小

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

SFF:Small Form Factor 小形状因数,2.5寸,注意不同于2.5寸的笔记本硬盘

L、S分别是大、小的意思,目前服务器或者盘柜采用sff规格的硬盘主要是考内虑增大单位密度内的磁盘容量、增强散热、减小功耗

2.MBR与磁盘分区

windows 当中是可以不分区的

linux 当中一定要分区 才可以使用硬盘

2.1 为什么分区

  • 优化I/O性能 (读写)

  • 实现磁盘空间配额限制

  • 提高修复速度

  • 隔离系统和程序

  • 安装多个OS

  • 采用不同文件系统

mbr 分区 (老的技术)

gpt分区(新技术)

MBR: 只能支持2T 以下 的硬盘  

GPT: 可以支持 2T 以上的硬盘  

MBR: 主引导记录, 是硬盘上的第一个扇区, 想要读数据得从这个扇区开始

每个扇区一共 512 字节

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

后 64 字节 分区表 表明了 分区的范围, 分区从哪里到那里结束

最后 两字节 代表MBR 结束位

MBR 分区只可以分4个分区, 一个分区表要占 16字节

66 /16 =4 ............ 2

分区分类

主分区: 可以直接使用 , 安装操作系统 存储文件 等

扩展分区:不可以直接使用, 需要再 划分逻辑分区, 让分区超过4个

逻辑分区:可以直接使用, 存储文件

扩展分区是特殊的主分区

主分区的序号为 1-4

逻辑分区的序号 从5 开始

2.2 MBR分区

MBR磁盘采用MBR分区表,由于MBR用4个字节存储分区总扇区数,最大可以表示2的32次方,一个扇区512字节,那么分区的容量或者磁盘容量都不能超过2TB。

常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而 扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般 用来安装操作系统,扩展分区则多用来存储文件数据

MBR(主引导记录):Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T

  1. 446bytes: boot loader 启动相关

  2. 64bytes:分区表,其中每16bytes标识一个分区 4 主分区 *16=64

  3. 2bytes: 55AA

硬盘分区有 3 种,分别是主分区、扩展分区和逻辑分区。

对于一个硬盘来说,主分区至少有 1 个,最多有 4 个;

扩展分区可以没有,最多只能有 1 个,且主分区+扩展分区总共不能超过 4 个;

逻辑分区可以有若干个。

主分区可以直接存储数据

扩展分区不可以直接存储数据,还需要再分区

2.3 GPT分区

GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)

使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动

3. 文件系统

文件系统的组成

  • 内核中的模块:ext4, xfs, vfat
    dumpe2fs  /dev/sdb1
    查看ext文件系统

       xfs_info  /dev/sda1
       查看xfs文件系统

  • Linux的虚拟文件系统:VFS

  • 用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

超级块(super block) 负责描述 当前这个分区有哪些块组, 从哪里开始从哪里结束

块组描述符表(GDT)ext文件系统每一个块组信息使用32字节描述,这32个字节称为块组描述符,所有块组的块组描述符组成块组描述符表GDT(group descriptor table)。虽然每个块组都需要块组描述符来记录块组的信息和属性元数据,但是不是每个块组中都存放了块组描述符。将所有块组的块组信息组成一个GDT保存,并将该GDT存放于某些块组中,类似存放superblock和备份superblock的块

块位图(block bitmap): 描述此块是否使用 0 未使用 1使用

节点位图 (inode bitmap): inode节点 位图 0 未使用 1使用


常见的硬件设备在/dev目录下

[root@localhost data]#ll /dev/sd*

#此处的8代表设备的类型   8后的数字代表第几类的第几块设备

brw-rw---- 1 root disk 8,  0 2月  21 19:27 /dev/sda

3.1 文件系统:

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

ext4 linux 常见的 -------- ntfs windows

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

 cat /proc/filesystems  //查看当前系统支持的 文件类型

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

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

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

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

3.1.2 swap

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

3.1.3FAT16、FAT32、

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

3.1.4NTFS(xfs)

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

3.1.5EXT4

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

3.1.6 JFS(要收费)

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

1EB=1024PB

1PB=1024TB

1TB=1024G

4.分区工具

lsblk 列出块设备
fdisk 管理MBR分区
gdisk 管理GPT分区

parted 高级分区操作,可以是交互或非交互方式
partprobe 重新设置内存中的内核分区表版本,适合于除了CentOS 6 以外的其它版本 5,7,8

 

4.1 fdisk

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

fdisk [磁盘设备]

  • m 打印出帮助菜单

 

  • p 打印出当前分区表

 

  • n 新建一个分区

 e   extended :扩展区

  • d 删除一个分区

 

  • t 改变分区的属性,系统ID

 

  • w 保存

 

  • q 不保存退出

  •  创建后分区如果分区未出现可以使用 partprobe 刷新检测分区表

4.2 blkid

可以查看块设备属性信息(UUID)

 

4.3mkfs

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

-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 关闭指定

 

4.5文件系统检测和修复

fsck.FS_TYPE

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

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

5. 挂载与解挂载

5.1mount

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

device:指明要挂载的设备

  • 设备文件:例如:/dev/sda5

  • 卷标:-L 'LABEL', 例如 -L 'MYDATA'

  • UUID: -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'

  • 伪文件系统名称:proc, sysfs, devtmpfs, configfs

    mountpoint:挂载点目录必须事先存在,建议使用空目录

挂载规则:

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

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

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

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

 

查看是否为挂载点
# findmnt  查看 设备的详细信息

永久挂载

需要 将文件写入 /etc/fstab

UUID 可以确保唯一

 :r!blkid /dev/sdb1
##使用vi编辑器功能读入UUID

5.2解挂载

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

5.3 df

查看文件系统

df -Th

显示文件系统内容 包括文件系统类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值