硬盘的作用:
存储,计算机上的一种存储设备,既可以读也可以写 连接方式:计算机内部或外接
硬盘的种类:
固态硬盘
机械硬盘
硬盘的物理结构
此图为机械硬盘内部图,机械硬盘是可拆卸的,固态硬盘是不可拆卸的
盘片是它主要的存储介质
磁头与盘片是不接触的,它们是靠电磁流读取内容
盘片越多存储空间越大,因此会很重
它相对固态会便宜
数据恢复能力很强可以恢复八九成,固态只能六七成而且恢复价格会相较与机械要贵
机械不耐摔,固态相较与耐摔
机械有部件损坏可以相对应的更换,但是固态是一个整体只能整体都换
硬盘的数据结构:
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,这是机械硬盘的最小存储单元 磁道:磁盘读取盘片数据的轨迹 柱面:不同盘片相同半径构成的圆柱面
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数(512字节)
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
机械硬盘的接口:
IDE(已淘汰) SATA:抗干扰强,速度快(指读写) SCSI:小型主机的硬盘接口,个人电脑、小型服务器使用,传输速度快,占用CPU的效率低 SAS:读写速度最快能到达6Gb/s
光纤通道
手动添加硬盘后一般需要重启,下面一段命令解决此办法
alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan' 这步将scan别名添加,使得第一步添加硬盘后无需重启
lsblk #查看硬盘分区
sdb名词解析 sd:设备类型,一般指SCSI,SATA b:设备序号 linux的磁盘序号:a,b,c,d,e,f
sr0 #光盘镜像
MBR分区表引导记录,一般适用于2T以下的磁盘分区
GPT分区表引导记录,一般适用于2T以上的磁盘分区
MBR分区表:最多只能分四个区,包括三个主分区和一个扩展分区 扩展分区无法使用,只是作为逻辑分区的引导记录保存 只有创建扩展分区,才能创建逻辑分区 主分区可以创建操作系统,也可以存储数据
逻辑分区只能存储数据,不能创建操作系统 主分区-扩展分区:1-4 逻辑分区从5开始
第一步:新建分区
fdisk -l 分区 #查看具体的分区情况
fdisk 分区
fdisk : n:新建分区 p:查看分区情况
e:创建拓展分区
l:创建逻辑分区
w:保存退出 q:不保存退出 d:删除分区 t:变更分区类型
partprobe #刷新新建分区情况
第二步:创建文件系统
文件系统:
组织和存储:文件系统提供了组织数据的结构,能够把文件分为不同的目录,然后经过组织的数据可以存储在物理设备上
访问数据:文件系统提供了对存储设备的访问接口,通过接口访问存储设备中的数据
数据管理:文件系统提供了数据的管理功能,包括文件或者目录的复制、移动、删除、重命名等操作
数据保护:文件系统通过权限的控制机制,限制不同用户的访问权限
日志记录、快照、数据压缩、数据加密等。 文件系统:centos7默认xfs,ext4,ext3 xfs:适合于大型文件和高性能处理文件的系统,可以支持上百G的分区存储 ext类型:linux自带,提高性能以及稳定性 NTFS:Windows的文件系统
创建文件系统命令:
mkfs.xfs 分区 #例如mkfs.xfs /dev/sdb1
如果之前磁盘分区创建过文件系统,需要更改:
mkfs.xfs -f 分区 #例如mkfs.xfs -f /dev/sdb1
第三步:挂载
挂载点必须是一个已经存在的,而且必须是一个新创建的空目录 mount(挂载),umount(解挂载),umount -lf(强制解挂载) vi /etc/fstab(下次重启前一直挂载): vi /etc/fstab 用来对需要开机自动挂载的设备进行配置:
/dev/sdb1 /data xfs defaults 0 0
格式:设备分区 挂载目录 分区的文件系统 默认给以挂载点目录所有的执行权限 0表示不对数据进行备份 0表示系统启动时不检查分区的0
命令:
mkdir 名称 #例如mkdir data这是创建一个空目录
mount 需要挂载的分区 刚刚创建的目录 #例如mount /dev/sdb1 /data/这是将sdb1分区挂载到data目录上
df -h #查看挂载情况
/dev/cdrom /mnt iso9660 defaults 0 0#这是对光盘镜像进行挂载
mount -a #这是将fstab这个配置文件生效
GPT分区表引导记录,一般2T以上 128个分区 gdisk 分区 #2T以上创建分区命令
n(新建)->分区编号->回车->+300G(分区的大小)->8300(Liunx类型编号)->w(保存退出)->y(确定保存退出)
swap交换分区:
系统是有物理内存,物理内存不够用,就需要将其他物理内存当中的一部分空间进行释放,提供给物理内存使用 释放出来的空间保存在swap当中,用完之后,保存在swap空间的内存还需要还给被释放的程序
free -h #查看交换分区
swap: 3.9G
这是系统预设好的交换分区,系统物理内存不够时,可以直接调用这个分区内存,如果预设的空间也不够使用时,会从其他程序空间继续调用,从其他程序空间调用的内存,之后需要还给调用的程序
将swap交换分区扩容
扩容4G:
fdisk /dev/sdb
n->p->回车->+4G->w
lsblk #查看分区此时如果没有改变就用partprobe命令刷新
更改一下分区类型,改成交换分区的:
fdisk /dev/sdb
t(更改分区类型)->2(需要更改类型的编号)->L(查看所有类型代码)->82(swap类型)->p(查看结果)->w(保存退出)
还需要将更改的分区格式化
mkswap /dev/sdb2 #格式化
格式化后需要启用刚刚格式化的分区
swapon /dev/sdb2 #开启
free -h #此时可以看到swap已经扩容成功
swapoff /dev/sdb2 #关闭
free -h #此时可以看到swap刚刚添加的空间减去了
Linux系统每个硬件设备都有一个唯一标识:UUID,不重复、唯一 查询UUID:blkid 设备要生成uuid,必须先创建文件系统 推荐在工作中使用uuid,设备唯一编号进行永久挂载
编号的永久挂载
vi /etc/fstab #配置文件
UUID="这边是需要挂载分区的id编号" /data1 xfs defaults 0 0
下面的步骤上面有
lvm:逻辑卷 动态管理: lvm就是动态地管理磁盘空间 核心(扩容)
逻辑卷:由不同硬盘的不同分区,或者同一硬盘下的不同分区组成的一个逻辑上的硬盘 逻辑卷最小存储单位PE=4M 创建物理卷:pvcreate 扫描物理卷:pvscan 查看物理卷的详细信息:pvdisplay 删除物理卷:pvremove
创建卷组:vgcreate 卷组名 分区位置(/dev/sdb5) 扫描卷组:vgscan 查看卷组的详细信息:vgdisplay 删除卷组:vgremove 扩容卷组:vgextend 缩容卷组:vgreduce
创建逻辑卷:lvcreate 扫描逻辑卷:lvscan 查看逻辑卷的详细信息:lvdisplay 删除逻辑卷:lvemove 扩容逻辑卷:lvextend 缩容逻辑卷:lvreduce
将下图创建逻辑卷:
首先创建卷组:
vgcreate 创建的卷组名 分区组#例如vgcreate cxk /dev/sdb5 /dev/sdc1 /dev/sdd1
vgdisplay 创建的卷组名 #查看卷组,例如vgdisplay cxk
名称解释:
VG Name#卷组名
Format#lvm的版本等级
Metadata Areas#使用的分区数量
VG Size#合成分区的总大小
PE Size#就是逻辑卷的最小存储单位,默认是4M
创建逻辑卷:
lvcreate -L(指定逻辑卷的大小) +5G -n(创建逻辑卷名称) xz cxk(刚刚创建的卷组名)
lvdisplay /dev/cxk/xz #查看逻辑卷
mkfs.xfs /dev/cxk/xz #创建文件系统
mkdir /lh #创建新的目录
mount /dev/cxk/xz /lh/ #挂载
df -h #查看挂载情况
对逻辑卷扩容:
vgdisplay cxk #首先查看卷组是否有空间有多余空间才能对逻辑卷扩容
lvcreate -L +9G /dev/cxk/xz #逻辑卷扩容
或者lvcreate -L +9G /dev/cxk/xz -r #逻辑卷扩容
xfs_growfs /dev/cxk/xz #刷新一下刚刚的扩容
df -h #此时可以看到扩容成功了
对卷组扩容:
vgextend cxk /dev/sde1 #卷组扩容
vgdisplay cxk #此时可以看到扩容成功了
缩容:是有条件的缩容,xfs文件系统无法所容,ext3,ext4可以缩容
正常不太用缩容,就不详细解析配置方式了
磁盘配额: 两个方式:1.对用户使用磁盘空间地大小进行限制;2.对用户在磁盘上创建文件个数的限制
防止用户恶意使用磁盘空间
centos7 默认使用xfs
rpm -q检测当前系统是否安装了指定文件
分界点:以下内容需要更改,正常放假更改
xfs的限制方式:
xfsprogs和quota两个依赖包必需,并且挂载时要以磁盘配额的方式挂载:mount -o usrquota,grpquota /dev/sdc3 /test/
setenforce 0(centos7自带的安全检测机制),systemctl stop firewalled
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M zhangsan' /test
xfs_quota为固定开头
-x表示开启专家模式,允许对配额系统所有管理命令进行使用
-c要调用的管理配额的命令
' ' 中的内容
limit 开启限制
-u指定限制的用户,zhangsan就是限制的用户名
bsoft软限制,到这个值还可以接着用
bhard硬限制,到这个值1k都不能用了
/test挂载点
dd if=/dev/zero of=/test/123.txt bs=10M count=12
dd连续复制的命令
if=指定输出的文件
/dev/zero零设备文件,可以提供无限的空字符,可以用来生成一个特定大小的文件
of=把这些字符指向到文件
bs=10M每一次复制的大小为10M
count=12总共复制12次
xfs_quota -x -c 'limit -u isoft=4 ihard=6 zhangsan' /test
与限制大小的区别在于限制文件个数,软个数为4,硬个数为6
touch {1..7}.txt表示创建1.txt到7.txt共七个文件
xfs_quota -x -c 'disable -up' /test/ 取消该文件的限制
RAID:磁盘损坏,但是数据不会丢失。磁盘冗余阵列。
组成方式和lvm类似,由多个硬盘下的不同分区或者是同一硬盘下的不同分区组成
组成方式:
raid0:条带化存储,条带化就是把数据分散在多个物理磁盘上的一种存储方式
只是单纯地提高了读写性能,但是没有冗余,不适用于对数据安全性要求高地场景,但是读写性能很高,一般不单独用raid0
一块盘就足够,读写性能最强
raid1:镜像存储,复制,写入时会在两处同时写入
最少需要两块盘,并且硬盘个数必须是2的倍数
磁盘利用率只有50%,写入稍慢,但读性能和raid0差不多
raid5:
最少需要三块硬盘,数据在硬盘上循环均衡存储
磁盘利用率:(n-1)/n
写性能很差,读性能比raid0和raid1稍差,但是允许损坏一块硬盘
raid6:
磁盘数要≥4,可以损坏两块硬盘
磁盘利用率:(n-2)/n
奇偶校验,在数据中添加校验位,所以写性能最差,读性能还行,可靠性最强
raid10:先镜像,后条带(1+0)
磁盘数要≥4并且必须是偶数
磁盘利用率为n/2,允许基组中各坏一个,读写都稍差
面试题:四块硬盘如何选择磁盘阵列?要求实现循环冗余
答:只需要单纯的高可用保护数据安全,那么raid5足够;如果又要保证数据安全,又要高可用,又要保证数据可靠性,那么建议使用raid6
什么是热备份?
答:就是坏了直接换一块盘
热备份操作:
- rpm -q
- mdadm -C -v /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
- -C表示创建
- -v可以不加,显示创建过程中的详细信息
- /dev/md5创建raid5的名称(只能叫这个)
- -l5指定raid的级别
- -n3表示盘数
- /dev/sd[b-d]1表示设备名称,中括号[]里的是一个范围
- -x1表示指定热备份盘的数量
- /dev/sde1表示热备份的设备的名称
- cat /proc/mdstat查看创建进度
- mdadm -D /dev/md5查看详细信息
- mkfs.xfs /dev/md5
- mount /dev/md5 /data/
- mdadm /dev/md5 -f /dev/sdb1 可以关闭一个盘
这有些知识点可以结合这个链接一起看,但是已此篇为主