磁盘管理
一、磁盘基础知识
1.0 引入
- 在计算机中保存的文件大都是保存在电脑硬盘中,还可以将文件存储在网盘中,网盘中的文件只能说是用来做备份,并不能像本地硬盘上的数据那样随时使用。
- 学习存储管理的时候主要学习的就是如何对计算机上的硬盘进行管理,目前主流的硬盘主要有两种形态,一种是机械械硬盘
(HDD)
,一种是的固态硬盘(SSD)
1.1 磁盘分类
- 机械硬盘
(HDD)
:传统硬盘,为电脑主要的存储媒介之一。- 由一个或者多个铝制或者玻璃制成的磁性碟片,磁头,转轴,控制电机,磁头控制器,数据转换器,接口和缓存等几个部分组成。
- 机械马达以固定的速度转动磁盘,然后再由机械臂的摆动,让磁头可以读取盘片上的磁性信息,这种工作原理的硬盘我们成为机械硬盘。
- 由于机械硬盘是依靠机械的运动来读写数据的,机械在长时间运转的过程中是会产生一定的损耗,所以机械硬盘虽然理论上寿命很长,但随着时间的变长,机械磨损变大,导致磁头定位的误差变大,从而影响到硬盘的速度,这个就是为什么老电脑开机缓慢,运行卡顿的原因了。
-
固态硬盘
(SSD)
:由多个闪存芯片加主控以及缓存组成的阵列式存储,属于以固态电子存储芯片阵列制成的硬盘。- 固态硬盘依靠主控芯片来将数据的二进制信息写入浮栅晶体管中,以这样的原理实现数据的读取和写入
- 固态硬盘在读取和写入数据的时候完全是依靠数字电路实现的,所以并没有机械硬盘的机械磨损,而且也没有在磁盘上定位读写的延迟,所以固态硬盘的数据读写效率是远远高于机械硬盘的。
- 但是也有一定的缺点,由于浮栅晶体管的设计原理,每次数据的读写,都会让浮栅晶体管所需要的电压更高,一定寿命以后,固态硬盘就会失效。并且固态硬盘如果发生了损坏,数据恢复的难度是大于机械硬盘的,所以为了可靠性,企业目前还是在大量使用机械硬盘的。
1.2 硬盘接口类型
-
个人PC机
-
IDE
:并口,133MB/s -
SATA
:IDE
串行化,串口(一代二代三代)6Gbps -
USB
:串口,480MB/s
-
-
服务器
-
SCSI
:并口,640MB/s -
SAS
:SCSI
串行化 ,串口6Gbps
-
1.3 磁盘设备的命名
-
示例:
/dev/sda2
-
/dev/
:设备文件目录 -
s
:硬件接口类型 -
d
:disk硬盘 -
a
:第一块硬盘(b
第二块c
第三块 以此类推),不同设备 -
2
:第2个分区,同一设备上的不同分区
-
硬件设备 | 文件名称 | 备注 |
---|---|---|
IDE 设备 |
/dev/hd[a-d] |
centos6 及以后中IDE 变为/dev/sd[a-d] |
SCSI/SATA/SAS/USB |
/dev/sd[a-p] |
大部分为该类型 |
软驱 | /dev/fd[0-1] |
|
打印机 | /dev/lp[0-15] |
|
光驱 | /dev/cdrom |
|
鼠标 | /dev/mouse |
|
磁带机 | /dev/st0或/dev/ht0 |
1.4 分区方式
-
MBR
-
使用32位表示扇区数,分区不超过2T(管理的硬盘大小不能超过2T)
-
按柱面进行分区,4个主分区 或 3主分区+1扩展分区(N个逻辑分区)。 扩展分区内部可以逻辑上划分多个区域,但是在分区表中都算在一个分区内
-
如果作为系统盘,必须要设置一个激活分区,用于存放系统的引导文件
-
MBR硬盘分区结构图
-
-
GPT
- 管理硬盘大小不能超过
18EB
,目前人类还没制造出单块这么大的硬盘 - 理论上支持无限分区,在
win10
系统上,最多可以分128个,分区使用64位,使用128位UUID(Universally Unique Identifier)
表示磁盘和分区。GPT
分区表自动备份在头和尾两份。 - 如果作为系统盘,必须要创建一个EFI分区,用于存放系统的引导文件
EFI
部分又可以分为4个区域:EFI
信息区(GPT
头)、分区表、GPT
分区、备份区域
- 管理硬盘大小不能超过
-
MBR
&GPT
比较
分区方式 | 分区大小 | 分区工具 | 分区方式 |
---|---|---|---|
MBR | <2TB |
fdisk |
三个主分区+一个扩展分区(共四个主分区); 一个扩展分区可分为若干个逻辑分区 |
GPT | >2TB (<2TB也可以分) |
gdisk |
128个主分区 |
- 注:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失
扩展:http://www.eassos.cn/jiao-cheng/ying-pan/mbr-vs-gpt.php
二、文件系统基础知识
2.1 文件系统介绍
- 文件系统
(file system)
- 是操作系统用于明确存储设备(常见的是磁盘,也有基于
NAND Flash
的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。 - 文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。
- 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
- 是操作系统用于明确存储设备(常见的是磁盘,也有基于
2.2 格式化介绍
-
格式化后会发生如下事情
-
Linux创建一个硬盘地图
superblock
,记录此filesystem
的整体信息,包括inode/block
的总量、使用
量、剩余量, 以及文件系统的格式与相关信息等; -
inode
:记录文件的属性,一个文件占用一个inode
,同时记录此文件的数据所在的block
号码,默认一个
inode
表格128字节,一个block
记录消耗4B,记录满了后会新建inode
用于扩展。-
该文件的访问权限
(read、write、execute)
-
该文件的所有者与所属组
(owner、group)
-
该文件的大小
(size)
-
该文件的创建或内容修改时间
(ctime)
-
该文件的最后一次访问时间
(atime)
-
该文件的修改时间
(mtime)
-
文件的特殊权限
(SUID、SGID、SBIT)
-
该文件的真实数据地址
(point)
-
-
block
:用于存储数据
-
-
计算机系统在发展过程中产生了众多的文件系统,为了使用户在读取或写入文件时不用关心底层的硬盘结构,
Linux
内核中的软件层为用户程序提供了一个VFS
(Virtual File System
,虚拟文件系统)接口,这样用户实际
上在操作文件时就是统一对这个虚拟文件系统进行操作了。
2.3 常见文件系统
Linux
系统支持数十种的文件系统,而最常见的文件系统如下所示
文件系统 | 说明 |
---|---|
ext3 |
是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复 |
ext4 |
Ext3 的改进版本,作为RHEL 6 系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB) ,且能够有无限多的子目录。另外,Ext4 文件系统能够批量分配block 块,从而极大地提高了读写效率 |
XFS |
是一种高性能的日志文件系统,而且是RHEL 7 中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB ,这几乎满足了所有需求 |
三、常用查看命令
3.1 lsblk
命令
- 列出所有可用块设备,显示依赖关系
[root@server1 ~]# 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
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 918M 0 rom
3.2 df -Th
命令
- 列出文件系统的磁盘占用情况,也就是说,只显示正在挂载的设备
[root@server1 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 17G 11G 6.1G 65% /
devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs tmpfs 1.9G 12M 1.9G 1% /run
tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 146M 869M 15% /boot
tmpfs tmpfs 378M 0 378M 0% /run/user/0
3.3 fdisk -l
命令
- 列出磁盘分区情况
[root@server1 ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00020928
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
磁盘 /dev/mapper/centos-root:18.2 GB, 18249416704 字节,35643392 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区
Units