磁盘的结构体系
- 磁盘的物理结构(外部结构、内部结构)工作原理(先切换磁头,让磁头机械运动)
- 磁盘阵列说明(raid0、raid1、raid5、raid10、raid01)
- 磁盘阵列如何配置,硬件控制
- 配置LVM:逻辑卷管理——>实现可以随意调整磁盘分区大小。不推荐使用,影响存储性能,cpu消耗,软件控制
- L:逻辑
- V:卷组
- M:管理
- 磁盘分区概念
- 给容量较小的磁盘进行分区:小于2T:fdisk
- 给容量较大的磁盘进行分区:大于2T:parted
- 磁盘格式化(创建文件系统)
- 磁盘维护管理知识(如何使用磁盘 挂载使用)
磁盘的外部结构:看得见摸得到的结构
- 磁盘主轴:决定磁盘转速
- 磁盘盘片:用于存储数据
- 磁盘磁头:用于读取数据
- 磁盘接口:用于连接主板、用于连接阵列卡
磁盘的内部结构:看不见的结构信息
- 磁盘
- 磁头
- 作用:用来写入和读取数据
- 特点:盘面数量等于磁头数量
- 原理:采用径向运动读写数据
- 磁道
- 作用:用于存储用户数据
- 特点:由多个同心圆组成
- 存储计数:最外面同心圆为0磁道
- 原理:磁盘默认按照磁道寻找数据
- 重点原理:磁头径向运动为机械运动(寻道) 性能小雨固态硬盘(芯片)
- 原理特点:磁头机械运动较慢
- 扇区
- 作用:用来存储用户数据
- 特点:磁盘存储最小单位
- 存储计数:默认磁盘扇区从1扇区开始,扇区大小为512字节
- 系统存储最小单位是block
- 柱面
- 作用:用来存储用户数据
- 特点:不同盘面上相同的磁道组成(圆柱体)
- 原理:磁盘默认按照柱面进行读写
- 重点原理:磁头之间的切换为电子切换
- 原理特点:磁头电子切换较快
- 单元块
- 作用:用来存储用户数据
- 特点:表示单个柱面的大小
磁盘大小计算
-
每条磁道上的扇区和大小一般都是一样的
- 扇区是存储的最小单位:最小为512字节
-
磁盘的大小:柱面大小*磁道数
- 柱面大小=扇区大小
*
扇区数*
盘面数
fdisk -l
- 柱面大小=扇区大小
磁盘层次结构详细说明—磁盘阵列raid
- 提高磁盘的存储效率
- 提高磁盘存储安全
- 提高磁盘存储容量
阵列的配置选项
- raid 0:存储数据效率高,存储安全性低
- 把数据分开存储到不同的磁盘
- raid 1:存储数据效率低,存储安全性高
- 把数据在不同的磁盘都保存一份
- raid 5:存储数据效率较高、存储安全性较高(最少有三块磁盘)
- 把数据分开存储到不同的磁盘,但有逻辑关系(校验信息)
- 最多坏一块磁盘(不管有几块),坏的多了就推不出来丢的数据
- 会损耗一块磁盘的容量用来存放校验信息
- 3块300G用来存放数据,使用raid 5。实际可以存放600G数据
- raid 01
- 先多块磁盘分组组合成raid0,构成多块虚拟磁盘
- 然后将多块虚拟磁盘用raid1
- raid10
- 先多块磁盘分组组合成raid1,构成多块虚拟磁盘
- 然后将多块虚拟磁盘用raid0
配置raid要在开机前进入配置界面进行配置
磁盘层次结构详细说明—磁盘分区方法
-
系统启动引导记录
- MBR引导记录:用于引导磁盘空间小于2T
- GPT引导记录:用于引导磁盘空间大于2T
- 企业中磁盘空间4T,也会先拿出两个500G配置raid1。然后作为MBR引导
-
分区方式
-
可以有划分4个主分区,就不能再有主分区
-
可以划分3个主分区,可以划分1个扩展分区,扩展分区无法直接使用
/dev/sda1 /dev/sda2 /dev/sda3
- 需要在扩展分区基础上划分逻辑分区(sda4不显示)
- /dev/sda5
- /dev/sda6
- 只能有一个扩展分区
- 需要在扩展分区基础上划分逻辑分区(sda4不显示)
-
磁盘分区方法
MBR引导:占用一个扇区大小512字节
- 446字节占用主引导记录,MBR所在地
- 64字节创建磁盘分区表
- 最后2字节作为分区结束标识
情况一:磁盘小于2T(fdisk),只能有四个主分区
-
准备磁盘环境,准备一块新的10G硬盘
-
在系统中检测是否识别到了新的硬盘
-
检查是否有新的磁盘存储文件
#之前只有一个a ll /dev/sda #新增后看有没有b ll /dev/sdb
-
-
对磁盘进行分区处理
#查看分区信息 fdisk -l #对新磁盘进行分区,一个分区最大只能分配52G fdisk /dev/sdb 会出现提示,表示可以对磁盘进行分区了 输入m开始进行分区
参数 解释 d 删除分区 g 创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区) l 列出可以分区的类型 m 输出帮助菜单 n 新建增加一个分区 p 输出分区的结果信息 q 不保存退出 t 改变分区的系统id===改变分区类型(LVM必须使用这个,增加swap分区大小不使用这个也可以) u 改变分区的方式,是否按照扇区进行划分 w 将分区的信息写入分区表并退出,保存分区信息并退出 e 新增扩展分区 -
开始分区:规划分4个主分区,每个分区1G
PS:输入错误的时候,按住ctrl+退格键进行一个一个删除,ctrl+u全部删除
m:开始分区 n:新增加一个分区 p:主分区 1:序号 回车:从哪开始,按照默认 +1G:从哪结束,分配1G
-
分区操作检查
p 查看序号啥意思 l 如果要修改分区类型 t 选择要修改的分区号 然后输入要修改的分区类型号
PS:四个主分区都分了后,就算还有空间没有分配也不能新增分区
-
规划3个主分区都是1G,剩下的都分给扩展分区
d:删除一个分区 1:删除1分区 e:新增扩展分区 直接都回车就是把剩下的都分给他 扩展分区不能直接使用 还可以继续新建分区 n 这里新建的都是从扩展分区中创建的
-
保存退出
w
-
显示新磁盘分区的列表
ll /dev/sdb*
-
加载文件,让系统可以识别分区文件,在不重启的情况下
partprobe /dev/sdb
-
创建文件系统:磁盘分区存储数据的方式
mkfs.xfs /dev/sdb1 或 mkfs -t xfs /dev/sdb2
- ext3/4:centos6
- xfs:centos7 格式化效率较高、数据存储效率提升(数据库服务器性能有所提升)
-
挂载并检查
mkdir /mount{1..3} for i in {1..3};do mount /dev/sdb$i /mnt$i;done df -h
-
开机自动挂载
-
将挂载命令放在**/etc/rc.local**中
-
系统开机加载rc.local流程(解决开机没有执行)
- 加载/etc/rc.local --> /etc/rc.d/rc.local -->以绝对路径方式执行 /etc/rc.d/rc.local
发现这个文件没有执行权限,进行添加权限 chmod +x /etc/rc.d/rc.local
-
-
在**/etc/fstab**文件中进行设置
#查看磁盘的分区文件id blkid 第一列:挂载的磁盘文件,可以写磁盘文件,也可以写磁盘文件uid 第二列:挂载点 第三列:指定文件系统类型 第四列:挂载的参数 第一个0:是否备份磁盘 第二个0:是否检查磁盘 如果是1:就是要备份数据和检查磁盘 mount -o ro /dev/sdb1 /mnt01 ro:read only挂载后只读,不能新写文件 默认为rw /dev/sdb1 /mount01 xfs defaults 0 0 UUID=... /mount02 xfs defaults 0 0
-
情况二:磁盘大于2T(parted),可以有多个主分区
-
进入分区
parted /dev/sdb1
-
参数解释
参数 解释 mklabel 创建一个分区表默认是mbr print 显示分区信息 mkpart 创建一个分区 -
修改磁盘分区类型
mklabel gpt
-
开始真正分区
#创建一个2100G的主分区 mkpart primary 0 2100G Ignore #在创建一个 mkpart primary 2100 2200G Ignore #退出分区状态,退出直接就保存了 quit #删除分区 rm 分区编号(1/2/3)
-
查看是否分区好了
fdisk -l
-
加载磁盘分区
partprobe /dev/sdc
-
创建文件系统
mkfs.xfs /dev/sdc1
-
挂载磁盘
mount /dev/sdc1 /mnt
企业磁盘常见问题
磁盘满的情况
df -h:查看block占用空间剩余
df -i:查看inode占用空间剩余
block存储不足
-
磁盘存储数据过多:No space left on device
-
手动生成数据占用磁盘空间
dd if=/dev/zero of=/mount01/t.txt bs=10M count=30 /dev/zero:黑洞出口文件 /mount01/t.txt:生成的文件。大小为bs*count bs 10M:一个块的大小 count 30: 生成多少个块
-
block存储空间不足
-
-
解决方式:
-
找出大的没用的数据
find / -type f -size +400M 或 du真实查看目录大小 #只查看根目录占用空间多少 du -sh / #查看根目录下的第一级目录占用空间为多少并排序 du -sh /* | sort -h
-
inode不足:小文件过多
如何调整swap空间大小
-
查看swap大小
free -h
-
调整大小
-
将磁盘分出一部分空间给swap分区使用
dd if=/dev/zero of=/tmp/1G bs=100M count=10
-
将指定磁盘空间作为swap空间使用
mkswap /tmp/1G
-
加载使用
swapon /tmp/1G
-
取消使用
swapoff /tmp/1G
-