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的空间。
步骤
- 先为磁盘分区,且指定swap分区类型,
fdisk /dev/sdb1
1 | 依此输入: |
- 格式化磁盘分区
1 | [root@localhost /]# mkswap /dev/sdb1 |
- 使用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 | mount /dev/sdbn /mnt #第一种写法 |
第三列
Linux能够支持的文件系统类型。
ext3 ext4 nfs swap,nfs
第四列
挂载的功能选项,有很多,默认是用 defaults。
第五列:dump
表示将整个文件夹内从备份,一般不对挂载点备份,默认都是0。
第六列:fsck 磁盘检查
默认都是0,不对磁盘检查,根文件系统,默认是检查的。
df命令
检查挂载点的使用情况
语法
1 | df [options] |
参数
常用
1 | -h #显示kb,mb单位大小 |
du命令
显示磁盘空间大小,文件大小的命令
语法
1 | 用法:du [选项]... [文件]... |
参数
1 | -h #显示文件大小,以kb,mb显示单位 |
raid技术
raid 全称 Redundant Arrays Of Independent Drivers,即磁盘冗余阵列。
raid 技术是将多块独立的此岸,组成了一个磁盘组。
raid技术的意图是将多个独立的硬盘设备,组成一个容量更大,安全性更高的磁盘阵列组,将数据切为多个区段之后存储在不同的物理硬盘上。利用分散读写技术提升磁盘整体性能,数据同步在了多个硬盘上,数据也得到了冗余备份的作用。
raid特性
能够保证数据安全性,但是也增加了磁盘的成本。 raid除了能够保障数据丢失造成的严重损失,提升硬盘读写效率,因此广泛的被企业使用。
独立模式
standalone
一块硬盘单独的工作,读写数据;
一台饮水机,一桶水,提供服务。
热备份模式
hot swap
一桶水可能会喝完,水桶可能被污染,损坏,旁边放一个水桶,随时等待阶梯的工作,为了防止单独的一块硬盘损坏,随时准备好另一块硬盘准备阶梯工作。
集群模式
cluster
一对饮水机提供服务,就算单独坏了一台机器,一台机器,无所谓,还有其它机器等待工作,一堆硬盘共同提供服务,提高读写效率。
raid技术分为多个级别,不同级别,由于技术角度,还有公司运营成本的考虑,不同的企业选择不同版本的raid技术。
RAID 0、RAID 1、RAID 5以及RAID 0+1
raid 0
特点
数据一次写入到物理硬盘,在理想的状态下,写入速度是翻倍的;但凡任意一块硬盘损坏,数据都将被破坏。数据写入到两块硬盘中,没有备份功能。
应用场景
适用于追求极致性能的场景,而不关注于数据安全性的场景。
raid 1
特点
由于raid 0的特性,数据一次写入多块硬盘中,数据分开存储的,因此坏了任意一个,数据都将被破坏,对于企业非常重要的数据来说,肯定是不允许使用的。
将两块以上的硬盘绑定关系,数据写入的时候,同时写入多块硬盘,因此即使硬盘故障损坏,也不惧怕,因为我有备份。
raid 1 极大地降低了磁盘的利用率。假如你有2块硬盘一共4T大容量,你使用了raid 1,你可使用的容量只有2T了,利用率只有50%。
如果是三块硬盘组成raid 1,利用率更低,只有33%
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块硬盘完成。
通过了raid 1技术,实现了磁盘两两备份,数据安全性较高;
针对2个raid1的部署,又部署了raid0,提高了磁盘的读写效率;
只要不是同一个磁盘组全部损坏,那么即使你挂掉了一个硬盘也无所谓。