Day19-Linux-磁盘管理(1)

一、磁盘的基本概念

1.什么是磁盘

  • 一块小小的硬盘里,就可以存储我们难以保存的信息或者资料等,如海量的照片音乐和电影等等。
Day19-Linux-磁盘管理(1)_第1张图片
模拟图
  • 每个硬盘中心都是一摞高速运转的圆盘,在圆盘上附着的一圈金属颗粒,每个金属颗粒都有自己的磁化程度,用于储存0和1。


    模拟图
  • 当记录数据时,硬盘的磁头开始通电,形成强磁场,数据在磁场的作用下转变成电流,使颗粒磁化,从而将信息记录在圆盘上。


    模拟图
  • 由海量颗粒组成的信息,就是我们存在硬盘里的数据。


    Day19-Linux-磁盘管理(1)_第2张图片
    模拟图

什么是磁盘、软盘、硬盘?

二、磁盘的基本结构

1.什么是盘片:

硬盘一般有一个或多个盘片,每个盘片可以有两面,即第一个盘片的正面为0面,反面为1面然后依次类推。

2.什么是磁道:

每个盘片的盘面在出厂的时候被划分出了多个同心圆环,数据就存储在这样的同心圆环上面,我们将这样的圆环称为磁道(Track),每个盘面可以划分多个磁道。

3.什么是扇区:

在硬盘出厂时会对磁盘进行一次低格,其实就是再每个磁道划分为若干个弧段,每个弧段就是一个扇区 (Sector)。扇区是硬盘上存储的物理单位,现在每个扇区可存储512字节数据已经成了业界的约定。

4.什么是柱面:

柱面实际上就是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为 柱面 ,即各盘面上面相同位置磁道的集合。这样数据如果存储到相同半径磁道上的同一扇区,这样可以实现并行读取,主要是减少磁头寻道时间。

5.什么是磁头:

读取磁盘磁道上面金属块,主要负责读或写入数据。*

Day19-Linux-磁盘管理(1)_第3张图片
磁盘结构图1
Day19-Linux-磁盘管理(1)_第4张图片
磁盘结构图2

三、磁盘的预备知识

我们需要简单了解下磁盘的接口类型、磁盘涉及的相关术语、磁盘在Linux下的命名方式。

1.磁盘的接口类型

1)IDE,Scsi(已经被淘汰)

Day19-Linux-磁盘管理(1)_第5张图片
IDE已被淘汰
Day19-Linux-磁盘管理(1)_第6张图片
SCSI已被淘汰

2) SATA III 与SAS(企业使用较多)

  • SATA III 6Gbps/s 750MB/s
  • SAS 8Gbps/s 1000MB/s


    Day19-Linux-磁盘管理(1)_第7张图片
    SAS和SATA的比较

3)SSD固态硬盘 纯电子,抗摔

  • msata
  • m.2
 接口类型
     SATA     几乎所有的主板都兼容 ,便宜,性能较差 
     PCI-E    看主板是否兼容,较贵,性能高
 传输通道
      PCI-E AHCI
      NVME
Day19-Linux-磁盘管理(1)_第8张图片
SSD固态

Day19-Linux-磁盘管理(1)_第9张图片
SSD固态

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

Day19-Linux-磁盘管理(1)_第10张图片
逻辑分区

1)添加一块小于2TB的磁盘进行使用,步骤如下:

(1).给虚拟机添加一块新的硬盘


Day19-Linux-磁盘管理(1)_第11张图片
给虚拟机添加磁盘
  • 添加磁盘时,它不支持热拔插技术,所以必须是关机状态。

(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

总结

通过今天的学习,我们了解磁盘的基本概念,磁盘的基本结构,怎么样去创建磁盘,主要掌握了磁盘的命名规则,磁盘的逻辑分区,如何创建一个磁盘并按照要求进行磁盘的划分,搞清楚主分区、扩展分区和逻辑分区之间的关系。


Day19-Linux-磁盘管理(1)_第12张图片
Linux磁盘的管理思维导图.png

你可能感兴趣的:(Day19-Linux-磁盘管理(1))