22.磁盘管理2
1.磁盘大于2t分区
- 磁盘小于2t使用fdisk分区MBR格式
- 磁盘大于2t使用parted分区GPT格式 GPT格式支持128个主分区 parted命令分区默认自动保存不需要w
1.插入硬盘 或虚拟机设置里增加硬盘 ## parted -l 检查硬盘和分区情况
2.磁盘分区 ## 使用 parted /dev/sdb 命令给sdb第二块磁盘分区
3.格式化分区 ## 使用 mkfs.xfs /dev/sdb1 给第二块硬盘的第一个分区格式化
4.挂载硬盘 ## 使用 mount /dev/sdb1 /date 挂载到/date
## umount 为卸载硬盘,类似拔出硬盘
5.查看测试 ## df -h 查看挂载情况,在挂载点新建文件
6.写入开机自动挂载:
配置文件/etc/fstab 配置开机自启
/dev/sdb1 /data xfs defaults 0 0
--------
/dev/sdb1:第一列:设备的名称或者UUID
/data: 第二列:挂载点
xfs: 第三列:文件系统类型
defaults 第四列: 挂载的参数
0 第五列:是否备份
0 第六列: 是否自检
partprobe:通知系统磁盘的分区信息变化 更新内核的硬盘分区表信息
-------------------------------------------------
若何丝滑的给大于2t的硬盘分区 说明扩展:
2.磁盘分区 ## 使用 parted /dev/sdb 命令给sdb第二块磁盘分区
大于2t的磁盘分区 使用parted
[root@haoshuaicong ~]# parted /dev/sdb
help [COMMAND] # 打印菜单帮助
mklabel,mktable LABEL-TYPE # 创建分区表类型
mkpart PART-TYPE [FS-TYPE] START END # 创建分区
print [devices|free|list,all|NUMBER] # 查看分区表
quit # 退出
rm NUMBER # 删除分区
(parted) mklabel gpt # 将磁盘类型修改为gpt格式
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4295GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
(parted) mkpart # 创建分区
Partition name? []? primary # 分区的名称 自定义叫啥都行
File system type? [ext2]? xfs
Start? 0
End? 500G
Warning: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
Ignore/Cancel? I
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB xfs primary
(parted) mkpart
Partition name? []? parimary
File system type? [ext2]? xfs ##指定xfs文件类型
Start? 500G
End? 1000G
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4295GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB primary
2 500GB 1000GB 500GB xfs parimary
(parted) mkpart primary xfs 1000G 4000G # 非交互式分区
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 4295GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 500GB 500GB primary
2 500GB 1000GB 500GB xfs parimary
3 1000GB 4000GB 3000GB xfs primary
(parted) quit # 退出parted分区
## 企业中使用方法,一般不用分区,一个盘就是一个区
1.直接格式化
2.直接挂载
2.磁盘相关案例
企业案例1:java环境内存不够用,大量占用swap
swap磁盘分区: 大小是内存的1-1.5倍 如果内存大于8G,则最多swap给8G即可。
什么情况下使用swap:
测试服务器
内部服务器
自己用的虚拟机
流量波动的业务。
线上服务器,业务服务器禁止使用swap,增加内存的方式临时解决OOM内存不够溢出问题。
创建swap分区的方式:
方法1: 安装操作系统的时候创建
方法2: 安装完成操作系统以后如何增加swap容量
# 测试服务器上测试软件内存不够用,也无法添加内存,为了正常让测试业务正常运行,临时创建swap分区。
1.生成一个1个G的设备文件,需要多大生成多大
dd if=/dev/zero of=/opt/1G bs=1M count=1024
2.把文件格式化成swap类型
mkswap /opt/1g
3.挂载使用swap,直接增加到原有的空间上
swapon /opt/1g
4.查看swap
df -h 看总容量
swap -s 看容量的组成
5.写入开机自动挂载/etc/fstab 注意:挂载点格式与普通分区挂载不同 格式为:
/opt/1g none swp defaults 0 0
企业案例2.无法写入文件到磁盘
第一种情况:磁盘空间满了
第二种情况:磁盘inode号满了
1.磁盘空间满了解决办法
find / -type f -size +1G
##找出大于1G的文件,然后看需要是否删除腾出磁盘空间
注意::如果挂载点/date挂载前有100G的一个文件,挂载后该文件会被隐藏还会继续占用磁盘空间,umount卸载即可解除隐藏
2.inode号用完了解决办法:
find / -type d -size +1M
##找出目录大于1M的目录,因为目录的inode存放的是文件名等属性信息,然后看需要是否删除腾出inode
企业案例3.解决磁盘不够用的问题
- 需求: 目前磁盘不够用
- 业务会持续输出日志内容到 /var/log/nginx.log文件中
- 日志的路径不能变,解决磁盘不够用的问题
解决方案:
1.增加大磁盘
2.挂载到磁盘/nginx_log目录
3.将大文件移动到/nginx_log目录下
4.在原路径/var/log/下创建一个名字为nginx.log的软链接,链接到/nginx_log/nginx.log
ln -s /nginx_log/nginx.log /var/log/nginx.log
企业案例4.删除文件
- 注意::如果挂载点/date挂载前有100G的一个文件,挂载后该文件会被隐藏还会继续占用磁盘空间,umount卸载即可解除隐藏
- 需求:磁盘上有个一39G的文件,删除后发现磁盘没有释放。
因为::文件如果被进程所占用,会出现删除文件磁盘没有释放的问题。
如何解决:
1.查看当前的文件被哪个进程所占用:
[root@haoshuaicong ~]# lsof |grep nginx.conf
2.杀死进程或者重启或者重新加载
kill -9 32355
3. /etc/重要系统配置文件
文件路径 | 文件说明 |
---|
/etc/passwd | 存储用户账户信息,包括用户名、密码(加密)、用户ID、组ID等。 |
/etc/crontab | 用于配置cron守护进程的作业调度。 |
/etc/rc.local | 系统启动时执行的脚本,用于执行一些初始化操作。 |
/etc/fstab | 存储文件系统信息,用于系统启动时自动挂载。 |
/etc/hosts | 定义静态主机名到IP地址的映射,用于在没有DNS的情况下解析主机名。 |
/etc/hostname | 存储系统的主机名。 |
/etc/profile | 全局用户的shell配置文件,为所有用户设置环境变量和shell配置。 |
/etc/sysconfig/network-scripts/ifcfg-ens33 | 特定网络接口的配置文件,如ens33。 |
/etc/os-release | 查看系统版本信息,例如CentOS系统中的/etc/redhat-release 。 |
/etc/sudoers | 定义哪些用户和组可以执行sudo命令以及可以执行哪些命令。 |
/etc/motd | 系统启动时显示的消息,通常包含系统信息和公告。 |
/etc/resolv.conf | 配置DNS解析器,指定DNS服务器地址。 |
4./var/和/proc/里的重点文件
/var/
1./var/log/messages # 系统日志
2./var/log/secure # 系统登录和退出日志
nginx-->/var/log/nginx/
/proc/cpuinfo # cpu信息 lscpu
/proc/meminfo # 内存信息 free-h
/proc/loadavg # 负载信息 w 和 uptime
/proce/mounts # 挂载信息 df -h
/proc/
1./proc/cpuinfo # cpu信息 笔记
[root@haoshuaicong ~]$lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 45 bits physical, 48 bits virtual
CPU(s): 4 # cpu的核心数量
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1 # CPU的个数
2./proc/meminfo # 内存信息
[root@haoshuaicong ~]$free -h
total used free shared buff/cache available
Mem: 1.9Gi 187Mi 1.5Gi 8.0Mi 194Mi 1.6Gi
Swap: 2.0Gi 0B 2.0Gi
3./proc/loadavg # 负载信息
[root@haoshuaicong ~]$w
15:49:05 up 56 min, 1 user, load average: 0.04, 0.01, 0.00
平均负载: 1分钟 5分钟 15分钟
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 14:53 0.00s 1.15s 0.00s w
[root@haoshuaicong ~]$uptime
15:49:07 up 56 min, 1 user, load average: 0.04, 0.01, 0.00
负载高和核心数量相关: 核心是4则负载达到4说明非常繁忙
4./proce/mounts # 挂载信息
df -h