Linux文件系统

  1. 文件系统的定义

文件系统是操作系统的必备软件,文件系统是对一个存储设备上的数据(block)和元数据(inode)进行组织的一种机制。文件系统可以帮助用户管理磁盘空间,进行文件的快速存取的功能。文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

  1. 常见的文件系统

常见的文件系统有FAT FAT16 FAT32(通用) NTFS EXT2 EXT3 EXT4 XFS HFS

其分别的特点如下:

fat16:最多支持2G

fat32:单个文件不能超过4G

etfat:突破单个文件不能超过4G

ntfs:只有Windows专用,是一种带日志功能的文件系统,文件安全性更高。意外断电一般都可以恢复

ext:Linux之父林纳斯·托瓦兹创造

ext2:第二代扩展文件系统

ext3:CentOS 5.X    

ext4:CentOS 6.X    2012年发布 相对之前的版本多了日志功能,文件安全性更强,找回的文件在lost found下

XFS:CentOS 7.X    2014年发布

在Windows平台下利用fsutil fsinfo ntfsinfo c:可以查看ntfs文件系统相关信息

 

  1. Windows下fat32无损转换为ntfs

  1. Linux下挂载ntfs文件系统

4.1 查看可用的源ls /etc/yum.repos.d/

4.2 安装epel源

yum list|grep epel

yum install epel-release.noarch –y

4.3 安装ntfs3g

yum list|grep ntfs

yum install ntfs-3g.x86_64 –y

4.4 连接ntfs格式的盘

[[email protected] ~]# fdisk -l

 

Disk /dev/sda: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00098b99

 

  Device Boot      Start         End      Blocks   Id  System

/dev/sda1               1         262     2097152   82  Linux swap / Solaris

Partition 1 does not end on cylinder boundary.

/dev/sda2   *         262        2611    18873344   83  Linux

 

Disk /dev/sdb: 16.0 GB, 15977152512 bytes

255 heads, 63 sectors/track, 1942 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xcad4ebea

 

  Device Boot      Start         End      Blocks   Id  System

/dev/sdb4   *           1        1943    15602560    7  HPFS/NTFS

4.5 挂载

mount -t ntfs-3g /dev/sdb /mnt/usb

  1. 将硬盘格式化为ntfs

5.1 安装mkntfs

yum list|grep ntfs

yum install yum ntfsprogs.x86_64 –y

5.2 格式化为ntfs

mkfs.ntfs /dev/sdb

  1. CentOS 6使用XFS文件系统

6.1 安装支持xfs的工具包

yum list|grep xfs

yum install xfsprogs.x86_64 –y

6.2 格式化

mkfs.xfs /dev/sdb

mkfs.xfs –f /dev/sdb    强制格式化

6.3 挂载

[[email protected] ~]# mkfs.xfs /dev/sdb

meta-data=/dev/sdb               isize=256    agcount=4, agsize=196608000 blks

        =                       sectsz=512   attr=2, projid32bit=0

data     =                       bsize=4096   blocks=786432000, imaxpct=5

        =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0

log      =internal log           bsize=4096   blocks=384000, version=2

        =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

[[email protected] ~]# mount /dev/sdb /mnt/

[[email protected] ~]# df -Th

Filesystem     Type   Size  Used Avail Use% Mounted on

/dev/sda2      ext4    18G  1.6G   16G  10% /

tmpfs          tmpfs  931M     0  931M   0% /dev/shm

/dev/sdb       xfs    3.0T   33M  3.0T   1% /mnt

7、测试比较ext4和xfs文件系统分区性能

使用dd命令

功能一:提取光碟的iso文件(刻录盗版碟)dd if=/dev/sr0 of=/windows7.iso(输出路径及名称)

功能二:测试磁盘的性能 /dev/zero可以不断向外面输出内容(像喷泉一样)

测试性能time dd if=/dev/zero of=/mnt/a.raw bs=100M count=6 (连续100M文件6个)

用两个1.5T的ext4和xfs硬盘测试

[[email protected] ~]# df -Th

Filesystem     Type   Size  Used Avail Use% Mounted on

/dev/sda2      ext4    18G  1.6G   16G  10% /

tmpfs          tmpfs  931M     0  931M   0% /dev/shm

/dev/sdb1      ext4   1.5T   70M  1.4T   1% /mnt/1

/dev/sdb2      xfs    1.5T   33M  1.5T   1% /mnt/2

[[email protected] ~]# time dd if=/dev/zero of=/mnt/2/b bs=100M count=6

6+0 records in

6+0 records out

629145600 bytes (629 MB) copied, 0.546586 s, 1.2 GB/s

 

real    0m0.604s

user    0m0.002s

sys    0m0.491s

[[email protected] ~]# time dd if=/dev/zero of=/mnt/1/a bs=100M count=6

6+0 records in

6+0 records out

629145600 bytes (629 MB) copied, 0.493491 s, 1.3 GB/s

 

real    0m0.534s

user    0m0.000s

sys    0m0.478s

结论:xfs文件系统的性能比ext4文件系统的性能要好

  1. swap文件系统

在实际生产情况中,有时候会遇到系统的swap虚拟内存不够用的情况,这时系统会调用oom(out of memory内存溢出)进程的oom killer内存不足终结者,来避免由于空间不够造成系统崩溃,解决此问题的办法当然是在检查系统进程的同时扩大系统虚拟内存空间,以便于后期进行硬件上的升级

添加和卸载swap虚拟内存空间的步骤

第1步、通过dd添加空间

dd if=/dev/zero of=/opt/swap bs=1G count=1 此处添加的空间为1G

第2步、格式化成swap的文件系统

mkswap -f /opt/swap

第3步、将虚拟的swap空间添加进系统swap

swapon /opt/swap    

[[email protected] ~]# free -m

            total       used       free     shared    buffers     cached

Mem:          1990       1725        265          0         17       1567

-/+ buffers/cache:        140       1849

Swap:         2047          0       2047

[[email protected] ~]# dd if=/dev/zero of=/opt/swap bs=1G count=1

1+0 records in

1+0 records out

1073741824 bytes (1.1 GB) copied, 22.5995 s, 47.5 MB/s

[[email protected] ~]# ll -h /opt/swap

-rw-r--r-- 1 root root 1.0G Apr 11 17:27 /opt/swap

[[email protected] ~]# mkswap -f /opt/swap

Setting up swapspace version 1, size = 1048572 KiB

no label, UUID=df3f2ef1-57c3-48d3-9b76-6784fe794e53

[[email protected] ~]# swapon /opt/swap

[[email protected] ~]# free -m

            total       used       free     shared    buffers     cached

Mem:          1990        893       1097          0         17        757

-/+ buffers/cache:        117       1873

Swap:         3071          0       3071

第4步、取出虚拟的swap

swapoff /opt/swap

[[email protected] ~]# swapoff /opt/swap

[[email protected] ~]# free -m

            total       used       free     shared    buffers     cached

Mem:          1990        893       1097          0         17        758

-/+ buffers/cache:        117       1873

Swap:         2047          0       2047