磁盘基本知识
机械硬盘:盘片,磁头等物理部件
逻辑术语:
一.存储管理
1.磁盘分区
两种分区方式:MBR,GPT
①MBR: 使用32位表示扇区数,分区不超过2T
注:分区表存在0扇区,可以破坏,可以通过备份修复(备份需放在其他存储介质中)
②GPT:支持128个分区,使用64位,支持8Z,64Z
2.BIOS和UEFI
一般BIOS+MBR,UEFI+GPT
3.管理分区
lsblk :列出块设备
三种分区工具: fdsik,gdisk,parted
同步分区表:partprobe(修改分区后执行以下)
①parted
操作实时生效,尽量不使用
②fdisk和gdisk
fdisk对应MBR,gdisk对应GPT
子命令:
注:centos使用partprobe有bug,需要使用parx -a /dev/xxx或kpatx -a /dev/xxx -f(后者为强制)
二.文件系统
1.概念
查看当前linux系统中的文件系统:
ls /lib /modules/`uname -r`/kernel/fs
cat /proc/filesystems
2.常用文件系统类型
linux: ext2,ext3,ext4,xfs,swap,iso9660等
windows: FAT32,NTFS,exFAT
各文件系统特性: 网上很全
3.文件系统管理
①创建
mkfs.FS_TYPE/dev/DEVICE
mkfs -t FS_type /dev/device
常用选项:
mke2fs :ext系列文件系统专用管理工具
②查看和管理分区信息
查看块设备属性信息:
常用选项
重新调整ext系列文件系统参数:
tune2fs
-l 查看指定文件系统超级块信息
-L 修改卷标
-m 修改预留空间百分比
-j 将ext2升级到ext3
-O 文件系统属性启动或禁用
-o 调整文件系统的默认挂载选项
-U 修改UUID号
显示ext系统信息,磁盘块分组管理:
dumpe2fs
-h 查看超级块信息,不显示分组信息
显示挂载或已挂载的xfs文件系统信息:
xfs_info mountpiont|devname
注:超级块放着文件系统的元数据
③文件系统检测和修复
不能在挂载状态下修复,修复前必须先检测
检测:
常用选项:
-a 自动修复
-r 交互式修复错误
注:文件系统修复,不意为着文件能确保不被破坏
三.挂载
mount [-fnrsvw] [-t vfstype] [-o option] device mountpoint
常用选项
卸载: umount 设备名|挂载点
查看:mount #通过查看/etc/mtab文件显示当前已挂载的所有设备
cat /proc/mounts #查看内核追踪到的已挂载所有设备
查看挂载点情况
查看正在访问指定文件系统的进程
终止正在访问指定文件系统的进程
持久挂载
修改 /etc/fstab 文件
刷新挂载情况
四.处理交换文件和分区
1.swap简介
即虚拟内存,仅物理机使用,容器技术不使用swap.
2.实现过程
①创建交换分区或文件(不要忘了设置成swap分区格式)
②使用mkswap写入特殊签名(创建swap文件系统)
③在/etc/fstab文件添加条目
④使用swap -a激活交换空间
3.各种命令
启用:
禁用:
选项:
注:swap分区优先级值越大级别越高,默认从-1开始,新加入的比之前的值减一
查看: swapon -s 或 cat /proc/swaps
策略:
/proc/sys/vm/swappiness 的值决定了当内存占用到达多少百分比时启用swap空间
五.磁盘常见工具
1.df 文件系统空间实际占用等信息查看工具
2.du 查看某目录总体空间实际占用
-h 按人类习惯显示单位
-s summary
--max-depth=# 指定最大目录层级
-x, --one-file-system 忽略不在同一个文件系统的目录
3.dd
格式: dd if=/path/from/src of=/path/to/dest bs=# count=#
选项:
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size 指定块大小
cbs=size 一次转换size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...] 用指定参数转换文件
conversion转换参数:
六.RAID
需要了解 raid0,raid1,raid5,raid10,raid01的区别
七.逻辑卷管理器LVM
1.定义
2.实现过程
①将设备指定为物理卷
②用一个或多个物理卷来创建一个卷组
③在物理卷上创建的逻辑卷,由物理区域(PE组成)
④在逻辑卷上创建文件系统并挂载
3.命令工具
相关命令工具来自lvm包 yum install -y lvm2
①pv管理:
显示PV信息: pvs 或 pvdisplay
创建PV: pvcreate /dev/DEVICE
删除PV: pvremove /dev/DEVICE
②vg管理:
显示PV信息: vgs 或 vgdisplay
创建卷组:
管理卷组: vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
vgremove VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
注:删除卷组需要先做pvmove再做vgremove
③lv管理:
显示逻辑卷: lvs 或 lvdisplay
创建逻辑卷: lvcreate -L #[mMgGtT] -name VolumeGroup
删除逻辑卷 lvremove /dev/VG_NAME/LV_NAME
注:lv卷组修改大小之后需要重设文件系统大小
4.扩展和缩减逻辑卷
扩展: ①实现逻辑卷空间扩展 ②实现文件系统扩展
①lvextend
②resize2fs /dev/VG_NAME/LV_NAME 或xfs_grows MOUNTPIONT
一步实现: lvresize -r -l +100%FREE /dev/VG_NAME/LV_NAME
缩减:
注:缩减容易造成数据损坏,建议先备份后缩减,xfs文件系统不支持缩减
①取消挂载 umount
②检测 fsck -f
③文件系统缩减 resize2fs
④逻辑卷缩减 lvreduce
5.跨主机迁移卷组
①umount 所有卷组上的逻辑卷
②禁用卷组
③导出卷组
④拆下旧硬盘在目标计算机上,导入卷组
⑤启用
⑥mount 所有卷组上的逻辑卷
6.拆除指定的pv存储设备
①pvmove 把PV搬到卷组其他成员内
注:move的前提是同一卷组内的剩余空间大于要拆除的PV大小
②vgreduce 把PV从卷组内删除
③pvremove 删除PV