linux磁盘管理

linux磁盘管理

1、磁盘管理体系概述

image-20230102135329635

2、磁盘基础

2.1 磁盘概述

  • 内存: 临时存放,断电后丢失
  • 磁盘: 永久保存

2.2 磁盘分类

  • 机械硬盘(HDD):电机带动磁盘高速旋转,读取数据.速度可以达到5400,7200 rpm(round per minute每分钟多少转)
  • 固态硬盘(SSD):集成电路与芯片,存储芯片

2.3 磁盘接口

接口分类说明
SATA一般家用,一般用于机械硬盘,也有固态硬盘,容量大,价格较低
SAS给企业环境使用,一般用于机械硬盘,也有固态硬盘
PCIE企业级使用,固态硬盘用
U.2企业级固态硬盘使用。PCI-E类似

2.4 企业级环境磁盘选择

磁盘选型应用建议
一般情况下,数据备份SATA硬盘,10k rpm 4tb,8tb存放备份
网站服务器使用SAS接口 15k rpm 300G 600G 900G
高并发网站服务器可以选择固态硬盘PCI-E,SAS,SATA

2.5 机械VS固态

分类机械硬盘固态硬盘
性价比容量大价格低容量小价格高
稳定抗击打能力弱抗击打能力强
速度读写速度稍慢读写速度会很快
数据安全数据恢复易数据恢复难
寿命无限1~2w次

固态硬盘存储颗粒: SLC,TLC,MLC,3D Nand

2.6 机械硬盘内部结构

内部组成说明
盘片实际存放数据地方
磁头贴近盘片,读写数据
磁道磁盘中的圆环形区域,从0开始
扇区磁盘上最小存储单位,默认512字节
柱面不同盘面上相同的磁道组成的形状

image-20230102153422215

3、raid详解

3.1 什么是raid

raid是一种磁盘冗余阵列,管理磁盘的方式

在使用物理服务器的时候,多块硬盘,这些硬盘需要通过raid卡(设备),统一进行管理

大部分需要做raid后才能安装系统,部署服务

3.2 raid的特点

可以获取更高的容量

可以获取更高的性能

可以获取更高的冗余安全

3.3 常见的raid级别

raid级别原理最少需要几块冗余安全可用容量性能使用场景举例
raid0条带串联1最低磁盘容量总和读写最快不要求安全,只要速度从库,web服务器
raid1镜像只能有2块100%一半的容量写入慢,读取可以对安全性要求较高的系统盘,监控服务器
raid5镜像3最多坏一块损失一块盘的容量写入性能不好,读取可以对于速度和安全有要求的普通数据库,访问量不高
raid10镜像4可以坏一半损失一半硬盘的容量读写很快对于性能和安全要求较高的高并发高访问量的主库
  • raid5工作原理

image-20230102160009710

  • raid10工作原理

image-20230102160203188

4、物理机使用流程

4.1 服务器分类

  • 机架式服务器
  • 塔式服务器
  • 刀片式服务器

4.2 服务器尺寸

  • 19英寸机柜
  • 每个服务器高度单位是U ,1U表示4.45cm,常用2U,1U,4U,更多U数的服务器一般小型机,大型机
  • 路数: 2路表示这个服务器有2颗CPU

4.3 上架拆箱全流程

  • 拆箱
  • 上架
  • 开机
  • 配置idrac
    • dell idrac
    • ibm imm
    • hp ilo
    • 华为 ibmc
  • 配置raid(raid卡实现) 系统raid1 剩余raid5
  • 安装系统(U盘安装) 如果大量服务器装机,可以通过cobbler批量装机
  • 正常安装系统即可
  • 根据要求部署服务
  • 关机

5、磁盘分区

5.1 磁盘分区概念

  • 主分区、扩展分区、逻辑分区、MBR/GPT
  • MBR:每一块硬盘上存放磁盘引导程序,引导程序在磁盘开头部分,用于引导系统启动
  • 位置:磁盘分区表 磁盘的开始部分:0磁头,0磁道,1扇区(512字节)
  • 512字节分别包括:引导程序446字节(MBR)、磁盘分区表(64字节) 4个分区表、结束标记55AA,2字节

image-20230102185355117

分区表64字节,每个分区占用16字节,最多只有4个分区

这4个分区叫做主分区,如果只划分1分区使用所有空间,将无法继续划分分区,如果划分了4个分区,但是磁盘空间还有剩余,剩余空间将无法继续使用

MBR中分区表的组织将磁盘的可寻址存储空间限制为2TB(232×512字节)。并且只支持4个主分区,或者3个主分区和1个扩展分区的组合。如果要创建更多分区,则需要将其中一个主分区设为“扩展分区”,然后在扩展分区内创建更多逻辑分区

5.2 主分区-扩展分区-逻辑分区的概念

image-20230102185925408

扩展分区是用于解决主分区数量主分区只能有4个问题,扩展分区无法直接使用,需要将其中一个主分区设为“扩展分区”,然后在扩展分区内创建更多逻辑分区

逻辑分区->扩展分区,用于存放数据

基于MBR的分区方案正在被新计算机中的GUID分区表(GPT) 方案取代,因为GPT分区表磁盘支持长达2^64个块的卷,例如对于具有512-字节扇区,即9.44ZB–zettabytes,并且能够拥有多达128个主分区。但是GPT与操作系统的兼容性不如MBR

5.3 如何判断分区是MBR还是GPT

https://blog.csdn.net/m0_49562857/article/details/128523829?spm=1001.2014.3001.5502

5.4 磁盘分区的命名方式

#磁盘文件或分区文件放在/dev/下面

#磁盘接口:
sas/sata/scsi接口的硬盘,硬盘名字是以sd开头
虚拟机(kvm)/公有云:     硬盘名字是以vd开头

#第几块硬盘:通过字母表示从字母a开始一次类推。
/dev/sda

#分区命名是根据分区类型进行命名的。
如果是主分区或者扩展分区则分区号从1-4范围。
如果是逻辑分区,逻辑分区的分区号从5开始

#案例
第2块SATA硬盘的第1个主分区   /dev/sdb1      
第3块SAS硬盘的第2个逻辑分区   /dev/sdc6
第5块公有云的云盘的第3个主分区 /dev/vde3

6、磁盘分区实战

6.1 分区三部曲

  • 创建分区
  • 创建文件系统
  • 挂载

挂载:给设备设置个入口,如果不挂载,这个设备无法访问,类似于没有门窗的监狱

6.2 磁盘分区

  • 操作磁盘的命令fdisk
  • 常用的参数
命令单词说明
pprint输出磁盘分区信息
nnew创建分区
ddelete删除分区
wwrite保存并退出
qquit退出不保存
  • 创建20MB的分区
Command (m for help): n    #创建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)        #提示选择类型
   e   extended
Select (default p): p          #输入p或回车默认使用主分区
Partition number (1-4, default 1):       #分区号回车使用默认的1号
First sector (2048-2097151, default 2048):            #回车,使用默认的起点
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +20M         #+20M分区20MB
Partition 1 of type Linux and of size 20 MiB is set

Command (m for help): p       通过p查看分区信息

Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x7e6b1a38

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048       43007       20480   83  Linux
Command (m for help): w          #w保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

#lsblk查看磁盘分区

6.3 格式化文件系统

mkfs.xfs /dev/sdc1
xfs是文件系统类型,CentOS 7默认的文件系统类型。 mkfs.ext4 文件系统类型,用于CentOS 6.x 或公有云使用

image-20230103205931705

常见的格式化报错:
mkfs.xfs: /dev/sdc1 appears to contain an existing filesystem (xfs).   #磁盘分区已经格式化
mkfs.xfs: Use the -f option to force overwrite.    #强制格式化mkfs.xxxx   -f参数

6.4 挂载

Linux中的设备,需要通过挂载命令,给设备指定入口(已经存在的空目录),否则将无法使用

  • 临时挂载,重启后失效
mount /dev/sdc1 /mnt/     #临时挂载
df -h   #检查挂载情况
umount /mnt/   #卸载

mount /dev/cdrom /media/     #挂载光盘本地的镜像
ls -l /mnt/Packages/*.rpm |wc -l     #查看光盘内的rpm包
  • 永久挂载
    • 方式一:把挂载命令mount /dev/sdb1 /mnt/ 写入到/etc/rc.local,注意命令最好写为绝对路径
    • 方式二:修改专业的开机自动挂载的配置文件/etc/fstab
  • /etc/fstab每一列含义
第1列第2列第3列第4列第5列第6列
设备名字挂载点文件系统类型: xfs,ext4,swap一般是defaults, 挂载选项是否备份是否检查
设备名字方式:/dev/sdc1
UUID形式: UUID=“048c0c5e-332a-44b6-bf70-99ff0c3fb2ff”
/mnt/xfsdefaults00

7、MBR与GPT的区别

分区表特点命令
MBR支持2tb以内的硬盘,大于2tb则只识别2tb. 区别主分区,扩展分区,逻辑分区fdisk/parted
GPT支持大容量硬盘,主分区无限使用(100多个)gdisk/parted
parted /dev/sdd
(parted) mktable gpt           #创建gpt格式的分区表,也可以使用mklabel gpt,但是MBR格式的分区表在这里叫做msdos
Warning: The existing disk label on /dev/sdd will be destroyed and all data on this disk will be lost. Do you want to continue?  #销毁现有的磁盘信息,数据丢失,是否继续
Yes/No? yes                                                               
(parted) mkpart print 0% 50%      #可以平均分成几份,也可以按照大小分,格式为mkpart print 0 10,分一个10M大小的分区
(parted) mkpart print 50% 100%                                         
(parted) print                    #查看分区信息                    
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size   File system  Name   Flags
 1      1049kB  537MB   536MB               print
 2      537MB   1073MB  536MB               print

(parted) rm 1         #删除第一个分区
(parted) quit         #退出 

使用parted命令进行分区时一定要检查对齐各个分区,达到最佳性能

align-check       检查分区N的类型(min|opt)是否对齐

8、创建swap交换分区

8.1 什么是swap交换分区

swap是磁盘的一块区域(分区/文件),当物理内存不够用时,系统会将内存中不常访问的数据保存到swap中,而当系统内存空闲的时候再将数据移到内存中,这也是常说的换入换出(swap in / swap out)

8.2 故障案例-系统swap空间被占用

#很多时候系统会告警->内存空间不足,swap空间被占用,如何解决?
1、保证系统正常运行,增加swap空间
2、寻找开发排查问题原因

#临时增加swap空间流程
1、创建指定大小的文件1g的文件
dd if=/dev/zero of=/tmp/1g  bs=1M count=1000

if = input file 输入文件/dev/zero不断输出空.
of = ouput file 输出文件
bs = block size 每次读取多少
count = 读取次数

2、格式化将普通文件转为swap
mkswap /tmp/1g
file /tmp/1g    #查看文件类型
/tmp/1g: Linux/i386 swap file (new style), version 1 (4K pages), size 255999 pages, no label, UUID=f5038e61-e7f2-4efe-9e12-419e3f950530

3、激活这个swap,把它加入到原本的swap空间中
free -h
chmod 600 /tmp/1g
swapon /tmp/1g
free -h
swapoff /tmp/1g    #卸载掉这块swap空间

4、配置永久挂载
/tmp/1g   swap  swap  defaults  0 0

9、企业分区方案

  • 服务器存放的数据不重要
分区作用与大小
/boot/引导分区引导系统启动与存放引导文件,存放系统内核镜像. 推荐1G即可
swap根据实际内存配置,大于8G,swap配置8G即可. 低于实际内存低于8G, 1.5倍或2倍,最大8G. 公有云可以不配置, 如果是java建议配置一些
/根分区所有剩余空间给根
  • 服务器存放重要的数据
分区作用与大小
/boot/引导分区引导系统启动与存放引导文件,存放系统内核镜像. 推荐1G即可
swap根据实际内存配置,大于8G,swap配置8G即可. 低于实际内存低于8G, 1.5倍或2倍,最大8G. 公有云可以不配置, 如果是java建议配置一些
/根分区给40G-200G,主要安装一些软件,重要数据单独存放,系统盘足够大可以给1.2T
/data/剩余所有空间
  • 不知道是否重要
分区作用与大小
/boot/引导分区引导系统启动与存放引导文件,存放系统内核镜像. 推荐1G即可
swap根据实际内存配置,大于8G,swap配置8G即可. 低于实际内存低于8G, 1.5倍或2倍,最大8G. 公有云可以不配置, 如果是java建议配置一些
/根分区给40G-200G,主要安装一些软件,重要数据单独存放,系统盘足够大可以给1.2T
剩余空间不划分未来谁使用谁划分

10、文件系统

常见文件系统说明
xfscentos 7默认的文件系统即可
ext4centos 6.x ubuntu 默认的文件系统
ext3centos 5.x 默认的文件系统
swap交换分区,也算是个文件系统

11、磁盘性能指标

磁盘性能指标说明
吞吐量io一般值得是磁盘读写速度
iops每秒可以进行的io数量(io per second),每秒可以进行读写次数
延迟进行读写的时候操作延时
故障间的平均时间固态硬盘 基本都是百万小时

连续读写: dd命令测试

随机读写: fio测试

fio可以测试这些指标

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值