磁盘管理物理结构
· 外部结构
接口类型: SATA SCSI SAS
磁盘转速: 10k 15k
磁盘容量: G T P
主轴: 磁盘转速 转速越快 读取数据效率越高
磁盘: 盘面用于存储数据
磁头: 存储数据与读取数据
机械臂: 带动磁头做径向运动
· 内部结构
磁道: 存储数据信息, 可以让磁头读取
扇区: 存储数据最小单位 默认扇区大小512字节 block 4k
柱面: 用于磁盘进行分区单位 不同柱面存储数据大小是一致
磁盘阵列
· 磁盘阵列概念
三个作用: 将多块硬盘整合为一块
1) 提高单块磁盘容量
2) 提高存储数据性能
3) 提高存储数据安全
不同阵列级别:
RAID0:
优势: 提高数据存储或读取效率(将一份数据拆分成多份,分别存储到每个磁盘上)
缺点: 数据安全性较低(当其中某一块磁盘坏掉后,存储的那一部分数据也就随之丢失,不再完整了)
RAID1:
优势: 实现数据备份(存储一份数据到磁盘A时,会在另外的磁盘B上做一份备份,当磁盘A坏掉后,还有磁盘B的备份可用 )
缺点: 存储数据效率较低
RAID5:
兼顾了RAID0与RAID1的有点
优势: 提升数据存储效率/提升数据存储安全性(只能坏一块磁盘,坏多了数据恢复就没保证了)
将数据拆分成多份存储,当某一部分数据丢失时,可以通过校验位来恢复丢失的那部份数据 。
缺点: 磁盘容量损失, 少一块容量
RAID10/01:
RAID10最少需要4块硬盘
ABCD四块硬盘,硬盘A与B做RAID1,逻辑上捆绑成一块硬盘,硬盘C与D做RAID1,
逻辑上捆绑成一块硬盘,然后将两块逻辑上的硬盘再做个RAID0,来提升数据的存储效率
RAID01就是将10的步骤反过来,先做RAID0再做RAID1
优势: 提升数据存储效率/提升数据存储安全性(坏两块磁盘)
缺点: 磁盘容量损失, 损失一半容量
LVM逻辑卷管理
磁盘容量弹性调整:降低数据迁移对数据影响
原理过程:将多个(PV物理卷)组合成一个大的(卷组VG),然后再将这个大的(卷组VG)分割成一个个的(逻辑卷LV),而(逻辑卷LV)还的是(基本单元PE)的倍数。
LVM的核心理念:
物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。
卷组建立在物理卷之上,一个卷组能够包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。
逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间。
LV : 逻辑卷,从VG中取出相应数量PE合成LV, 进行挂载使用
VG : 卷组,将多个PE整合在一个VG
PE : 将物理磁盘拆分为几个逻辑上的小的磁盘(基本单元)
PV : 物理卷,物理磁盘 物理磁盘分区
管理lvm前,先确定有没有安装软件lvm2
LVM弹性扩容缩容操作步骤:
第一个历程: 添加磁盘信息
第二个历程: 磁盘分区操作
fdisk /dev/sdc --> n --> p --->回车 --> +500M--> w
第三个历程: 创建pv信息
pvcreate /dev/sdc1 /dev/sdc2
第四个历程: 创建vg信息
vgcreate vg1 /dev/sdc1 /dev/sdc2
第五个历程: 创建lv信息
lvcreate -L 200M -n lv1 vg1
第六个历程: 格式化lv1, 并挂载使用
mkfs.ext4 /dev/vg1/lv1
mount /dev/vg1/lv1 /data
第七个历程: 磁盘扩容方法
lvextend -L +100M /dev/vg1/lv1
lvscan:扫描系统中存在的所有的LVM逻辑卷
强制执行调整操作
resize2fs -f /dev/mapper/vg1-lv1
磁盘管理分区操作
磁盘分区概念: MBR+DPT(512字节) --> 默认存到 0磁头0磁道1扇区
MBR主引导记录: 446字节 代码信息(根据分区表找到系统内核信息)
DPT分区表信息: 64字节 每16个字节表示一个分区 4个主分区
PS: 可以最多有4个主分区
可以最多有1个扩展分区
可以多个逻辑分区
主分区和逻辑分区可以进行使用
扩展分区不能直接使用
分区操作过程: fdisk命令
fdisk /dev/sdb
分区指令信息:
d 删除一个分区
g 创建一个新的空的GPT分区表(GPT分区支持大于2T磁盘)
o 创建一个新的空的DOS分区表(DOS分区支持小于2T磁盘)
l 列出已知分区类型
n 添加新的分区
p 输出分区表信息
w 保存配置信息
创建分区方法:
n --> p ---> +xxx 创建主分区
n --> e ---> xxx 创建扩展分区
n --> l ---> xxx 创建逻辑分区
fdisk命令如何划分大分区:
g — 修改分区表为gpt
o — 修改分区表为dos
分区操作过程: parted命令 可以划分更大的磁盘的命令
parted /dev/sdd
分区参数:
mklabel(创建分区表 默认是MRB-msdos,我们需要创建gpt) 创建或修改分区表
mkpart(创建新的分区)
print(显示分区表信息)
rm(删除指定分区信息)
quit(退出分区界面)
磁盘管理创建文件系统
文件系统: 存储数据机制
mkfs --- make file system
mkfs.文件系统类型
mkfs -t 文件系统类型
linux系统:
ext3/ext4 --- 支持数据大数据存储
xfs --- 提升数据读写效率(压力测试 ab)/提升了对大容量磁盘处理能力/centos7建议使用
磁盘应用管理操作
磁盘使用方法
mount /dev/sdd1 /挂载点目录
umount 卸载
无法正常卸载:
原因一: 已经在挂载点目录中, 无法卸载挂载点,切换到别的目录即可
原因二: 挂载点目录中数据被进程调用
强制卸载:
umount -lf 挂载点
-l lazy(懒惰) --- 不用从挂载点目录中切换
-f force --- 挂载点目录数据被进程调用, 也可以强制卸载
如何进行自动挂载
vi /etc/fstab
/dev/sdd1 /mnt xfs defaults
如何检查磁盘状态 smartctl -H /dev/sda(前提是yum -y install smartmontools)
方式一: 利用命令检查文件系统并修复
fsck -a /dev/sdd1 --- 对ext3/ext4 修复
xfs_repair /dev/sdd1 ---
修复设备必须进行卸载修复
建议将数据做好备份在进行修复
方法二: 利用mount命令重新挂载修复文件系统
mount -o remount rw /
磁盘空间不足如何处理
原因一: inode资源不足会出现数据无法存储
解决方式: 利用find命令找出小文件, 进行删除
find /xxx -type f -size -1k | xargs rm 找出小于1K的文件删除掉
原因二: block资源不足会出现数据无法存储
解决方式:
方式一: 利用find命令找出大文件信息
find /xxx -type f -size +100M
方式二: 利用du命令快速定位大文件 (sort -n按照数字大小排序,sort -h以人类可读的方式排序)
du -sh /tmp/*|sort -h
磁盘空间如何进行释放:
条件一: 确保文件硬链接数为零 (删除文件前,确认文件有没有硬链接)
例:
ll -i /tmp/test
显示ID为67109473
find / -type f -inum 67109473
根据ID找出所有硬链接,然后删除即可
find / -type f -inum 67109473|xargs rm
条件二: 确保文件被系统进程调用数为零
清空文件信息 > 文件
如何调整swap空间大小(临时调整)
第一个历程: 占用磁盘空间用于作为交换分区 (生成数据文件)
dd if=/dev/zero of=/tmp/1G_swap bs=100M count=10
第二个历程: 将数据文件变为交换分区文件
mkswap /tmp/1G_swap
第三个历程: 将交换分区文件进行加载
swapon /tmp/1G_swap
卸载
swapoff /tmp/1G_swap
如何实现开机自动扩容swap空间
写入到/etc/fstab 开机自动挂载 例:/tmp/1G_swap(swap文件的路径) swap swap defaults 0 0
或 /etc/rc.local