Linux磁盘及文件系统管理

时间:2020-12-08 18:32:08

Linux磁盘及文件系统管理


 CPU, Memory(RAM), I/O  I/O: Disks, Ehtercard      Disks: 持久存储数据

1 磁盘管理

1.1 硬盘接口类型

     IDE(ata):并口,133MB/s      SCSI:并口,Ultrascsi320, 320MB/S, UltraSCSI640, 640MB/S      SATA:串口,6gbps      SAS:串口,6gbps      USB:串口,480MB/s             并口:同一线缆可以接多块设备;                IDE:两个,主,从                SCSI:                     宽带:16-1                     窄带:8-1           串口:同一线缆只可以接一个设备;             IOPS:io per second(IO每秒)

1.2 硬盘类型

     硬盘:机械硬盘,固态硬盘;

1.2.1 机械硬盘

     track:磁道      sector:扇区,512bytes      cylinder:柱面           分区划分基于柱面:        平均寻道时间:           5400rpm, 7200rpm, 10000rpm, 15000rpm   Linux的哲学思想:一切皆文件;        设备类型:           块(block):随机访问,数据交换单位是“块”;           字符(character):线性访问,数据交换单位是“字符”;  

1.2.2 固态硬盘

1.3 设备文件:FHS

     /dev           设备文件:关联至设备的驱动程序;设备的访问入口;        设备号:           major:主设备号,区分设备类型;用于标明设备所需要的驱动程序;           minor:次设备号,区分同种类型下的不同的设备;是特定设备的访问入口;        mknod命令:           make block or character special files           mknod  [OPTION]...  NAME  TYPE  [MAJOR  MINOR]                -m MODE:创建后的设备文件的访问权限;

 1.3.1 设备文件名:ICANN

     磁盘命名方式:
          IDE接口硬盘命令方式: /dev/hd[a-z]                例如:/dev/hda, /dev/hdb           SCSI, SATA, USB, SAS硬盘命令方式: /dev/sd[a-z]             磁盘分区命名方式:                /dev/sda#:                     例如:/dev/sda1, ...            注意:CentOS 6和7统统将硬盘设备文件标识为/dev/sd[a-z]#                                          引用设备的方式:                     设备文件名                     卷标                     UUID

1.4 磁盘分区

     磁盘分区:MBR, GPT

1.4.1 MBR(Master Boot Record)

     MBR(Master Boot Record):0 sector  主引导记录        MBR分为三部分:           446bytes:bootloader(引导装载程序),引导启动操作系统的程序;           64bytes:分区表,每16bytes标识一个分区,一共只能有4个分区;                4主分区                3主1扩展:                     n逻辑分区           2bytes:MBR区域的有效性标识;55AA为有效;             主分区和扩展分区的标识序号是:1-4           逻辑分区序号:5+,从5开始

1.4.2 GPT

     GPT:(GUID Partition Table)全局唯一标识分区表,是一个较新的分区机制,解决了MBR很多缺点      支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted      向后兼容MBR      必须在支持uEFI的硬件上才能使用(Intel提出,用于取代BIOS)      必须使用64位系统      Mac、Linux系统都能支持GPT分区格式      Windows 7/8 64bit、Windows Server 2008 64bit支持GPT

1.5 fdisk 命令

     1、查看磁盘的分区信息:
          fdisk -l [-u] [device...]:列出指定磁盘设备上的分区情况;        2、管理分区           fdisk  device           fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘;直到使用w命令保存至磁盘上;        常用命令:           n:创建新分区           d:删除已有分区           t:修改分区类型           l:查看所有已经ID           w:保存并退出           q:不保存并退出           m:查看帮助信息           p:显示现有分区信息        注意:在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别;           cat  /proc/partitions,查看内核已识别的所有分区           通知内核强制重读磁盘分区表:                CentOS 5:partprobe [device]                CentOS 6,7:partx, kpartx                     partx -a [device]                     kpartx -af [device]  示例:
   
  
  
  1. [root@CentOS7-171 ~]# cat /proc/partitions
  2. major minor #blocks name
  3. 8 0 125829120 sda
  4. 8 1 512000 sda1
  5. 8 2 52428800 sda2
  6. 8 3 1048576 sda3
  7. 8 4 1 sda4
  8. 8 5 10485760 sda5
  9. 11 0 4228096 sr0
  10. [root@CentOS7-171 ~]# partx -a /dev/sda
  11. partx: /dev/sda: error adding partitions 1-5
  12. [root@CentOS7-171 ~]# partx -a /dev/sda
  13. partx: /dev/sda: error adding partitions 1-7
  14. [root@CentOS7-171 ~]# cat /proc/partitions
  15. major minor #blocks name
  16. 8 0 125829120 sda
  17. 8 1 512000 sda1
  18. 8 2 52428800 sda2
  19. 8 3 1048576 sda3
  20. 8 4 1 sda4
  21. 8 5 10485760 sda5
  22. 8 6 10485760 sda6
  23. 8 7 2097152 sda7
  24. 11 0 4228096 sr0

          分区创建工具:parted, sfdisk;

2 创建文件系统

格式化:      低级格式化(分区之前进行,划分磁道)      高级格式化(分区之后对分区进行,创建文件系统)
       元数据区,数据区           元数据区:                文件元数据:inode(index node)                     大小、权限、属主属组、时间戳、数据块指针
               符号链接文件:存储数据指针的空间当中存储的是真实文件的访问路径;                设备文件:存储数据指针的空间当中存储的是设备号(major, minor);             bitmap index:位图索引

2.1 VFS(Virtual File System)

     Linux的文件系统: ext2(无日志功能), ext3, ext4, xfs, reiserfs, btrfs      光盘:iso9660      网络文件系统:nfs, cifs      集群文件系统:gfs2, ocfs2      内核级分布式文件系统:ceph      windows的文件系统:vfat, ntfs      伪文件系统:proc, sysfs, tmpfs, hugepagefs       Unix的文件系统:UFS, FFS, JFS       交换文件系统:swap       用户空间的分布式文件系统:mogilefs, moosefs, glusterfs

2.2 文件系统管理工具

2.2.1 创建文件系统的工具

     mkfs      mkfs.ext2, mkfs.ext3, mkfs.ext4, mkfs.xfs, mkfs.vfat, ...
2.2.1.1 ext系列文件系统的管理工具
     mkfs.ext2, mkfs.ext3, mkfs.ext4
          mkfs -t ext2 = mkfs.ext2
    
   
   
  1. [root@Centos6.8-180 ~]# mkfs.ext2 /dev/sda3
  2. mke2fs 1.41.12 (17-May-2010)
  3. 文件系统标签=
  4. 操作系统:Linux
  5. 块大小=4096 (log=2)
  6. 分块大小=4096 (log=2)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 655360 inodes, 2620699 blocks
  9. 131034 blocks (5.00%) reserved for the super user
  10. 第一个数据块=0
  11. Maximum filesystem blocks=2684354560
  12. 80 block groups
  13. 32768 blocks per group, 32768 fragments per group
  14. 8192 inodes per group
  15. Superblock backups stored on blocks:
  16. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
  17. 正在写入inode表: 完成
  18. Writing superblocks and filesystem accounting information: 完成
  19. This filesystem will be automatically checked every 26 mounts or
  20. 180 days, whichever comes first. Use tune2fs -c or -i to override.
     
    
    
  1. [root@Centos6.8-180 ~]# blkid /dev/sda3
  2. /dev/sda3: UUID="f6bfa911-010c-4d39-83df-06bfce7cd572" TYPE="ext4" 
2.2.1.2 ext系列文件系统专用管理工具
2.2.1.2.1 mke2fs命令
     mke2fs [OPTIONS]  device          -t {ext2|ext3|ext4}:指明要创建的文件系统类型               mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4          -b {1024|2048|4096}:指明文件系统的块大小;          -L LABEL:指明卷标;          -j:创建有日志功能的文件系统ext3;               mke2fs -j = mke2fs -t ext3 = mkfs -t ext3 = mkfs.ext3          -i #:bytes-per-inode,指明inode与字节的比率;即每多少字节创建一个Indode;          -N #:直接指明要给此文件系统创建的inode的数量;          -m #:指定预留的空间,百分比;          -O [^]FEATURE:以指定的特性创建目标文件系统;加[^]表示关闭此特性,不加则是开户此特性

2.2.2 检测及修复文件系统工具

ext系列文件系统的专用工具:
2.2.2.1 e2fsck命令
     e2fsck : check a Linux ext2/ext3/ext4 file system          e2fsck [OPTIONS]  device               -y:对所有问题自动回答为yes;               -f:即使文件系统处于clean状态,也要强制进行检测;2.2.2.2 fsck命令:     fsck:check and repair a Linux file system
     用于实现文件系统检测的工具     因进程意外中止或系统崩溃等 原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统;建议,离线进行;
     -t fstype:指明文件系统类型;          fsck -t ext4 = fsck.ext4     -a:无须交互而自动修复所有错误;     -r:交互式修复;       

2.2.3 查看其属性的工具

2.2.3.1 dumpe2fs命令
     dumpe2fs命令:显示ext系列文件系统的属性信息          dumpe2fs  [-h] device
2.2.3.2 e2lable命令
     e2label命令:卷标的查看与设定          查看:e2label device          设定:e2label device LABEL
    
   
   
  1. [root@Centos6.8-180 ~]# e2label /dev/sda3
  2. [root@Centos6.8-180 ~]# e2label /dev/sda3 MYDATA
  3. [root@Centos6.8-180 ~]# e2label /dev/sda3
  4. MYDATA
  5. [root@Centos6.8-180 ~]# blkid /dev/sda3/dev/sda3: UUID="98873684-812d-40ae-86ad-5065e17d205b" SEC_TYPE="ext2" TYPE="ext3" LABEL="MYDATA"

2.2.4 调整文件系统特性

tune2fs命令      tune2fs [OPTIONS] device          -l:查看超级块的内容;           修改指定文件系统的属性:               -j:ext2 --> ext3;               -L LABEL:修改卷标;               -m #:调整预留空间百分比;               -O [^]FEATHER:开启或关闭某种特性;               -o [^]mount_options:开启或关闭某种默认挂载选项                    acl                    ^acl      tune2fs命令:查看或修改ext系列文件系统的某些属性          adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems;          注意:块大小创建后不可修改;

 2.3 链接文件

     链接文件:访问同一个文件不同路径;

2.3.1 硬链接

     硬链接:指向同一个inode的多个文件路径;           特性:                (1)目录不支持硬链接;                (2)硬链接不能跨文件系统;                (3)创建硬链接会增加inode引用计数;      创建硬链接:           ln  src  link_file
    
   
   
  1. [root@CentOS7-171 ~]# ln fstab.new fstab2

2.3.2 符号链接

     符号链接:指向一个文件路径的另一个文件路径;           特性:                (1)符号链接与文件是两人个各自独立的文件,各有自己的inode;对原文件创建符号链接不会增加引用计数;                (2)支持对目录创建符号链接,可以跨文件系统;                (3)删除符号链接文件不影响原文件;但删除原文件,符号指定的路径即不存在,此时会变成无效链接;       符号链接权限:lrwxrwxrwx
          注意:符号链接文件的大小是其指定的文件的路径字符串的字节数;        创建符号链接:           ln -s  src link_file                -v:verbose
    
   
   
  1. [root@CentOS7-171 ~]# ln -s fstab fstab.link

磁盘和文件      内核级文件系统的组成部分:           文件系统驱动:由内核提供           文件系统理工具:由用户空间的应用程序提供       CentOS 6如何使用xfs文件系统:
    
   
   
  1. # yum -y install xfsprogs
        创建:mkfs.xfs         检测:fsck.xfs        
   
  
  
  1. [root@Centos6.8-180 ~]# mkfs.xfs -f /dev/sda3
  2. meta-data=/dev/sda3 isize=256 agcount=4, agsize=655175 blks
  3. = sectsz=512 attr=2, projid32bit=0
  4. data = bsize=4096 blocks=2620699, imaxpct=25
  5. = sunit=0 swidth=0 blks
  6. naming =version 2 bsize=4096 ascii-ci=0
  7. log =internal log bsize=4096 blocks=2560, version=2
  8. = sectsz=512 sunit=0 blks, lazy-count=1
  9. realtime =none extsz=4096 blocks=0, rtextents=0
  10. [root@Centos6.8-180