1.什么是磁盘
磁盘(disk)是指利用磁记录技术存储数据的存储器。
磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。
早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘)。
每个硬盘中心都是一摞高速运转的圆盘,在圆盘上附着的一圈金属颗粒,每个金属颗粒都有自己的磁化程度,用于储存0和1。
当记录数据时,硬盘的磁头开始通电,形成强磁场,数据在磁场的作用下转变成电流,使颗粒磁化,从而将我们的需要存储的信息数据记录在圆盘上。
2.磁盘的基本结构
传统的硬盘盘结构是像下面这个样子的,它有一个或多个盘片,用于存储数据。盘片多采用铝合金材料;中间有一个主轴,所有的盘片都绕着这个主轴转动。一个组合臂上面有多个磁头臂,每个磁头臂上面都有一个磁头,负责读写数据。
磁盘一般有一个或多个盘片。每个盘片可以有两面,即第一个盘片的正面为0面,反面为 1 面;第二个盘片的正面为 2 面…依次类推。磁头的编号也和盘面的编号是一样的,因此有多少个盘面就有多少个磁头。盘面正视图如下图,磁头的传动臂只能在盘片的内外磁道之间移动。因此不管开机还是关机,磁头总是在盘片上面。关机时,磁头停在盘片上面,抖动容易划伤盘面造成数据损失,为了避免这样的情况,所以磁头都是停留在起停区的,起停区是没有数据的。
每个盘片的盘面被划分成多个狭窄的同心圆环,数据就存储在这样的同心圆环上面,我们将这样的圆环称为磁道 (Track)。每个盘面可以划分多个磁道,最外圈的磁道是0号磁道,向圆心增长依次为1磁道、2磁道…磁盘的数据存放就是从最外圈开始的。
根据硬盘的规格不同,磁道数可以从几百到成千上万不等。每个磁道可以存储数 Kb 的数据,但是计算机不必要每次都读写这么多数据。因此,再把每个磁道划分为若干个弧段,每个弧段就是一个扇区 (Sector)。扇区是硬盘上存储的物理单位,现在每个扇区可存储 512 字节数据已经成了业界的约定。也就是说,即使计算机只需要某一个字节的数据,但是也得把这个 512 个字节的数据全部读入内存,再选择所需要的那个字节。
柱面是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为柱面 ,即各盘面上面相同位置磁道的集合。需要注意的是,磁盘读写数据是按柱面进行的,磁头读写数据时首先在同一柱面内从 0 磁头开始进行操作,依次向下在同一柱面的不同盘面(即磁头上)进行操作,只有在同一柱面所有的磁头全部读写完毕后磁头才转移到下一柱面。因为选取磁头只需通过电子切换即可,而选取柱面则必须通过机械切换。数据的读写是按柱面进行的,而不是按盘面进行,所以把数据存到同一个柱面是很有价值的。
3.磁盘的相关知识
磁盘的接口
IDE,Scsi(已经被淘汰)
SATA III 与SAS(企业使用较多)
2.磁盘的基本术语
尺寸: 2.5英寸 3.5英寸
容量:KB MB GB TB PB EB
转速:7500 15000
IOPS:每秒能够发生IO的次数
3.磁盘在系统上的命名方式
设备名称 | 分区信息 | 设备类型 |
---|---|---|
/dev/sda | /dev/sda1 | 第一块物理磁盘第一分区 |
/dev/sdb | /dev/sdb2 | 第二块物理磁盘第二个分区 |
/dev/vdd | /dev/vdd4 | 第四块虚拟磁盘的第四个分区 |
4.磁盘的基本分区(跟着练习题走一波)
(1)一块磁盘建立两个分区,每个分区可用空间150G,另一块磁盘建立一个分区并分配所有磁盘容量
1.关闭虚拟机,添加两个300G的硬盘,然后打开虚拟机
2.[root@oldboyedu ~]# fdisk /dev/sdb #fdisk+新增的第一块硬盘 ——开始分区
command (m for help): n #新增分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p #p是选择主分区,e为扩展分区 Partition number (1-4, default 1): #是否从第一个分区开始,默认为一,直接回车 First sector (2048-629145599, default 2048): #是否从2048字节分区,默认2048 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): +150G #截至到多少字节,或添加多少空间,默认截至到最后一个字节,也就是给予所有空间 Partition 1 of type Linux and of size 150 GiB is set Command (m for help): n #继续分区 Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): First sector (314574848-629145599, default 314574848): Using default value 314574848 Last sector, +sectors or +size{K,M,G} (314574848-629145599, default 629145599): Using default value 629145599 Partition 2 of type Linux and of size 150 GiB is set `Command (m for help): w` #保存退出 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
3.[root@oldboyedu ~]# fdisk /dev/sdc #为新增的第二块硬盘分区
Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xa4f366a7. 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-629145599, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): Using default value 629145599 Partition 1 of type Linux and of size 300 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
4.[root@oldboyedu ~]# lsblk #查看分区也可以用 ll /dev/sd*查看
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 1G 0 part [SWAP] └─sda3 8:3 0 18G 0 part / sdb 8:16 0 300G 0 disk ├─sdb1 8:17 0 150G 0 part └─sdb2 8:18 0 150G 0 part sdc 8:32 0 300G 0 disk └─sdc1 8:33 0 300G 0 part sr0 11:0 1 4.3G 0 rom
(2)查看已完成分区的磁盘设备,将已创建的磁盘分区格式化为xfs的文件系统
[root@oldboyedu ~]# mkfs.xfs /dev/sdb1 #为三个分区格式化格式化 [root@oldboyedu ~]# mkfs.xfs /dev/sdb2 [root@oldboyedu ~]# mkfs.xfs /dev/sdc1 [root@oldboyedu ~]# lsblk #再次查看分区 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 1G 0 part [SWAP] └─sda3 8:3 0 18G 0 part / sdb 8:16 0 300G 0 disk ├─sdb1 8:17 0 150G 0 part └─sdb2 8:18 0 150G 0 part sdc 8:32 0 300G 0 disk └─sdc1 8:33 0 300G 0 part sr0 11:0 1 4.3G 0 rom
(3)新建目录/data/test1,/data/test2,/data/test3,将已完成格式化的磁盘设备分别临时挂载到这三个目录下(可随意挂载)
[root@oldboyedu ~]# mkdir -p /data/test{1..3} #新增三个目录 [root@oldboyedu ~]# mount /dev/sdb1 /data/test1/ #分别为三个分区设置临时挂载点 [root@oldboyedu ~]# mount /dev/sdb2 /data/test2 [root@oldboyedu ~]# mount /dev/sdc1 /data/test3
(4)查看当前系统磁盘使用情况,是否挂载成功
[root@oldboyedu ~]# lsblk #再次查看分区 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 1G 0 part [SWAP] └─sda3 8:3 0 18G 0 part / sdb 8:16 0 300G 0 disk ├─sdb1 8:17 0 150G 0 part /data/test1 └─sdb2 8:18 0 150G 0 part /data/test2 sdc 8:32 0 300G 0 disk └─sdc1 8:33 0 300G 0 part /data/test3 sr0 11:0 1 4.3G 0 rom