linux文件系统介绍
磁盘管理相关命令
相关概念:
物理扇区大小 sectors
逻辑扇区大小
存储单元units
sector size
最小I/O size
最佳I/O size
fdisk
功能:查看磁盘详细信息和磁盘分区。包括磁盘容量大小,扇区数量,扇区容量大小等。
df
功能:显示磁盘的相关信息。可以让我们很直观的了解到磁盘的各个分区的使用情况。
介绍:显示磁盘分区的使用情况,显示分区inode使用情况。不包含swap。
重要选项:
-a 包含全部的文件系统
-h 以可读性较高的方式来显示信息
-H 与-h一样,但是单位换算从1024Byte换为1000
-T 显示文件系统的类型
-t <文件系统类型> 仅显示指定文件系统类型的分区
-x <文件系统类型> 排除指定文件系统类型的分区
其他的自己查下文档
常用语法:
df -hT 查看磁盘各个分区使用情况
df -iT 查看磁盘各个分区inode使用情况
引申:
inode定义
lsblk
列出块设备信息。可以让我们很直观的了解到磁盘和分区之间的关系。
LVM 逻辑卷管理
LVM(Logical Volume Manager)逻辑卷管理,是Linux 环境下对磁盘分区进行管理的一种机制。
工作原理
LVM将底层的物理硬盘抽象地封装起来,然后以逻辑卷的方式呈现给上层应用。
用法
创建LVM逻辑卷并使用。
- 将分区/磁盘创建为物理卷PV(物理分区或磁盘被格式化,分区的类型要求为8e即lvm),空间被划分为一个个的PE。
创建物理卷PV:
pvcreate <磁盘或者分区例如/dev/sdb1> <磁盘或者分区例如/dev/sdb2>
查看物理卷:pvspvdisplay
- 创建卷组VG。将多个PV组合成VG卷组,相当于一块磁盘。
创建卷组VG:
vgcreate <VG_name> <pv1_name> <pv2_name>
查看卷组VG:vgsvgdisplay
- 创建逻辑卷。将VG卷组中的多个PE组合成逻辑卷LV,LV相当于分区。
创建逻辑卷:
lvcreate -n <LV_name> -L 5G <VG_name>
-L 指定创建的LV大小,也可以-l指定创建的LV有多少PE。PE的大小可以通过vgdisplay查看。
查看逻辑卷:lvslvdisplay
创建完的逻辑卷就跟其他普通卷一样了,可以正常修改文件系统,挂载等。
- mkfs给逻辑卷创建文件系统。
给LV创建文件系统:
mkfs -t xfs <LV_path>
LV_path可以通过lvdisplay查看
- 然后挂载使用就可以了。开机挂载记得添加配置到/etc/fstab里面去
挂载:
mount <LV_path> <path>
卸载:umount <volume_path or Mount_path>
开机挂载:mount查看挂载的相关信息,然后照着抄进去defaults 0 0
要检查是否编写正确,可以卸载掉该磁盘,然后使用mount -a挂载一下。mount -a是内核重新读取/etc/fstab挂载。
给卷组VG扩索容
VG卷组扩容
VG卷组扩容的方式是往VG卷组里面增加新的物理卷(PV)
- 创建逻辑卷/查看未加入卷组的PV
- 添加物理卷到卷组
vgextend
VG卷组缩容
VG卷组缩容的方式是通过移除VG卷组中的物理卷(PV)。
- 确认物理卷PV是否被使用。
pvdisplay/pvs查看物理卷相关信息
- 若我们要移除的物理卷已经被使用,则需要将数据转移至其他物理卷。
pvmove <src_PV> <dst_PV>这里要求接收数据的PV有足够空间
vgreduce <VG_name> <PV_name>移除某卷组中的某物理卷。
逻辑卷扩容缩容
首先,需要注意:
- xfs文件系统只支持增大,不支持减小。ext2、ext3、ext4增大减小都支持。
- 缩减逻辑卷空间的时候,先减少文件系统的大小,再减少逻辑卷空间的大小,否则可能数据丢失损坏。
逻辑卷扩容缩容时,我们需要扩容缩容文件系统的大小和逻辑卷空间的大小。假如缩减逻辑卷空间的时候(缩容时)缩减了文件系统已经使用的空间,则会破坏文件系统,导致数据丢失或损坏。所以,缩容的时候,最安全的方式是先减少文件系统的大小,再减少逻辑卷空间的大小。而扩容的时候需要先扩容空间,再扩容文件系统。
pvextend方式扩容
传统扩容方式,非动态扩容
这里的传统扩容方式,是先扩容逻辑卷空间,然后重新定义文件系统的大小。定义文件系统大小的时候,可能需要先卸载掉PV,这样就无法使用,不属于真正的动态扩容。
vgdisplay确认被扩容逻辑卷所属卷组是否有足够空间(PE)lvextend -L +200M -r <PV_name>给PV增加200MB空间- 更新文件系统空间大小(若需要卸载PV,则不是动态扩容了)
- PV文件系统为ext4的话,需要先umount卸载逻辑卷,然后使用
resize2fs <LV_path> <更新后文件系统大小如5G>这种形式更新文件系统大小,然后挂载回去。 - PV文件系统为xfs的话,直接执行
resize2fs <LV_path> <更新后文件系统大小如5G>
- PV文件系统为ext4的话,需要先umount卸载逻辑卷,然后使用
利用centos7的pvextend -r选项动态扩容
centos 7 pvextend的-r选项让我们扩容逻辑卷空间的时候能顺便扩容文件系统大小,属于真正的动态扩容。
vgdisplay确认被扩容逻辑卷所属卷组是否有足够空间(PE)lvextend -L +200M -r <PV_name>给PV增加200MB空间
lvextend -L +200M -r /dev/vg1/lv1中,+200M表示给PV增加200M空间,如果没有+号则表示将PV扩容到200M大小。-r表示自动扩容文件系统。
pvreduce方式缩容
注意:
- xfs文件系统只支持增大,不支持减小。ext2、ext3、ext4增大减小都支持。
- 首先需要确认文件系统使用情况
df -h,是否支持我们缩容操作
传统扩容方式,非动态扩容
vgdisplay确认被扩容逻辑卷所属卷组是否有足够空间(PE)lvreduce -L -100M <PV_name>给PV减少200MB空间- 更新文件系统空间大小(若需要卸载PV,则不是动态扩容了)
- PV文件系统为ext4的话,需要先umount卸载逻辑卷,然后使用
resize2fs <LV_path> <更新后文件系统大小如5G>这种形式更新文件系统大小,然后挂载回去。
- PV文件系统为ext4的话,需要先umount卸载逻辑卷,然后使用
利用centos7的pvextend -r选项动态扩容
centos 7 pvextend的-r选项让我们扩容逻辑卷空间的时候能顺便扩容文件系统大小,属于真正的动态扩容。
vgdisplay确认被扩容逻辑卷所属卷组是否有足够空间(PE)lvextend -L -200M -r <PV_name>给PV增加200MB空间
lvextend -L -200M -r /dev/vg1/lv1中,-200M表示给PV减少200M空间,如果没有-号则表示将PV缩小到200M大小。-r表示自动缩减文件系统大小。
pvresize 重新定义PV逻辑卷大小的方式扩容
扩容
- 重新定义LV容量(要求空闲VG的空闲PE足够支撑扩容)
重新定义LV卷大小:
lvresize -L 5G <LV_path>
- 检查磁盘错误及更新逻辑卷文件系统大小
LV文件系统为ext4则执行
- 检查磁盘错误
e2fsck -f <LV_path>
- 更新文件系统大小
- 先卸载PV
umount <volume_path or Mount_path>- 更新文件系统大小
resize2fs <LV_path> 5G- 重新挂载
LV文件系统为xfs则执行
xfs_growfs <LV_path>更新文件系统大小
缩容(LV文件系统是xfs的话,不支持缩容)
ext4在重置卷大小后,需要检查磁盘错误和更新逻辑卷信息。顺序不能颠倒
- 取消挂载PV
卸载:
umount <volume_path or Mount_path>
- 检查磁盘错误
exf4执行:
e2fsck -f <LV_path>
- 缩容文件系统
resize2fs <LV_path> 5G
- 重新定义卷大小
重新定义LV卷大小:
lvresize -L 5G <LV_path>
