欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

操作系统磁盘管理

程序员文章站 2022-05-10 08:08:01
...

磁盘物理结构

外部结构

操作系统磁盘管理
接口信息

	1) SATA
	2) SCSI
	3) SAS
	4) PCI-e 

转速信息

10k 或者 15k

容量信息

1) byte
2) k
3) M
4) G
5) T

硬盘组成

	主轴 磁盘 磁头	

内部结构

磁头(head)

读取磁道数据信息

**磁道(track)

多个同心圆

扇区(sector)

1) 存储数据最小物理单位(512byte) 
2) 最小逻辑存储单位: block - 4k  4k = 8个扇区

柱面(cylinder)

表示相同同心圆做成一个存储的单元

计算磁盘大小

磁盘大小 = 一个柱面大小(容量) * 磁道数
磁盘大小 = (一个磁道大小  *磁头数) * 磁道数

分区操作

检查确认

fdisk -l 

新添加硬盘无法识别

方法一
	重启服务器
方法二 : 不重启服务器时,识别新硬盘	--- 让系统重新扫描磁盘硬件信息
	echo “- - -” > /sys/class/scsi_host/host0/scan
	echo “- - -” > /sys/class/scsi_host/host1/scan
	echo “- - -” > /sys/class/scsi_host/host2/scan
	......
	echo “- - -” > /sys/class/scsi_host/host9/scan

磁盘分区总结

1) 主分区 4个 扩展分区 1个(不能直接使用) 逻辑分区 多个 (编号从5)
2) 4个主分区(/dev/sda): /dev/sda1 .. /dev/sda4
3) 3个主分区, 2个逻辑分区: /dev/sda1 .. /dev/sda3  /dev/sda5 /dev/sda6 

fdisk 分区

语法

fdisk 选项 参数

选项

-b : 指定每个分区的大小
-l : 列出指定的外围设备的分区表状况
-s : 将指定的分区大小输出到标准输出上, 单位为区块
-u : 搭配"-l"参数列表, 会用分区数目取代柱面数目, 来表示每个分区的起始地址
-v : 显示版本信息

第一步 : 利用命令进入分区界面

fdisk /dev/sdb

操作系统磁盘管理

第二步 : 进行分区操作

n ---> p ---> 分区大小信息	--- 划分主分区
n ---> e ---> 分区大小信息	--- 划分扩展分区
n ---> l ---> 分区大小信息	--- 划分逻辑分区

第三个立场 : 检查确认并保存退出

p --> w 

扩展 : fdisk命令划分2T以上分区

  输入g 修改分区表为gpt
  输入o 修改分区表为dos

parted 分区

语法

parted 选项 参数

选项

-h : 显示帮助信息
-i : 交互式模式
-s : 脚本模式, 不提示用户
-v : 显示版本号

分区参数

mklabel (创建分区表 MRB-msdos/gpt)	--- create a new disklabel (partition table)
mkpart (创建新的分区)		--- make a partition
print (显示分区表信息)	--- display the partition table
rm (删除指定分区信息)	--- delete partition NUMBER
quit (退出分区界面)	--- exit program

逻辑结构

磁盘阵列概念

将多块磁盘整合为一块, 提高磁盘存储效率和安全性, 以及单块磁盘容量

磁盘整列配置

RAID 0 / 1 / 5 / 10 /11

磁盘弹性扩容

实现磁盘分区大小灵活调整(数据库/存储)	--- LVM 
/dev/sda3(15G+20G)  --> /data/xxx.db (30G)

磁盘创建文件系统
文件系统概念

存储数据不同机制

常见文件系统

ext3/ext4(存储效率)   xfs(存储效率/识别大硬盘能力)

创建文件系统

mkfs - make file system 
mkfs.文件系统类型(ext4/xfs)    /dev/sdb2
mkfs -t 文件系统类型(ext4/xfs) /dev/sdb2 

挂载操作

挂载概念

给一个存储设备(文件)开了个门

挂载操作

umount	(umount -lf /挂载点)
-l	---lazy(懒惰) : 不用从挂载点目录切换出去
-f	--- force : 强制进行卸载

如何实现开机自动挂载磁盘分区

方法一 : 编辑/etc/fstab
	/dev/sdb1    /mnt     xfs    defaults    0  0 

方法二 : 编辑/etc/rc.local 
	mount  /dev/sdb1  /mnt 

常出现的问题

问题1 : 磁盘文件系统出现问题

步骤一 : 利用命令检查或修复文件系统
	fsck -a     挂载点/分区设备文件
xfs_repair  
步骤二 : 利用挂载命令修复
	mount  -o  remount rw  /

问题2 : 磁盘空间不足情况

1) inode 空间不足了
解决 : 找出大量小文件
	find ./ -type f -size -10c|xargs rm

2)lock 空间不足
解决 : 找出大文件数据
	find /  -type f -size ??
	du -sh /opt/*|sort -h

注: 文件数据是否彻底删除

1) 是否有硬链接存在	--- i_link=0 
	find /  -type f  -inum xxxx

2) 是否有程序进程调用	--- i_conut=0 
	日志文件 --->  服务进程调用

问题3 : 如何调整swap空间大小

第一步 : 占用磁盘空间作为扩展交换分区
	dd if=/dev/zero of=/swap/1G_swap bs=100M count=10

第二步 : 将创建数据变为swap文件数据
	mkswap  /swap/1G_swap
	file /swap/1G_swap

第三步 : 加载文件给交换分区扩容
	swapon /swap/1G_swap
	swapoff /swap/1G_swap
相关标签: Linux 基础