一、磁盘
设备文件
一切皆文件:open(), read(), write(), close()
设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
设备号码:
-
主设备号:major number, 标识设备类型
-
次设备号:minor number, 标识同一类型下的不同设备
设备类型:
-
块设备:block,存取单位“块”,磁盘
-
字符设备:char,存取单位“字符”,键盘
磁盘空间的管理
磁盘空间的管理分为三步:
1、分区 2、格式化(安装文件系统) 3、挂载
磁盘的物理结构
盘片:硬盘有多个盘片,每个盘片有2面
磁头:每面一个磁头,并不是只有一个磁头,磁头也不会碰到盘面,磁头等于盘片数量
硬盘的数据结构
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据(扇区越多容量越大) 存放数据的最小单位 512字节
磁道:同一盘片不同半径的同心圆
柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)
硬盘存储容量
硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
1柱面=512 * 扇区数/磁头数×磁道=51263255=7.84M
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
硬盘接口类
-
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规格的硬盘主要是考内虑增大单位密度内的磁盘容量、增强散热、减小功耗
机械与固态
机械硬盘(HDD):Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电 机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴 上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直 径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径 方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操 作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。硬盘为精 密设备,进入硬盘的空气必须过滤
固态硬盘(SSD):Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单 元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的 完全相同,在产品外形和尺寸上也与普通硬盘一致 相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传输速率性能是HDD 的2倍 相较于SSD,HDD在价格、容量占有绝对优势 硬盘有价,数据无价,目前SSD不能完全取代HHD。
二、MBR与磁盘分区
windows 当中是可以不分区的 linux 当中一定要分区 才可以使用硬盘
1、磁盘分区
优点:
1)优化I/O性能 读写
2)实现磁盘空间配额限制
3)隔离系统和程序(如双系统)
4)安装多个OS(操作系统)
5)采用不同的文件系统
缺点:
1)只能分连续的空间(必须是连续的分区)
2)一旦分好区之后,无法增加减少空间,空间固定了
3)inode号一旦分区好后,就会固定不变
2、分区技术
分区技术:mbr分区(老技术),gpt分区(新技术)
mbr分区与gpt分区主要区别:
mbr分区只能标识2T以下的硬盘 4个分区 使用fdisk工具进行分区
gpt分区可以标识2T以上的硬盘 128个分区 使用gdisk工具进行分区
MBR分区
MBR磁盘采用MBR分区表,由于MBR用4个字节存储分区总扇区数,最大可以表示2的32次方,一个扇区512字节,那么分区的容量或者磁盘容量都不能超过2TB。
常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而 扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般 用来安装操作系统,扩展分区则多用来存储文件数据
MBR(主引导记录):是硬盘上的第一个扇区,想要读取磁盘数据,需要从该扇区开始。
MBR一共512字节
前446字节:开机引导程序,引导硬件找到系统
后64字节:分区表,表明了分区的范围,分区从哪里开始到哪里结束
最后两字节:表示结束位
MBR分区只能分4个分区,一个分区表占16字节
分区分类:主分区,扩展分区,逻辑分区
主分区:可以直接使用,用来安装操作系统或存储文件等
扩展分区:不可以直接使用,需要在划分逻辑分区,可以使分区超过四个
逻辑分区:存在扩展分区内,可以直接使用,用来存储文件,分区的序号从5开始
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,使得操作系统可以启动
三、文件系统
文件系统的组成
-
内核中的模块:ext4, xfs, vfat
-
Linux的虚拟文件系统:VFS
-
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
查看当前系统支持的文件类型
cat /proc/filesystems
磁盘空间的管理
lsblk 列出块设备
fdisk 管理MBR分区
gdisk 管理GPT分区
parted 高级分区操作,可以是交互式或非交互式(parted的操作是实时生效的,谨慎使用)
partprobe 重新设置内存中的内核分区表版本,适合于除了CentOS 6以外的其他版本 5,7,8
fidsk 分区
格式:fidsk - l [磁盘设备] #查看磁盘信息
fidsk [磁盘设备] 对磁盘进行分区相关操作
m 打印出菜单
p 打印出当前分区表
n 新建一个分区
d 删除一个分区
t 改变分区的属性,系统ID
w 保存
q 不保存退出
分区步骤:
1)在虚拟机中为系统添加硬盘
2)重新启动
3)对新硬盘进行分区
fdisk /dev/sdb
4)新建主分区 :n
5)新建扩展分区:e
6)新建逻辑分区
7)保存并退出:w
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 关闭指定
在linux中默认使用xfs类型的文件
格式:mkfs.xfs /dev/sdb1
设备名
挂载
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:(挂载文件系统的选项),多个选项使用逗号分隔
例:使挂在设备可读可写
mount -o ro,rw /dev/sdb1 /mnt
临时挂载
mount /dev/sdb1 /mnt
永久挂载
永久挂载需要修改/etc/fstab文件
解挂载
umount 设备名或挂载点
卸载时,可以使用设备,也可以使用挂载点
fuser - v MOUNT_POINT
查看正在访问指定文件系统的进程
fuser - km MOUNT_POINT
终止所有正在访问指定文件系统的进程
lsblk
列出块设备
blkid
查看块设备属性信息