428  
linux分区工具介绍及swap交换空间创建
作者: wyasw 于 2020年03月29日 发布在分类 / linux / 系统相关 下,并于 2020年03月29日 编辑
fdisk swap

linux分区工具

1.1  fdisk分区工具介绍

注意:fdisk 命令详解:http://man.linuxde.net/fdisk

ü fdisk - Partition table manipulator for Linux

ü linux下最常用的分区工具,一般是装完系统后进行分区。装系统之前的分区

ü  多数都是ISO里面的工具分,或者raid里分小磁盘

ü fdisk只能root权限用户使用

ü fdisk适合于对装系统后的剩余空间进行分区,例如:安装系统时没有全部分区,或者安装系统后添加新磁盘

1.2  fdisk分区的实质

fdisk 分区的实质, 就是修改0 磁头0 磁道1 扇区的前446 字节之后的64 字节的分区表信息.

问题: 可以使用fdisk 分区的磁盘大小必须小于2T, 如果大于2T, 分区就用parted(gpt)

fdisk 【-l】 【设备名称】

参数-l:输出后面设备的所有分区的内容,若不接设备名称则会列出系统能够找到的所有分区的均列出来

[root@dong ~]#   fdisk -l  ###查看系统当前的分区状态

Disk /dev/sda: 8589 MB, 8589934592 bytes

255 heads, 63 sectors/track, 1044 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: 0x00034967

Device Boot  Start  End  BlocksId  System

/dev/sda1*  26  20480083  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2  26  124  78643282  Linux swap / Solaris

Partition 2 does not end on cylinder boundary.

/dev/sda3  124  10457396352  83  Linux

fdisk -cu /dev/sdb

m帮助

Command (m for help): m

Command action

a   toggle a bootable flag             ##设置引导扇区

b   edit bsd disklabel  ##编辑bsd卷标

c   toggle the dos compatibility flag     ##设置dos兼容扇区

d   delete a partition                  ##删除一个扇区

l   list known partition types           ##查看分区类型对应编号列表

m   print this menu                  ##打印帮助菜单

n   add a new partition                  ##新建一个分区

o   create a new empty DOS partition table  ##创建一个新的dos分区表

p   print the partition table               ##打印分区表

q   quit without saving changes           ##退出程序不保存

s   create a new empty Sun disklabel       ##创建新的Sun卷标

t   change a partition's system id           ##更改分区类型

u   change display/entry units             ##改变显示/输入的单位

v   verify the partition table              ##验证这个分区表

w   write table to disk and exit           ##将操作写入分区表并退出程序

x   extra functionality (experts only)       ##额外的功能

1.2.1  fdisk命令操作记录:注意 :扩展分区 p 主分区

[root@dong ~]#   fdisk -cu /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0xe3b173c7.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

Command (m for help): n

Command action

extended

primary partition (1-4)

p

Partition number (1-4): 1

First sector (2048-208895, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-208895, default 208895): +10M

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

/dev/sdb1  2048  22527  1024083  Linux

Command (m for help): n

Command action

extended

primary partition (1-4)

p

Partition number (1-4): 2

First sector (22528-208895, default 22528):

Using default value 22528

Last sector, +sectors or +size{K,M,G} (22528-208895, default 208895): +10M

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

/dev/sdb1  2048  22527  1024083  Linux

/dev/sdb222528  43007  1024083  Linux

Command (m for help): n

Command action

extended

primary partition (1-4)

p

Partition number (1-4): 3

First sector (43008-208895, default 43008):

Using default value 43008

Last sector, +sectors or +size{K,M,G} (43008-208895, default 208895): +10M

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

/dev/sdb1  2048  22527  1024083  Linux

/dev/sdb222528  43007  1024083  Linux

/dev/sdb343008  6348710240  83  Linux

Command (m for help): n

Command action

extended

primary partition (1-4)

e

Selected partition 4

First sector (63488-208895, default 63488):

Using default value 63488

Last sector, +sectors or +size{K,M,G} (63488-208895, default 208895):

Using default value 208895

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

/dev/sdb1  2048  22527  10240   83Linux

/dev/sdb222528  43007  1024083  Linux

/dev/sdb343008  63487  1024083  Linux

/dev/sdb463488  208895  727045  Extended

###################################################3

1.2.2 新分区方法按扇区分(Centos6.8)

[root@dong ~]#   fdisk -cu /dev/sdb

Command (m for help):

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

Command (m for help): n

Command action

extended

primary partition (1-4)

p

Partition number (1-4): 1

First sector (2048-208895, default 2048):

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-208895, default 208895):

Using default value 208895

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes

64 heads, 32 sectors/track, 102 cylinders, total 208896 sectors

Units = sectors of 1 * 512 = 512 bytes

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

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

Disk identifier: 0xe3b173c7

Device Boot  Start  End  BlocksId  System

/dev/sdb1  2048  208895  10342483  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@dong ~]# partprobe /dev/sdb

################################################

1.2.3 硬盘被分区后格式化过程

硬盘被分区后,真正的格式化过程:

创建分区====创建文件系统  make filesystem  mkfs

格式化

mkfs.ext4 /dev/sdb1

mkfs -t ext3 /dev/sdb1

mkfs -t ext3 -b 4096 -I 512 /dev/sdb1

查看格式化后的文件系统信息dumpe2fs命令。

取消文件系统自动检查(可选)

tune2fs -c -1 -i -1 /dev/sdb1

挂载(临时挂载)

mount -t ext4 /dev/sdb1 /mnt

查看挂载情况,及参数信息

df -h

####################################################################

1.2.4 开机自动挂载

方法一

  mount /dev/sdb1/mnt 放入/etc/rc.local,适合网络文件系统,NFS,MFS,GFS

方法二

按照fstab的格式假如上述挂载信息。/etc/fstab,适合本地磁盘.

要挂载的设备 挂载点 挂载类型(文件系统类型) 挂载选项(备份/磁盘检查)

/dev/mapper/centos-root                        /      xfs     defaults        0 0

UUID=410e6dca-6d75-4c91-88c3-cf5f3b8455f6    /boot   xfs     defaults        0 0

/dev/mapper/centos-home                      /home  ext4    defaults        0 0

/dev/mapper/centos-swap                      swap   swap    defaults        0 0

partprobe

#这个命令可以上核心立刻读取最新的分区表,而不需要重新启动。

提示:

parted命令和fdisk命令不同,fdisk命令是等到你最后执行的那个w的时候才生效最终写入到分区表中的,parted命令是实时的写入到分区表,所以在操作有数据的磁盘的时候需要格外小心

1.3  parted分区-传统的MBR(Master boot Record)分区方式,有一个局限:

提示:

parted命令和fdisk命令不同,fdisk命令是等到你最后执行那个w的时候才生效最终写入到分区表中的,

parted命令是实时的写入到分区表,所以在操作有数据的磁盘的时候需要格外小心!


无法支持超过2TB的磁盘的分区(或单个分区超过2TB)。

如果大于2T就用GPTGlobally Unique Identifiler Partition Table Format)分区的概念,

GPT分区表( https://baike.baidu.com/item/GPT/15413476

GPT的分区很好的解决了传统MBR无法逾越2TB的限制。

但是在Linux系统中,传统的fdisk命令无法支持gpt分区方式。

(在红帽企业版linux4 Update4 之后的版本提供了对大于2 terabytesTB)的磁盘设备的支持)

parted的操作的都是实时的

也就是说你执行了一个分区的命令,他就实实在在的分区了

而不是像fdisk那样,需要执w命令写入所写的修改,所以进行parted的测试千万注意不能在生产环境中!

parted命令详解

用法:parted [选项]... [设备 [命令 [参数]...]...]  
将带有参数的命令应用于设备。如果没有给出命令,则以交互模式运行
帮助选项:

-h, --help  显示此求助信息  
-l, --list 
列出所有设别的分区信息
-i, --interactive 
在必要时,提示用户  
-s, --script 
从不提示用户  
-v, --version 
显示版本

操作命令:

检查  MINOR   # 对文件系统进行一个简单的检查  
cp [FROM-DEVICE] FROM-MINOR TO-MINOR
  # 将文件系统复制到另一个分区  
help [COMMAND]                       #
打印通用求助信息,或关于  COMMAND  的信息  
mklabel 
标签类型   # 创建新的磁盘标签  ( 分区表 )  
mkfs MINOR 
文件系统类型   #  MINOR  创建类型为 文件系统类型 的文件系统  
mkpart 
分区类型  [ 文件系统类型 起始点 终止点   # 创建一个分区  
mkpartfs 
分区类型 文件系统类型 起始点 终止点   # 创建一个带有文件系统的分区  
move MINOR 
起始点 终止点   # 移动编号为  MINOR  的分区  
name MINOR 
名称   # 将编号为  MINOR  的分区命名为 名称 ” 
print [MINOR]
  # 打印分区表,或者分区  
quit
  # 退出程序  
rescue 
起始点 终止点   # 挽救临近 起始点 终止点 的遗失的分区  
resize MINOR 
起始点 终止点   # 改变位于编号为  MINOR  的分区中文件系统的大小  
rm MINOR
  # 删除编号为  MINOR  的分区  
select 
设备   # 选择要编辑的设备  
set MINOR 
标志 状态   # 改变编号为  MINOR  的分区的标志

操作实例:

(parted)表示在parted中输入的命令,其他为自动打印的信息

1、首先类似fdisk一样,先选择要分区的硬盘,此处为/dev/hdd

[root@dong ~]# parted /dev/hdd

GNU Parted 1.8.1

Using /dev/hdd

Welcome to GNU Parted! Type 'help' to view a list of commands.

2、选择了/dev/hdd作为我们操作的磁盘,接下来需要创建一个分区表(parted中可以使用help命令打印帮助信息)

(parted) mklabel

Warning: The existing disk label on /dev/hdd will be destroyed and all data on this disk will be lost. Do you want to continue?

Yes/No?(警告用户磁盘上的数据将会被销毁,询问是否继续,我们这里是新的磁盘,输入yes后回车) yes

New disk label type? [msdos]? (默认为msdos形式的分区,我们要正确分区大于2TB的磁盘,应该使用gpt方式的分区表,输入gpt后回车)gpt

3、创建好分区表以后,接下来就可以进行分区操作了,执行mkpart命令,分别输入分区名称,文件系统和分区 的起止位置

(parted) mkpart

Partition name? []? dp1

File system type? [ext2]? ext3

Start? 0

End? 500GB

4、分好区后可以使用print命令打印分区信息,下面是一个print的样例

(parted) print

Model: VBOX HARDDISK (ide)

Disk /dev/hdd: 2199GB

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

Partition Table: gpt

Number Start End Size File system Name Flags

1 17.4kB 500GB 500GB dp1

5、如果分区错了,可以使用rm命令删除分区,比如我们要删除上面的分区,然后打印删除后的结果

(parted)rm 1 #rm后面使用分区的号码

(parted) print

Model: VBOX HARDDISK (ide)

Disk /dev/hdd: 2199GB

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

Partition Table: gpt

Number Start End Size File system Name Flags

6、按照上面的方法把整个硬盘都分好区,下面是一个分完后的样例

(parted) mkpart

Partition name? []? dp1

File system type? [ext2]? ext3

Start? 0

End? 500GB

(parted) mkpart

Partition name? []? dp2

File system type? [ext2]? ext3

Start? 500GB

End? 2199GB

(parted) print

Model: VBOX HARDDISK (ide)

Disk /dev/hdd: 2199GB

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

Partition Table: gpt

Number Start End Size File system Name Flags

1 17.4kB 500GB 500GB dp1

2 500GB 2199GB 1699GB dp2

7、由于parted内建的mkfs还不够完善,所以完成以后我们可以使用quit命令退出parted并使用 系统的mkfs命令对分区进行格式化了,此时如果使用fdisk -l命令打印分区表会出现警告信息,这是正常的

[root@dong ~]# fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/hdd'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/hdd: 2199.0 GB, 2199022206976 bytes

255 heads, 63 sectors/track, 267349 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hdd1 1 267350 2147482623+ ee EFI GPT

[root@dong ~]# mkfs.ext4 /dev/hdd1  ##格式化

[root@dong ~]# mkfs.ext4 /dev/hdd2

[root@dong ~]# mkdir /dp1 /dp2

[root@dong ~]# mount /dev/hdd1 /dp1

[root@dong ~]# mount /dev/hdd2 /dp2

##tune2fs命令详解:http://man.linuxde.net/tune2fs

[root@dong ~]#  dumpe2fs -h /dev/sdb1 ###显示分区信息

dumpe2fs [-bh] 装置文件名

选项与参数:

-b :列出保留为坏轨的部分(一般用不到吧!?)

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

找出我的根目录磁盘文件名,并观察文件系统的相关信息

[root@www ~]# df   <==这个指令可以叫出目前挂载的装置

Filesystem    1K-blocks      Used Available Use% Mounted on

/dev/hdc2       9920624   3822848   5585708  41% /        <==就是这个光!

/dev/hdc3       4956316    141376   4559108   4% /home

/dev/hdc1        101086     11126     84741  12% /boot

tmpfs            371332         0    371332   0% /dev/shm

[root@www ~]# dumpe2fs /dev/hdc2

dumpe2fs 1.39 (29-May-2006)

Filesystem volume name:   /1             <==这个是文件系统的名称(Label)

Filesystem features:      has_journal ext_attr resize_inode dir_index

filetype needs_recovery sparse_super large_file

Default mount options:    user_xattr acl <==预设挂载的参数

Filesystem state:         clean          <==这个文件系统是没问题的(clean)

Errors behavior:          Continue

Filesystem OS type:       Linux

Inode count:              2560864        <==inode的总数

Block count:              2560359        <==block的总数

Free blocks:              1524760        <==还有多少个  block  可用

Free inodes:              2411225        <==还有多少个  inode  可用

First block:              0

Block size:               4096           <==每个  block  的大小啦!

Filesystem created:       Fri Sep  5 01:49:20 2008

Last mount time:          Mon Sep 22 12:09:30 2008

Last write time:          Mon Sep 22 12:09:30 2008

Last checked:             Fri Sep  5 01:49:20 2008

First inode:              11

Inode size:               128            <==每个  inode  的大小

Journal inode:            8              <==底下这三个与下一小节有关

Journal backup:           inode blocks

Journal size:             128M

Group 0: (Blocks 0-32767) <==第一个  data   group  内容,  包含  block  的启始/结束号码

Primary superblock at 0, Group descriptors at 1-1  <==超级区块在  0    block

Reserved GDT blocks at 2-626

Block bitmap at 627 (+627), Inode bitmap at 628 (+628)

Inode table at 629-1641 (+629)                     <==inode table 所在的  block

0 free blocks, 32405 free inodes, 2 directories    <==所有  block  都用完了!

Free blocks:

Free inodes: 12-32416                              <==剩余未使用的  inode  号码

Group 1: (Blocks 32768-65535)

前半部在秀出  supberblock  的内容,包括标头名称(Label)以及inode/block的相关信息

后面则是每个  block   group  的个别信息了!您可以看到各区段数据所在的号码!

也就是说,基本上所有的数据还是与  block  的号码有关就是了!很重要!

如上所示,利用  dumpe2fs  可以查询到非常多的信息,不过依内容主要可以区分为上半部是  superblock 内容, 下半部则是每个block   group  的信息了。从上面的表格中我们可以观察到这个  /dev/hdc2  规划的  block  4K 第一个  block  号码为  0  号,且  block group  内的所有信息都以  block  的号码来表示的。 然后在  superblock  中还有谈到目前这个文件系统的可用  block    inode  数量喔!

至于  block   group  的内容我们单纯看  Group0  信息好了。从上表中我们可以发现:

? Group0 所占用的  block  号码由  0    32767 号,superblock  则在第  0  号的  block  区块内!

文件系统描述说明在第  1    block  中;

? block bitmap   inode   bitmap  则在  627    628    block  号码上。

至于  inode   table  分布于  629-1641    block  号码中!

由于  (1)一个  inode  占用  128   bytes  (2)总共有  1641   -   629   +   1(629本身)   =   1013    block  花在  inode table 上,  (3)每个  block  的大小为  4096   bytes(4K)。由这些数据可以算出  inode  的数量共有  1013   *   4096   /   128   =   32416    inode  啦!

这个  Group0  目前没有可用的  block  了,但是有剩余  32405    inode  未被使用;

剩余的  inode  号码为  12  号到  32416  号。

###########################################################################

[root@dong ~]#  ls /lib/modules/`uname -r`/kernel/fs ##查看有哪些文件系统

autofs4cifs  dlmext2  fat  gfs2jffs2  nfs  nls  udf

btrfsconfigfs  ecryptfs  ext3fscache  jbd  lockdnfs_common  squashfs  xfs

cachefilescramfs  exportfs  ext4fuse  jbd2  mbcache.konfsd  ubifs

1.3.1  partedfdisk区别

1) 支持gpt 分区表, 可以对大于2T 的磁盘分区

2) 分区直接生效, 不需要使用命令写入磁盘, 最好partprobe/dev/sdb

3) 格式化挂载等和fdisk 无区别

1.3.2 企业案例:Java环境内存不够用

swap在工作中,特别是Java环境,程序写的有问题,会发生泄露,可能会占用swap.

协调让开发程序,运维可以临时增大swap

1.4 手动创建swap分区

1.4.1 使用普通物理分区创建swap

fdisk /dev/sdb #分出一个分区   /dev/sdb1

如果/dev/sdb1已经挂载,需要卸载

umout /mnt

mkswap /dev/sdb1

free -h

swapon /dev/sdb1

free -h

[root@dong ~]# mkswap /dev/sdb1  ###/dev/sdb1建立交换分区

Setting up swapspace version 1, size = 103420 KiB

no label, UUID=e9a57cf8-0c85-459c-8fd9-a269f3ec0320

[root@dong ~]# free -h ##可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区

total  used  freeshared  buffers  cached

Mem:980M  283M  697M  252K  14M  137M

-/+ buffers/cache:  130M  849M

Swap:767M  0B   767M

[root@dong ~]# swapon /dev/sdb1

[root@dong ~]#

[root@dong ~]# free -h

total  used  freeshared  buffers  cached

Mem:980M  283M  697M  252K  14M  137M

-/+ buffers/cache:  130M  849M

Swap:868M  0B  868M

1.4.2 使用文件创建swap

dd if=/dev/zero of=/tmp/swap bs=1M count=128

mkswap /tmp/swap

free -h

swapon /tmp/swap

free -h

swapon -s ##显示swap使用情况

swapoff /dev/sdb1

swapoff /tmp/swap

[root@dong ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128

128+0 records in

128+0 records out

134217728 bytes (134 MB) copied, 2.87742 s, 46.6 MB/s

[root@dong ~]#

[root@dong ~]# mkswap /tmp/swap

mkswap: /tmp/swap: warning: don't erase bootbits sectors

on whole disk. Use -f to force.

Setting up swapspace version 1, size = 131068 KiB

no label, UUID=c075a67b-4c8a-4a57-afb5-ef5a711c29b0

[root@oldboyedu-35 ~]# free -h

total  used  freeshared  buffers  cached

Mem:980M  415M  564M  252K  15M  265M

-/+ buffers/cache:  135M  845M

Swap:868M  0B  868M

[root@dong ~]# swapon /tmp/swap

[root@dong ~]# free -h

total  used  freeshared  buffers  cached

Mem:980M  415M  564M  252K  15M  265M

-/+ buffers/cache:  135M  845M

Swap:996M  0B  996M

1.4.3 企业案例:Java环境内存充足但是占用swap

1. 让系统有限使用物理内存而不是swap

2. cat /proc/sys/vm/swappiness

man proc

3. 解决方法echo "60" > /proc/sys/vm/swappiness

1.5 文件系统

1) 分区与文件系统的关系

分区就是给房子打隔断,创建文件系统就是给房子装修,文件系统的类型房子的装修风格。

文件在磁盘上怎么放

文件系统就是一种存储和组织计算机数据文件的机制或方法

2)  ext2文件系统细节

我们都知道,操作系统中的数据分为文件内容和文件属性两部分,其中文件内容就是文件的实体数据(block里),而文件属性就是文件类型、权限、属主、修改时间等信息。操作系统会将上述文件的属性内容放入磁盘文件系统的inode中,而把文件的实体数据存放与对应的block中。除了inodeblock信息外,操作系统还会记录文件系统的整体信息于superblock中,这个superblock包括整个文件系统的inodeblock的总的数量,已经使用的数量,剩余数量等(称之metadata元数据)

1.5.1  小节:本节有三个名词:inode,block,superblock

u  超级块:记录文件系统的控制与管理信息

blockinode的个数和大小,及其已用和未用数量

文件系统的载入时间、最近一次写入数据时间、最近一次执行fsck进行磁盘检查的时间等

有效位:为0已载入,为1为载入

u  组描述:记录本块组从何处开始

u  块位示图:使用位示图记录那些块已用那些块未用

inode位示图:使用位示图记录inode的使用情况

####以上云数据区,以下为数据存储区

inode区:各inode组成的区域,每个inode都有一个唯一编号

u  数据块区:各block组成的区域,用于存放文件数据

1.5.2 常见的文件系统

SUSE linux 的默认文件系统ReiserFS  文件系统

IBM AIX 使用的jfs 日志文件系统

Sun OS  所用的文件系统ufs

Centos7 采用XFS 文件系统

Centos6 采用ext4 文件系统

Centos5 采用ext3 文件系统

1.5.2.1  文件系统小节

1. 文件系统是对一个存储设备上的数据和元数据进行组织的一种机制。

2. 分区必须格式化创建文件系统才能存放数据。

3. 一个分区只能有一种文件系统

4.  linux下常见的文件系统ext2ext3ext4zfsxfscentos7reiserfs)(单独安装)。windows下常见文件系统NTFSFAT32

1.5.3  SAS/SATA硬盘文件系统选择:

reiserfs 大量小文件业务首选reiserfs100K以内),单独安装

xfs有的门户的数据库mysql业务会选择xfs

ext4视频下载,流媒体,数据库,小文件业务也OK,可以用默认的

ext2没有日志,蓝汛的cache业务,CDN网站加速服务的

u  常规应用:

centos5.x系列,床柜就选默认的ext3文件系统即可

centos6.x系列,床柜就选默认的ext4文件系统即可

centos7.x系列,床柜就选默认的xfs文件系统即可

注意:如果服务器数量少,怎么选择都可以。

如果海量服务器,考虑维护成本和性能,选一个折中。

选择小结:

1、 centos默认的文件系统都是比较优秀的

2、 xfsreiserfs需要单独安装。默认不支持的

海量服务器使用多种文件系统维护可能不方便

3、大并发做磁盘系统的优化是一方面,但更多的还是在网站前端增加缓存服务器(squidvamish),存储数据库的前端增加缓存(memcacheredis),这是架构师的能力。

1.5.4 本章相关命令

fdisk 磁盘分区(主要用于小于2TB mbr分区表)

-l查看系统中所有磁盘的信息

-u以扇区的形式进行分区/查看  默认是柱面。

-c禁止的DOS兼容模式

parted 磁盘分区工具(用于GPT分区表  大于   2TB

parted /dev/sdc print

parted /dev/sdc mklabel gpt ##msdos

parted /dev/sdc mkpart primary 0 100

parted /dev/sdc mkpart primary 100 200

mkfs 格式化工具

-t 指定文件系统类型

mkfs -t ext4 ======mkfs.ext4

tune2fs 修改文件系统信息

-i intercal 间隔 文件系统检查的间隔

-c count 次数 梅挂载多少次之后进行磁盘检查

tune2fs -i -1 -c -1 /dev/sdb1

mount 挂载命令

-t ext4 指定文件系统类型

umount 卸载

-lf 强制卸载

fsck 文件系统检查 file system check

-a 自动修复文件系统,不询问任何问题

-s 按顺序检查多个文件系统

-t 指定要检查的分区的文件系统类型

-A 依照/etc/fstab配置文件的内容,检查文件内锁列的全部文件系统

-N 不执行指令,仅列出实际执行会进行的动作

dd 创建一个块

dd if=/dev/sda of=/tmp/mbr.bin bs-512 count=1

dd if=/dev/zero of=/tmp/swap bs=1M count=128

du 显示目录/文件占地面积(所占的磁盘空间)

-s 显示一共多大

-h人类可读




 推荐知识

 历史版本

修改日期 修改人 备注
2020-03-29 20:15:10[当前版本] wyasw 创建版本

 附件

附件类型

JPGJPG

文艺知识分享平台 - 4.3.0 京公网安备100012199188号 京ICP备2021030911号