1、磁盘接口类型
#外部结构分类 1、机械硬盘{转速} 2、固态硬盘 了解 1、IED 淘汰 2、SCSI 淘汰 3、SATA 笔记本 台式机 家用 4、SAS 企业标配 5、PCI-E 企业标配
2、磁盘转速
磁盘转速决定了磁盘读写速度 磁盘越大,存储速度越小。磁盘转速如今最快15k。 笔记本常用:5400/7200 服务器存储:常用300G、600G、900G组合多块(6、8、12)
3、RAID阵列
1、增加使用空间:RAID可以将多个磁盘在存储逻辑上合并为一个盘 2、安全备份(安全冗余):将两个盘绑定连接(一个存储,一个备份) 3、提高读写速度:磁盘可以并行写入数据
4、案例问题
RAID0 RAID1 RAID5 RAID10的区别
RADI级别 | 最少硬盘数 | 安全性 | 容量 | 性能 | 使用场景 |
---|---|---|---|---|---|
RAID0 | 1 | 坏一个全坏 | 所有盘和 | 读写快 | 只要速度不安全 缓存业务 |
RAID1 | 只能两块 | 可以坏一个 | 50% | 写慢 读快 | 只要安全不要速度 系统盘 监控 |
RAID5 | 至少 3块 | 可以坏一块 | n-1 | 读写都行 | 稳定的业务 |
RAID10 | 至少4块 | 最多坏一半 | 50% | 读写快 | 高并发业务场景 主库 |
5、磁盘分区
5.1、分区命令
1、大于2T的磁盘:parted分区(设置为GPT格式) 2、小于2T的磁盘使用fdsk分区(默认MBR格式------4个主分区)
5.2填加新磁盘
1、虚拟机添加设置
a.插入一块虚拟硬盘 点击虚拟机,右键设置,添加磁盘,下一步,选择20G b.重启系统生效 #注意 虚拟机需要重启 物理机不需要重启,支持热插拔 云服务扩容,支持在线扩容 c.开始分区 命令:fdisk /dev/sdb 常用选项 d 删除分区 f 列出未分区的空闲区 m 打印帮助信息 显示菜单 w 保存并退出 n 创建新的分区 p 输出分区表 q 退出不保存 了解选项、 a 开关 可启动 b 编辑嵌套的BSD磁盘标志 c 开关dos兼容性标志 l 列出已知分区类型 t 更改分区类型 v 检查分区表 i 打印莫格分区去的相关信息 u 更改 显示/记录 单位 x 更多功能 主分区:fdsk /dev/sdb :n->回车(标准分区P;扩展分区e)->1(默认分区编号) 0 -> 第一个分区大小 扩展分区:n -> e ->
2、格式化分区
命令:mkfs.(查看系统类型) 默认格式为XFS mkfs.xfs /dev/sdb1
3、挂载使用
mount dev/sdb1(逻辑分区) /空目录 #去掉挂载 umount /挂载目录
4、开机自动挂载
查看UUID命令:blkid 自动挂载配置文件:vim /etc/fstab
5、完整挂载方式
1、格式化分区: mdfs.xfs /dev/sdb # 需要将挂载的硬盘分区全部卸载,然后格式化 2、挂载磁盘 mount /dev/sdb /mnt 3、开启自动挂载 vim /etc/fstab /dev/sdb /mnt xfs defaults 0 0
5.3、parted分区
GTP格式: 大于2T的磁盘进行分区 第一步: 插入一个大于2T的磁盘 fdisk -l 第二步: 分区 命令:parted /dev/sdb help 显示菜单 mklabel 制作新的标签 mkpart 创建分区 print 输出打印分区表 quit 退出 rm NUMBER 选择删除分区{NUMBER表示选择分区(1-4)} #mklabel GPT 修改磁盘为GPT格式 非交互式创建分区 parted /dev/sdb mkpart primary xfs 0 20G 非交互式删除 parted /dev/sdb rm 1 第三步: 格式化 第四步: 挂载使用 mount /dev/sdb1 /data df -h 第五步: 写入开机自动挂载 vim /etc/fstab
6、相关案例
1、由于进程占用大量的内存导致系统出现oom报错信息
oom内存溢出: 导致系统杀死占用内存最高的进程 解决办法: 增加内存 导致内存快速增加的因素: 1)由于大量用户访问量增加 2)开发逻辑原因导致内存增加(后端) 3)由于网络波动导致内存升高 (增加swap解决) 4)其他原因:内测、拷贝、压测
swap:内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行 可以临时划分(是用磁盘的空间暂时划分给内存)
查看swap:free -h a.创建: dd if=/dev/zero of=/tmp/ss bs=1M count=2000 b.初始化/格式化 mkswap /tmp/ss c.激活: swapon /tmp/ss d.查看是否成功 free -h 查看swap分区组成 swapon -s 卸载: swapoff /emp/ss
2、磁盘满,查找文件
1、查找大文件
1、find / -type f -size +100M (-f找文件) 2、du -h /|awk '$1 ~ /G$/'
2、查找小文件(文件小,文件较多。说明目录大)
find / -type d -size +1M (-d找目录)
4、磁盘满了,增加磁盘解决问题(软链接)
第一步:创建挂载第二块磁盘的文件 mkdir /data 第二步: 挂载第二块磁盘 mount /dev/sdb /data 第三步:移动日志文件到sbd mv /var/log/1.log /data/1.log 第四步:软连接(日志写入第二块磁盘{/data/1.log}) In -s /data/1.log /var/log/1.log #结果:当服务写入日志到链接文件/var/log/1.log文件时,实际写入到了/data/1.log文件中,也就是第二块磁盘空间当中
题外 创建一个10G文件 dd if=/dev/zero of=/var/log/1.log bs=1M count=10000 (/dev/zero是oom的扩容内存信息存放处,速度为1M,生成10000M) 查看文件信息 ll /var/log/1.log
5、文件被占用,磁盘控件不释放(lsof查找文件被进程占用)
a.生成大文件 b.模拟文件被调用 tail /data/1.log (查看文件信息,跟随文件变化进行跟新) c.进入到/data目录删除1.log(新窗口) d.在旧窗口查看磁盘控件,未被释放 df-h e.通过lsof命令查找文件被哪个进程所调用 (默认没有此命令,安装:yum ) yum -y install lsof f.停掉进程 kill (进程的pid号) kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>] #-l <信息编号> 若不加<信息编号>选项,则 -l 参数会列出全部的信息名称。 #-s <信息名称或编号> 指定要送出的信息。 #[程序] [程序]可以是程序的PID或是PGID,也可以是工作编号。 g.重载:systemctl reload 服务 (重新生成) systemctl restart 服务(重启服务)