GPT分区和文件系统组成

本节所讲内容:

使用parted操作大于等于4T硬盘

扩展服务器swap内存空间

 

GPT分区:

GPT,全局唯一标识分区表(GUID Partition Table),GUID,与MBR最大4个分区表项的限制相比,GPT对分区数量没有限制,但Windows最大仅支持128个GPT分区。GPT可管理硬盘大小达到了18EB(1EB=1024PB=1,048,576TB),不过NTFS格式最大仅支持256TB。

 

Parted 磁盘分区工具

[root@xuegod61 ~]# rpm -qf `which parted`

parted-3.1-23.el7.x86_64

 

查看parted命令的帮助信息

[root@xuegod61 ~]# parted --help

[root@xuegod61 ~]# parted

(parted) help

(parted) quit #退出

 

查看所有的磁盘状态

 

[root@xuegod61 ~]#parted -l

 

通过parted 工具创建新的分区

[root@xuegod61 ~]# parted /dev/sdb

GNU Parted 3.1

Using /dev/sdb

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

(parted) p                             #查看磁盘分区状态

Error: /dev/sdb: unrecognised disk label

(parted) mklabel                             #指定创建分区表类型为GPT

New disk label type? gpt

(parted) mkpart        #创建分区

Partition name? []? mydisk1

File system type? [ext2]?        #指定分区文件系统类型,默认就可以,因为后期对分区进行格式化的时候,同样可以指定

Start? 1                             #指定分区起始位置

End? 100M        #指定分区结束位置        

(parted) p        #查看磁盘分区状态

Number Start End Size File system Name Flags

 1 1049kB 99.6MB 98.6MB mydisk1

 

(parted) mkpart

Partition name? []? 2

File system type? [ext2]?

(parted) quit

Information: You may need to update /etc/fstab.End? 200M

(parted) p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: 21.5GB

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

Partition Table: gpt

Disk Flags:

 

Number Start End Size File system Name Flags

 1 1049kB 99.6MB 98.6MB mydisk1

 2 99.6MB 200MB 101MB 2

 

(parted) quit

Information: You may need to update /etc/fstab.

 

删除GPT分区

(parted) rm 2

 

扩展swap

首先创建一个新的分区/dev/sda3 1G

格式化sda3分区为swap格式

[root@xuegod61 ~]# mkswap /dev/sda3

Setting up swapspace version 1, size = 1048572 KiB

no label, UUID=9a3f0877-4167-441e-95ba-5212da679562

 

[root@xuegod61 ~]# free -m

  total used free shared buff/cache available

Mem: 3937 336 3290 9 310 3373

Swap: 2047 0 2047

 

扩展swap分区

[root@xuegod61 ~]# swapon /dev/sda3

[root@xuegod61 ~]# free -m

  total used free shared buff/cache available

Mem: 3937 336 3289 9 310 3372

Swap: 3071 0 3071

 

开机自动挂载

[root@xuegod61 ~]# vim /etc/fstab

/dev/sda3 swap swap defaults 0 0

 

只有重启才能生效,mount a 无法自动扩展swap分区的。

 

关闭swap分区

[root@xuegod61 ~]# swapoff /dev/sda3

 

本节所讲内容:

硬盘结构

文件系统结构

硬链接和软链接

xfs和ext 文件系统性能对比

加密磁盘

 

 

磁盘 结构:

 

硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)

 

CHS结构体系的磁盘。

比较古老的CHS (Cylinder/Head/Sector)结构体系.因为很久以前,在硬盘的容量还非常小的时候,人们采用与软盘类似的结构生产硬盘。也就是硬盘盘片的每一条磁道都具有相同的扇区数,由此产生了所谓的3D参数(Disk Geometry),即是磁头数(Heads)、柱面数(Cylinders)、扇区数(Sectors)以及相应的3D寻址方式。 

这种结构有问题:

以前老式的磁盘,每个磁道的扇区都一样,这样外磁道整个弧长要大于内部的扇区弧长,因而其磁记录密度就要比内部磁道的密度要小。最终,导致了外部磁道的空间浪费。

 

 

 

 

簇类似于Linux系统中的block

例:文本文件“新建文本文档.txt”中有只有aa两个字符。

右击属性查看大小: 说明我的NTFS文件系统中默认的簇大小为4KB

 

 

现在硬盘都采用这种技术:ZBR(ZonedBit Recording)区位记录 (Zoned zōnd

Zoned-bit recording(ZBR 区位记录)是一种物理优化硬盘存储空间的方法,此方法通过将更多的扇区放到磁盘的外部磁道而获取更多存储空间。

ZBR磁盘扇区结构示意图

 

特点:

读外圈的数据快,读内圈的数据慢:测试硬盘经常看到以下读取速度曲线图就很正常了。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位"块"的大小,最常见的是1KB,即连2个 sector组成一个 block。 4K =8扇区

 

RHEL7.2 如何设置block

[root@xuegod61 ~]# mkfs.xfs -b size=1024 /dev/sdb1 -f

meta-data=/dev/sdb1 isize=256 agcount=4, agsize=24064 blks

  = sectsz=512 attr=2, projid32bit=1

  = crc=0 finobt=0

data = bsize=1024 blocks=96256, imaxpct=25

  = sunit=0 swidth=0 blks

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

log =internal log bsize=1024 blocks=2564, version=2

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

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

[root@xuegod61 ~]# mkfs.ext4 -b 1024 /dev/sdb1

 

Linux文件系统由三部分组成 :文件名,inode,block(真正存数据)

inode:文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

 

inode的内容

inode包含文件的元信息,具体来说有以下内容:

  * 文件的字节数

  * 文件拥有者的User ID

  * 文件的Group ID

  * 文件的读、写、执行权限

  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。

  * 链接数,即有多少文件名指向这个inode

* 文件数据block的位置

 

[root@xuegod61 ~]# stat a.txt

  File: ‘a.txt’

  Size: 0 Blocks: 0 IO Block: 4096 regular empty file

Device: fd00h/64768d Inode: 36433003 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2016-02-24 08:45:42.182854288 -0500

Modify: 2016-02-24 08:45:42.182854288 -0500

Change: 2016-02-24 08:45:42.182854288 -0500

 

[root@xuegod61 ~]# ll a.txt

-rw-r--r-- 1 root root 0 Feb 24 08:45 a.txt

 

inode的大小

inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

 

16G

1 G = 1024 MB =1024 * 1024 KB

1 G = 1000 MB =1000 * 1000 KB

 

查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。

[root@xuegod61 ~]# df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/mapper/rhel-root 10485760 138134 10347626 2% /

devtmpfs 500087 404 499683 1% /dev

tmpfs 503976 6 503970 1% /dev/shm

tmpfs 503976 563 503413 1% /run

tmpfs 503976 13 503963 1% /sys/fs/cgroup

/dev/sr0 0 0 0 - /mnt

/dev/sda1 204800 327 204473 1% /boot

tmpfs 503976 17 503959 1% /run/user/42

tmpfs 503976 1 503975 1% /run/user/0

 

使用ls -i命令,可以看到文件名对应的inode号码:

[root@xuegod61 ~]# ls -i a.txt

36433003 a.txt

查看目录的inode号

[root@xuegod61 ~]# ll -di /etc/

16777345 drwxr-xr-x. 136 root root 8192 Feb 24 08:03 /etc/

 

扩展:linux中ctime,mtime,atime的区别

ctime:“改变时间(change time)”

mtime “修改时间(modification time)”

改变和修改之间的区别在于是改文件的属性还是更改它的内容。chmod a-w myfile,那么这是一个改变;

echo foo >> myfile,那么这是一个修改。

改变是文件的索引节点发生了改变;修改是文本本身的内容发生了变化。

atime “访问时间(access time)”

访问时间是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间。但是它的改变时间和修改时间并没有变

 

ls -lc filename         列出文件的 ctime
ls -lu filename 
        列出文件的 atime
ls -l filename 
         列出文件的 mtime 

 

ln命令可以创建硬链接:

语法格式:

ln 源文件 目标文件

文件名1-》inode1-》blockA

文件名2-》inode1-》blockA

[root@xuegod61 ~]# ln a.txt b.txt

 

[root@xuegod61 ~]# ll -i a.txt b.txt

36433003 -rw-r--r-- 2 root root 10 Feb 24 09:05 a.txt

36433003 -rw-r--r-- 2 root root 10 Feb 24 09:05 b.txt

 

[root@xuegod61 ~]# rm -rf a.txt

[root@xuegod61 ~]# cat b.txt

aaaa

bbbb

#源文件被删除,不影响链接文件的正常使用

 

[root@xuegod61 ~]# mkdir test

[root@xuegod61 ~]# ln test/ xuegod

ln: ‘test/’: hard link not allowed for directory

#硬链接不能针对目录创建

 

[root@xuegod61 ~]# ln /boot/grub2/grub.cfg grub.cfg

ln: failed to create hard link ‘grub.cfg’ => ‘/boot/grub2/grub.cfg’: Invalidcross-device link

#硬链接不允许跨分区创建

总结: 硬链接特点,创建时,不能跨分区,不能给文件夹。

 

软链接:相当于windows中的快捷方式

[root@xuegod61 ~]# ln -s b.txt c.txt

[root@xuegod61 ~]# rm -rf b.txt

[root@xuegod61 ~]# cat c.txt

cat: c.txt: No such file or directory

 

#源文件被删除,链接文件失效

[root@xuegod61 ~]# ln -s test/ xuegod

#能针对目录创建

[root@xuegod61 ~]# ln -s /boot/grub2/grub.cfg grub.cfg

#能跨分区创建

 

例:查看目录的链接数

[root@xuegod61 ~]# ll -d test/

drwxr-xr-x 2 root root 6 Feb 24 09:10 test/

 

[root@xuegod61 ~]# ll -di test/

50599109 drwxr-xr-x 2 root root 6 Feb 24 09:10 test/

[root@xuegod61 test]# ll -di .

50599109 drwxr-xr-x 2 root root 6 Feb 24 09:10 .

[root@xuegod61 xuegod]# ll -di ..

50599109 drwxr-xr-x 3 root root 19 Feb 24 09:23 ..

 

实例:

web服务器中小文件很多,导致硬盘有空间,但无法创建文件。

inode数被用光了。

[root@xuegod61 ~]# df -i

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/mapper/rhel-root 10485760 138138 10347622 2% /

devtmpfs 500087 404 499683 1% /dev

tmpfs 503976 6 503970 1% /dev/shm

tmpfs 503976 563 503413 1% /run

tmpfs 503976 13 503963 1% /sys/fs/cgroup

/dev/sr0 0 0 0 - /mnt

/dev/sda1 204800 327 204473 1% /boot

tmpfs 503976 17 503959 1% /run/user/42

tmpfs 503976 1 503975 1% /run/user/0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值