目录
磁盘基础
硬盘是由很多的磁盘盘片,主轴,转动手臂,磁头与主轴马达组成
硬盘工作原理:1当硬盘驱动器加电后,利用控制电路进行初始化工作,初始化完成后主轴电机将启动并高速旋转,装在磁头的小车机构移动,将浮动磁头置于盘片表面的O道,处于等待指令的启动状态。当接口电路收到微机系统传来的指令信号时,使该指令信号通过前置放大控制电路,驱动音圈点击发出磁信号,根据感应阻止变化的磁头对盘片数据进行正确定位并将接收后的数据信息解码,然后通过放大控制电路传输到接口电路,反馈给主机系统以完成指令操作。当硬盘断电停止工作时,在反力矩弹簧的作用下,浮动磁头驻留到盘面中心,简单来说即为改变盘片上的磁性介质的状态来进行读写。
盘片:硬盘有多个盘片,每个盘片有两面
磁头:每面一个磁头
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小储存单位
磁道:同一盘片不同半径的同心圆,是由磁头在盘片表面画出的圆形轨迹
柱面:不同盘片相同半径构成的圆柱面,由同意半径圆的多个刺刀组成
常用的磁盘接口类型:
IDE,SATA,SCSI,SAS,光纤通道
MBR与磁盘分区表示
主引导记录
MBR位于硬盘的第一个物理扇区
MBR中包含硬盘的主引导记录程序和硬盘分区表表
分区表由四个分区记录区,每个分区记录区占16个字节
Linux中将硬盘,分区等设备均表示为文件
此盘起始位置是2048则0-2047存放的就是MBR主引导记录
/dev/hda5
其中/dev/表示硬件设备文件所在的目录
Hd表示ide设备
Sd表示SCSI设备
A表示磁盘的序号例如cfe等
5表示分区的序号
Fdisk -l查看本地磁盘信息
上述扇区大小=1*512字节实际上扇区大小可以调整
其中id可以简单理解为格式,不同的格式不同的数字,例如swap分区就是82
Fdisk
直接加磁盘设备
格式为:
Fdisk[磁盘设备]
需要输入m来查看详细命令
n:添加一个新的分区
p:表示打印分区列表
q:不保存退出
t:表示更改分区的id(类型)
l:展示所有分区类型 的id
w:保存并退出
82:swap交换分区
83:普通分区id
8eLVM分区id
Fd raid磁盘阵列 的id
输入n如下 :
P为主分区,其中包含四个名额
E为扩展分区
按下p如下:
这里表示分区号可以给到1-4,起始扇区默认值为2048,因为0-2047为 swap分区
这可以加扇区也可以给扇区大小,以K,M,G为 单位都可以,这我给的是默认所以此扇区大小就为2097151大小结果如下:
更改扇区类型:
按t再输入想要修改的类型如下:
最后输入w保存并推出如下:
系统中硬盘分区布局
如下:
其中主分区不得超过四个,逻辑分区需要在扩展分区之下
其中由一个比较特别的分区为swap分区
在日常生活中我们的内存条是8g的但是其实际的可以使用的或许只有7g或7.5g它是为了防止内存使用满载后出现的问题倒是机器无法正常使用,swap分区的作用就是预留出一部分,防止其问题发生,确保机器可以正常使用,会将内存条的一部分的容量与硬盘进行交换,做预留部分。
磁盘分区结构
硬盘中的主分区数目只有四个
主分区和扩展分区的序号限制在1-4
扩展分区再分为逻辑分区
逻辑分区的序号将始终从5开始
文件系统类型
XFS文件系统
存放文件和目录数据的分区
高性能的日志文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
Centos 7系统中默认使用的文件系统
Swap,交换文件系统
为linux系统建立交换分区
一般设置为物理内存的1.5-2倍
Linux支持的其他文件系统类型
EXT4,FAT32,NTFS,LVN
Mkfs格式化设备
实例如下:
Mkfs -t xfs /dev/sda1
然后将sda1挂载到lnj目录下
Mount /dev/sda1 lnj
查看命令为df-hT
永久挂载
命令:
Vim /etc/fstab
Mkfs -t文件系统类型 分区 设备
Mkfs 文件系统类型 分区设备
Mkwap 分区设备创建交换文件系统
LVM的管理命令
功能 物理卷管理 卷组管理 逻辑卷管理
Scan扫描 篇VS惨 vgscan lvscan
Create建立 pvcreate vggcreate lvcreate
Display显示 pvdisplay vgdisplay lvdisplay
Remove删除pvremove vgremove lvremove
Extend扩展 -------- vgextend lvextend
Reduce减少 -------- vgreduce lvreduce
硬盘分区案例
1.硬盘分区
fdisk /dev/scb
fdisk /dev/sdc
2.创建物理卷sdb1 sdc1
pvcreale /dev /sdb1/dev/sdc1
Physical volume " /dev/scb1" successlully creaLed.
Physical volume " /dev/sdc1" successfully creaLed.
3.创建卷组 nail_store
web_kgc(卷组名)
vgcreate mail_store /dev/sdb1/dev/sdc1
vgcreate web_kgc /dev/sdb1 /dev/sdc1 volume group"wcb_kcg" succcssfully creatcd
4.创建逻辑卷磁盘分区
ivcreate -L容量大小 -n逻辑卷名卷组名
ivcreate -L 10G -n mail_class mail_store
ivcreate -L 10G -n njzb web_kgc Logical volume "njzb" created.
5.创建文件系统
mkfs.xfs /dev/web_kgc/njzb
6.挂载目录 /mailbox
mount /dev/web_kgc/njzb /home
永久挂载
echo " / dev / web_kgc/njzb / home xfs defaults 00”>> etcl fstab
- 对sdb磁盘进行分区:
Fdisk /dev/sdb
Fdisk /dev/sdc
如上两张图可知创建了两块磁盘sdb与sdc我将sdb中划分出了一个分区1分配了5G,且磁盘类型为8e即LVM。
将sdc划分出了一个区1分配了10G类型为83为普通类型
- 划物理卷
Pvcreate /dev/sdb1 /dev/sdb1
- 创建卷组
Vgcreate lnj /dev/sdb1/ /dev/sdc1
- 创建逻辑卷 磁盘分区
Lvcreate -L 容量大小 -n 逻辑卷名 卷组名
Lvcreate -L 容量大小 -n lnjnb lnj
- 创建文件系统
Mkfs.xfs /dev/lnj/lnjnb
- 挂载目录
Mount.xfs /dev/lnj/lnjnb lnj
永久挂载:
Vim /etc/fstab
Mount -a
查看结果:
再扩容:
Vgcreate lnj /dev//sdc2
Lvextend -L +5G /dev/lnj/lnjnb
刷新xfs文件系统容量:
Xfs_growfs /dev/lnj/lnjnb
Resize2fs /dev/lnj/lnjnb
后续增加容量或者增加卷组:
增加
Lvextend -L +10G /dev/lnj/lnjnb
缩减
Lvreduce -L +5G /dev/lnj/lnjnb
增加卷组:
Vgextend lnj +磁盘
减少卷组:
Vgreduce lnj +磁盘
减少某个物理卷:
Pvremove /dev/sdb
查看磁盘的命令:
Df -hT
Lsblk
Fdisk -l
强制解挂载:
Umount -f /lnj
查看占用进程:
Fuser -cu /lnj/img
或者可以使用
Lsof | grep /lnj
杀死进程:
Kill -9 pid(直接就人没了有优雅的杀法哥们儿几个不用记直接杀直接kill)
优雅的方法:systemctl stop 服务名称
ROM RAM的区别
ROM是只读存储器它可以永久的存储数据,在生活中对应硬盘
RAM是随机存取存储器,电脑每次重启后RAM里的数据全部清空,在生活中对应内存条
Cache与buff的区别:
Cache即为高速缓存,例如在生活中访问一个网址,在第一次访问的时候会有一个灰色的进度条,当 第一次访问完成后他会进行一个缓存,下次再次进行访问时无需再等待很久速度很快
Buff:它的存在于高速设备向低速设备传输数据的时候,最简单的例子就是硬盘和内存,当内存向硬盘传输数据的时候应为内存输出的速度大他会出现一个缓冲区例如此时需要传输1000mb的数据在传输过程中缓冲区与内存的连接处的速率无限接近内存而从缓冲区到硬盘时硬盘可以500mb为一批次的读取数据,为了节省内存的读取速率而存在的缓冲区即buff。
磁盘配额
当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可
在Centos系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,XPS文件系统通过xfs quota 工具进行管理;EXT3/ 4 文件系统通过quota工具进行管理
当Linux根分区的磁盘空间耗尽时,Lin1ux
操作系统将无法再建立新的文件〈包括程序运行的临时文件〉,从而出现服务程序崩溃、系统无法启动等故障。为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可用性。
综上总结来说磁盘配合就是使某个用户限制对指定文件的操作,此操作包括创建文件数量以及文件大小
例如用户lnj,限制lnj用户在/data1目录下的操作:
- 最多只能创建4个文件
- 最多只能使用10M空间
限制1.文件数量2.可用空间
限制手段:软限制 硬限制
- 最多只能创建4个文件
- 最多只能使用10M空间
在此限制中文件创建可以多于4个且空间大小可以大于10M,可以暂时突破限制,但是在一段时间后会自动截断。
- 最多创建6个文件
- 限制为20M
自此限制规则就变成了,你可以创建大于4个的文件但是 最多不能超过6ge,使用的空间大小你可以超过10M但是绝对不能超过20M
磁盘配合案例:
- 检查是否安装xfsprogs和xfs_quota软件包
rpm -q xfsprogs quota
发现已经存在,可以继续更新以下
yum install -y xfsgrogs quota
发现已经是最新版本无需进行更新
- 以支持配额功能的方式挂载文件系统
在做挂载前先给文件夹附加权限
Chmod 777 /lnj1
我先前将磁盘挂载过所以我现在需要进行接挂载如下:
Umount /dev/lnj/lnjnb
使用df -hT查看挂载的信息发现我已经成功的解挂载
接下来重新进行支持配额功能的方式进行挂载使用永久挂载如下:
Vim /etc/fstab
进行如下修改:
Mount -a
Df -Ht
- 创建一个用于实验的用户
Useradd lisi
Passwd lisi
- 编辑用户和组账号的配额设置
-x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令
-c:表示直接调用管理命令
-u:指定用户账号对象
-g:只当组账号对象
Xfs_quota -x -c ‘limit -u isoft=4 ihard=6 lisi’ /lnj1/
Limit的含义就是限制,在其中表示对lisi进行限制操作,isoft是软限制,ihard表示硬限制,这条命令的含义为对lisi进行限制,并且lisi用户最多只能创建6个文件.
Xfs_quota -x -c ‘limit -u bsoft=10M bhard=30M lisi’ /lnj1/
这条命令的含义为lisi用户只能创建不能大于30M的文件
接下来经进行验证:
这里我创建1-7个文件发现超出磁盘限额无法创建
这里我又创建了四个文件,发现不超过四个即可以完成创建
接下来对文件大小来进行验证,这里需要用到一条命令:
Dd if=/dev/zero of=/lnj1/1.txt bs=10M count=4
Dd命令也是复制的意思,if后面跟的是系统中存放垃圾文件的文件目录,of跟的是需要复制到的文件,bs的意思是一次复制10M大小,count的意思是复制几次,这里给到的是4则复制四次。
这里我给的限额是最大不能超过30M,但是我复制的内容大小为40M这里可以看到复制了31M,这里的机制为截断,超出30M的内容直接截断不复制进文件中。
- 查看所有可用分区的磁盘容量配额只用状况
Xfs_quota -x -c ‘report -aibh’
经过我之前的操作发现lisi用户已经使用了30M的空间且没有剩余可用的
总结:
配置lvm需要对其结构有一个清晰的思路
PE为最小单位 4MN
Pv 物理卷 (磁盘或者分区)
Vg 卷组
Lvm 逻辑卷(可以灵活调整)
逻辑卷的作用为动态调整磁盘容量,灵活,可以弹性伸缩
Lvm创建思路:
1.识别硬盘,划分分区
2.定义物理卷 pvcreate /dev/sdb1 /dev/sdc1
3.定义卷组 vgcreate 卷组名 /dev/sdb1 /dev/sdc1 删除卷组vgremove 需要删除的盘
4.定义逻辑lvm卷 lvcreate -L 容量大小 -n 卷组名 逻辑卷名
减少逻辑卷容量 Lvreduce -L 容量大小 -n卷组名 逻辑卷名
删除逻辑卷 lvremove 逻辑卷名
扩展增加 lvextend -L 容量大小 -n卷组名 逻辑卷名
5.格式化lvm mount 零时挂载 mount -o 永久挂载 vim /dev/fstab
删除lvm思路
- 先解挂载
- 删除lvm lvremove
- 删除卷组 vgremove 卷组名
- 删除物理卷 pvremove 磁盘名
- 想完全还原则更改分区类型
磁盘配额
主要职能:限制指定用户或组(成员),在指定日录下的资源使用上限(软限制、硬限制)控制的对象:用户、组
控制的资源:磁盘空间文件数量控制的手段:硬限制、软限制
#前提:yum install -y quota xfsprogs做磁盘配额的两个(工具)执行挂载:
mount -o usrcuota, grpgquota /dev / sdb1 /data1
vim letc/ fstab
/dev /sdb1 / lnj1 xfs defaults,usrquota, grpquota 0 0
mount -a
进行限制:
xfs quota -x -c 'limit -u bsoft-40M bhard-80M isoft=10 ihard=15 lisi' /lnj1
验证 su lisi
Cd /lnj1
创建文件查看限额是否成功
dd if=/dev/zero of=/lnj1/1.txt bs=10M count=4
查看空间大小
Xfs_quota -x -c ‘report -aibh’查看所有磁盘配额使用情况