您的位置:首页 > 运维架构 > Linux

文件管理系统的学习

2015-08-28 10:21 573 查看
文件系统是指文件的组织与管理结构,是一个有关于磁盘中各种有用信息的记录——即是保存以下信息的结构记录表
当前所使用磁盘的容量信息
所存储文件与目录
在其中存储着以下主要内容
磁盘的可用信息,包括已占用和剩余的空间;
文件与目录的属性;
文件与目录的在磁盘中确切地址与链接信息。

Linux正统的文件系统由
目录项、inode和数据块组成。

目录项:包括文件名和inode节点号。
目录项的结构如下(每个文件的目录项存储在该文件所属目录的文件内容里(block块里)
Inode:又称文件索引节点,是文件基本信息的存放地和数据块指针存放地。
一个文件占用一个inode
inode 的大小是256个字节

top 是动态的查看内存和CPU的使用信息

文件系统
Linux 支持多种文件系统
ext2:Linux基本文件系统
ext3:ext2的增强版本,是Linux的默认文件系统
ext4:ext文件系统的第四个版本
swap:交换文件系统
nfs:网络文件系统,适合Linux或Unix机器间共享
smbfs:适合Linux或Unix和windows机器间共享
Linux内核采用虚拟文件系统层(VFS)
规定目录树上所有东西统一为如下结构
dentry
i-节点
data

文件系统重要参数
superblock(超级块):记录此 file system 的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式
inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码
block:实际记录文件的内容,若文件太大时,会占用多个 block







文件系统
其它文件系统
vfat:windows早期文件系统
ntfs:windows默认文件系统,功能非常强大 中文意思是新技术文件系统
iso9660:CD光盘的只读文件系统
GFS:google专用存储海量搜索数据而设计的专用文件系统
reiserfs:早期linux使用的日志功能的文件系统

如果要配置ntfs 文件系统要安装这个软件
lftp 10.0.0.253:/software> get ntfs-3g_ntfsprogs-2011.4.12.tgz
使用方法
mount -t ntfs-3g /dev/sda1 /mnt/windows
or
ntfs-3g /dev/sda1 /mnt/windows
===
[root@teacher ~]# ntfs-3g /dev/sdc1 /feng

创建完整的文件系统的四个步骤
其建立分区
格式化分区建立文件系统
检验文件系统
装载文件系统

fdisk命令建立分区
用途:在交互式的操作环境中管理磁盘分区
格式:fdisk [磁盘设备]
交互模式中的常用指令
m:查看操作指令的帮助信息
p:列表查看分区信息
n:新建分区
d:删除分区
t:变更分区类型
w:保存分区设置并退出
q:放弃分区设置并退出

[root@localhost ~]# fdisk -l /dev/sdb 查看/dev/sdb 的分区情况

mkfs命令
用途:Make Filesystem,创建文件系统(格式化)
格式:mkfs -t 文件系统类型 分区设备

[root@lichao520 ~]# mkfs.ext4 -L tanghailong /dev/sdc3 用mkfs.ext4 设置标签
[root@lichao520 ~]# mkfs.ext4 -L liuhuisi -b 2048 /dev/sdc2 定义块的多少

[root@lichao520 ~]# parted /dev/sdc print 查看分好的区的状态

dumpe2fs命令:查看ext4文件系统信息
格式:dumpe2fs 分区设备
[root@lichao520 ~]# dumpe2fs /dev/sdc3|more 查看文件系统的详细信息

创建ext2文件系统:mke2fs
格式:mke2fs -选项 分区设备
mke2fs、mkfs.ext2和mkfs -t ext2效果是一样的
-L:文件系统标签
-b:指定块大小
-i:指定每个i节点有多少字节
-j:建立文件系统日志
mke2fs -j、mkfs.ext2 -j 和mkfs.ext3效果是一样的

fsck命令
用途:file system check,诊断修复文件系统
格式:fsck -t 文件系统类型 分区设备
-y:自动输入yes(与-a相同)
[root@lichao520 ~]# fsck /dev/sdc1 修复文件
[root@lichao520 ~]# mount /dev/sdc1 /music/ 重新挂载使用

应用示例:
故障原因
非正常关机、突然断电、设备读写失误等
文件系统的超级块(super-block)信息被破坏
破坏superblock
[root@lichao520 ~]# dd if=/dev/zero of=/dev/sdc1 bs=512 count=5
模拟对/dev/sdb1分区的破坏操作
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
检查是否能挂载该分区
报错:mount: you must specify the filesystem type
对/dev/sdb1分区进行修复
fsck -yt ext3 /dev/sdb1
再次挂载该分区

挂载文件系统
每个文件系统提供一个根目录作为文件系统的基础
挂载文件系统时,这个根目录绑定在系统目录树中一个已经存在的目录上
这个已有的目录叫做文件系统的挂载点

mount命令
用途:挂载文件系统、ISO镜像到指定文件夹
mount [ -t 类型 ] [ -o 选项 ] 设备名 挂载点目录



[root@localhost ~]# mount -o ro /dev/sdb1 /linux-1
[root@localhost ~]# mount /dev/sdb2 /windows-1
[root@localhost windows-1]# mount -o remount,rw /dev/sdb1 重挂载 只读
[root@teacher proc]# mount 只用这个,不接文件系统 。就可以知道所有文件系统的详细信息

umount命令
用途:卸载已挂载的文件系统
格式:umount 存储设备位置
umount 挂载点目录
[root@lichao520 ~]# umount /music/ 卸载

修复文件系统前,建议先将文件系统卸载。再修复
故障原因
需要卸载的设备正在被使用
故障现象
无法卸载设备,提示“... device is busy”
解决思路
将工作目录切换到挂载点以外
退出正在使用该设备的程序
或使用fuser命令找出相关进程,并终止该进程
[root@localhost ~]# fuser -mv /linux-1/
[root@localhost ~]# lsof /linux-1/ 查看那个程序正在打开某个文件
[root@localhost ~]# free -m 查看系统里的分区使用和剩余

虚拟内存也叫交换空间
短时间缓解物理内存的不足;但不能代替物理内存
Swap 的功能能够缓解内存不足时系统的压力,它工作的机制就是在系统物理内存已满的情况下将内存中使用次数不多的较为老化的数据放置到SWAP中,达到减轻内存压力,提升系统速度的目的。不过正常情况下swap都没有使用,一旦你发现SWAP 被使用了,说明你的物理内存已经严重不足了。

创建swap :
mkswap /dev/sda7 直接创建swap
mkswapon 命令加载就可以查看到建好的swap
mkswapoff 命令停掉多余的swap
free -m 来查看空间的使用

/etc/fstab配置文件
包含了需要开机后自动挂载的文件系统记录
mount -a命令将逐行读取fstab文件进行所有挂载

设置自动挂载示例
每次重新开机后,能够自动完成挂载



使用文件系统标签标识设备
例如LABLE=/和/dev/sda1是一样的
在/etc/fstab文件中使用文件系统标签可以避免由于添加删除设备造成的设备文件标识混乱
/etc/fstab内容
#
UUID=e725f227-6051-4760-8fed-ccbf561aba44 / ext4 defaults 1 1
UUID=2ae8aff8-5175-4bc4-a06d-c798c6b90aa1 /boot ext4 defaults 1 2
UUID=dceff403-85ea-4849-b95f-45364aafb696 /home ext4 defaults 1 2
UUID=16500f8a-4334-43fc-94d6-f867ffbc4e63 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /linux-1 ext4 defaults 0 0
LABEL=music /music ext4 defaults 0 0
第1列可以使用uuid、设备文件的路径、label
第1个0 代表不支持dump备份
第2个0 代表开机的时候不使用fsck进行检测

e2label命令
查看和设置ext2或ext3文件系统的标签
语法:e2label 分区设备文件 标签名
e4label命令
查看和设置ext文件系统的标签
语法:e4label 分区设备文件 标签名

blkid命令 重点是看UUID
查看文件系统的标签
语法:blkid [分区设备文件]
[root@localhost ~]# blkid
/dev/sda2: UUID="dceff403-85ea-4849-b95f-45364aafb696" TYPE="ext4"
/dev/sda3: UUID="16500f8a-4334-43fc-94d6-f867ffbc4e63" TYPE="swap"
/dev/sdc1: LABEL="music" UUID="ede0f887-6df5-4426-a719-cd4b71d00ba4" TYPE="ext4"

新加磁盘的完整步骤:
物理连接 分区 格式化 挂载 更新/etc/fstab文件



df命令
用途:查看磁盘文件系统的使用情况
格式:df [选项]... [设备名]
常用命令选项
-a:列出所有文件系统
-h:以更易读的字节单位(K、M等)显示信息
-H:以M=1000K 替代M=1024的进位方式,用的极少
-T:列出文件系统的类型

[root@teacher dev]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 321G 168G 137G 56% /
tmpfs tmpfs 1.9G 312K 1.9G 1% /dev/shm
/dev/sda1 ext4 92G 233M 87G 1% /boot
/var/ftp/software/iso/rhel6.3.x86.iso iso9660 2.9G 2.9G 0 100% /iso-hou

du命令
用途:统计目录及文件的空间占用情况(estimate file space usage)
格式:du [选项]... [目录或文件名]
常用命令选项
-a:统计时包括所有的文件,而不仅仅只统计目录
-h:以更易读的字节单位(K、M等)显示信息
-s:只统计每个参数所占用空间总的大小
[root@bogon ~]# du -sh biji.tar 最常用的组合 统计这个压缩包的文件总容量

stat /dev/sda6 查看设备的状态

mknod 命令:建立设备文件
基本用法:mknod 设备名称 设备类型 主设备号 次设备号
设备类型:b :表示块设备
c :表示字符设备

连接文件 ln命令:建立文件链接
常用参数;
-s : 用于创建软链接
-f : 强制覆盖已存在的链接文件
创建硬链接 是不加任何参数就是就是建立硬链接
硬链接就是在某个目录下新建一条文件名连接到某个inode号码的关联记录而已。因为多个文件都共用一个inode号码,就算其中一个文件被删除了。另外一个也能够正常使用。
符号链接也叫软连接,就是和快捷方式一样,只是创建一个独立的文件,而这个文件会让数据指向它连接的那个文件。由于只是用文件来做指向的操作,所以,当源文件被删除之后,这个链接的文件也打不开了,就像Windows中,如果你将某个软件的安装文件给删除了,你桌面上的快捷方式肯定也不能用了。

tune2fs 命令对文件系统进行调整
常用参数:
-c :表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统
-i :文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统
-l :显示文件系统的很多参数
-j :转换为ext3 文件系统
-L : 和e2label 类似,更改文件系统标签
-O : 可以去掉ext3 的日志功能使其成为ext2文件系统。
tune2fs 是文件系统管理过程中常用的指令

磁盘配额的介绍
Linux磁盘限额的特点
作用范围:针对指定的文件系统(分区)
限制对象:用户帐号、组帐号
限制类型:
磁盘容量(默认单位为KB)
文件数量
限制方法:软限制、硬限制

配置磁盘配额的步骤
让文件系统支持磁盘配额
生成配额文件
启动配额
设置配额
查看配额
测试配额

Quota 仅能针对文件系统,不能说随便对某个目录进行限制
内核必须支持quota ,quota 只对普通用户生效。
Quota 对文件系统的限制这要分为:容量限制或文件数量限制(inode或block)
1.限制inode用量:就是用户可以新建的“文件数量”
2.限制block 用量:就是用户可以使用的磁盘容量,比较常见的限制方式
Quota 有硬限制和软限制
[root@localhost movie]# quotaon -a开启
[root@localhost movie]# quotaoff -a 关闭
[root@localhost movie]# useradd xiaoliu
[root@localhost movie]# edquota -u xiaoliu

启用文件系统的配额支持
添加usrquota、grpquota挂载参数




检测磁盘配额并创建配额文件
使用quotacheck命令创建配额文件
quotacheck -ugv 文件系统
quotacheck -augv

启用、关闭文件系统的配额功能
使用quotaon、quotaoff命令

编辑用户和组帐号的配额设置
使用edquota命令编辑配额设置
edquota -u 用户名
edquota -g 组名

管理宽限时间
edquota -t编辑用户宽限时间
edquota -gt编辑组宽限时间
宽限时间应用于整个分区,对所有用户或组都是一样
复制配额
将模板用户的配额复制给另一个用户
edquota -p 模板用户 新用户

验证磁盘配额功能
必须切换到设置配额的分区(挂载目录)
创建指定数量的文件:使用touch命令,或cp命令
创建指定容量的文件:使用dd命令,或cp命令
setquota:直接设置配额命令
格式: setquota [-u|-g] 用户名/组名 block(soft) block(hard) inode(soft) inode(hard) 文件系统

LVM 逻辑卷管理








LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。

*物理卷(physicalvolume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。

*卷组(VolumeGroup)LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。

*逻辑卷(logicalvolume)LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)

*PE(physicalextent)
每一个物理卷被划分为称为PE(PhysicalExtents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。

*LE(logicalextent)
逻辑卷也被划分为被称为LE(LogicalExtents)的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
首先可以看到,物理卷(PV)被由大小等同的基本单元PE组成。


一个卷组由一个或多个物理卷组成。

首先确定系统中是否安装了lvm工具:
[root@wwwroot]#rpm –qa | grep lvm
lvm-1.0.3-4

创建管理
要创建一个LVM系统,一般需要经过以下步骤:
1、创建分区使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。

2、创建物理卷创建物理卷的命令为pvcreate,利用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。将整个磁盘创建为物理卷的命令为:

#pvcreate /dev/hdb

将单个分区创建为物理卷的命令为:

#pvcreate /dev/hda5


3、创建卷组
创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:

#vgcreate web_document /dev/hda5 /dev/hdb

vgcreate命令第一个参数是指定该卷组的逻辑名:web_document。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate 在创建卷组web_document以外,还设置使用大小为4MB的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以4MB为增量单位来进行扩充 或缩减。由于内核原因,PE大小决定了逻辑卷的最大大小,4MB的PE决定了单个逻辑卷最大容量为256GB,若希望使用大于256G的逻辑卷则创建卷组 时指定更大的PE。PE大小范围为8KB到512MB,并且必须总是2的倍数(使用-s指定,具体请参考man vgcreate)。

4、激活卷组

为了立即使用卷组而不是重新启动系统,可以使用vgchange来激活卷组:

#vgchange -ay web_document

添加新的物理卷到卷组中当系统安装了新的磁盘并创建了新的物理卷,而要将其添加到已有卷组时,就需要使用vgextend命令:

#vgextend web_document /dev/hdc1 这里/dev/hdc1是新的物理卷。

6、从卷组中删除一个物理卷,首先要确认要删除的物理卷没有被任何逻辑卷正在使用,
就要使用pvdisplay命令察看一个该物理卷信息:





如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据备份到其他地方,然后再删除。

删除物理卷的命令为vgreduce:#vgremove web_document /dev/hda1

7、创建逻辑卷创建逻辑卷的命令为lvcreate:

#lvcreate -L 1500 -n www1 web_document

该命令就在卷组web_document上创建名字为www1,大小为1500M的逻辑卷,并且设备入口为 /dev/web_document/www1(web_document为卷组名,www1为逻辑卷名)。




如果希望创建一个使用全部卷组的逻辑卷,则需 要首先察看该卷组的PE数,然后在创建逻辑卷时指定:
#vgdisplay web_document | grep "TotalPE"

TotalPE 45230

#lvcreate -l 45230 web_document -n www1

8、创建文件系统笔者推荐使用reiserfs文件系统.

创建了文件系统以后,就可以加载并使用它:

#mkdir /data/wwwroot

#mount /dev/web_document/www1 /data/wwwroot
如果希望系统启动时自动加载文件系统,则还需要在/etc/fstab中添加内容:
/dev/web_document/www1 /data/wwwroot reiserfs defaults 1 2

9、删除一个逻辑卷删除逻辑卷以前首先需要将其卸载,然后删除:

#umount /dev/web_document/www1

#lvremove /dev/web_document/www1

10、扩展逻辑卷大小LVM提供了方便调整逻辑卷大小的能力,扩展逻辑卷大小的命令是lvextend:

#lvextend -L 12G /dev/web_document/www1

上面的命令就实现将逻辑卷www1的大小扩招为12G。

#lvextend -L +1G /dev/web_document/www1

上面的命令就实现将逻辑卷www1的大小增加1G。增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间。


一般建议最好将文件系统卸载,调整大小,然后再加载:

#umount /dev/web_document/www1

11、减少逻辑卷大小使用lvreduce即可实现对逻辑卷的容量,同样需要首先将文件系统卸载

#umount /data/wwwroot

#resize_reiserfs -s -2G /dev/web_document/www1

#lvreduce -L -2G /dev/web_document/www1

#mount-treiserfs /dev/web_document/www1/data/wwwroot





进行lvm的查询:




在/etc/fstab里面自动挂载这些磁盘:




























内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息