测试工程师必备linux基础
第一篇服务器磁盘认识及操作
测试过程中,有一个很重要的东西,测试环境搭建,希望大家在看了本文后能够对于磁盘有一个初步的概念。本文讲述linux服务器中,磁盘的操作流程,RAID介绍,磁盘分区概念,分区工具fdisk及parted使用实践介绍,笔者水平有限,通过查阅资料和博客,难免有遗漏的和不正确的地方,还望指正。希望对大家工作中能够有所帮助。(PS:因为工作原因很久没发博客了,发一个以前写的存货吧,哈哈)
--阿木木
-
一、磁盘基础
在服务器上,硬盘不能直接使用,需要先做RAID(磁盘阵列)或LVM,然后进行磁盘分区,然后格式化系统,然后挂载之后才能使用,需要记住磁盘的配置过程。
磁盘的选择,选择转速高的磁盘,一个磁盘由磁盘盘片、主轴、读写磁头,传动手臂,传动轴,反力矩弹簧装置等组成。主轴转速有5400/7200/10000/15000单位:分钟,常用的磁盘接口为:sata/sas/scsi/ide(基本使用ide)。磁盘的发展趋势为,体积更小,存储密度更高,速度更快,主轴的转速更快,接口更加先进,容量更大,使用更安全。当前,sata和sasi接口磁盘已经成为主流。
-
二、磁盘接口类型(了解)
磁盘的接口,目前分为四种:SAS/SATA/SCSI/FC。
SATA(Serial ATA):使用SATA接口的磁盘又叫串口磁盘,采用串行总线连接方式,串行总线使用嵌入式信号,具有更强的纠错能力,能对传输指令进行检查,发现错误会自动纠正。串行接口还具有接口简单支持热插拔的有点,可靠、安全、热插拔、性能高。
SCSI(Small Computer System Interface):SCSI是一种广泛应用于小型机上的高速数据传输技术,不是专门为磁盘设计的接口。SCSI接口具有应用范围广、多任务、带宽大、CPU占用率地、以及热插拔等优点,因为价格昂贵,早期主要应用于中高端服务器和高档工作站。
SAS:新一代SCSI技术,采用串行技术以获得更高的传输速度,并通过缩短连接线改善内部空间等。SAS是并行SCSI接口之后开发的全新接口。此接口的设计是为了改善存储系统的效能、可用性和扩充性,提供与串行SATA磁盘的兼容性。SAS相对于SATA和SCSI的主要优势:1、降低了磁盘阵列的成本2、串行接口提升传输性能3、安装简单4、兼容性更好
企业生产场景普及程度:SAS>SATA>SSD
单位容量对比性能和价格:SSD>SAS>SATA
单位价格购买磁盘容量:SATA>SAS>SSD
-
三、RAID介绍
首先,什么是RAID?RAID是廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称,也称为磁盘阵列。Raid是一种把多块独立的物理磁盘按不同的技术方式组合起来的一个磁盘组,做完Raid后,多个磁盘可以形成逻辑上的一块大磁盘,可以提供比单个物理磁盘更大的存储量或更高的存储性能,同时可以提供不同级别数据冗余备份的一种技术。
Raid常用级别(四种):Raid0 Raid1 Raid5 Raid10
冗余从好到坏:Raid1、Raid10、Raid5、Raid0
性能从好到坏:Raid0、Raid10、Raid5、Raid1
成本从高到低:Raid10、Raid1、Raid5、Raid0
Raid0:具有最高的存储性能,可以把连续的数据分散到多个磁盘上存取。系统数据读写可以在多个磁盘并行执行,每个磁盘读写属于其本身的数据,这种数据上的并行操作可以充分利用总线带宽,提高磁盘整体存取性能。
生产应用场景:
- 负载均衡集群下面多个相同的RS节点服务器
- 分布式文件存储下面的主节点或CHUNK SERVER
- MySQL主从复制的多个Slave服务器
- 对性能要求很高,对冗余要求很低的相关业务
Raid1:镜像,最大限度的保证用户数据的可用性和可修复性。Raid1的操作方式是把用户写入一个磁盘的数据百分之百的复制到另外一个磁盘上,从而实现存储双份的数据。数据会有50%的冗余,在存储时同时写入两块磁盘,实现了数据完整备份;相对的降低了写入性能,读取数据时候可以并发。Raid1虽然不能提高存储性能,但由于其有极高的数据安全性,适用于存放重要数据,如传统行业对性能要求不高,对数据要求高的服务器和数据库存储等领域。
Raid5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。可以提供热备盘实现故障的恢复,采用奇偶校验,可靠性强,之损坏一块硬盘时,系统会根据存储的奇偶校验位,重建故障磁盘的数据。Raid5和Raid0相近似的数据读取数据,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,Raid5的磁盘空间利用率要比Raid1高,存储成本相对较低。
Raid10(0+1)(1+0):Raid0+1是Raid0和Raid1的组合形式,也称为Raiid10,Raid10以Raid0为执行阵列,Raid1为保护阵列。拥有与Raid1一样的容错能力,用于容错处理的系统开销与单独镜像操作基本一致,由于使用Raid0作为执行登记,因此具有较高的I/o带宽。适用于数据库存储服务器等需要高性能、高容错但对容量要求不大的场景。缺点是存储容量利用率较低,单位成本贵。磁盘并行工作是相应磁轨持续性能被削弱。
-
四、磁盘分区概念
一个硬盘的存储结构主要包括主引导记录、分区表、分区结束标志,以及其他分区的引导信息及数据信息。硬盘的主引导记录MBR存放在0磁头0磁道1扇区,512字节,其中446字节存放的是主引导记录MBR,其中64字节存放的是分区表DPT,以及2个字节的分区结束表示符。给硬盘分区的实质是在行业内对分区表进行设置,主要是划分其实以及结束磁头号、扇区号及柱面号。
为什么一个磁盘只能有四个分区(主分区p+扩展分区e)?因为一个磁盘的分区表仅仅只有64个字节,每个分区表要占用16个字节,因此一块磁盘仅仅支持4个分区表的信息,所以主分区+扩展分区不能超过4个,至少要有一个主分区。
如果已经分了3p+e(三个主分区+一个扩展分区)后,还有剩余的磁盘空间,这部分磁盘空间还能使用吗?不能,因为没有分区表了,四个分区表空间已经被占满。
扩展分区不能直接使用,需要再创建逻辑分区,扩展分区拥有自己的分区表,所以扩展分区下面的逻辑分区可以划分多个。
主分区和扩展分区的编号是1~4,逻辑分区的编号是从5开始,即使我主分区+扩展分区只分了两个,编号为sda1,sda2,逻辑分区的分区编号依旧是从5开始,而不是3。
重点:一个硬盘的主分区+扩展分区只能大于等于一个小于等于四个,扩展分区有自己的分区表,如果扩展分区需要存放数据,需要再次对扩展分区进行分区,分为逻辑分区。分区操作不会破坏数据,只会修改分区表的信息。常用分区工具fdisk/parted。Fdisk(适合给小于2T的磁盘进行分区),parted(适合给大于2T的磁盘进行分区)
-
五、Fdisk(MBR分区方式,传统分区方式)分区演示说明
说明:凡是对于分区表操作过后,都需要写入分区表,通知系统内核
1、使用vmware sphere进行演示,虚拟磁盘添加的步骤:
选中虚机,鼠标右键打开编辑设置
选中硬盘,点击添加
- 打开电源,进入虚机控制台
登录虚机,使用fdisk -l 查看磁盘状态
输入fdisk /dev/sdb(新加的磁盘)
a)进入扇区编辑模式:fdisk -c /dev/sdb
b)输入m,查看fdisk命令操作,常用命令已备注:
c)添加主分区:
首先输入n,添加分区,然后输入p添加主分区,然后输入1,表示添加第一个分区,开始扇区采用默认,结束扇区可以通过制定主分区大小的方式指定,支持K/M/G的方式添加
快捷键清除输入的错误信息:Ctrl+U
d)添加扩展分区:
和添加主分区一样,只是分区类型需要选择e扩展分区
e)添加逻辑分区:
f)打印分区信息:检查一下分区信息
g)写入分区表并保存:
h)将分区表的信息同步到系统内核:
- 其他
创建交换分区
首先创建一个主分区,然后格式化为交换分区,开启交换分区之后才可以使用
删除分区
查看分区类型
常用的3种分区类型,swap(交换分区),linux,lvm,如果需要改变分区类型,需要指定分区类型id,swap交换分区是82,linux是83,lvm是8e
改变分区类型操作:
-
六、Parted(GPT)介绍
传统分区方式MBR无法支持超过2TB的硬盘或单个分区超过2TB,大于2T使用GPT(分区表)分区概念。
Parted是一个磁盘分区管理工具,比fdisk更加灵活,功能更加丰富,支持GUID分区表,在IA64平台上管理磁盘时非常有用,它同时支持交互模式和非交互模式,它除了可以进行分区的添加、删除等常见操作外,还可以移动分区,制作文件系统,调整文件系统大小,复制文件系统。
交互式:
- 进入交互界面:parted /dev/sdb(需要进行分区的磁盘)
2.查看常用命令:
3.添加主分区
首先需要设置分区表类型为gpt
4.添加swap交换分区
5.添加逻辑分区
6.删除分区
7.退出
退出时,修改会自动保存
非交互式:
非交互式和交互式是一样的,只不过把命令参数直接传入
-
七、格式化创建文件系统
磁盘分区没有进行格式化之前,操作系统无法识别系统上磁盘分区格式,也就无法存取文件目录属性和权限等内容,把分区格式化成操作系统支持的某个文件系统后,在存放数据,系统就会根据这个文件系统的格式进行存取文件。文件系统是一种存储和组织计算机数据文件的机制或方法,它使得计算机文件系统内数据的访问和查找变得更加容易、简单。
文件系统的选型:
reiserfs大量小文件业务首选reiserfs(100K)
xfs有的门户的数据库MySQL等业务
ext4视频下载、流媒体、数据库、小文件业务
ext2没有日志,类似CDN网站加速服务
常规应用:
Centos5:默认选择ext3
Centos6:默认选择ext4
Centos7:默认选择xfs
查看当前挂载的文件系统:
查看支持的文件系统操作:
格式化xfs文件系统
格式化ext文件系统
其他
如果系统没有xfs文件系统的安装步骤:
-
八、磁盘挂载
挂载点:
- 将文件系统与目录树结合的操作称为挂载
- 挂载点一定是目录,该目录为进入文件系统的入口
挂载操作:
将/testMonut作为/dev/sdb2分区的挂载点
取消挂载:
下面用/testMount取消挂载演示,用df -hT查看,挂载点已经取消
- 常用磁盘操作命令
fdisk 磁盘分区工具
Partprobe 把分区表的修改变化通知内核
mkfs.ext4 (mkfs -t ext4)格式化 -bblock -linode
mkswap 格式化swap分区
swapon/swapoff 使用swap分区,例如:swapon /dev/sdb1
mount -ttype -o选项
umount 卸载 (-1F)强制卸载
df 查看磁盘信息 -i -h -T文件类型
dumpefs 查看ext文件系统信息
fsck(e2fsck) 磁盘检查
parted 分区工具
tune2fs 修改文件系统信息
megacli 查看硬件信息工具
ipmitools 查看硬件信息工具
resize2fs 调整文件系统大小(LVM,drbd)