这三个都是文件系统格式NTFS和FAT32。
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的文件。
Ext3只支持32,000个子目录,而Ext4支持无限数量的子目录。
Ext3采用间接块映射,当操作大文件时,效率极其低下。比如一 个100MB大小的文件,在Ext3中要建立25,600个数据块(每个数据块大小为4KB)的映射表。在Ext3中,每个物理块都需要一个逻辑块结构与之相对应。
Ext4引入了extents概念,提高效率,每个extent为一组连续的数据块,理想情况下,上述文件则表示为只需要一个extent来记录映射关系。
当写入数据到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块,写一个100MB文件就要调用25600次数据块分配器,而Ext4的多块分配器“multiblockallocator”(mballoc)支持一次调用分配多个数据块。
Ext3的数据块分配策略是尽快分配,而Ext4是尽可能地延迟分配,直到文件在cache中写完才开始分配数据块并写入磁盘。如此能优化整个文件的数据块分配,显著提升性能。
老的fsck会很慢,因为它要检查所有的inode,Ext4给每个组的inode表中都过它们而只去检查那些在用的inode添加了一份未使用inode的列表,执行 fsck就可以跳过它们而只去检查那些在用的inode。
日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。
Ext4的日志校验功能可以很方便地判断日志数据是否损坏,将过去两阶段日志机制合并成一个阶段,提高性能。
补充,两阶段提交:
(1)文件系统将准备执行的事务的具体内容写入日志。
(2)文件系统进行文件操作。
(3)操作成功后,将事务具体的内容从日志中删除。
Ext4允许关闭日志,以便某些有特殊需求的用户可以借此进一步提升性能。
Ext4支持在线碎片整理,并提供e4defrag工具进行个别文件或整个文件系统的碎片整理。
Ext4支持更大的inode,较之Ext3默认的inode大小128字节,Ext4为了在inode中容纳更多的扩展属性(如纳秒时间戳或inode版本),默认inode大小为256字节。
P2P软件为了保证下载文件有足够的空间存放,常常会预先创建 一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。Ext4在文件系统层面实现了持久预分配并提供相应的API,比应用软件自己实现更有效率。
使用磁盘存储内存不够而“溢出来”的内容。 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。
最容易成为被释放的对象:一些很长时间没有什么操作的程序。被保存到Swap空间中。等到那些被换出的程序要继续运行时,再从Swap中恢复保存的数据到内存中。
一般来说可以按照如下规则设置swap大小:
8G以内的物理内存,SWAP设置为内存的2倍。
8G-16G以内的的物理内存,SWAP等于内存大小或者设置为8G。
16G-256G的物理内存,SWAP设置为实际内存的1/2即可。
实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness参数值控制。
[root@localhost ~]# cat /proc/sys/vm/swappiness
60
[root@localhost ~]#
默认值是60。swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
使用命令: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。
在/etc/sysctl.conf 文件里添加如下参数:vm.swappiness=10。 vim /etc/sysctl.conf ->i->修改 esc->wq。
swapon -a #开启
swapoff -a #关闭
每个文件系统都有独立的inode/block/superblock等信息,这个文件系统要能够链接到目录树才能被我们使用。将文件系统和目录树结合的动作我们称为挂载。
挂载点:一定是目录,此目录为文件系统的入口。
mount命令:将设备挂载到某个目录。
命令格式:mount [-fnrsvw] [-o option[,option]...] 设备文件 挂载点
-t:指定设备的文件系统类型。
ext4 linux目前常用的文件系统。
nfs网络文件系统。
iso9660 CD-ROM光盘标准文件系统。
auto自动检测文件系统
-o:指定挂载文件系统时的选项。
ro以只读方式挂载。
rw以读写方式。
将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
[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的文件系统。
df:列出文件系统整体磁盘使用情况。即整个硬盘的分区情况。相当于Windows中查看磁盘分区情况。
命令格式:df 选项参数
选项参数
-a:列出所有文件系统。
-k:以KBytes的容量显示文件系统。
-m:以MBytes的容量显示文件系统。
-h:GBytes、MBytes、KBytes等格式自行显示。
-i:以inode数量显示。
du:文件系统的磁盘使用量或是目录使用量。即具体的目录或者文件的大小详情。相当与Windows中打开我的电脑进行文件查看。
命令格式:du 选项参数 目录名称
选项参数
-a:列出所有的文件与目录容量。
-h:以人们较易读的容量格式(G/M)显示。
-s:列出总量而已,而不列出每个各别的目录占用容量。
-k:以KBytes列出容量显示。
-m:以MBytes列出容量显示。
dumpe2fs:观察文件系统。
命令格式:dumpe2fs [options] < device>
参数选项:
-h :仅列出superblock的数据,不会列出其他的区段内容。
#dumpe2fs -h /dev/sda1