Linux 磁盘管理
1.磁盘分类
磁盘,硬盘 != 内存
- HDD(hard)机械硬盘.
- SSD(solid)固态硬盘.
- 磁盘接口:类似于水壶的壶嘴,决定了磁盘最大速度. ⭐
硬盘选项 | 说明 | 容量转速 |
---|---|---|
机械硬盘 | SATA | 备份服务器,性能要求不高场景,10k rpm 4tb 8tb 10tb 根据需要选择(未来规划) |
机械硬盘 | SAS | 企业环境标配,生产环境使用,15k rpm 300G 600G 900G |
固态硬盘 | U2/PCI-E | 访问量大,大量读写操作,性能好,价格高. TB |
固态硬盘 | SATA/SAS | 性价比高. TB |
2.磁盘分区
主分区:
扩展分区:
逻辑分区
2.1 了解-磁头-磁道-扇区(机械硬盘)
2.2 了解-固态硬盘组成
# 控制芯片(主控)
# 存储芯片(颗粒)
slc
mlc
tlc
QLC
3d xxx
2.3 主分区-扩展分区-逻辑分区(硬盘小于2t)
- MBR引导对应的磁盘分区最多有4个(主分区).
- 创建扩展分区,无法直接使用。需要在扩展分区下面创建逻辑分区然后使用。
分区MBR | 说明 |
---|---|
主分区 | 直接占用磁盘分区表,可以存放数据. |
扩展分区 | 占用主分区1个位置,只能有1个.一般剩余多少空间给扩展分区多少.无法直接使用. |
逻辑分区 | 先创建扩展分区,然后创建逻辑分区,可以存放数据. |
2.4 磁盘分区实战-fdisk ⭐️⭐️⭐️⭐️⭐️
2.4.1 磁盘分区简介
点击查看代码
[root@Kylin-V10-sp3 ~]# fdisk -l
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x08e597e1
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4abfed3a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 2097151 2095104 1023M 83 Linux
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/sdd:2.93 TiB,3221225472000 字节,6291456000 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:gpt
磁盘标识符:7E7322A5-9FA0-4C1E-BCFB-FC2DA454683B
设备 起点 末尾 扇区 大小 类型
/dev/sdd1 34 390625 390592 190.7M Linux 文件系统
/dev/sdd2 391168 585727 194560 95M Linux 文件系统
Disk /dev/mapper/klas-root:65.11 GiB,69906464768 字节,136536064 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-swap:2.11 GiB,2260729856 字节,4415488 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-backup:31.79 GiB,34129051648 字节,66658304 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@Kylin-V10-sp3 ~]#
'''
磁盘命名:
/dev/sd开头 #sas,sata,scsi接口
/dev/vd开头 #云服务器 云盘 ,虚拟化环境
/dev/nvme卡头 #固态硬盘 nvme
第1块硬盘 a 一次类推
/dev/sda
分区MBR分区中 数字形式
主分区或扩展分区 1-4
逻辑分区:从5开始.
第1个主分区 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
1个主分区 1个扩展分区 1个逻辑
/dev/sda1 /dev/sda2 /dev/sda5
'''
2.4.2 fdisk 指令
w 保存并退出 write
q 退出不保存 quit
p 查看分区信息 print
n 新建分区 new
d 删除 delete
2.4.3 给第2块硬盘/dev/sdb,创建1个100mb的主分区,创建扩展分区(剩下所有容量),创建100M逻辑分区逻辑分区
点击查看代码
[root@Kylin-V10-sp3 ~]# fdisk -l | grep sd
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
Disk /dev/sdd:2.93 TiB,3221225472000 字节,6291456000 个扇区
/dev/sdd1 34 390625 390592 190.7M Linux 文件系统
/dev/sdd2 391168 585727 194560 95M Linux 文件系统
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):F
未分区的空间 /dev/sdb:1023 MiB,1072693248 个字节,2095104 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
起点 末尾 扇区 大小
2048 2097151 2095104 1023M
命令(输入 m 获取帮助):p
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4abfed3a
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1): p
值超出范围。
分区号 (1-4, 默认 1):
第一个扇区 (2048-2097151, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 默认 2097151): +100M
创建了一个新分区 1,类型为“Linux”,大小为 100 MiB。
命令(输入 m 获取帮助):p
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4abfed3a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 206847 204800 100M 83 Linux
1 分区上的文件系统/RAID 签名将被擦除。
命令(输入 m 获取帮助):n
分区类型
p 主分区 (1 primary, 0 extended, 3 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):e
分区号 (2-4, 默认 2):
第一个扇区 (206848-2097151, 默认 206848):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (206848-2097151, 默认 2097151):
创建了一个新分区 2,类型为“Extended”,大小为 923 MiB。
命令(输入 m 获取帮助):p
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4abfed3a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 206847 204800 100M 83 Linux
/dev/sdb2 206848 2097151 1890304 923M 5 扩展
1 分区上的文件系统/RAID 签名将被擦除。
命令(输入 m 获取帮助):n
所有主分区的空间都在使用中。
添加逻辑分区 5
第一个扇区 (208896-2097151, 默认 208896):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (208896-2097151, 默认 2097151): +100M
创建了一个新分区 5,类型为“Linux”,大小为 100 MiB。
命令(输入 m 获取帮助):p
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4abfed3a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 206847 204800 100M 83 Linux
/dev/sdb2 206848 2097151 1890304 923M 5 扩展
/dev/sdb5 208896 413695 204800 100M 83 Linux
1 分区上的文件系统/RAID 签名将被擦除。
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 459M 0 459M 0% /dev
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 475M 13M 462M 3% /run
tmpfs tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 4.4G 61G 7% /
tmpfs tmpfs 475M 0 475M 0% /tmp
/dev/sda1 xfs 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup xfs 32G 313M 32G 1% /backup
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/sdd1 xfs 186M 12M 175M 6% /resouce/data2
/dev/sdd2 xfs 90M 5.7M 85M 7% /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkdir /resouce/data1
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mount /dev/sdb1 /resouce/data
[root@Kylin-V10-sp3 ~]# mount /dev/sdb5 /resouce/data2
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# touch /resouce/data/1.txt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# touch /resouce/data1/2.txt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# tree /resouce/
/resouce/
├── data
│ └── 1.txt
├── data1
│ └── 2.txt
├── data2
└── data3
4 directories, 2 files
[root@Kylin-V10-sp3 ~]#
2.4.5 删除分区.
点击查看代码
[root@Kylin-V10-sp3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.4G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/sdb1 1017M 40M 978M 4% /resouce/data
/dev/sdd1 186M 12M 175M 6% /resouce/data2
/dev/sdd2 90M 5.7M 85M 7% /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# umount /dev/sdb1
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.4G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/sdd1 186M 12M 175M 6% /resouce/data2
/dev/sdd2 90M 5.7M 85M 7% /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4abfed3a
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 2097151 2095104 1023M 83 Linux
命令(输入 m 获取帮助):m
帮助:
DOS (MBR)
a 开关 可启动 标志
b 编辑嵌套的 BSD 磁盘标签
c 开关 dos 兼容性标志
常规
d 删除分区
F 列出未分区的空闲区
l 列出已知分区类型
n 添加新分区
p 打印分区表
t 更改分区类型
v 检查分区表
i 打印某个分区的相关信息
杂项
m 打印此菜单
u 更改 显示/记录 单位
x 更多功能(仅限专业人员)
脚本
I 从 sfdisk 脚本文件加载磁盘布局
O 将磁盘布局转储为 sfdisk 脚本文件
保存并退出
w 将分区表写入磁盘并退出
q 退出而不保存更改
新建空磁盘标签
g 新建一份 GPT 分区表
G 新建一份空 GPT (IRIX) 分区表
o 新建一份的空 DOS 分区表
s 新建一份空 Sun 分区表
命令(输入 m 获取帮助):F
未分区的空间 /dev/sdb:0 B,0 个字节,0 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
命令(输入 m 获取帮助):d
已选择分区 1
分区 1 已删除。
命令(输入 m 获取帮助):F
未分区的空间 /dev/sdb:1023 MiB,1072693248 个字节,2095104 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
起点 末尾 扇区 大小
2048 2097151 2095104 1023M
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@Kylin-V10-sp3 ~]# fdisk -l | grep sd
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
Disk /dev/sdd:2.93 TiB,3221225472000 字节,6291456000 个扇区
/dev/sdd1 34 390625 390592 190.7M Linux 文件系统
/dev/sdd2 391168 585727 194560 95M Linux 文件系统
[root@Kylin-V10-sp3 ~]#
2.5 磁盘分区实战-parted或gdisk ⭐️⭐️⭐️⭐️⭐️
磁盘引导(磁盘分区表) | 特点 | 对应的命令 |
---|---|---|
MBR(msdos,dos) | 适用于2TB以内的硬盘,有传统的主分区,扩展分区,逻 辑分区概念. | fdisk(mbr) |
GPT | 适用于各种大型的硬盘,尤 其是2tb以上的硬盘,主分区 管够,128个. | parted(mbr,gpt),gdisk(gpt) |
点击查看代码
# parted 可以使用tab键
[root@Kylin-V10-sp3 ~]# parted /dev/sdd
GNU Parted 3.3
使用 /dev/sdd
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted)
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] 打印通用求助信息,或 COMMAND 的帮助
mklabel,mktable LABEL-TYPE 创建新的磁盘卷标 (分区表)
mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区
name 编号 名称 将指定“编号”的分区命名为“名称”
print [devices|free|list,all|数字] 显示分区表、可用设备、剩余空间、所有分区或特殊分区
quit 退出程序
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resizepart NUMBER END 改变 NUMBER 的大小
rm NUMBER 删除编号为 NUMBER 的分区
select 设备 选择要编辑的设备
disk_set 旗标 状态 变更已选设备上的旗标
disk_toggle [旗标] 切换已选设备上的旗标状态
set 编号 旗标 状态 改变指定“编号”分区的旗标
toggle [编号 [旗标]] 切换“编号”分区上的“旗标”状态
unit 单位 设置缺省的“单位”
version 显示目前 GNU Parted 的版本与版权信息
(parted) mktable gpt
(parted) p
型号:VMware, VMware Virtual S (scsi)
磁盘 /dev/sdd:3221GB
扇区大小 (逻辑/物理):512B/512B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
(parted) mkpart
对齐检查 disk_set help mkpart name quit resize rm set unit
align-check disk_toggle mklabel mktable print rescue resizepart select toggle version
(parted) mkpart primary 0 200
警告: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
忽略/Ignore/放弃/Cancel? i
(parted) mkpart primary 200 300
(parted) q
信息: 你可能需要 /etc/fstab。
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# fdisk -l | grep sd
Disk /dev/sda:100 GiB,107374182400 字节,209715200 个扇区
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 字节,2097152 个扇区
/dev/sdb1 2048 2097151 2095104 1023M 83 Linux
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
Disk /dev/sdd:2.93 TiB,3221225472000 字节,6291456000 个扇区
/dev/sdd1 34 390625 390592 190.7M Linux 文件系统
/dev/sdd2 391168 585727 194560 95M Linux 文件系统
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 459M 0 459M 0% /dev
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 475M 6.9M 468M 2% /run
tmpfs tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 4.4G 61G 7% /
tmpfs tmpfs 475M 0 475M 0% /tmp
/dev/sda1 xfs 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup xfs 32G 313M 32G 1% /backup
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/sdb1 xfs 1017M 40M 978M 4% /resouce/data
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdd1
meta-data=/dev/sdd1 isize=512 agcount=4, agsize=12206 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=48824, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdd2
meta-data=/dev/sdd2 isize=512 agcount=4, agsize=6080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=24320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkdir /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mount /dev/sdd1 /resouce/data2
[root@Kylin-V10-sp3 ~]# mount /dev/sdd2 /resouce/data3
3.新盘分区-格式化-挂载⭐️⭐️⭐️⭐️⭐️
3.1 拿到一块硬盘使用流程
步骤 | 说明 | 指令 |
---|---|---|
磁盘分区 | 划分隔断 | fdisk,parted |
格式化(创建文件系统) | 装修,装修风格 | mkfs.xfs mkfs.ext4 |
挂载(给设备设置入口) | 安装门窗,入住 | mount |
3.2 对/dev/sdc创建1个分区使用所有空间.
点击查看代码
[root@Kylin-V10-sp3 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.35.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x026afacf 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x026afacf
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1):
第一个扇区 (2048-2097151, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 默认 2097151):
创建了一个新分区 1,类型为“Linux”,大小为 1023 MiB。
命令(输入 m 获取帮助):p
Disk /dev/sdc:1 GiB,1073741824 字节,2097152 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x026afacf
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 2097151 2095104 1023M 83 Linux
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
[root@Kylin-V10-sp3 ~]#
3.3 创建文件系统
# make filesystem
# mkfs 磁盘分区
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=65472 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=261888, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1566, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
3.4 挂载 ⭐️⭐️⭐️⭐️⭐️
- 挂载:给Linux设备一个入口,我们在Linux中通过入口进入设备.
- 如果不挂载,设备就相当于是个没有窗口没有门的监狱,无法进入与使用.
- 挂载点:设备的入口,目录.
- 比如/mnt/目录一般用于临时挂载.
# 挂载:mount 设备 入口(挂载点)
# 取消挂载:
umount 挂载点
umount 设备
[root@Kylin-V10-sp3 ~]# mount /dev/sdc1 /resouce/data1
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.4G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/sdb5 95M 6.0M 89M 7% /resouce/data2
/dev/sdd2 90M 5.7M 85M 7% /resouce/data3
/dev/sdb1 95M 6.0M 89M 7% /resouce/data
/dev/sdc1 1017M 40M 978M 4% /resouce/data1
3.5 挂载的永久生效
# 方案01: /etc/rc.local
chmod +x /etc/rc.d/rc.local
把命令mount /dev/sdb1 /data/ 写入到/etc/rc.local即可.
# 方案02: 专业方案/etc/fstab 文件 ⭐ ⭐ ⭐ ⭐ ⭐
# fs (filesystem) tab(table)文件系统挂载表格
# mount /dev/sdb1 /data/改造为符合fstab文件的格式.
# fstab实现永久挂载配置的格式:
/dev/mapper/klas-root / xfs defaults 0 0
/dev/mapper/klas-backup /backup xfs defaults 0 0
UUID=0651de56-e8f8-4c0c-993b-4523c83f4e82 /boot xfs defaults 0 0
/dev/mapper/klas-swap none swap defaults 0 0
/dev/sdc1 /resouce/data1 xfs defaults 0 0
'''
第1列 设备名字或UUID
第2列 挂载点
第3列 文件系统类型xfs,ext4要与格式化的时候一致
第4列 挂载选项/参数 使用defaults表示默认即可.
第5列 是否进行dump导出备份.一般关闭.
第6列 是否进程fsck磁盘检查.一般关闭
'''
4.raid
4.1 概述
# 物理服务器使用.
# 对硬盘进行批量,统一管理.
# raid磁盘冗余阵列,用来管理硬盘. 使用Raid卡实现.
# 好处(无法同时满足)
可以拥有更高的容量.(4tb*10 = 40tb)
可以拥有更高的性能.(读写性能)
可以拥有更高的冗余,安全(备份).
4.2 raid级别(不同的磁盘管理方式)⭐️⭐️⭐️⭐️⭐️
- 根据我们所选择的raid级别的不同,我们可以获取更高容量,性能,冗余.
- 温馨提示:不同厂商,raid实现,特点有些区别.
Raid级别 | 应用场景 |
---|---|
Raid 0 | 追求性能,不要求冗余(安全) |
Raid 1 | 监控服务器,备份服务,系统根分区 |
Raid 5 | 访问量不高,读写不高,性能要求不高(写) |
Raid 10 | 性能高,冗余,给重要服务 |
5. 磁盘故障:磁盘空间不足系列⭐️⭐️⭐️⭐️⭐️
- 提示: no space left on device 磁盘空间不足.
5.1 常见原因
磁盘空间不足原因
- block剩余数量(磁盘空间),一般是一些较大文件导致. 日常理解磁盘空间不足,linux,windows,手机.
- inode剩余数量不足
- block被占用,文件为彻底删除导致.
5.2 block原因,一些大文件.
5.2.1 故障复现
故障复现
# /usr/ /var/ /etc/
cd /var/log/
for n in {1..20}
do
dd if=/dev/zero of=1g-$n bs=1M count=1024
done
5.2.2 排查流程
- 检查当前系统磁盘使用情况: df -h
- 一步一步排查(哪个目录或文件)大量占用空间 du -sh
#1.查看整体
df -h 查看哪个磁盘分区空间不足.
通过du 查看
#2.一层一层排查
看第1层目录
du -sh /* |sort -hrk1
du -sh /var/* |sort -rhk1
du -sh /var/log/* |sort -rhk1
#3.定位到文件或目录 确认后再删除.
5.2.3 小结
遇到磁盘空间不足,会使用df命令和du命令排查.
[root@Kylin-V10-sp3 ~]# du -sh /etc/* | sort -hr | head
9.7M/etc/selinux
9.3M/etc/udev
920K/etc/pki
5.3 inode大量被占用导致磁盘空间不足
磁盘分区格式化后inode总数是固定的,每创建1个文件就要占用1个inode.
随着时间推移一些服务发生异常,大量生成小文件,最终导致inode不足
5.3.1 故障复现
点击查看代码
# 创建1个小的磁盘分区,然后挂载使用.
#1.创建分区(数据文件,块文件)
[root@Kylin-V10-sp3 ~]# dd if=/dev/zero of=/resouce/inode/200m bs=1M count=200
记录了200+0 的读入
记录了200+0 的写出
209715200字节(210 MB,200 MiB)已复制,0.244658 s,857 MB/s
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /resouce/inode/200m
/resouce/inode/200m: data
[root@Kylin-V10-sp3 ~]#
#2.格式化
[root@Kylin-V10-sp3 ~]# mkfs.xfs /resouce/inode/200m
meta-data=/resouce/inode/200m isize=512 agcount=4, agsize=12800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=51200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /resouce/inode/200m
/resouce/inode/200m: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
[root@Kylin-V10-sp3 ~]#
#3.挂载
[root@Kylin-V10-sp3 ~]# mount /resouce/inode/200m /mnt
[root@Kylin-V10-sp3 ~]#
#4.检查 df -h df -i
[root@Kylin-V10-sp3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.6G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/loop0 195M 12M 184M 6% /mnt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# cd /mnt/
[root@Kylin-V10-sp3 /mnt]#
#5.创建大量文件 echo {1..400000} | xargs touch
[root@Kylin-V10-sp3 /mnt]# touch {01..102400}.txt
touch: 无法创建 '102366.txt': 设备上没有空间
touch: 无法创建 '102367.txt': 设备上没有空间
touch: 无法创建 '102368.txt': 设备上没有空间
[root@Kylin-V10-sp3 /mnt]#
5.3.2 排查流程
思路
创建文件提示磁盘空间不足.
通过df -h查看发现磁盘空间还有空间,df -i查看inode是否耗尽.
df -h 没有满.
df -i 不足了.
排查: find / -type d -size +1M #目录大小(文件名)大于1M
解决:
删除小文件
cd /test/inode
ls | xargs rm
点击查看代码
[root@Kylin-V10-sp3 /mnt]# df -i
文件系统 Inodes 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 117317 529 116788 1% /dev
tmpfs 121363 1 121362 1% /dev/shm
tmpfs 121363 787 120576 1% /run
tmpfs 121363 17 121346 1% /sys/fs/cgroup
/dev/mapper/klas-root 34134016 129672 34004344 1% /
tmpfs 121363 10 121353 1% /tmp
/dev/sda1 524288 339 523949 1% /boot
/dev/mapper/klas-backup 16664576 1171 16663405 1% /backup
tmpfs 121363 6 121357 1% /run/user/0
/dev/loop0 102400 102368 32 100% /mnt
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.6G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/loop0 195M 66M 130M 34% /mnt
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# rm -f ./*
-bash: /usr/bin/rm: 参数列表过长
[root@Kylin-V10-sp3 /mnt]# rm -f .*
rm: 无法删除 '.': 是一个目录
rm: 无法删除 '..': 是一个目录
[root@Kylin-V10-sp3 /mnt]# rm -f *.txt
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# ll
总用量 0
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# df -i
文件系统 Inodes 已用(I) 可用(I) 已用(I)% 挂载点
devtmpfs 117317 529 116788 1% /dev
tmpfs 121363 1 121362 1% /dev/shm
tmpfs 121363 789 120574 1% /run
tmpfs 121363 17 121346 1% /sys/fs/cgroup
/dev/mapper/klas-root 34134016 129672 34004344 1% /
tmpfs 121363 10 121353 1% /tmp
/dev/sda1 524288 339 523949 1% /boot
/dev/mapper/klas-backup 16664576 1171 16663405 1% /backup
tmpfs 121363 6 121357 1% /run/user/0
/dev/loop0 102400 3 102397 1% /mnt
[root@Kylin-V10-sp3 /mnt]#
5.3.3 删除大量小文件方案
# 创建或删除大量文件就会有错误提示.
touch {1..500000}
-bash: /usr/bin/touch: 参数列表过长
argument list too long
# 通过管道|xargs方式实现.
| vs |xargs
| 传递的字符串 wc -l 或grep 或sort
|xargs 后面命令的参数
命令选项 命令的不同功能-f -r
命令参数 命令处理的目标 用户名,文件名字,目录名 rm -fr lidao.txt
#创建大量小文件的环境
cd /oldboy/test
echo {1..500000}|xargs touch
echo a{1..500000}|xargs touch
#方案01
#删除
ls |xargs rm -f
#如果上面还是无法删除,通过下面的方式缩小范围.
ls a* |xargs rm -f
ls 1* |xargs rm -f
#方案02:删除文件所在的目录 记录下目录的权限,所有者.
5.3.4 小结
# inode有总数,创建大量小文件占用inode,日积月累就会导致inode数量不足.inode用光了,创建文件提示磁盘空间不足.
# 现象:
创建文件提示磁盘空间不足,或修改文件.
# 排查:
df -h看看是否为block导致.
df -i查看inode使用情况.
inode满了,查看哪个目录下面有大量小文件: find / -type d -size +10M
ll -h 查看目录大小find -type d 目录大小,目录下文件名所占空间.
# 解决:
确定可以删除后.
ls |xargs rm -f
ls 1* |xargs rm -f
ls a* |xargs rm -f
5.4 block占用,文件未被彻底删除导致的故障
文件被彻底删除条件(文件删除原理):
-
- rm删除,硬链接数为0.(没有入口)
-
- 文件没有被任何进程占用. 日志.
5.4.1 故障复现
点击查看代码
# 第一个窗口创建一个大文件,并用查看大文件(进程一直在后台)
[root@Kylin-V10-sp3 ~]# dd if=/dev/zero of=/var/log/big.log bs=1M count=2000
记录了2000+0 的读入
记录了2000+0 的写出
2097152000字节(2.1 GB,2.0 GiB)已复制,3.84818 s,545 MB/s
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# tail -f /var/log/big.log
已终止
[root@Kylin-V10-sp3 ~]#
# 第二个窗口删除这个大文件(表面上看删除成功,但存储未释放)
[root@Kylin-V10-sp3 ~]# rm -f /var/log/big.log
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
tail 2088 root 3r REG 253,0 2097152000 203324588 /var/log/big.log (deleted)
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
polkitd 749 polkitd 4r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
dbus-daem 735 dbus 6r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
[root@Kylin-V10-sp3 ~]#
5.4.2 排查流程
如何定位到是文件未彻底删除导致的故障?
df -h 提示磁盘空间不足,du -sh查看没有满,占用的空间与df的差异.
思路
# 精确定位到哪个文件未彻底删除
yum install -y lsof # 下载lsof
lsof |grep delete #文件被删除但是还正使用中.
lsof |grep delete
# 进程命令 pid 文件大小
# 文件名 删除标记
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
tail 2088 root 3r REG 253,0 2097152000 203324588 /var/log/big.log (deleted)
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
# 重启进程或结束对应进程
kill pid
点击查看代码
[root@Kylin-V10-sp3 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 6.5G 59G 10% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/loop0 195M 12M 184M 6% /mnt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# du -h / | sort -hr | head -5
du: 无法访问 '/proc/2180/task/2180/fd/3': 没有那个文件或目录
du: 无法访问 '/proc/2180/task/2180/fdinfo/3': 没有那个文件或目录
du: 无法访问 '/proc/2180/fd/4': 没有那个文件或目录
du: 无法访问 '/proc/2180/fdinfo/4': 没有那个文件或目录
4.2G /
3.3G /usr
1.3G /usr/lib
903M /usr/share
738M /usr/lib/firmware
[root@Kylin-V10-sp3 ~]# du -h /usr | sort -hr | head -5
3.3G /usr
1.3G /usr/lib
903M /usr/share
738M /usr/lib/firmware
537M /usr/lib64
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
tail 2088 root 3r REG 253,0 2097152000 203324588 /var/log/big.log (deleted)
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
polkitd 749 polkitd 4r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
dbus-daem 735 dbus 6r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# lsof | head -5
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 4096 128 /
systemd 1 root rtd DIR 253,0 4096 128 /
systemd 1 root txt REG 253,0 1616104 67394388 /usr/lib/systemd/systemd
systemd 1 root mem REG 253,0 1581928 26345 /usr/lib64/libm-2.28.so
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# kill 2088
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
polkitd 749 polkitd 4r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
dbus-daem 735 dbus 6r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd_nss 842 root 17r REG 253,0 8406312 135364753 /var/lib/sss/mc/passwd (deleted)
[root@Kylin-V10-sp3 ~]#
5.4.3 小结
# 文件删除原理(条件):
硬链接数为0(rm)
文件没有进程调用(进程占用为0)
# 排查:
df -h
du -sh 分区
df -h 显示空间不足,du -sh显示空间充足.
进程占用,文件未彻底删除导致的磁盘空间不足.
# 解决:
lsof |grep detele查找进程,服务,选择大的.
重启服务(流量低谷期).
5.5 总结
6. 磁盘分区方案 ⭐⭐
6.1 思路
# 系统安装之前我们对系统磁盘分区的规划.
linux常用分区
/ 根分区
/boot 分区 存放引导,存放内核
swap 交换分区(占用磁盘空间)
/data/分区 存放数据
/home/ /usr/ 不推荐了.
# 未来一些场景中,我们需要提升系统性能,我们就需要关闭swap.
分区方案 | 划分方法 |
---|---|
通用方案-服务上没有重要的数据 | /boot/ 分区存放引导,内核 1-2G swap 是内存的1.5-2倍最大8G.后天(k8s,数据 库)关闭. / 根分区,剩余所有都给根分区. |
通用方案-服务上有重要的数据 | /boot/ swap / 系统分区40G-200G /data/ 数据分区剩余多少给多少 存放数据 |
通用方案-不知道服务器作用 | 先划分 /boot/ swap / 剩余空间留着. |
6.2 部署centos 7/麒麟v10
# 进行手动分区
/boot/
swap
/
/data/
# 在/data/下面创建文件
# 重新安装系统重新格式化/,/boot swap 保留/data /dev/sda5,等待安装结束.
# 手动挂载/data/测试,数据是否还在
mkdir -p /data
mount /dev/sda5 /data/
# 检查/data/目录下面数据是否还在.
修改/etc/fstab
6.3 文件系统类型
# 组织存放数据形式.
# 查看系统支持的文件系统
# mkfs按tab键
[root@Kylin-V10-sp3 ~/test]# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
[root@Kylin-V10-sp3 ~/test]#
[root@Kylin-V10-sp3 ~/test]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cpuset
nodev cgroup
nodev cgroup2
nodev tmpfs
nodev devtmpfs
nodev configfs
nodev debugfs
nodev tracefs
nodev securityfs
nodev sockfs
nodev dax
nodev bpf
nodev pipefs
nodev hugetlbfs
nodev devpts
nodev ecryptfs
nodev autofs
nodev mqueue
nodev pstore
xfs
nodev rpc_pipefs
# 常用的文件系统
xfs 日志文件系统
ext系列 ext4 <== 日志文件系统
ext2 <== 没有日志功能
swap mkswap 交换分区
其他文件系统btrfs,zfs
6.4 磁盘性能指标
磁盘性能指标 | |
---|---|
类型(机械,固态) | |
容量 | |
吞吐量 | 极限速度. |
iops | 每秒读写次数. |
连续读写速度 | 传输大文件. |
随机读写速度 | 小文件. |
tbw寿命(固态硬盘) |
- dd 连续读写
- fio 测试连续读写,随机读写,读写延迟,iops.
具体操作参考如下:
https://help.aliyun.com/zh/ecs/user-guide/test-the-performance-of-block-storage-devices
7. swap配置 ⭐
swap 交换分区,内存不足临时充当内存.
基于性能考虑,会考虑关闭swap,尤其是一些服务k8s,mysql.
7.1 增加swap
点击查看代码
# dd 创建指定大小的文件
# if input file从哪里读取文件. /dev/zero 字符文件,不断输出0.
# of output file写入到哪里
# bs block size 每次读多少
# count 次数
[root@Kylin-V10-sp3 ~]# mkdir /swap
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# dd if=/dev/zero of=/swap/1g bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB,1.0 GiB)已复制,3.36927 s,319 MB/s
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# ll -h /swap/1g
-rw-r--r-- 1 root root 1.0G 9月 8 09:31 /swap/1g
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /swap/1g
/swap/1g: data
[root@Kylin-V10-sp3 ~]#
# 格式化(成为swap)
[root@Kylin-V10-sp3 ~]# mkswap /swap/1g
mkswap: /swap/1g:不安全的权限 0644,建议使用 0600。
正在设置交换空间版本 1,大小 = 1024 MiB (1073737728 个字节)
无标签,UUID=5aeca3cd-f7ab-44d8-ac90-815fcc3b3c8d
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /swap/1g
/swap/1g: Linux swap file, 4k page size, little endian, version 1, size 262143 pages, 0 bad pages, no label, UUID=5aeca3cd-f7ab-44d8-ac90-815fcc3b3c8d
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 213Mi 66Mi 6.0Mi 668Mi 587Mi
Swap: 2.1Gi 6.0Mi 2.1Gi
[root@Kylin-V10-sp3 ~]#
# 挂载(swap启动)
[root@Kylin-V10-sp3 ~]# swapon /swap/1g
swapon: /swap/1g:不安全的权限 0644,建议使用 0600。
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# chmod 600 /swap/1g
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 214Mi 63Mi 6.0Mi 670Mi 586Mi
Swap: 3.1Gi 6.0Mi 3.1Gi
[root@Kylin-V10-sp3 ~]#
# 永久生效
# vim /etc/fatab 追加 /swap/1g swap swap defaults 0 0
/dev/mapper/klas-root / xfs defaults 0 0
/dev/mapper/klas-backup /backup xfs defaults 0 0
UUID=0651de56-e8f8-4c0c-993b-4523c83f4e82 /boot xfs defaults 0 0
/dev/mapper/klas-swap none swap defaults 0 0
/swap/1g swap swap defaults 0 0
7.2 关闭swap
# 临时关闭所有缓存
[root@Kylin-V10-sp3 ~]# swapoff -a
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 215Mi 211Mi 12Mi 521Mi 580Mi
Swap: 0B 0B 0B
[root@Kylin-V10-sp3 ~]#
# 开启刚刚创建的缓存
[root@Kylin-V10-sp3 ~]# swapon /swap/1g
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 215Mi 210Mi 12Mi 521Mi 579Mi
Swap: 1.0Gi 0B 1.0Gi
[root@Kylin-V10-sp3 ~]#
# 开启以前就有的缓存
[root@Kylin-V10-sp3 ~]# swapon /dev/mapper/klas-swap
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 216Mi 209Mi 12Mi 521Mi 579Mi
Swap: 3.1Gi 0B 3.1Gi
[root@Kylin-V10-sp3 ~]#
# 配置文件永久关闭
修改/etc/fstab文件找出包含swap的行,添加上 # 注释掉即可.
7.3 小结
运行java服务或系统内存较小,可以配置swap. (oom故障 out of memory内存不足.)
运行特定的服务或系统内存充足,可以关闭swap提升系统性能.
dd,mkswap(格式化),swapon/swapoff