一.磁盘知识体系说明
磁盘的结构体系:如上图所示
01.磁盘物理知识(外部结构 内部结构)
磁盘外部结构 接口 内部结构 工作原理 读写原理
02.磁盘阵列说明
raid知识 配置LVM(L-逻辑 V-卷组 M-管理)-逻辑卷管理-->实现可以弹性的调整磁盘分区大小
03.磁盘分区概念
分区的知识 主,扩展,逻辑分区 分区表知识
给容量较小的磁盘进行分区:小于2T fdisk
给容量较大的磁盘进行分区:大于2T parted
04.磁盘格式化操作
格式化知识 文件系统知识 挂载知识 创建文件系统
05.磁盘管理此方法
df fdisk mkfs mkfs.xfs parted swapon swapoff /etc/fstab /etc/rc.local
二.磁盘体系结构详述
1.磁盘的外部结构
01.组成部分
001 磁盘主轴
决定磁盘转速(rpm-round per minute)
家用磁盘转速 7200rpm 5400rpm
企业磁盘转速 15000rpm 10000rpm
002 磁盘盘片
用于存储数据
003 磁盘磁头
用于读取数据
004 磁盘接口
用于连接主板
02.接口类型
SATA SCSI SAS PCI-E
磁盘结构分类: 机械硬盘 固态硬盘
磁盘接口分类 SATA(串行) SCSI SAS
磁盘的选择:
机械硬盘:
SATA: 备份 性能要求不高 大量存储 线下服务
10000 rpm 2T 3T 4T
SAS: 服务器标配 线上/生产环境使用
15000 rpm 10000rpm 7200rpm 300G 600G
固态硬盘: 大量的读写 要求很高的性能 数据量小
机械银盘与固态硬盘的对比
机械: 容量大价格低 抗击打能力弱 读写速度稍慢(io) 数据恢复容易
固态: 容量小价格高 抗击打能力强 读写速度很快(io) 数据恢复难
2.磁盘的内部结构(机械磁盘)
01.磁盘(disk)
02.磁头(head)
作用说明:用来写入和读取数据的
特点说明:盘面数量等于磁头数量
工作原理:词用径向运动读写数据
03.磁道(track)
作用说明:用来存储用户数据
特点说明:由多个同心圆组成 存储计数:最外面同心圆为0磁道
工作原理:磁盘默认按照磁道寻找数据
重点原理:磁头径向运动为机械运动(寻道)
原理特点:磁头机械运动较慢
04.扇区(sector)
作用说明:用来存储用户数据
特点说明:磁盘存储最小单位(系统存储最小单位是block) 存储计数:默认磁盘扇区从1扇区开始,扇区大小为512字节
05.柱面(cylinder)
作用说明:用来存储用户数据
特点说明:不同盘面上相同的磁道组成(圆柱体)
工作原理:磁盘默认按照柱面进行读写
重点原理:磁头之间的切换为电子切换(相对于寻道操作来说,磁头之间的电子切换能更快的定位到需要的磁道)
原理特点:磁头电子切换较快
06.单元块(units)
作用说明:用来存储用户数据
特点说明:表示单个柱面大小
07.根据磁盘内部结构计算磁盘大小
001 磁盘大小=柱面大小(unit)*柱面数量
命令运算:echo unit*柱面数量|bc
命令运算:awk 'BEGIN{print unit*柱面数量}'
三.磁盘阵列概念说明
1.磁盘阵列概念说明
01.概念介绍:Redundant Arrays of Independent Disks RAID(独立磁盘构成的具有冗余能力的阵列)
02.作用说明:
001 获得更大的容量
002 获得更高的性能
003 或得更好的安全
2.磁盘阵列级别说明
01 阵列级别 raid0
性能:提供更高的存储效率(存储效率高)
容量:不会损耗磁盘容量
需求:至少需要一块硬盘
缺陷:数据安全性保障不高(数据安全性低)
01 阵列级别 raid1
性能:数据安全保障提高(数据安全性高)
容量:磁盘容量会损耗(损耗一块硬盘)
需求:只能使用两块硬盘
缺陷:数据存储效率低(存储效率低)
01 阵列级别 raid5
性能:数据安全保障提高(数据安全性较高)
数据存储效率较高
容量:磁盘容量将会损耗(损耗一块硬盘容量)
需求:至少使用三块硬盘 最多只能坏一块硬盘
01 阵列级别 raid10
性能:数据安全保障提高
数据存储效率提高
容量:磁盘容量将会损耗
需求:需要成对添加磁盘
01 阵列级别 raid01
性能:数据安全性提高
数据存储效率提高
容量:磁盘容量将会损耗
需求需要成对添加磁盘
四.磁盘分区方法实践
1.磁盘分区概述
01.系统启动引导记录
MBR主引导记录(用于引导磁盘空间大于2T)
磁盘的 0磁头 0磁道 1扇区 为一个扇区大小占用512字节 其中MBR主引导记录占用446个字节 磁盘分区表(DPT)占用66个字节 其中两个字节是分区结束标识
每个分区占用16个字节,所以总共能分4个主分区 扩展分区占用16个字节,最多只能存在一个扩展分区
GPT主引导记录(用于引导磁盘空间大于2T)
02.系统分区类型说明
主分区(primary) 最多4个主分区,每个分区占16个字节(64字节)
扩展分区(extend) 最多只能存在一个扩展分区,用来添加逻辑分区.无法存储数据信息
逻辑分区(logical) 可以有多个逻辑分区,用来存储数据信息(逻辑分区都是从5开始计数.1-4是主分区和扩展分区的计数,逻辑分区不能占用)
03.系统分区命名说明
步骤一:按硬盘类型命名(SATA SAS SCSI)
第一块: /dev/sda
第二块: /dev/sdb
第三块: /dev/sdc
步骤二:按分区数量命名
主分区和扩展分区
第一个分区: /dev/sda1
第二个分区: /dev/sda2
第三个分区: /dev/sda3
逻辑分区(逻辑分区的编号都是从5开始的1-4的编号是属于主分区和扩展分区的,无论主分区和扩展分区有没有分都不能占用)
第一个分区: /dev/sda5
第二个分区: /dev/sda6
分区命名测验
第1块SATA硬盘的第一个主分区: /dev/sda1
第2块SATA硬盘的第二个扩展分区: /dev/sdb2
第3块SATA硬盘的第一个逻辑分区: /dev/sdc5
2.磁盘分区实践
01 搭建磁盘分区的环境
添加两个虚拟磁盘大小分别是小于2T和大于2T
重启系统,加载硬盘信息,利用fdisk -l 查看系统中硬盘信息
02 磁盘信息查看方法
fdisk -l|grep 'sd[c,d]'
03 磁盘分区工具说明
分区工具 fdisk
应用场景:磁盘空间小于2T,创建的分区表为MBR的
分区操作:
fdisk -cu /dev/sdc---->centos6
fdisk /dev/sdc---->centos7
分区参数:
开始分区:
1.规划4个主分区,每个分区1G
操作过程
检查分区
保存退出
让系统可以加载识别分区信息(此条命令适用于真实机环境.虚拟机不需要此条命令会自动加载分区信息文件)
2.规划3个主分区 一个扩展分区 每个主分区1G 剩余都给扩展分区
操作过程
检查分区
保存退出
让系统可以加载识别分区信息(此条命令适用于真实机环境.虚拟机不需要此条命令会自动加载分区信息文件)
3.规划2个主分区,每个分区1G 划分2个逻辑分区 每个分区2G
操作过程
检查分区
保存退出
让系统可以加载识别分区信息(此条命令适用于真实机环境.虚拟机不需要此条命令会自动加载分区信息文件)
4.其他参数作用说明
l list known partition types 列出可以分区的类型
t change a partition's system id 改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
分区工具 parted
应用场景:磁盘大小大于2T分区工具(创建分区表GPT)
分区操作:parted(分区操作实时生效)
分区参数:
开始分区
步骤详解:
步骤一:mklabel gpt 创建分区表gpt
步骤二:mkpart primary 0 1000G 创建分区信息
mkpart primary 1000G 2000G
步骤三:print(p) 打印分区信息
rm n 删除分区信息
步骤四:quit(q) 退出保存分区信息
让系统可以加载识别分区信息
04磁盘创建文件系统
格式化操作(创建文件系统-磁盘分区存储数据的方式)
作用:磁盘中诞生了iinode和block
常见文件系统:
ext3/4 centos6
xfs centos7 格式化效率较高,数据存储效率提升
操作命令:
mkfs.xfs /dev/sd[a-d]n
mkfs.ext4 /dev/sd[a-d]n
进行磁盘挂载(磁盘需挂载到目录才能被用户使用)
挂载命令:mount /dev/sd[a-d]n /mount
系统开机自动挂载(磁盘空间若要使用,则必须挂载,而上述挂载信息在系统重启后将不复存在,所以我们需要开机自动挂载,保证磁盘开机可用)
方法一:将挂载命令放入/etc/rc.local
注意:在上述文件中编写执行命令时,注意查看/etc/rc.local文件的权限,由于文件为脚本文件.系统在开机时会运行此文件,而脚本文件一般会像命令文件一样直接执行,执行时文件需具备执行权限才可能被系统正确执行.
若无执行权限,则上述文件执行不会被执行,那么文件中的命令自然不会执行.所以得保证文件具有执行权限
方法二:在/etc/fstab中设置 ******
05 系统分区实践步骤
步骤一:创建磁盘分区并保存查看
fdisk 磁盘小于2T(分区表MBR) w保存退出
parted 磁盘空间大于2T(分区表GPT) q退出保存
步骤二:系统加载识别分区信息(告知系统分区以创建)
partprobe ll(查看设备文件)
步骤三:磁盘分区后创建文件系统
mkfs.xfs 注意识别扩展分区(不占用实际磁盘空间,无法创建文件系统)
blkid 查看磁盘分区文件系统
步骤四:磁盘分区挂载(磁盘需要挂载方可被系统使用)
mount /dev/sd** /挂载点
步骤五:分区开机自动挂载
方法一:挂载命令写入/etc/rc.local 注意查看文件的执行权限x
方法二:编辑文件/etc/fstab 注意格式 blkid命令可查看设备文件唯一识别号UUID
五.磁盘文件系统介绍
1.文件系统概述说明
文件系统就是一种存储和组织计算机数文件的机制或方法
2.文件系统分类说明
centos5 ext3
centos6 ext4
centos7 xfs 数据库服务上存储数据 在格式化大的磁盘时效率更高
六.磁盘分区企业案例
1.磁盘满的情况 No space left on device
01 情况一:存储的数据太多了(block空间不足)
模拟磁盘空间不足(创建大文件)
dd if=/dev/zero of=/mount07/oldboy.txt bs=10M count=10
解决办法:删除没有的大文件-------->如何找到大文件?
找出系统中大的文件
方法一:find / -type f -size +100M
方法二:du -sh / |sort -h
01 情况二:存储的数据太多了(inode空间不足)
inode存储空间不足:出现大量小文件
2.java环境内存不够用了,大量使用swap分区
步骤一:创建系统交换分区使用文件(利用文件占用磁盘部分空间)
dd if=/dev/zero of=/tmp/1G bs=10M count=100
利用一个大文件(dd可创建一个全是0的任意大小文件)占据磁盘空间
步骤二:设置文件被交换分区所使用(指定被占用的空间被交换分区使用)
mkswap /tmp/1G
步骤三:文件划到交换分区使之生效(加载使用swap空间)
swapon /tmp/1G
swapoff /tmp/1G(卸载使用swap空间)
free -h(查看内存空间)