操作系统磁盘管理章节(二)
课程介绍部分
1.磁盘体系结构应用
磁盘格式化操作
磁盘挂载操作 如何自动挂载 挂载参数信息
企业案例: 整个系统所有文件都变为只读状态(root用户也无法修改 文件系统异常) 主要与参数有关系
2.系统swap分区如何调整大小
课程知识回顾
1.磁盘知识体系结构
磁盘物理结构信息 内部结构(磁道 扇区:512字节 柱面) 外部结构(接口 转速)
磁盘阵列知识说明 RAID LVM
LVM逻辑卷管理的简写,它是linux环境下对磁盘分区进行管理的一种机制,即动态调整磁盘容量,从而提高磁盘管理的灵活性.
[图片上传失败...(image-f2a489-1564920564239)]
PE(Physical Extend):物理区域
PV 中可以用于分配的最小存储单元,可以在创建PV的时候制定(默认 4MB),如1M,2M,4M,8M,32M.....组成同一VG中所有PV的PE大小应该相同.
PV(Physical Volume):物理卷
处于LVM最底层,可以是物理硬盘或者分区,整个硬盘,或使用fdisk等工具建立的普通分区,包括许多默认4MB大小的PE(Physical Extent ,基本单元).
VG( Volume Group):卷组
建立在PV之上,可以含有一个到多个PV,一个或多个物理卷组合而成的整体.
LV( Logical Volume ):逻辑卷
建立在VG之上,相对于原来分区的概念,不过大小可以动态改变,从卷组中分割出的一块空间,用于建立文件系统.
LVM逻辑卷操作命令
3) 磁盘分区实践操作 :两个命令 fdisk parted
MBR: 引导记录 引导系统启动数据+分区表+结束位 512字节 0磁头0磁道1扇区
分区类型: MBR GPT
磁盘格式化操作 创建文件系统
文件系统: 用户将数据存储到磁盘中的方式 FAT32(单个文件小于4G) NTFS(没有单位文件存储限制)
XFS(存储效率更高-数据库) ext3/ext4(存储效率较低)
创建inode和block
数据信息(数据属性信息 数据内容信息) --- 数据属性信息 --- inode --- 磁盘中
--- 数据内容信息 --- block (多个) --- 磁盘中
如何进行格式化:
mkfs --- make filesystem(制作一个文件系统)
用法:mkfs.文件系统类型 分区信息(做格式化)
例如: mkfs.xfs /dev/sdb1
mkfs -t xfs /dev/sdb1
磁盘挂载应用
临时挂载应用: mount /dev/sdb1 /mnt
永久挂载应用: /etc/fstab /etc/rc.local
vim /etc/fstab
/dev/sdc1 /mnt xfs defaults 0 0
reboot生效
说明: /etc/fstab文件内容编写错误, 服务器启动缓慢/文件系统出现只读情况
企业环境: 文件系统只读异常问题:
挂载参数: remount ----重新挂载
mount -o remount rw /
**挂载常用参数: defaults **
rw, suid, dev, exec, auto, nouser, and async
rw --- 挂载之后挂载点目录权限可读可写, 用可读写模式挂上
** ro** --- 挂载之后挂载点目录权限只读模式, 用唯读模式挂上
suid(setuid) --- 挂载之后挂载点中, 可以支持setuid特殊权限位
nosuid(nosetuid) --- 挂载之后挂载点中, 禁止支持nosetuid特殊权限位
练习:
mount -o suid /dev/sdc1 /mnt
说明: 在目录中特殊权限位命令可以生效
mount -o nosuid /dev/sdc1 /mnt
说明: 在目录中特殊权限位命令不可以使用
exec: --- 允许挂载点目录中代码或脚本文件执行
mount -o exec /dev/sdc1 /mnt
noexec: --- 禁止挂载点目录中代码或脚本文件执行 安全性
mount -o noexec /dev/sdc1 /mnt
async: --- 异步存储数据方法 用户存储数据 -内存- /mnt 磁盘 效率更高 安全性低
sync: --- 同步存储数据方法 用户存储数据 ------ /mnt 磁盘 效率较低 安全性高
卸载挂载点常见问题:
01. 卸载时所在目录就是挂载点目录
02. 卸载时挂载目录数据被程序占用
强制卸载:
umount -lf /mnt
-l lazy --- 采用懒惰卸载
-f force --- 强制卸载操作
企业中: 磁盘空间不足如何解决
找出产生磁盘空间占用:
block: 产生大量大文件, 会造成block空间不足
删除方式: rm -f 大文件:简单粗暴
01. 如何找出大文件:
a 利用find 命令找出大文件
** find -type f -size +100M**
b 利用du 命令找出大文件
du -sh /opt/|sort -hr*
sort -n 按大小排序 -nr倒数排数字 -h排文件大小带单位排序
inode: 产生大量小文件, 会造成inode空间不足
删除方式: find /mnt -type f -name "oldboy" -size -2k|xargs rm*
补充: 如何将文件彻底删除:
条件一: 硬链接数为0 i_link=0
条件二: 进程调用数为0 i_count=0
建议清除大文件数据方式: >/xx/大文件
补充: 判断命令是否执行成功
命令:echo $? 查看上一个命令返回值:
--- 0 表示判断上一个命令执行成功
--- 非0 表示判断上一个命令执行失败
企业中: 如何划分swap分区
利用for循环,消耗swap分区:for count in {1..100};do dd if=/dev/zero of=/dev/null bs=10000M count=10;done
第一个里程: 划分磁盘空间被swap交互分区使用
dd if=从哪取出存储空间信息 of=放到哪 bs=每次取出多少 count=取多少次
dd if=/dev/zero of=/tmp/1G bs=100M count=10
[图片上传失败...(image-7374eb-1564920564237)]
把什么通过/dev/null放入黑洞 /dev/zero 从黑洞中拿空白但占用空间的东西出来
第二个里程: 标记文件被swap使用
mkswap /tmp/1G
第三个里程: 将标记文件空间增加到swap分区空间中
swapon /tmp/1G
第四个里程: 如何减少swap空间
swapoff /tmp/1G
实际应用: 主要应用在服务器中有java程序时
作业:
1. 研究mount命令参数: auto, nouser
-o auto、-o noauto:打开/关闭自动挂上模式。
-o user、-o nouser:使用者可以执行 mount/umount 的动作。