第二章 主机硬件与磁盘详解

第二章 主机硬件与磁盘详解

2.1 硬件介绍

2.1.1 磁盘介绍

2.1.1.1 硬盘种类分析


机械硬盘种类分析

  • IDE(已淘汰)
    优点:价廉、稳定性好、标准化程度高
    缺点:分别数据传输率太低。
    IDE
  • SCSI:其实SCSI并不是专为硬盘设计的,实际上它是一种总线型接口。独立于系统总线工作.
    优点:范围广、多任务、带宽大、CPU占用率低,以及热插拔
    缺点: 价格高、安装不便、还需要设置及其安装驱动程序,因此这种接口的硬盘大多用于服务器等高端应用场合。
    scis
  • SATA: 又叫串口硬盘,SATA以它 串行 的数据发送方式得名。
    优点:串行接口具有结构简单、支持热插拔。
    缺点:速度相对于固态硬盘慢,噪声大
    sata
  • SAS :串行连接SCSI
    优点:SAS的接口技术可以向下兼容SATA(物理层和协议层兼容),SAS技术是结合了SATA与SCSI两者的优点而诞生的
    缺点:硬盘价格太贵,比起同容量的Ultra 320 SCSI硬盘,SAS硬盘要贵了一倍还多。
    在这里插入图片描述
  • 光纤通道 Fibre Channel
    优点:热拔插、高速带宽、远程连接、连接设备数量大灯特点
    缺点:费用昂贵、插硬盘的机柜上带有FC接口, 通过光纤与光纤交换机互联.
    fibre

机械硬盘总结
比较如下:

  • SCSI  驴
  • SATA  马
  • SAS 骡子 兼容马和驴的优点

接口起决定性作用,直接影响读取效率,比如茶壶煮饺子。倒不出来。


[企业使用硬盘类型使用情况]

  1. 企业级SAS硬盘(默认):
    企业里常见的SAS硬盘是15000转/分(这里就是主轴的转数)。当前主流300G、600G、
    1000G,从具体的业务需求及性价比考虑,在工作中多用300-s00G的SAS硬盘,
    一般选6500G,6600G,单盘容量不要太大,除非纯备份!
    用途:用于提供生产线上的普通对外提供服务的业务服务器:
    例如:生产线上的数据库业务、存储业务、图片业务及相关高并发业务(webhttp,cache
    服务),总的来说,如果没有特殊业务需求,SAS磁盘是生产环境首选的的磁盘配置。

  2. 企业级SATA硬盘:
    企业级SATA硬盘,7200-10000转/分,常见的容量为1T和2T,4T,6T,
    优点是经济实惠,容量大,从具体的业务需求及性价比考虑,
    在工作中多用SATA磁盘做线下不提供服务的数据存储或者并发业务访问不是很大的业务应用,
    比如发些级:主用出级下能词。
    特性:容量性价比高,一般2T的SATA磁盘较佳。
    磁盘选购小结:
    1)线上的业务,用SAS磁盘。
    2)线下的业务,用SATA磁盘,磁带库。
    3)线上高并发、小容量的业务,SSD磁盘。
    4)思想:根据数据的访问热度,智能分析分层存储。SATA+SSD
    特别注意:
    千万不要用SATA磁盘来做在线高并发服务的数据存储或数据库业务,这是有血的教训的。
    某公司采用SATA做数据库的存储盘,结果导致数据库连续宕机一个月。
    5台SATA盘RAID5。
    解决:重新买5台,把磁盘从SATA(RAID5)换成SAS(RAID10)。6个月内没事。


固态硬盘种类分析
分类:基于闪存(Flash芯片)的固态硬盘、基于DRAM的固态硬盘
优点:随机存取速度,功耗,防震,重量方面优势很大
缺点:价格贵、写寿命短,数据恢复难。

SLC(Single Layer Cell单层单元)和 MLC(Multi-Level Cell多层单元)。
SLC的特点是成本高、容量小、但是速度快,
MLC的特点是容量大成本低,但是速度慢。

2.1.1.2 硬盘工作详解

工作状态:

  1. 磁盘是按照柱面为单位读写数据的,即先读取同一个盘面的某一个磁道,读完之后,如果数据没有读完,磁头也不会切换其他的磁道,而是选择切换磁头,读取下一个盘面的相同半径的磁道,直到所有盘面的相同半径的磁道读取完成之后,如果数据还没有读写完成,才会切换其他不同半径的磁道,这个切换磁道的过程称为寻道。
  2. 不同磁头间的切换是电子切换,而不同磁道间的切换需要磁头做径向运动,这个径向运动需要步进电机调节,这个动作是机械的切换。
  3. 磁头寻道是机械运动,切换磁头是电子切换。

内部结构:
平面图:
内部结构
立面图:
下图可以想象成有很多张光盘堆叠在一起,有很多个光驱同时读取写入
立面图
磁盘柱面、扇区总结
数据读取记录为:某磁头—>某磁道—>某扇区

每个盘片有两个面,每个面对应一个读写磁头,用磁头号(上到下0磁头号开始)区分盘面,就是磁头数

扫描二维码关注公众号,回复: 12409778 查看本文章

2.1.1.3

2.2 磁盘分区

2.2.1 磁盘与设备文件名的关系

在Linux中SATA/USB/SAS等磁盘接口均是以SCSI模块来驱动的,这些接口的磁盘设备名都是/dev/sd[a-p]。所以SATA/USB接口接入Linux系统后根本没有一定的顺序。全根据Linux核心侦测到磁盘的顺序!
示例: 你的PC上有2个SATA硬盘和一个USB磁盘,而主板上有6个SATA插槽。这两个SATA硬盘分别按在主板上的SATA1和SATA5插槽上,此时的系统内识别的文件名为:
SATA1插槽上的文件名:/dev/sda
SATA5插槽上的文件名:/dev/sdb
USB磁盘(开机完成后才被系统捉到):/dev/sdc

因为如果你的磁盘被分区成两个分区,那么每个分区的设备文件名又是什么?是否每个扇区都一样重要呢?

整颗磁盘的第一个扇区特别的重要,因为他记录了整颗磁盘的重要信息!

早期磁盘第一个扇区里面含有的重要信息我们称为MBRMaster Boot Record) 格式,大于 2TB 以上的磁盘分区已经让某些操作系统无法存取。
现在又多了一个新的磁盘分区格式,称为 GPTGUID partition table

分区表是什么呢?

比如刚刚拿到的整颗硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段, 这个区段才能够再制作成为你想要的家具!
如果没有进行切割,那么原木就不能被有效的使用。 同样的道理,你必须要针对你的硬盘进行分区,这样硬盘才可以被你使用的!

2.2.2 MSDOS(MBR)与GPT分区表

MSDOS(MBR)分区表格式与限制
第一个扇区 512Bytes 会有这两个数据:

  • 主要开机记录区(MBR,Master Boot Record):446Bytes
  • 分区表(partition table):记录整个硬盘的分区状态 64Bytes

由于分区表仅有64Bytes,因此最多只能有4个主分区(3个主分区、1个扩展分区)。
扩展分区不能存放数据,所以只能在扩展分区上分逻辑分区(逻辑分区的分区个数是写在扩展分区内,没有个数限制。
在这里插入图片描述
磁盘分区总结:
1)给磁盘分区的实质就是针对上述0磁头0磁道1扇区的前446字节后面接下来的64bytes的分区表进行设置,即主要是划分起始以及结束磁头号、扇区号及柱面号。
2)给磁盘分区的工具有fdisk命令(适合给小于2T的磁盘分区),parted命令(擅长给大于2T的磁盘分区,可以对小于2T的磁盘分区),首选fdisk,只有大于2T时才去选parted
3)一块硬盘的分区变只有64bytes大小,每个分区表要16bytes,所以只能创建四个分区。主分区3块+扩展分区1块的总量不超过四个
4)扩展分区不能直接使用,还需要在扩展分区的基础上创建逻辑分区才行
5)扩展分区有直接的分区表,所以可以创建多个分区 。 【IDE逻辑分区编号是5-63、SATA编号是5-15】

比如:一套100m2的房子,可以就放一张床在那睡,| 正常是划分3个卧室,1厕所


重要实例:一台服务器6块600G的磁盘,raid5后,总大小3T,此时无法装系统的?(注意:大于2T安装不了系统, Dell R720支持大于2T安装系统)
解决办法1: 是做raid5后,不要重启装系统,而是再raid界面,继续分1个小的虚拟磁盘vd200G,用这个200G的虚拟磁盘装系统,装完系统后再把剩余的2.8T分区通过parted);
解决方法2: 先拿一块盘做raid0,剩下5块做raid5,在raid0上安装系统;
解决方法3: 装系统时,选gpt分区格式,即可安装系统。


主分区与扩展分区详解
(1) 主分区primary:一个磁盘最多有4个主分区,主分区在磁盘上一定要存在
(2) 扩展分区extend:严格的说,扩展分区不是一个正常的分区,而是一个 链接,起到指向作用。
一块硬盘只能有一块扩展分区。并且扩展分区不能直接存放数据,扩展分区受限于操作系统。
1)逻辑分区logical:逻辑分区必须在扩展分区内。逻辑分区的编号从5开始

分区的注意事项

对于使用来说,数据存在主分区,和逻辑分区是没有区别的

一块硬盘的分区方式只能为如下组合之一:
(1) 任意多个主分区,但要求1≤主分区数量≤4。
(2) 扩展分区可以和主分区组合,但要求2≤(主分区+扩展分区)数量≤4。
(3) 如果要分成四个磁盘分区的,那么最多就是可以:
P+P+P+P
P+P+P+E

(4) 由于MBR及磁盘分区表大小的限制,如果对磁盘分配了4P或3P+E后,即使硬盘还有剩余未分的空间,那么,这部分空间也无法分区使用了(因为无分区可分了,分区表空间已被占满)。
(5) 在做分区规划时,如果业务需要,在分区之前就已经明确要超过4个分区,那么可以选择3P+1E的分区方式

重要实例: 假如我有一块SAS硬盘,我想要把磁盘分成6个可以使用的磁盘分区,那么每个磁盘分区在Linux系统下的数字编号是多少?
由于要求6个分区:
1p+5e ,则分区编号为 /dev/sda1 + /dev/sda5,/dev/sda6,/dev/sda7,,dev/sda8 ,/dev/sda9

2p+4e,则分区编号为/dev/sda1,/dev/sda2 + /dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8

3p+3e,则分区编号为/dev/sda1,/dev/sda2,/dev/sda3 + /dev/sda5,/dev/sda6,/dev/sda7

GPT磁盘分区表

过去一个扇区大小为512Bytes,现在已有4K的扇区设计出现。
因此在扇区的定义上面,大多会使用逻辑区块位址(Logical Block Address,LBA)来处理。

GPT将磁盘的区块以LBA来规划(默认512Bytes),第一个LBA称为LBA0(从0开始编号)。
与MBR只是用第一个512Bytes区块来纪录不同,GPT使用34个LBA区块来纪录分区信息!
GPT除了前面的34个LBA外,磁盘最后的34个LBA用来作为备份

GPT

  • LBA0(保护磁盘)
    前446Bytes存储开机管理程序
  • LBA1(GPT头)
    记录分区便本身的位置与大小,同时记录备份用的GPT分区(最后34个用于备份的LBA区块)放置的位置
  • LBA2-33 (分区区域)
    从LBA2开始,每个LBA都可以记录4笔分区。默认情况下总共可以有 128笔分区记录。

2.2.3 Linux开机流程BIOS和UEFI

我们开机时计算机还没有运行任何的操作软件,那它要如何读取硬盘内的操作系统呢?下面我们就来谈谈牵涉到计算机开机的开机程序了!

基本上,目前的系统在载入硬件驱动方面的程序,主要有早期的BIOS和比较新的UEFI两种机制。

BIOS搭配MBR/GPT开机流程


1.1 首先我们要知道CMOS是记录各项硬件参数且嵌入在主板上的存储器,BIOS是一个写入到主板上的一个固件(固件:写入到硬件内的软件程序称之为固件)。
这个BIOS就是开机时主动执行的第一个软件程序了!
1.2 BIOS会去分析主板上有哪些存储设备,以硬盘为例,BIOS回去读我们主板上设置的第一个开机启动项,并且读到该硬盘第一个扇区MBR的位置。接下来就是MBR的活了。

总结下开机流程为:

  1. BIOS:开机主动执行CMOS固件,认识第一个可开机硬盘设备
  2. MBR:第一个可开机硬盘设备的第一个扇区的446Bytes开机管理程序
  3. 开机管理程序(boot loader):读取系统的内核文件
  4. 内核文件:开始操作系统的功能
  • !如果分区是使用的是GPT格式,那么BIOS也能从LBA0的保护MBR区块中读取第一阶段的开机管理程序。

boot loader的功能为:

  • 提供开机菜单:使用者可以选择不同的开机系统,这就是单机多系统的功能;
  • 载入内核文件:直接指向可开机的程序区段来开启操作系统;
  • 转交其他loader:其他分区的开机扇区(boot sector)

loader
上图作个总结:

  • 每个分区都拥有自己的开机扇区(boot sector
  • 图中的系统盘为第一及第二分区,
  • 实际可开机的核心文件是放置到各分区内的!
  • loader只会认识自己的系统盘内的可开机核心文件,以及其他loader而已;
  • loader可直接指向或者是间接将管理权转交给另一个管理程序。

为什么别人说按照单机多系统时,最好先安装Windows再按照Linux?

  • Linux在安装的时候,你可以选择开机管理程序安装在MBR或其他分区的开机扇区,而且Linux loader可以手动设置菜单(上图的M1/M2) ,所以你可以在Linux的boot loader里面加入Windows开机的选项;
  • Windows在安装的时候,按照程序会主动覆盖掉MBR以及自己所在的分区的开机扇区,没有选择的机会。

UEFI BIOS搭配GPT开机的流程
整个UEFI的启动详细流程描述如下:

  • 开机后,固化在ROM里的UEFI BIOS就会被加载到内存运行。
  • UEFI BIOS将引导EFI系统进行运行。
  • 在EFI系统启动后,GUID分区表就会被识别,之后EFI系统就会通过.efi文件启动Boot Loader程序加载操作系统内核。

uefi

2.2.4 Linux安装系统的磁盘分区

Linux 中的所有数据都是以文件的形态呈现的,所以整个Linux系统最重要的就是目录树。

目录树结构(directory tree)
整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线“/”, 所有的文件都与目录树有关。目录树的呈现方式如下图所示:
在这里插入图片描述
上图中长方形为目录, 波浪形则为文件。那当我们想要取得mydata那个文件时,他的路径为文件名为:/home/dmtsai/mydata的意思。

文件系统与目录树的关系(挂载)

所谓的“挂载”就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下。我们看一下下图就明白了:
dir-mount
上图假设我的硬盘有两个分区,partition1 挂载到根目录(/),partition2 挂载到/home目录。当我的数据放置在/home内的各次目录时,数据是放置到partition 2的,如果不是放在/home下面的目录, 那么数据就会被放置到partition 1了!

2.3 Linux系统安装规划

如何去下载Linux发行版镜像呢?打开镜像下载网站,这么多发行版镜像,该下载哪一款呢?

2.3.1 选择合适的发行版镜像

每个Linux发行版使用的都是http://www.kernel.org官方网站所提供的Linux核心,各家的发行版镜像使用的软件其实也都是大同小异,最大的差别或许在与软件的安装模式而已。
服务器上面使用较多的为RedHat与SuSE的发行版镜像,但因为这两款都需要授权所以就出了CentOS号称与RHEL完全相容的版本。
从CentOS7.0 版本后不支持386(32位)版本,只有64位的硬件才能够使用该系统。

Centos发行版镜像下载点:

  • 上海交大:http://ftp.sjtu.edu.cn/centos/
  • 阿里云:http://mirrors.aliyun.com/centos/
  • 东软:http://mirrors.neusoft.edu.cn/centos/
[DIR] Parent Directory                                             -   
[TXT] 0_README.txt                            24-Apr-2020 21:02  2.4K  
[   ] CentOS-7-x86_64-DVD-2003.iso            22-Apr-2020 09:05  4.5G  
[   ] CentOS-7-x86_64-DVD-2003.torrent        24-Apr-2020 21:38  179K  
[   ] CentOS-7-x86_64-Everything-2003.iso     22-Apr-2020 09:06  9.6G  
[   ] CentOS-7-x86_64-Everything-2003.torrent 24-Apr-2020 21:39  383K  
[   ] CentOS-7-x86_64-LiveGNOME-2003.iso      23-Apr-2020 06:02  1.4G  
[   ] CentOS-7-x86_64-LiveGNOME-2003.torrent  24-Apr-2020 21:39   58K  
[   ] CentOS-7-x86_64-LiveKDE-2003.iso        23-Apr-2020 05:21  1.9G  
[   ] CentOS-7-x86_64-LiveKDE-2003.torrent    24-Apr-2020 21:39   77K  
[   ] CentOS-7-x86_64-Minimal-2003.iso        22-Apr-2020 09:06  1.0G  
[   ] CentOS-7-x86_64-Minimal-2003.torrent    24-Apr-2020 21:39   41K  
[   ] CentOS-7-x86_64-NetInstall-2003.iso     21-Apr-2020 02:00  568M  
[   ] CentOS-7-x86_64-NetInstall-2003.torrent 24-Apr-2020 21:39   23K  
[TXT] sha256sum.txt                           23-Apr-2020 06:17  598   
[TXT] sha256sum.txt.asc                       23-Apr-2020 06:18  1.4K  

Centos 7.x
大部分安装软件(DVD)版本:标准安装版
完整(everything)版本:集成所有软件
LiveGNOME版本:GNOME桌面版
KdeLive :KDE桌面版
NetInstall:网络安装镜像
Minimal:最小化安装

下载的文件名为CentOS-7-x86_64-DVD-2003.iso。
CentOS-7:讲的是7.x版本,x86_64为:64位版本
DVD为:标准安装版
2003为:2020年03月发行的

安装系统推荐分区

目录名 容量大小 格式 描述
/ 10G左右 ext4 系统根目录
swap 内存1.5倍 swap 交换空间,相当于windows的虚拟内存
boot 200M ext4 Linux的内核及引导系统程序所需要的文件
tmp 5G ext4 存放临时文件
usr 10G ext4 系统安装程序软件使用
home 剩下所有 ext4 用户家目录

示例:
如果要把该主机设置为邮件服务器,则/var的容量就会给大点;
如果开放SAMBA服务,则/home的容量就给大点。


更多更好的原创文章,请访问官方网站: 点我就能跳转咯-》https://nothingzh.gitee.io
也可关注“哎呦运维”微信订阅号,随时接受文章推送。

猜你喜欢

转载自blog.csdn.net/qq_37126850/article/details/106558522