磁盘的基本概念
什么是磁盘
每个硬盘中心都是一摞高速运转的圆盘,在圆盘上附着的一圈金属颗粒,每个金属颗粒都有自己的磁化程度,用于储存0和1。
当记录数据时,硬盘的磁头开始通电,形成强磁场,数据在磁场的作用下转变成电流,使颗粒磁化,从而将信息记录在圆盘上。
由海量颗粒组成的信息,就是我们存在硬盘里的数据
磁盘的基本结构
盘片:
硬盘一般有一个或多个盘片,每个盘片可以有两面,即第一个盘片的正面为0面,反面为1面然后依次类推.
磁道:
每个盘片的盘面在出厂的时候被划分出了多个同心圆环,我们将这样的圆环称为磁道(Track),*磁道主要负责存储数据*
扇区:
在硬盘出厂时会对磁盘进行一次低格,其实就是再每个磁道划分为若干个弧段,每个弧段就是一个扇区(Sector)
扇区是硬盘上存储的物理单位,*每个扇区可存储512字节数*
柱面:
处于同一个垂直区域的磁道称为 柱面 ,即各盘面上面相同位置磁道的集合
这样数据如果存储到相同半径磁道上的同一扇区,这样可以实现并行读取,主要是减少磁头寻道时间。
磁头:
读取磁盘磁道上面金属块,主要负责读或写入数据。
磁盘的预备知识
磁盘的接口:
IDE out
Scsi out
SATA III 6Gbps/s 750MB/s 1T 400 100MB/s
SAS 8Gbps/s 1000MB/s 1T 4500
SSD 纯电子 抗摔
msata out
m.2
*接口类型*:
SATA 几乎所有主板都兼容, 便宜 性能差
PCI-E 需要看主板是否兼容, 贵, 性能高
*传输通道*:
PCI-E AHCI
NVMe
磁盘的术语
容量:MB GB TB PB EB .............
转速:SATA3 ==7200 SAS 15000 (非常之高) 磁盘阵列RAID
尺寸:3.5 2.5 1.8
IOPS:Input/Output 每秒能够发生IO的次数
磁盘的命名规则
[a-z] aa-zz
磁盘在系统上的命名方式
设备名称 分区信息 设备类型
/dev/sda /dev/sda1 第一块物理磁盘第一分区
/dev/sdb /dev/sdb2 第二块物理磁盘第二个分区
/dev/vdd /dev/vdd4 第四块虚拟磁盘的第四个分区
磁盘基本分区fdisk(适用2T以下)
1. 添加一块新的硬盘
2. 使用fdisk进行分区
3. 使用mkfs进行格式化
4. 使用mount进行挂在
fdisk /dev/sdb #进行分区
Command (m for help): m #输入m列出常用的命令
Command action
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
c toggle the dos compatibility flag #切换dos兼容模式
d delete a partition #删除分区
l list known partition types #显示分区类型
m print this menu #显示帮助菜单
n add a new partition #新建分区
o create a new empty DOS partition table #创建新的空白分区表
p print the partition table #显示分区表的信息
q quit without saving changes #不保存退出
s create a new empty Sun disklabel #创建新的Sun磁盘标签
t change a partitions system id #修改分区ID,可以通过l查看id
u change display/entry units #修改容量单位,磁柱或扇区
v verify the partition table #检验分区表
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
fdisk创建主分区
ommand (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free) #主分区
e extended #扩展分区
Select (default p): p #选择创建主分区
Partition number (1-4, default 1): #默认创建第一个主分区
First sector (2048-2097151, default 2048): #默认扇区回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +500M #分配500MB
fdisk创建扩展分区
Command (m for help): n #新建分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #创建扩展分区
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): #空间都给到扩展分区
fdisk创建逻辑分区
Command (m for help): n #新建分区
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #创建逻辑分区
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +1000M #分配1000MB空间
fdisk查看分区情况,并保存
Command (m for help): p #查看分区创建
Device Boot Start End Blocks Id System
/dev/sdb1 2048 104447 51200 83 Linux
/dev/sdb2 104448 2097151 996352 5 Extended
/dev/sdb5 106496 311295 102400 83 Linux
Command (m for help): w #保存分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@hello ~]# fdisk /dev/sdb -l|grep type #查看磁盘是否MBR分区
Disk label type: dos
[root@hello ~]# partprobe /dev/sdb #刷新内核立即生效,无需重启
mkfs格式化分区
-b 设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块。
-t 用来指定什么类型的文件系统,可以是ext4, xfs
-i 设定inode的大小
-N 设定inode数量,防止Inode数量不够导致磁盘不足
[root@hello ~]# mkfs.ext4 /dev/sdb #格式化整个磁盘
[root@hello ~]# mkfs.xfs /dev/sdb1 #格式化某个分区
使用mount挂载分区并使用
mount /deb/sdb1 /data
主分区,逻辑分区,扩展分区
MBR只能分配4个主分区,在生产分区中,如无特殊需求直接使用整个磁盘即可,无需分区