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
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