• Linux学习之二十-Linux文件系统


    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格式的盘

    [root@localhost ~]# 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 挂载

    [root@localhost ~]# 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

    [root@localhost ~]# mount /dev/sdb /mnt/

    [root@localhost ~]# 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硬盘测试

    [root@localhost ~]# 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

    [root@localhost ~]# 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

    [root@localhost ~]# 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    

    [root@localhost ~]# free -m

    total used free shared buffers cached

    Mem: 1990 1725 265 0 17 1567

    -/+ buffers/cache: 140 1849

    Swap: 2047 0 2047

    [root@localhost ~]# 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

    [root@localhost ~]# ll -h /opt/swap

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

    [root@localhost ~]# mkswap -f /opt/swap

    Setting up swapspace version 1, size = 1048572 KiB

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

    [root@localhost ~]# swapon /opt/swap

    [root@localhost ~]# 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

    [root@localhost ~]# swapoff /opt/swap

    [root@localhost ~]# free -m

    total used free shared buffers cached

    Mem: 1990 893 1097 0 17 758

    -/+ buffers/cache: 117 1873

    Swap: 2047 0 2047

     

    博主原创文章,转载请务必注明出处

     

     

  • 相关阅读:
    jstat命令行工具监控JVM内存和垃圾回收
    SkyWalking 日志监控
    SkyWalking 数据持久化
    问题记录: java 19000101 08:05:43 时间偏移bug
    springboot jest链接es
    redisRedisLockRegistry 分布式锁
    es 索引别名
    springboot elasticsearchresthighlevelclient 连接es
    缓存穿透、缓存击穿和缓存雪崩 概念
    Navicat for MySQL 导出中文乱码问题
  • 原文地址:https://www.cnblogs.com/ssgeek/p/9220711.html
Copyright © 2020-2023  润新知