操作系统磁盘管理
程序员文章站
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