Linux基础之文件系统

Linux基础之文件系统

1、Ext2/Ext3/Ext4区别

这三个都是文件系统格式NTFS和FAT32。node

Linux kernel自2.6.28开始正式支持新的文件系统Ext4,Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构。Ext3对Ext2,只是增长了一个日志功能而已。Ext4能够提供更佳的性能和可靠性,还有更为丰富的功能,更大的文件系统和更大的文件。较之Ext3所支持的最大16TB文件系统和最大2TB文件,Ext4分别支持1EB(1,048,576TB,1EB=1024PB,1PB=1024TB)的文件系统,以及16TB的文件。linux

一、无限数量的子目录

Ext3只支持32,000个子目录,而Ext4支持无限数量的子目录。vim

二、Extents(区段)

Ext3采用间接块映射,当操做大文件时,效率极其低下。好比一 个100MB大小的文件,在Ext3中要创建25,600个数据块(每一个数据块大小为4KB)的映射表。在Ext3中,每一个物理块都须要一个逻辑块结构与之相对应。bash

Ext4引入了extents概念,提升效率,每一个extent为一组连续的数据块,理想状况下,上述文件则表示为只须要一个extent来记录映射关系。网络

三、多块分配

当写入数据到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块,写一个100MB文件就要调用25600次数据块分配器,而Ext4的多块分配器“multiblockallocator”(mballoc)支持一次调用分配多个数据块。数据结构

四、延迟分配 

Ext3的数据块分配策略是尽快分配,而Ext4是尽量地延迟分配,直到文件在cache中写完才开始分配数据块并写入磁盘。如此能优化整个文件的数据块分配,显著提高性能。app

五、快速fsck(文件系统检查)

老的fsck会很慢,由于它要检查全部的inode,Ext4给每一个组的inode表中都过它们而只去检查那些在用的inode添加了一份未使用inode的列表,执行 fsck就能够跳过它们而只去检查那些在用的inode。工具

六、日志校验

日志是最经常使用的部分,也极易致使磁盘硬件故障,而从损坏的日志中恢复数据会致使更多的数据损坏。性能

Ext4的日志校验功能能够很方便地判断日志数据是否损坏,将过去两阶段日志机制合并成一个阶段,提升性能。优化

补充,两阶段提交:

    (1)文件系统将准备执行的事务的具体内容写入日志。

    (2)文件系统进行文件操做。

    (3)操做成功后,将事务具体的内容从日志中删除。

七、“无日志”(NoJournaling)模式

Ext4容许关闭日志,以便某些有特殊需求的用户能够借此进一步提高性能。

八、在线碎片整理

Ext4支持在线碎片整理,并提供e4defrag工具进行个别文件或整个文件系统的碎片整理。

九、inode相关特性

Ext4支持更大的inode,较之Ext3默认的inode大小128字节,Ext4为了在inode中容纳更多的扩展属性(如纳秒时间戳或inode版本),默认inode大小为256字节。

十、持久预分配(Persistentpreallocation)

P2P软件为了保证下载文件有足够的空间存放,经常会预先建立 一个与所下载文件大小相同的空文件,以避免将来的数小时或数天以内磁盘空间不足致使下载失败。Ext4在文件系统层面实现了持久预分配并提供相应的API,比应用软件本身实现更有效率。

2、swap

一、Swap(交换分区)概述

使用磁盘存储内存不够而“溢出来”的内容。 当系统的物理内存不够用的时候,就须要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。

最容易成为被释放的对象:一些很长时间没有什么操做的程序。被保存到Swap空间中。等到那些被换出的程序要继续运行时,再从Swap中恢复保存的数据到内存中。

通常来讲能够按照以下规则设置swap大小:

8G之内的物理内存,SWAP设置为内存的2倍。

8G-16G之内的的物理内存,SWAP等于内存大小或者设置为8G。

16G-256G的物理内存,SWAP设置为实际内存的1/2便可。

二、系统如何使用swap

实际上,并非等全部的物理内存都消耗完毕以后,才去使用swap的空间,何时使用是由swappiness参数值控制。

[root@localhost ~]# cat /proc/sys/vm/swappiness
60
[root@localhost ~]#

默认值是60。swappiness=0的时候表示最大限度使用物理内存,而后才是swap空间,swappiness=100的时候表示积极的使用swap分区,而且把内存上的数据及时的搬运到swap空间里面。

三、修改swap参数 

1.临时性修改

使用命令:sysctl,能够进行临时修改swap的使用比例。

命令格式:sysctl vm.swappiness=0-100的数字

示例:

[root@localhost ~]# sysctl vm.swappiness=10 
vm.swappiness = 10 
[root@localhost ~]# cat /proc/sys/vm/swappiness 
     10 

这里咱们的修改已经生效,可是若是咱们重启了系统,又会变成60。

2.永久修改

在/etc/sysctl.conf 文件里添加以下参数:vm.swappiness=10。
vim /etc/sysctl.conf ->i->修改 esc->wq。

四、swap开启与关闭

swapon -a #开启
swapoff -a #关闭

3、文件系统的操做

一、挂载点的意义

每一个文件系统都有独立的inode/block/superblock等信息,这个文件系统要可以连接到目录树才能被咱们使用。将文件系统和目录树结合的动做咱们称为挂载。

挂载点:必定是目录,此目录为文件系统的入口。

二、挂载操做

mount命令:将设备挂载到某个目录。

命令格式:mount [-fnrsvw] [-o option[,option]...] 设备文件 挂载点

1.选项和参数

-t:指定设备的文件系统类型。

ext4 linux目前经常使用的文件系统。

nfs网络文件系统。

iso9660 CD-ROM光盘标准文件系统。

auto自动检测文件系统 

-o:指定挂载文件系统时的选项。

ro以只读方式挂载。

rw以读写方式。

2.挂载镜像文件

将ISO镜像文件挂载到Linux虚拟机中,准备工做:


挂载到某个目录。

[root@localhost ~]# mount /dev/cdrom /media
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sr0        4.2G  4.2G     0 100% /media/CentOS_6.5_Final
[root@localhost ~]# ll /dev/cdrom1 
lrwxrwxrwx. 1 root root 3 Feb  9 14:53 /dev/cdrom1 -> sr0
[root@localhost ~]# ls /media

CentOS_6.5_Final 挂载到某个目录

[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount -t iso9660 /dev/cdrom1  /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sr0        4.2G  4.2G     0 100% /mnt/cdrom
[root@localhost ~]# lsblk      #查看块设备
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  4.2G  0 rom 

3.挂载U盘

[root@localhost /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        29G  2.3G   27G   8% /media/7E4E-815B
[root@localhost /]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  4.2G  0 rom  
sdb      8:16   1 28.9G  0 disk 
└─sdb1   8:17   1 28.9G  0 part /media/7E4E-815B
[root@localhost /]# mkdir /mnt/udisk
[root@localhost /]# mount /dev/sdb1 /mnt/udisk/
[root@localhost /]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   1 28.9G  0 disk 
└─sdb1   8:17   1 28.9G  0 part /media/7E4E-815B
[root@localhost /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1        29G  2.3G   27G   8% /media/7E4E-815B
/dev/sdb1        29G  2.3G   27G   8% /mnt/udisk

若是挂载后查看U盘内容出现乱码?

[root@localhost ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8“
[root@localhost ~]#man mount

使用”/iocharset”查找

[root@localhost ~]# mount -o iocharset=utf8 /dev/sdb1 /mnt/udisk

Ntfs须要下载ntfs-3g驱动

yum install ntfs-3g

用完要记得使用umount“弹出”,并断开链接。

三、取消挂载

umount:取消挂载。
命令格式:umount 设备或是挂载点
示例:

umount /mnt/cdrom
#或
umount /dev/cdrom1 
#或
umount /dev/sr0

四、自动挂载

/etc/fstab文件:开机引导的时候自动挂载到linux的文件系统。

五、文件系统相关命令

1.df

df:列出文件系统总体磁盘使用状况。即整个硬盘的分区状况。至关于Windows中查看磁盘分区状况。

命令格式:df 选项参数

选项参数

-a:列出全部文件系统。

-k:以KBytes的容量显示文件系统。

-m:以MBytes的容量显示文件系统。

-h:GBytes、MBytes、KBytes等格式自行显示。

-i:以inode数量显示。

2.du

du:文件系统的磁盘使用量或是目录使用量。即具体的目录或者文件的大小详情。至关与Windows中打开个人电脑进行文件查看。

命令格式:du 选项参数 目录名称

选项参数

-a:列出全部的文件与目录容量。

-h:以人们较易读的容量格式(G/M)显示。

-s:列出总量而已,而不列出每一个各别的目录占用容量。

-k:以KBytes列出容量显示。

-m:以MBytes列出容量显示。

3.dumpe2fs

dumpe2fs:观察文件系统。

命令格式:dumpe2fs [options] < device>

参数选项:

-h :仅列出superblock的数据,不会列出其余的区段内容。

#dumpe2fs  -h /dev/sda1


上一篇:Linux基础之权限

下一篇:Linux基础之网络

相关文章
相关标签/搜索