一、磁盘的基本概念
1.什么是磁盘
- 一块小小的硬盘里,就可以存储我们难以保存的信息或者资料等,如海量的照片音乐和电影等等。
-
每个硬盘中心都是一摞高速运转的圆盘,在圆盘上附着的一圈金属颗粒,每个金属颗粒都有自己的磁化程度,用于储存0和1。
-
当记录数据时,硬盘的磁头开始通电,形成强磁场,数据在磁场的作用下转变成电流,使颗粒磁化,从而将信息记录在圆盘上。
-
由海量颗粒组成的信息,就是我们存在硬盘里的数据。
二、磁盘的基本结构
1.什么是盘片:
硬盘一般有一个或多个盘片,每个盘片可以有两面,即第一个盘片的正面为0面,反面为1面然后依次类推。
2.什么是磁道:
每个盘片的盘面在出厂的时候被划分出了多个同心圆环,数据就存储在这样的同心圆环上面,我们将这样的圆环称为磁道(Track),每个盘面可以划分多个磁道。
3.什么是扇区:
在硬盘出厂时会对磁盘进行一次低格,其实就是再每个磁道划分为若干个弧段,每个弧段就是一个扇区 (Sector)。扇区是硬盘上存储的物理单位,现在每个扇区可存储512字节数据已经成了业界的约定。
4.什么是柱面:
柱面实际上就是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为 柱面 ,即各盘面上面相同位置磁道的集合。这样数据如果存储到相同半径磁道上的同一扇区,这样可以实现并行读取,主要是减少磁头寻道时间。
5.什么是磁头:
读取磁盘磁道上面金属块,主要负责读或写入数据。*
三、磁盘的预备知识
我们需要简单了解下磁盘的接口类型、磁盘涉及的相关术语、磁盘在Linux下的命名方式。
1.磁盘的接口类型
1)IDE,Scsi(已经被淘汰)
2) SATA III 与SAS(企业使用较多)
- SATA III 6Gbps/s 750MB/s
-
SAS 8Gbps/s 1000MB/s
3)SSD固态硬盘 纯电子,抗摔
- msata
- m.2
接口类型
SATA 几乎所有的主板都兼容 ,便宜,性能较差
PCI-E 看主板是否兼容,较贵,性能高
传输通道
PCI-E AHCI
NVME
4)ssd的Msata接口为超极本设计,但是被m.2接口的SSD替代,而m.2接口(支持SATA、PCI-E双通道协议)
(1)、M.2接口是为超极本量身定做的新一代接口标准,以取代原来的mSATA接口。拥有更小巧的规格尺寸,还是更高的传输性能,M.2都远胜于mSATA。 m2接口百度百科 固态硬盘SATA和mSATA有什么区别
(2)、M.2几个名词需要各位读者知道了解,SATA和PCI-E AHCI和NVMe
(3)、最后呢,可以扩展了解 M.2固态硬盘使用过程中常见问题?
2.磁盘的基本术语
- 尺寸: 2.5英寸 3.5英寸
- 容量:KB MB GB TB PB EB
- 转速:STAT=7500n SAS= 15000n
- IOPS:每秒能够发生IO的次数
顺序读写
随机读写
3.磁盘在系统上的命名方式
设备名称 | 分区信息 | 设备类型 |
---|---|---|
/dev/sda | /dev/sda1 | 第一块物理磁盘第一分区 |
/dev/sdb | /dev/sdb2 | 第二块物理磁盘第二个分区 |
/dev/vdd | /dev/vdd4 | 第四块虚拟磁盘的第四个分区 |
注:系统中分区由数字编号表示,1~4留给主分区使用和扩展分区,逻辑分区从5开始,为什么分区还有限制?不应该是随意分配?因为MBR分区表只能分配4个主分区?
MBR为什么只能划分4个主分区
注: 前面我们已经提到过MBR分区表只能分配4个主分区,但现在还有一种新型的分区表GPT,GPT支持分配128个主分区。注意MBR与GPT之间不能互转,会导致数据丢失。
MBR与GPT之间又有什么区别
4.磁盘基本分区Fdisk
1)添加一块小于2TB的磁盘进行使用,步骤如下:
(1).给虚拟机添加一块新的硬盘
- 添加磁盘时,它不支持热拔插技术,所以必须是关机状态。
(2).使用fdisk进行分区
(3).使用mkfs进行格式化
(4).使用mount进行挂载
PS: 生产分区建议,如无特殊需求直接使用整个磁盘即可,无需分区。
PS: 学习分区建议: 1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)*
1.查看磁盘
[root@oldboy:~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 0 Aug 19 16:00 /dev/sda
brw-rw---- 1 root disk 8, 1 Aug 19 16:00 /dev/sda1
brw-rw---- 1 root disk 8, 2 Aug 19 16:00 /dev/sda2
brw-rw---- 1 root disk 8, 3 Aug 19 16:00 /dev/sda3
brw-rw---- 1 root disk 8, 16 Aug 19 16:00 /dev/sdb
brw-rw---- 1 root disk 8, 32 Aug 19 16:00 /dev/sdc
[root@oldboy:~]# lsblk 常用的方式
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 28G 0 part /
sdb 8:16 0 1T 0 disk
sdc 8:32 0 4T 0 disk
sr0 11:0 1 4.3G 0 rom
[root@oldboy:~]# fdisk -l
[root@oldboy:~]# 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创建主分区
Command (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): +10G 分配10G
.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): 10G 分配10G空间
.fdisk查看分区情况,并保存
保存分区
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
检查磁盘是否是MBR分区方式
[root@oldboy:~]# fdisk /dev/sdb -l|grep type
Disk label type: dos
安装parted, 刷新内核立即生效,无需重启
[root@oldboy:~]# yum -y install parted 下载parted
[root@oldboy:~]# partprobe /dev/sdb 刷新
2.格式化磁盘
- mkfs格式化磁盘,实质创建文件系统
选项:
-b 设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块。
-t 用来指定什么类型的文件系统,可以是ext4, xfs
-i 设定inode的大小
-N 设定inode数量,防止Inode数量不够导致磁盘不足
1.格式化整个磁盘
[root@oldboy:~]# mkfs -t xfs /dev/sdb
2.格式化磁盘的某个分区
[root@oldboy:~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@oldboy:~]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
.使用mount挂载并使用
如果需要使用该磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。
[root@oldboy:~]# mkdir /data_1
[root@oldboy:~]# mkdir /data_5
[root@oldboy:~]# mount /dev/sdb1 /data_1 将/dev/sdb1挂载到 /data_1
[root@oldboy:~]# mount /dev/sdb5 /data_5
[root@oldboy:~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 28G 8.2G 20G 30% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.5M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 1014M 127M 888M 13% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 10G 33M 10G 1% /data_1
/dev/sdb5 10G 33M 10G 1% /data_5
[root@oldboy:/data_1]# touch 1.txr5 写入目录data_1里的文件相当于写入到磁盘sdb1
总结
通过今天的学习,我们了解磁盘的基本概念,磁盘的基本结构,怎么样去创建磁盘,主要掌握了磁盘的命名规则,磁盘的逻辑分区,如何创建一个磁盘并按照要求进行磁盘的划分,搞清楚主分区、扩展分区和逻辑分区之间的关系。