磁盘管理详解

一、磁盘管理类型

1、常见服务器种类

  • 机架式
  • 塔式
  • 刀片式

2、磁盘的分类

  • 机械
  • 固态(NVME PCI-E)

3、磁盘接口类型

  • SATA
  • SAS接口(企业标配)

4、接口类型

  • SATA 7.2k 10K---->2T 4T 6T 12T
  • SAS 10k 15k---->300G 600G 900G
  • 磁盘大小:3.5英寸和2.5英寸
  • 台式机磁盘:3.5英寸

5、RAID磁盘陈列

磁盘个数 磁盘容量 安全冗余 性能 使用场景
RAID 0 至少1块 所有总和 不安全,坏1块全坏 最快 数据库从库
RAID 1 只能2块 一半 安全,可以坏1块 写入很慢,读取很快 监控服务器
RAID 5 至少3块 最多损坏1块 安全,可以坏1块 比raid 0慢,比raid 1块 比较稳定的业务线
RAID 10 至少4块 一半 可以损坏一半 较快 高并发

6、磁盘分区:

  • 对小于2T的磁盘分区:fdisk MBR格式
  • 对大于2T的磁盘分区:parted GPT格式
  • 格式化:mkfs.xfs -f
  • 挂载:mount
  • 卸载:umount -f

二、磁盘真实事故解决案例

1、服务器内存过载杀死占用内存最高的进程,oom内存溢出

1、导致内存溢出的原因:
- 访问量大,可以采取增加内存
- 由于进程程序导致内存飙升java程序导致,查找程序的原因
- 由于业务的网络波动原因
- 内部服务器,内存不够用的时候临时使用swap解决

2、创建swap的方式
# 创建一个块文件
[root@web01 ~]# dd if=/dev/zero of=/tmp/1g bs=1M count=1000
# 格式化为swap类型
[root@web01 ~]# mkswap /tmp/1g 
# 挂载swap分区
[root@web01 ~]# swapon /tmp/1g 
swapon: /tmp/1g: insecure permissions 0644, 0600 suggested.
You have new mail in /var/spool/mail/root
[root@web01 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        120M        734M        9.5M        1.1G        1.7G
Swap:          3.0G          0B        3.0G
# 查看swap分区的组成
[root@web01 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/sda2                              	partition	2097148	0	-2
/tmp/1g                                	file	1023996	0	-3
# 卸载swap文件
[root@web01 ~]# swapoff /tmp/1g

2、磁盘服务写入如何解决

1、inode号满了:通过 df -i 查看
2、block满了:通过 df -h 查看

# 如何查看小文件多大目录
find / -type d -size +1M
# 如何查找大文件
find / -type f -size +1G
# 查看整个目录及下面所有内容的大小
du -sh 文件名

3、删除文件不释放磁盘空间

1、问题剖析:
因为进程被调用的原因导致无法释放

2、解决思路:
# 查看文件被哪个进程所有调用lsof
[root@web01 ~]# yum -y  install lsof		# 安装命令
[root@web01 ~]# lsof |grep 1g
vim       2488         root    3r      REG                8,3 1048576000   17573898 /tmp/1g (deleted)
vim       2488         root    4u      REG                8,3       4096   17573899 /tmp/.1g.swp
You have new mail in /var/spool/mail/root
[root@web01 ~]# kill -9 2488

4、磁盘空间不够使用

第一块磁盘不够用:由于日志文件占用磁盘空间过大
/var/log/nginx/access.log	# 默认第一块磁盘空间100G
上面路径不变,解决磁盘不够用!

第一步:增加一块磁盘2T
第二步:挂载磁盘
mkdir /data
mount /dev/sdb /data
第三步:将access.log移动到新的磁盘(禁止用户上传或者写入数据)
第四步:做软链接
ln -s /data/access.log /var/log/nginx/access.log
posted @ 2024-08-18 21:55  Dusk_Yun  阅读(50)  评论(0)    收藏  举报