linux 磁盘管理
一. 磁盘相关
1.1 磁盘相关理论
1)raid相关
- raid 更好的管理服务器硬盘
- raid是物理卡 无需搭建。
- 获得更高的容量
- 获取更高的**性能****
- 获取更高的冗余(安全性)
raid级别 |
至少几块硬盘 |
容量 |
性能 |
冗余 |
应用场景 |
raid 0 (条带) |
至少一块硬盘 |
所有硬盘总和 |
最快的 |
只要坏一块就报废 |
数据库从库,储存从库 |
raid 1 (镜像) |
只能两块硬盘 |
所有磁盘总和一半 |
写入较慢,读取速度相当于是1块硬盘速度 |
100% |
系统盘监控服务器 |
raid 5 |
至少3块硬盘 |
损失1块硬盘容量 |
读取速度ok,写入较慢 |
最多坏1块 |
普遍数据库存储,访问量不高的 |
raid 10 |
至少4块硬盘,2的倍数增加 |
所有容量的一般 |
读写速度很快 |
可以损坏一半,但是不能在一组 |
高并发或者高访问量的数据库 存储 |
|
|
|
|
|
|
2)基本单位
- 扇区是磁盘读取的基本单位
- block是系统层面上面读写数据的单位
3)磁盘分区表
446 |
64 |
2 |
主引导记录 MBR(Master BootRecord) |
磁盘分区表,磁盘分区信息 |
55AA,分区信息结束 |
传统引导系统启动的程序 |
DPT |
DPT |
|
磁盘分区表 |
磁盘分区表 |
- 主分区:存放数据,一般一定要有
- 扩展分区: 用来给逻辑分区,创建空间
- 逻辑分区: 在扩展分区下面,进行创建,使用扩展分区空间.
4) gpt和mbr
- mbr升级版
- gpt 主分区足够用
- mbr 仅仅支持最大2tb硬盘, gpt支持大容量硬盘 2tb以上
gpt |
mbr |
主分区数量不限 |
主分区最多4个,扩展分区1个 |
可以额外支持大容量硬盘2tb以上 |
mbr只能支持2tb以内硬盘 |
6.2 磁盘相关命令
df -i
df -h
df -T
//使用df命令查看磁盘,下面分别介绍每列什么含义
[root@oldboyedu ~]
//设备名称 //磁盘大小 已用大小 可用大小 使用百分比 挂载点
Filesystem Size Used Avail Use%
Mounted on
/dev/vda1 62G 1.5G 58G 3% /
[root@aliyun ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
du -sh opt
-s: summary 总结 ,汇总 列出总和
-h:人性化显示容量信息 人类可读 ls/df/du/sort
[root@aliyun ~]
7856104 /var
3292244 /usr
2982544 /node
2157260 /root
2142692 /code
经过排查 /var目录 占用最多
iotop
iotop -o 只显示进行读写的进程信息
dd if=/dev/zero of=/tmp/big bs=1k count=10000
二. 磁盘挂载三部曲
磁盘使用三部曲 |
|
|
磁盘分区 |
fdisk /parted/gdisk |
|
格式化 |
创建文件系统(装修下磁盘分区可以存放文件). mbr/gpt |
|
挂载 |
给设备一个入口, 给磁盘分区装上门窗,给用户使用与访问 |
|
1.1 分区
fdisk -l 查看分区信息
[root@localhost ~]
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x000f915d 创建新的 DOS 磁盘标签
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f915d
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
将使用默认值 20971519
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f915d
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20971519 10484736 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
1.2 格式化
[root@localhost ~]
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655296 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621184, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]
0
解释下:
echo $? 查看上个命令执行结果是否正常 0代表正确(非0都是错误)
1.3 挂载
mount 设备 入口挂载点
例如: /dev/sdb1 /mnt/zhangbingbing
---
[root@localhost ~]
[root@localhost ~]
[root@localhost ~]
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 351M 0 351M 0% /run/user/0
/dev/sdb1 10G 33M 10G 1% /mnt/zhangbingbing
1.4 永久挂载
[root@localhost ~]
[root@localhost ~]
mount /dev/sdb1 /mnt/zhangbingbing/
[root@localhost ~]
reboot 重启检查
[root@localhost ~]
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
/dev/sdb1 10G 33M 10G 1% /mnt/zhangbingbing
tmpfs 351M 0 351M 0% /run/user/0
blkid
[root@localhost ~]
/dev/sdb1 /mnt/zhangbingbing xfs defaults 0 0
解释下:
/dev/sdb1 设备名称
/mnt/zhangbingbing 挂载点
xfs 文件系统类型
defaults 挂载选项
0 是否备份
0 是否开机检查
1.5 磁盘卸载
umount /mnt/zhangbingbing
解释下:umount 卸载点
[root@localhost ~]
[root@localhost ~]
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 351M 0 351M 0% /run/user/0
/dev/sdb1 10G 33M 10G 1% /mnt/zhangbingbing
[root@localhost ~]
[root@localhost ~]
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.7G 0 1.7G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 12M 1.7G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.3G 16G 8% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 351M 0 351M 0% /run/user/0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)