Linux 磁盘管理

news/2024/9/19 10:08:28

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 了解-固态硬盘组成

# 控制芯片(主控)
# 存储芯片(颗粒)slcmlctlcQLC
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 LVMDisk /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 LinuxDisk /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 Linux1 分区上的文件系统/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 Linux1 分区上的文件系统/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
└── data34 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) helpalign-check TYPE N                       check partition N for TYPE(min|opt) alignmenthelp [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 排查流程
  1. 检查当前系统磁盘使用情况: df -h
  2. 一步一步排查(哪个目录或文件)大量占用空间 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/inodels | 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占用,文件未被彻底删除导致的故障

文件被彻底删除条件(文件删除原理):

    1. rm删除,硬链接数为0.(没有入口)
    1. 文件没有被任何进程占用. 日志.
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 # 下载lsoflsof |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 -hdu -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 -htotal        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 -htotal        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 -htotal        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 -htotal        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 -htotal        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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/57889.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

逐月信息学——2024初秋集训——提高组 #22

A. 牛牛的方程式 题目描述 给定一个三元一次方程 \(ax+by+cz=d\),求该方程是否存在整数解。 思路 由于若干个 \(a,b,c\) 只能凑出 \(\gcd (a,b,c)\) 的倍数,所以只需判断 \(d\) 是否为 \(\gcd(a,b,c)\) 的倍数即可。特别的,若 \(a,b,c\) 均为 \(0\),则显然只有 \(d=0\) 时存…

SpringBoot发送邮件

0 导入发送邮件的依赖包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>1 获取邮件授权码2 配置yml文件 spring:mail:#smtp服务主机 qq邮箱则为smtp.qq.comh…

VsCode+WSL2+Python3+git机器学习环境安装

安装VsCode,添加WSL扩展插件用管理员权限打开PowerShellwsl --install此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 发行版所需的功能 wsl --set-version <distro name> 2命令将 替换为要更新的 Linux 发行版的名称,如wsl --set-version Ubuntu 2 会将 Ubuntu设置为使…

English Level A, B, C All In One

English Level A, B, C All In One 英语等级 A、B、CEnglish Level A, B, C All In One英语等级 A、B、CEnglish level A1 A2 B1 B2 C1 C2 The CEFR and EF SETB1 LevelB1 Intermediate / 中级 EF SET 41-50https://www.efset.org/cefr/b1/B2 LevelB2 Upper intermediate / 中上…

自动化运维工具之WGCLOUD使用操作指南,为服务器安全保驾护航

WGCLOUD官网下载安装包:www.wgstart.com 1、部署WGCLOUD运行的前置条件说明WGCLOUD包括:server为服务端(或主控端),agent为客户端(探针端、被控端)WGCLOUD的server和agent,可以部署在已有业务运行的主机,不要求主机是纯净的操作系统。当然了,纯净的系统也可以部署WG…

C# kvaser can 通讯

1、查看官方文档https://kvaser.com/canlib-webhelp/section_install_windows.html 2、安装can windows驱动 https://www.kvaser.com/downloads-kvaser/?utm_source=software&utm_ean=7330130980013&utm_status=latest 3、安装canlib https://www.kvaser.com/downloa…