磁盘
基础知识
命名:
sda1 #SAS,SATA,SCSI,IDE,USB 磁盘
nvme0p1 #nvme磁盘
vd/xvd 虚拟磁盘
特殊磁盘设备
/dev/null #常用来重定向垃圾文件
/dev/zero #常用来作为压测工具,用来复制一个固定大小的文件出来
dd if=/data/testdev of=/data/test1.img bs=1 count=10
/dev/urandm #里面为随机字符,常用来生成随机口令
分区
parted
parted /dev/sdb mklabel gpt|msdos #创建分区信息
parted /dev/sdb print #查看分区信息
parted /dev/sdb mkpart primary 1 200 (默认M)#分配空间
parted /dev/sdb rm 1 #删除对应数字的分区
fdisk mbr分区
gdisk gpt分区
文件系统及挂载
挂载:
mount #临时
/etc/fstab #持久挂载
卸载:
umount
查看挂载情况:
findmnt 挂载点|设备
查看正在使用某文件的进程
lsof 文件
磁盘工具
df:文件系统空间实际真正占用等信息
常用选项
-hT 查看磁盘占用
-ih 查看inode节点占用
du:查看某目录总体空间实际占用状态
常用选项
-sh 统计目录下所有文件总和
df与du区别
df统计的是磁盘真正占用,du统计的是目录占用,
当一个文件被删除却被其他进程占用未释放时,df > du #确定删除文件可以使用 echo > 文件 立即释放空间
当一个目录下挂载有其他分区信息时,du > df ,可以使用-x选项不统计其他文件系统的目录文件
dd:操作磁盘数据
if=file 指定源文件
of=file 指定目标文件
ibs=size 源文件一次读取多少单位
obs=size 目标文件一次写入多少单位
bs=size 一次读取和写入多少,相当于ibs=obs
skip=blocks 源文件读取时跳过多少单位
seek=blocks 目标文件写入时跳过多少单位
count=n 总共复制多少次
conv=conversion[,conversion...] 用指定的参数转换文件
逻辑卷
lvm:将多个磁盘看出一个虚拟的大磁盘,实现对磁盘的自由分割,使用更为便捷
实现步骤:
将多个pv(磁盘分区)加入到vg(卷组中)
从vg中可以任意拆分出自己需要的lv(逻辑卷)而不需要关心数据分散在哪个磁盘
管理:
pv:
pvs #显示pv
pvcreate 磁盘分区 #创建pv
pvremove 磁盘分区 #删除pv
vg:
vgs #显示卷组
vgcreate [-s n单位] vg名称 磁盘分区1,2,3。。#创建卷组
vgextend vg名称 磁盘分区1,2,3 扩展空间,将分区加入到卷组中
vgredce vg名称 磁盘分区1,2,3 缩减空间,将分区移除
lv:
lvs: #显示逻辑卷
lvcreate -L [单位|百分比vg] -n lv名称 vg名称 #指定一个vg卷组创建一个利用率为n%或固定数值的lv逻辑卷
lvremove /dev/vg名称/lv名称 #移除lv
lvresize -r -l +n[单位] /dev/VG_NAME/LV_NAME #扩展lv
跨主机迁移:
先umount所有lv
禁用卷组
vgchange -a n vg名称 ;lvdisplay
导出卷组
vgexport vg名称 ;pvscan ;vgdisplay
拆下旧硬盘在目标计算机上,并导入卷组:
vgimport vg名称
启用卷组
vgchange -ay vg名称
重新mount
扩展逻辑卷
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
# ext
resize2fs /dev/VG_NAME/LV_NAME
# xfs
xfs_growfs MOUNTPOINT