首页 > 代码库 > 文件系统管理(第八章)
文件系统管理(第八章)
1. linux文件系统类型
1.1 日志文件系统
ext2及之前的文件系统由于是通过索引节点表来关联硬盘上的数据块,所以如果数据正在写入时断电或系统崩溃很可能导致当前的文件系统崩溃,为了避免这种情况,在ext3开始的文件系统支持日志功能,数据在写入时会先写入临时文件(journal)中,待数据全部写入硬盘时再删除临时文件中的相应数据。
1.2 日志文件系统的模式
数据模式:索引节点和文件都会写入目录,丢失数据风险低,但是性能差
有序模式:只有索引节点数据会写入目录,在文件写完以后才会删除,这是一个折中的方案,会有比较好的性能
回写模式:只有索引节点数据会写入目录,但是不控制数据何时写入,安全性较差
1.3 常用的日志文件系统
ext3:支持日志模式
ext4:在ext3基础上加入了extent(区段)特性和block preallocation(块预分配技术)。
xfs:支持回写模式的日志文件系统,性能好但是风险高,还支持在线调整文件系统大小
1.4 写时复制文件系统
写时复制文件技术对于当前修改的数据并不会覆盖原来的数据,而是存放于另一个地方,即使修改完成也不会删除原来的数据。目前使用此技术的文件系统有ZFS、btrfs。
2. 磁盘分区管理
2.1 fdisk:为linux自带的磁盘分区工具,至多只能管理15个分区
fdisk -l [-u] [device...]:列出当前所有磁盘的详细信息
fdisk DEV:磁盘分区管理
子命令:
h:帮助
p:显示已有分区
n:创建分区
d:删除分区
l:列出所有分区的ID
t:调整分区的ID
w:保存退出
q:放弃更新并退出
cat /proc/partations:查看内核是否已经识别新的分区
partx -a /dev/DEVICE:通知内核重新读取硬盘分区表
kpartx -a /dev/DEVICE:同上
kpartx -f /dev/DEVICE:强制重新读取,慎用
2.2 创建文件系统
mkfs.FS_TYPE /dev/DEVICE:格式化分区,创建指定的文件系统
mkfs.ext3:创建ext3文件系统
mkfs.ext4:创建ext4文件系统
mkfs.xfs:创建xfs文件系统
mkfs.btrfs:创建btrfs文件系统
mkfs.vfat:创建vfat文件系统
mkfs -t FS_TYPE /dev/DEVICE 也可以实现上述功能
mke2fs:ext系列文件系统的专用管理工具
参数:
-t{ext2|ext3|ext4}:指定文件系统类型
-b{1024|2048|4096}:指定块大小
-L ‘Label‘ :设置便签
-J :相当于 -t ext3
-i:为数据空间中每多少字节创建一个inode,此大小不应小于block的大小
-N:为数据空间创建多少个inode
-m:为管理人员预留的空间占据的百分比
-O FEATURE [....]:启动指定特性
-O ^FEATURE:关闭指定特性
mkswap:创建交换分区
mkswap [options] DEVICE
-L ‘Label‘
2.3 其他常用工具
blkid:块设备属性信息查看
参数:
-U UUID:根据指定的UUID来查看对应的设备
-L LABEL:根据指定的LABEL来查看对应的设备
e2label:管理ext系列文件系统的LABEL
e2label DEVICE [LABEL]
tune2fs:重新设定ext系列文件系统的可调整参数的值
参数:
-l:查看指定文件系统超级快信息
-L ‘LABEL‘:修改卷标
-m #:修改预留给管理员空间的百分比
-j :将ext2升级为ext3
-O:文件系统属性启用或禁用
-o:调整文件系统的默认挂载选项
-U UUID:修改UUID号
dumpe2fs -h:查看超级块信息
2.4 文件系统检查与修复
fcsk:文件系统检查与修复命令
格式:
fsck.FS_TYPE
fsck -t FS_TYPE
参数:
-a:自动修复错误
-r:交互式修复错误
e2fsck:ext文件系统专用修复工具
-y:自动回答为YES
-f:强制修复,慎用。
3. 逻辑卷管理
逻辑卷基础概念:逻辑卷通过动态调整卷空间,方便磁盘空间管理,在新增磁盘设备时尤其有用
pv:物理卷
vg:卷组,多个物理卷组成卷组
lv:逻辑卷,创建文件系统的环境
3.1 逻辑卷的特性
1、快照
逻辑卷可以将指定卷复制到另一个地方,在做测试时,如果当前卷出现问题,可以直接将快照作为替代,提高高可用
2、条带化
一个逻辑卷可以横跨多个物理卷,不仅在方便空间管理,而且可以提高数据读写性能
3、镜像
快照主要针对于数据量不大的情况,当数据量较大时可使用镜像功能,镜像是逻辑卷实时更新的完整副本,由于每次写入需要执行两次IO操作,所以镜像会导致性能降低,但是安全性增强。
3.2 LVM管理
dm:将一个或多个低层设备组成一个逻辑设备的模块,一般存放于/dev/dm-#
/dev/mapper/VG_NAME_LV_NAME :存放逻辑卷的目录
/dev/VG_NAME/LV_NAME:存放逻辑卷的目录
pv管理:
pvs:简要显示PV信息
pvdisplay:显示PV详细信息
pvcreate /dev/DEVICE:创建pv
pvremove /dev/DEVICE:删除pv
VG管理:
vgs:简要显示VG细细
vgdisplay:显示VG详细信息
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]:创建vg
-s #[kKmMgGtTpPeE]:指定PE大小,PE为VG的最小存储单元,相当于硬盘中的块,一般默认为4M
VolumeGroupName:指定VG名称
PhysicalDevicePath [PhysicalDevicePath...]:指定创建VG所用的PV
示例:
[root@localhost ~]# vgcreate VG1 /dev/sdb1 /dev/sdc1
vgremove VG_NAME:移除VG
LV管理:
lvs:简要显示lv信息
lvdisplay:限制lv详细信息
lvcreate -L #[mMgGtT] -n NAME VolumeGroup:创建lv
-L #[mMgGtT]:指定lv大小
-n:指定lv名称
VolumeGroup:指定创建lv的vg名称
示例:
[root@localhost ~]# lvcreate -L 100G -n LV1 VG1
lvremove /dev/VG_NAME/LV_NAME:删除lv
扩展逻辑卷
/lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-L [+]#[mMgGtT]:指定扩展的大小,加+号表示在原有基础上加上的空间,没有加号表示扩展到指定大小
resizefs /dev/VG_NAME/LV_NAME:将lvextent扩容在文件系统中生效
缩减逻辑卷
# umount /dev/VG_NAME/LV_NAME
# e2fsck -f /dev/VG_NAME/LV_NAME
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# mount
本文出自 “学海无涯” 博客,谢绝转载!
文件系统管理(第八章)