机械硬盘:
组成部件: 圆形的磁盘盘(主要记录数据的部分);
机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);
主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据。
主要优势: 相对于固态硬盘来说,硬盘价格低,容量大,数据可恢复,使用寿命长
固态硬盘:
组成部件: 固态电子存储芯片阵列,FLASH芯片(控制单元)、DRAM芯片(存储单元)
主要优势: 防震抗摔、传输速率、功耗、重量、噪音上有明显优势,固态硬盘传输速率性能是机械硬盘的2倍
并行:
IDE:每个控制器可接两块硬盘,早期PC机用的比较多,现在已经淘汰。133MB/s
SCSI:可以接 N多块硬盘。转速高,寿命长,早期的服务器用的很多。320MB/s,目前面临淘汰。
串口:
SATA:串行高级技术附件,一种基于行业标准的串行硬件驱动器接口。传输速率为:6Gbps
SAS:串行连接SCSI,是新一代的SCSI技术。可以与SATA兼容。600MB/s传输速率为:6Gbps
USB:通用串行总线,是一个外部总线的标准。
传输速率为: USB2.0:60MB/s
USB3.0:500MB/s
USB3.1(也叫type-c):1.2GB/s
在linux当中一切皆文件: open(),read(),write(),close()
设备文件:关联至一个设备驱动程序,进而能过和对应的硬件设备进行通信
设备类型:
块设备:block,存储单位为‘块’,通过磁盘存储
字符设备:char,存储单位为‘字符’,通过键盘存储
设备号码:
主设备号:major number,能过标识设备类型
次设备号:minor number,能过标识同一类型下的不同设备
磁盘设备文件命名:/dev/DEV_FILE
IDE: /dev/hd[a-z] 例如:/dev/hda, /dev/hdb
SCSI, SATA, USB, SAS: /dev/sd[a-z]
虚拟磁盘:/dev/vd
不同磁盘标识:a-z,aa,ab…
/dev/sda, /dev/sdb, ...
同一设备上的不同分区:1,2, ...
主分区:/dev/sda[1-4]
拓展分区: /dev/sda[5+]
注意:CentOS 6和7统统将硬盘设备文件标识为/dev/sd[a-z]#
引用设备的方式:
设备文件名:
卷标:
UUID:生成一个随机的128位编号
注:在脚本中,尽量避免使用磁盘设备文件名诸如sda,名称不稳定,应使用UUID
磁盘存储术语:
磁盘三维(chs): 柱面、磁头、扇区
head:磁头; 8bit寻址 2**8=256
track:磁道;
ctlinder:柱面 10bit寻址 2**10=1024
sector:扇区 6bit寻址 2**6=64
一个扇区共有512Byte,CHS可定义255*63*1024个扇区信息
echo 512*63*1024*255/1024/1024 | bc
8032M
CHS:老的命名方式,不超过8G
LBA:逻辑的块寻址,超过8G
使用磁盘的步骤:
设备识别
设备分区
创建文件系统(格式化)
标记文件系统
在/etc/fstab文件中创建条目
挂载新的文件系统
为什么要分区:
1.优化 IO性能
2.实现磁盘空间配额限制
3.提高修复速度
4.隔离系统和程序
5.安装多个OS
6.采用不同的文件系统
.
MBR 是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。
诞生于1982年,使用32位表示扇区数,分区不能超过2T
MBR如何分区:按柱面
0磁道0扇区:512bytes
446bytes:boot loader
64bytes:分区表
16bytes:标识一个分区(最多4个分区)
2bytes:55AA(分区标识位)
支持4个主分区;3个主分区+1扩展分区(N个逻辑分区)
注:生产中最好给MBR分区表进行备份
BIOS+MBR
传统BIOS运行流程:
开机–>BIOS初始化–>BIOS自检–>引导操作系统–>进入系统
GPT为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算机的BIOS)的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。
支持128个分区,使用64位,支持8Z(512Byte/block),64Z(4096Byte/block)
使用128位的通用唯一识别码UUID 表示磁盘和分区表自动备份在头和尾两份,并有CRC校验位
UEFI(同一扩展固件接口):硬件支持GPT,使操作系统启动
分区表
MBR保护+GPT分区表+GPT划分数据+备份
UEFI+GPT
UERI运行流程
开机–>UEFI初始化–>引导操作系统–>进入系统
fdisk -l 列出所有磁盘信息。
Id: 83:Linux可以使用的文件系统。
8e:指的是逻辑卷(logical volume)
df查看磁盘状态
df:disk free
fdisk /dev/sda进入管理sda磁盘
常用的几个:
m:menu,列出帮助菜单
d:delete,删除
n:new,新建
p:print,列出
t:调整分区ID
l:list,列出内核支持的分区ID
83 Linux(linux基础分区)
5 extend(扩展分区)
8e LVM(逻辑卷管理)
ee GPT(2T以上硬盘)
w:write,保存退出
q:quit,不保存退出
new新分区的时候,如果是加主分区,只能加到第四个。如果想要更多的分区,可以把第四个加为扩展分区。然后再在扩展分区上创建分区。
fdisk /dev/sda
d #进入删除模式
# 输入要删除的分区号
w #保存退出
修改分区格式(改)
fdisk /dev/sda
t # 进入修改模式# 输入要修改的分区
L # 列出可以修改的格式# 输入要修改的格式的代码
w # 保存退出# 然后用到上面让内核识别的两个命令:
kpartx -af /dev/sda # 强制添加分区到内核中
cat/proc/partations 查看内核是否已经识别新的分区
partprobe 同步分区表(centos5,7可用)
partx -a /dev/sda 增加分区同步分区表(centos6可用)时使用;
partx -d –nr M-N /dev/sda 删除分区同步分区表(centos6可用)时使用;
CentOS 5,7:partprobe
parprobe /dev/sda
CentOS 6 :partx,kpartx
kpartx -l /dev/sda # 列出sda中可重新加载到内核的分区
kpartx -af /dev/sda # 强制添加分区到内核中
partx -a /dev/sda # 再添加一次
CentOS 6 有时候不管用,只能重启系统(目前版本6.9,这个bug还没有修复。),不过对于新硬盘,进行创建操作的时候,CentOS6不会有这个问题。
CentOS 5 和 7 使用partprobe即可,无bug。
所谓文件系统,它是操作系统中藉以组织、存储和命名文件的结构。磁盘或分区和它所包括的文件系统的
不同是很重要的,大部分应用程序都基于文件系统进行操作,在不同种文件系统上是不能工作的。
常见的几种文件格式:
基本:ext3(CentOS 5默认), ext4(CentOS 6默认),xfs(CentOS 7 默认)btrfs,reiserfs,jfs,swap
光盘:iso9660(国际标准)
网络文件系统:nfs, cifs
集群文件系统:gfs2, ocfs2
内核级分布式文件系统:ceph
伪文件系统:proc, sysfs, tmpfs, hugepagefs
Unix的文件系统:UFS, FFS, JFS
交换文件系统:swap
用户空间的分布式文件系统:mogilefs, moosefs, glusterfs
可移动U盘:fat32(文件最大不能超过4G), exfat
windows:ntfs(linux可编译安装ntfs-3g来识别)
RAW:未经处理或者未经格式化产生的文件系统(性能好,但不便于管理)
日志型文件系统:ext3,ext4,xfs,…(牺牲读取性能,防止数据文件破坏)
非日志型文件系统:ext2,vfat(易造成数据文件破坏)
内核中的模块:ext4,xfs,vfat
用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
查看支持的文件系统:cat /proc/filesystems
mkfs命令两种用法:
1、mkfs.FS_TYPE /dev/DEVICE 建议使用此用法,直观不易出错
ext4
xfs
btrfs
vfat
2、mkfs -t FS_TYPE /dev/DEVICE
-L ‘LABEL’ 设定卷标(分区标签)
mke2fs ext系统文件系统专用的管理工具
-t{ext2|ext3|ext4} 创建文件系统类型
-b{1024|2048|4096} 设定block块的大小
-i # 为数据空间每多少字节创建一个inode,此大小不应小于
block大小
-L 添加卷标签(建议使用挂载点作卷标)
-N # 指定分区中创建#个inode
-l 一个inode记录占用磁盘空间的大小,128-4096
-m # 默认5%,管理员用户预留空间占总空间百分百
文件系统标签LABEL
它是指向设备的另一种方法,与设备无关
blkid 块设备属性信息查看
格式:blkid [option]…[DEVICE]
-U UUID 根据指定UUID来查找对应设备
-L LABEL 根据指定卷标来查找对应设备
e2label:管理ext系列文件系统的LABEL卷标
格式:e2label DEVICE[LABEL]
findfs 查找分区
格式:findfs [option] LABEL = 根据卷标查找
findfs [option] UUID = 根据UUID查找
tune2fs 重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息
-L ‘LABEL’ 修改卷标
-m # 修改预留给管理员空间的百分百
-j 将ext2升级到ext3
-O 文件系统属性启用或禁用,-O ^has_journal
-o 调整文件系统的默认挂载选项,-o^acl
-U UUID 修改UUID号
dumpe2fs
块分组管理,32768
-h 查看超级块信息,不显示分组信息
超级块(superblock)
dumpe2fs /dev/sda1 查看分区下所有超级块
-h 查看超级块信息
tune2fs -l 查看超级块信息
超级块时存储文件系统的大小、有多少是空的和已经填满的占多少,以及它们各自的总数和其他诸如此类的信息。
要使用一个分区来进行数据访问,那么第一个要访问的就是超级块,由此可见超级块的重要性。
超级块占用第一号物理块,是文件系统的控制块。超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空
闲i节点数目、空闲i节点索引表、封锁标记等。超级块时系统为文件分配存储空间、回收存储空间的依据。
所以,为了防止超级块数据损坏,就需要对超级块数据进行备份,以便于损坏时进行修复。