磁盘

发布时间 2023-12-06 14:57:41作者: 要快乐不要emo

磁盘

基础知识

命名:
	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