1.机械磁盘和固态硬盘
机械硬盘:传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机等,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。
固态硬盘:用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。
固态硬盘SSD传输速率性能是HDD的2倍
相较于SSD,HDD在价格,容量占有绝对优势
硬盘有价,数据无价,目前SSD不能完全取代HHD
2.硬盘存储术语
head:磁头 磁头数=盘面数
track:磁道 磁道=柱面数
sector:扇区,512bytes
cylinder:柱面 1柱面=512*63*255=7.84M
识别SSD和机械硬盘类型
lsblk -d -o name,rota
1表示机械,0表示ssd
3.MBR分区
MBR:1982年,使用32位表示扇区数,分区不超过2T
MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应1-4,/dev/sda3,逻辑分区从5开始,/dev/sda5
分区表含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4
结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55aa
备份MBR的分区表,并破坏后恢复
[13:43:13 root@centos7 ~]$dd if=/dev/sda of=ybw bs=1 count=64 skip=446 [13:47:11 root@centos7 ~]$scp ybw 10.0.0.8:
备份分区表 [13:49:51 root@centos7 ~]$dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
破坏分区表
[14:00:39 root@centos7 ~]$reboot 用光盘进入救援模式 ifconfig ens33 10.0.0.7/24 配置ip地址 scp 10.0.0.8:/root/ybw . 拷贝到本机 dd if=ybw of=/dev/sda bs=1 count=64 seek=446 reboot 恢复分区表
4.GPT分区
GPT支持128个分区
使用128为uuid表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位
GPT分区结构分为4个区域
GPT头
分区表
GPT分区
备份区域
5.管理分区
lsblk:列出块设备
创建分区命令
fdisk [device...]:管理MBR分区
fdisk -l 查看分区
子命令:
l 查看可更改的类型
p 分区列表
t 更改分区类型
n创建新分区
d删除分区
v校验分区
w保存并退出
q 不保存并退出
u 转换单位
gdisk[device...]:管理GPT分区
cat /proc/partations:查看内核是否已经识别新的分区
partprobe:重新设置内存中的内核分区表版本,适合除了Centos6以外的其他版本5,7,8
6.文件系统
linux常用文件系统
ext4:是ext文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳,创建和使用举行文件16TB,最大1EB的文件系统,以及速度的tisheng
xfs:支持最大8EB的文件系统
cat /proc/filesystems:查看当前支持的文件系统
7.创建文件系统
mkfs.ext4 /dev/sda
xfs
btrfs
常用选项
-b 指定块block大小
-L ‘LABEL’设置卷标
-N 指定分区中创建多少个inode
-m 默认5%,为管理人员预留空间占中空间的百分比
8.查看和管理分区信息
blkid 可以查看块设备属性信息
findfs查找分区
[15:15:57 root@centos7 ~]$findfs UUID="fa11e439-93c9-4f96-89e9-9903bd003f55" /dev/mapper/centos-home
[15:21:53 root@aiyoubucuo ~]$findfs `sed -rn '/boot/s#^([^ ]+).*#1#p' /etc/fstab`
/dev/nvme0n1p1
tun2fs:重新设定ext系列文件系统可调整参数的值
-l 查看指定文件系统超级块信息
-L ‘LABEL’ 修改卷标
-m 修改管理人员预留空间占中空间的百分比
-U uuid 修改uuid号
9.挂载
挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其他文件访问入口的行为
卸载:为解除此关联关系的过程
mount
mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint
device:指明要挂载的设备
设备文件:列如:/dev/sda5
卷标:-L ‘LABEL’,列如-L ‘data’
UUID:-U ‘UUID’ :列如-U ‘e5d250a7-eb14-4f2b-9452-b9bb36c3dfec’
伪文件系统名称:proc,sysfs
mountpoint:挂载点目录必须事先存在,建议使用空目录
-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r 只读挂载
-w 读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab, mount不可见
-L ‘LABEL’ 以卷标指定挂载设备
-U ‘UUID’ 以UUID指定要挂载的设备
-o 多个选项使用逗号分隔
卸载文件系统umount
umount 设备名|挂载名
持久挂载
将挂载保存到/etc/fstab中可以下次开机时,自动启用挂载
/etc/fstab
UUID=e5d250a7-eb14-4f2b-9452-b9bb36c3dfec /data ext4 defaults 0 0
要挂载的设备或伪文件系统LABEL,UUID,伪文件名称 挂载点 文件系统类型 挂载选项
添加新的挂载项,需要执行下面命令生效
mount -a
10.swap介绍
swap交换分区是系统RAM的补充,swap分区支持虚拟内存。当没有足够的RAM保存系统处理的数据时会将数据写入swap分区,当系统缺乏swap空闲时,内核会因RAM内存耗尽而终止进程。配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存泄漏
注意:为优化性能,可以将swap分布存放,或高性能磁盘存放
官方推荐
系统中的RAM量 推荐的swap空间 允许休眠的建议swap空间大小
低于2GB RAM量的2倍数 RAM容量的三倍
2GB-8GB 等于RAM量 RAM量的倍数
8GB-64GB 4GB到RAM容量的0.5倍 RAM容量的1.5倍
超过64GB 独立负载(至少4GB) 不建议使用休眠功能
交换分区实现过程
创建交换分区或文件
使用mkswap写入特殊签名
在/etc/fstab文件中添加适当的条目
使用swapon -a 激活交换空间
swapon [option] ...[device]
-a:激活所有的交换分区
-p :指定优先级,也可在/etc/fstab 在第四列指定:pri=value,需要swapoff /dev/... 再swapon -a
-s 可以查看swap分区信息
禁用swap分区
swapoff
11.磁盘常见工具
df [option] ...[file] ...
-H 已10为单位
-i inodes节点编号
-h human-readable
-T 查看挂载文件系统
du [option] ... DIR
-h 可读的
-s summary概要
--max-depth=# 指定最大目录层级
-x 忽略不在同一个文件系统的目录
[10:10:34 root@centos7 ~]$du -sh /etc 31M /etc
工具dd
dd if=/path/from/src of=/path/to/dest bs=# count=#
if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
bs=size 指定块大小
skip=blocks 写入文件从开头忽略blocks个ibs大小的块
seek=blocks 目标文件忽略多少个块
count=n 复制n个bs
notrunc 不截断输出文件
[10:29:20 root@centos7 ~]$echo abcdef >f1.txt [10:31:28 root@centos7 ~]$cat f1.txt abcdef [10:31:33 root@centos7 ~]$echo 123456789 >f2.txt [10:31:57 root@centos7 ~]$cat f2.txt 123456789 [10:32:02 root@centos7 ~]$dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4 2+0 records in 2+0 records out 2 bytes (2 B) copied, 0.000264134 s, 7.6 kB/s [10:32:41 root@centos7 ~]$cat f2.txt 1234de
12 RAID
空间利用率:N
最少硬盘数:1+
优点:读写性能提升
缺点:无容错能力
空间利用率:%50N
最少硬盘数:2+
优点:有冗余能力,读性能提升
缺点:写性能下降,磁盘利用率不高
空间利用率:n-1
最少硬盘数:3,3+
优点:读写性能提升,有容错能力
缺点:最多允许1块磁盘损坏
空间利用率:n-2
最少硬盘数:4,4+
优点:读写性能提升,有容错能力,最多允许2块磁盘损坏
缺点:最多允许2块磁盘损坏
空间利用率:n-2
最少硬盘数:4,4+
优点:读写性能提升,有容错能力,
缺点:当一块硬盘损坏时,再坏一块系统损坏的概率为2/3
空间利用率:n-2
最少硬盘数:4,4+
优点:读写性能提升,有容错能力,
缺点:当一块硬盘损坏时,再坏一块系统损坏的概率为1/3
13.逻辑卷管理器
LVM:可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许可以弹性的更改LVM的容量
实现过程
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域来定义的
在物理卷上创建的逻辑卷,是由物理区域PE组成
可以再逻辑卷上创建文件系统并挂载
实现逻辑卷
工具来自lvm2包
pv管理工具
pvs:显示简要pv信息
pvdisplay 详细
[11:31:45 root@centos7 ~]$pvcreate /dev/sdc1
创建pv
[11:32:55 root@centos7 ~]$pvremove /dev/sdc1
移除pv
vg管理工具
vgs,vgdisplay
[11:37:28 root@centos7 ~]$vgcreate -s 16M ybw /dev/sdc1
-s指定PE大小默认4M,卷组名ybw
[11:48:26 root@centos7 ~]$vgextend ybw /dec/sdd
添加额外的磁盘到卷组ybw中
[11:54:44 root@centos7 ~]$vgreduce ybw /dev/sdd
从卷组ybw中移除sdd
[11:56:49 root@centos7 ~]$vgremove ybw
删除卷组
lv管理工具
lvs,lvdisplay
[12:02:50 root@centos7 ~]$lvcreate -L 1G -n nihao ybw
从卷组中取出1G添加到nihao逻辑卷中
[12:02:25 root@centos7 ~]$lvremove /dev/ybw/nihao
删除逻辑卷
范例
[14:09:08 root@centos7 ~]$pvcreate /dev/sdc1 /dev/sdd
[14:09:44 root@centos7 ~]$vgcreate ybw /dev/sdc1 /dev/sdd
[14:13:35 root@centos7 ~]$lvcreate -L +1G -n nihao ybw
[14:20:36 root@centos7 /]$mkfs.ext4 /dev/ybw/nihao
[14:21:20 root@centos7 /]$vim /etc/fstab
UUID=cba62b6f-46bc-49d3-ba65-c2a0677c9f1b /data ext4 defaults 0 0
永久挂载
在线扩展逻辑卷
[14:59:51 root@centos7 ~]$lvextend -L +1G /dev/mapper/ybw-nihao
扩容1G
[15:03:56 root@centos7 ~]$resize2fs /dev/mapper/ybw-nihao
注意还要扩容文件系统
resize2fs扩容ext文件系统
xfs_growfs 针对xfs
lvresize -r -L +1G /dev/mapper/ybw-nihao
一步实现空间和文件系统的扩展
缩减逻辑卷
注意缩减有数据损坏的风险,建议先备份再缩减,xfs文件系统不支持缩减
[15:04:41 root@centos7 ~]$umount /dev/mapper/ybw-nihao 解除挂载 [15:13:14 root@centos7 ~]$e2fsck -f /dev/mapper/ybw-nihao 检查是否正常 [15:16:59 root@centos7 ~]$resize2fs /dev/mapper/ybw-nihao 1G [15:17:06 root@centos7 ~]$lvreduce -L -1G /dev/ybw/nihao [15:22:04 root@centos7 ~]$mount /dev/mapper/ybw-nihao /data
逻辑卷快照
快照是特殊的逻辑卷,他是在生成快照时存在的逻辑卷的准确拷贝,对于需要备份或者复制到现有数据临时拷贝以及其它操作来说,快照时最合适的选择,快照只有在他们和原来的逻辑卷不同时才会消耗空间,建立快照的卷大小小于等于原始逻辑卷,也可以使用lvextend扩展快照
逻辑卷管理快照
快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
特点
备份速度快,瞬间完成
应用场景是测试环境,不能完成代替备份
快照后,逻辑卷的修改速度会有一定影响
实现逻辑卷快照
[15:45:15 root@centos7 ~]$lvcreate -l 64 -s -n data-snapshot -p r /dev/mapper/ybw-nihao 为现有逻辑卷创建快照 [15:47:07 root@centos7 ~]$mkdir -p /mnt/snap [15:51:54 root@centos7 ~]$mount -o ro,nouuid /dev/ybw/data-snapshot /mnt/snap 挂载快照 [15:53:54 root@centos7 ~]$umount /dev/mapper/ybw-data--snapshot [15:56:02 root@centos7 ~]$umount /dev/mapper/ybw-nihao [15:56:07 root@centos7 ~]$lvconvert --merge /dev/ybw/data-snapshot 恢复快照 [16:02:44 root@centos7 ~]$umount /mnt/snap 删除快照