buffers

缓冲区,用于加速写入速度

buffers表示在写入数据的时候,把分散的操作临时存放在内存中,达到一定数量之后再集中写入磁盘,减少磁盘碎片,加速数据查找,减少磁头的反复寻道时间。

cached

缓存,用于加速读取速度

cached表示把数据从磁盘读取出来,保存在内存中,再次读取的时候,不再去硬盘,直接从内存中读取,加速查找。

buffers和cached的作用总结

buffers和cached都是基于内存的存储中间层

cached解决时间问题,加速读取的过程;buffers解决空间存储问题,给数据一个临时存放的区域。

cached利用内存高速读写的特性;

buffers利用内存的存储空间特性。

swap交换分区

swap是Linux系统磁盘管理的一块特殊的分区,以实际的物理内存不足的时候,操作系统会从磁盘空间中,取出一部分暂时没在使用的部分,拿出来放到交换分区(在磁盘上,可以是一块区域、分区、或者文件或者两者的组合),从而提供给当前正在使用的程序,从而获得更多的内存。(相当于windows的虚拟化内存)

作用

能够通过操作系统的调取,程序可以用到的实际内存会远大于物理内存。

应用场景

swap分区大小,必须根据物理内存和硬盘容量来计算

当物理内存小于1G,必须使用swap提升内存使用量;

内存使用过多的应用程序,必须使用swap分区防止物理内存不足,造成软件崩溃;

当电脑休眠时,内存中的数据会放入swap交换分区中,当你电脑恢复后,再从swap中读取数据,恢复软件工作。

创建swap分区

centos7系统,计算swap分区规则如下:

  • 内存小于2G,swap分配和内存同样大小的空间;
  • 内存大于2G,swap也分配2G的空间。

步骤

  1. 先为磁盘分区,且指定swap分区类型,fdisk /dev/sdb1
1
2
3
依此输入:
t
82
  1. 格式化磁盘分区
1
2
3
4
[root@localhost /]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old swap signature.
正在设置交换空间版本 1,大小 = 488260 KiB
无标签,UUID=5e98cd11-aee4-4c2c-94e4-41c26d52406c
  1. 使用swap分区,swapon开启交换空间,swapoff关闭交换空间
1
swapon /dev/sdb1

释放cached的命令

1
echo 1 > /proc/sys/vm/drop_caches

效果等同于

1
sysctl -w vm.drop_caches=1

清除目录缓存和inodes

1
echo 2 > /proc/sys/vm/drop_caches

效果等同于

1
sysctl -w vm.drop_caches=2

清除内存页的缓存

1
echo 3 > /proc/sys/vm/drop_caches

效果等同于

1
sysctl -w vm.drop_caches=3

以上三种都是临时释放缓存的命令

除了以上3个命令,还可以清理文件系统缓存;

使用sync命令,还可以用于清理僵尸进程


sync的作用

将内存缓冲区的数据,写入到磁盘中

开机自动挂载

由于mount命令直接输入是临时生效,下次重启,挂载的设备分区就无法使用了/etc/fstab文件,存放系统一些静态文件的地方,主要是系统启动的时候,系统默认的读取这个文件的信息,将指定的挂载点,运行挂载。

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

第一列:设备名

可以为文件系统,也可以为设备名称,NFS远程网络文件系统

第二列:挂载点

为自己创建的一个目录,是一个已经存在的目录

1
2
mount /dev/sdbn /mnt #第一种写法
mount 192.168.11.15:/home/nfs /mnt/ -o nolock #把本地的/mnt文件夹挂载到nfs文件系统上,且不加锁

第三列

Linux能够支持的文件系统类型。

ext3 ext4 nfs swap,nfs

第四列

挂载的功能选项,有很多,默认是用 defaults。

第五列:dump

表示将整个文件夹内从备份,一般不对挂载点备份,默认都是0。

第六列:fsck 磁盘检查

默认都是0,不对磁盘检查,根文件系统,默认是检查的。


df命令

检查挂载点的使用情况

语法

1
df [options]

参数

常用

1
2
-h #显示kb,mb单位大小
-i #显示每个挂载点可使用的inode数量

du命令

显示磁盘空间大小,文件大小的命令

语法

1
2
用法:du [选项]... [文件]...
 或:du [选项]... --files0-from=F

参数

1
2
3
4
5
-h #显示文件大小,以kb,mb显示单位
-h * #显示当前目录所有文件的大小
-a #显示出目录汇总所有文件的大小
-d,--max-depth=n /目录/ #可以设置输出文件大小的深度
-X, --exclude-from=FILE 指定排除文件名可以使用匹配符

raid技术

raid 全称 Redundant Arrays Of Independent Drivers,即磁盘冗余阵列。

raid 技术是将多块独立的此岸,组成了一个磁盘组。

raid技术的意图是将多个独立的硬盘设备,组成一个容量更大,安全性更高的磁盘阵列组,将数据切为多个区段之后存储在不同的物理硬盘上。利用分散读写技术提升磁盘整体性能,数据同步在了多个硬盘上,数据也得到了冗余备份的作用。

raid特性

能够保证数据安全性,但是也增加了磁盘的成本。 raid除了能够保障数据丢失造成的严重损失,提升硬盘读写效率,因此广泛的被企业使用。

饮水机和水桶图解RAID方式

独立模式

standalone

一块硬盘单独的工作,读写数据;

一台饮水机,一桶水,提供服务。

热备份模式

hot swap

一桶水可能会喝完,水桶可能被污染,损坏,旁边放一个水桶,随时等待阶梯的工作,为了防止单独的一块硬盘损坏,随时准备好另一块硬盘准备阶梯工作。

集群模式

cluster

一对饮水机提供服务,就算单独坏了一台机器,一台机器,无所谓,还有其它机器等待工作,一堆硬盘共同提供服务,提高读写效率。


raid技术分为多个级别,不同级别,由于技术角度,还有公司运营成本的考虑,不同的企业选择不同版本的raid技术。

RAID 0、RAID 1、RAID 5以及RAID 0+1


raid 0

特点

数据一次写入到物理硬盘,在理想的状态下,写入速度是翻倍的;但凡任意一块硬盘损坏,数据都将被破坏。数据写入到两块硬盘中,没有备份功能。

raid0

raid0

应用场景

适用于追求极致性能的场景,而不关注于数据安全性的场景。

raid 1

特点

由于raid 0的特性,数据一次写入多块硬盘中,数据分开存储的,因此坏了任意一个,数据都将被破坏,对于企业非常重要的数据来说,肯定是不允许使用的。

将两块以上的硬盘绑定关系,数据写入的时候,同时写入多块硬盘,因此即使硬盘故障损坏,也不惧怕,因为我有备份。

raid 1 极大地降低了磁盘的利用率。假如你有2块硬盘一共4T大容量,你使用了raid 1,你可使用的容量只有2T了,利用率只有50%。

如果是三块硬盘组成raid 1,利用率更低,只有33%

raid1

raid1

raid 3

计算机的异或运算概念:

数字相同则为0,数字不同则为1

1
+-*/^异或运算

磁盘的异或运算

AxorBxorC A异或B异或C

多个值的异或计算概念是;

1的个数是奇数,结果则为1;

1的个数是偶数,结果则为0。

raid 3必须3块以上的硬盘


磁盘1:0101

磁盘2:1011

异或结果:1110

如果突然磁盘1的数据挂了,目前知道磁盘2的数据是:1011

异或值是:1110

那么,反推可知,磁盘1的数据为:0101


特点

存储着异或值的磁盘不得损坏!

raid 5

更加强大的raid 3系列

校验码均匀的放在每一块磁盘中,因此,即使任意一块硬盘损坏,都能够反推出原本的数据。

RAID 5 被称为 “分布式奇偶校验的独立磁盘结构” ,需最低 3 块硬盘组成。


每在 RAID 5 中存入一个文件,3 块硬盘中:

  • 1 块用于存储该文件;
  • 2 块用于生成奇偶校验信息。

只要 RAID 5 中只有 1 块硬盘损坏,就可以替换该硬盘并恢复数据。

  • 会损失 1 块硬盘容量。

raid 10 (1+0)

企业目前再用的是raid 10版本

raid10是raid 1加上raid 0的意思,既吸收了raid0的特点,提升了数据的写入,提高效率,又吸收了raid 1的安全性,因此至少需要4块硬盘完成。

  1. 通过了raid 1技术,实现了磁盘两两备份,数据安全性较高;

  2. 针对2个raid1的部署,又部署了raid0,提高了磁盘的读写效率;

  3. 只要不是同一个磁盘组全部损坏,那么即使你挂掉了一个硬盘也无所谓。