存储的分类:
NAS 网络附加存储
SAN 存储区域网络
DAS 直连存储
分布式存储 例如:HDFS CEPH
云存储
对象存储 例如:MINIO OSS
块存储
按工作方式区分:HDD 机械硬盘 ; SSD 固态硬盘;
按插拔方式区分:热插拔; 非热插拔(先弹出再拔);
按存储的连接方式区分:本地存储(本地磁盘); 外部存储(U盘); 网络存储(云盘);
硬盘设备命名:
物理设备和VMWare虚拟机:sda,sdb,sdc.....
KVM虚拟机:vda,vdb,vdc......
磁盘的分区方式:
MBR分区表(fdisk)
磁盘空间最多识别2T,只支持4个主分区,分区大小固定
GPT分区表(gdisk)
磁盘空间识别没有上限,最多支持128个主分区,分区大小可自行设置
fdisk创建分区(MBR分区)
磁盘分区命令,磁盘管理工具
查看磁盘的情况:fdisk -l /dev/磁盘名
记录了磁盘的大小,磁盘的字节总量,磁盘的扇区总量,每个扇区有多少个字节(512字节)
对磁盘进行分区:fdisk /dev/磁盘名
m:查看帮助手册
n:添加分区(分区默认从2048开始)
p:添加主分区
e:添加拓展分区(拓展分区不能直接被使用,需要在拓展分区内划分逻辑分区才能被使用)
p:查看当前磁盘分区情况
d:删除指定分区
q:不保存退出
w:保存并退出
gdisk创建分区(GPT分区)
查看磁盘的情况:gdisk -l /dev/磁盘名
对磁盘进行分区:gdisk /dev/磁盘名
?:帮助手册
n:添加分区(1-128)
p:查看当前磁盘分区情况
d:删除分区
q:不保存退出
w:保存退出
列出一块磁盘的信息,并显示磁盘分区之间的依赖关系:lsblk /dev/磁盘名
NAME:磁盘设备名
SIZE:磁盘大小
TYPE:设备的类型(disk 磁盘;part 磁盘分区;......)
MOUNTPOINT:磁盘的挂载点
MBR和GPT之间的互相转换:直接使用fdisk或gdisk对磁盘进行重新分区即可
lvm逻辑卷
用于装备大量磁盘的系统,但它同样适于仅有一、两块硬盘的小系统,可以将多个磁盘组合成一个更大的磁盘
相关定义
物理卷-----PV(Physical Volume)
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
卷组--------VG(Volumne Group)
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
逻辑卷-----LV(Logical Volume)
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组,一个逻辑卷不可以使用不同卷组的容量,但可以使用不同的物理卷的容量
物理区域--PE(Physical Extent)
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定(默认为4M)。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
逻辑区域―LE(Logical Extent)
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
逻辑卷管理
①为服务器添加磁盘
②将磁盘变成PV
pvcreate /dev/sd{b..d}
或pvcreate /dev/sdb /dev/sdc /dev/sdd
③将PV变成VG
vgcreate 卷组名 多个磁盘名
④创建逻辑卷
lvcreate -L 逻辑卷的容量大小 -n 逻辑卷名字 逻辑卷容量来源卷组
⑤对逻辑卷进行格式化和挂载
PV的相关操作
创建pv:pvcreate
移除pv:pvremove PV名(PV若正在使用中,不要轻易删除)
移动pv:pvmove
查看pv:pvs pvscan pvdisplay
pvs:
PV:PV名
VG:该PV所属的VG名
PSize:PV的容量大小
PFree:PV的剩余容量
pvdisplay:
VG的相关操作
移除vg:vgremove
重命名vg:vgrename
扩容vg:vgextend
缩容vg:vgreduce
创建vg:vgcreate
查看vg:vgdisplay vgscan vgs
vgs:
vgdisplay:
LV的相关操作
创建lv:lvcreate
移除lv:lvremove
重命名lv:lvrename
扩容lv:lvextend
缩容lv:lvreduce
查看lv:lvdisplay lvscan lvs
lvs:
lvdisplay:
对lv进行扩容
情况一:如果使用的vg有空闲,直接给lv扩容(在线扩容,热扩容)
①对lv进行扩容:lvextend -L 10G /dev/vg1/lv1
-L:扩容大小 将lv1扩容到10G
此时是总量扩容到10G,并不是在原来的基础上再增加10G
逻辑卷路径使用lvdisplay命令查看LV Path
②使用df -Th命令或blkid /dev/vg1/lv1,查看lv的文件系统类型
③lv扩容后,还需要对文件系统扩容
xfs文件系统扩容:xfs_growfs /dev/vg1/lv1
ext4文件系统扩容:resize2fs /dev/vg1/lv2
④再次使用df -Th命令或blkid /dev/vg1/lv1 命令 查看是否扩容完成
情况二:如果vg没有容量,先给vg扩容,再给lv扩容
给vg扩容等价于给vg添加新的pv,使用vgextend命令
情况三:如果pv有剩余,直接给vg扩容
对vg进行扩容:vgextend vg1 /dev/sdb
将物理卷 /dev/sdb2 加入卷组vg1
情况四:如果pv没有剩余,创建新的pv,再给vg扩容
创建新的PV:pvcreate /dev/sdb
磁盘格式化
设定磁盘或磁盘分区的文件系统
mkfs.文件系统格式 磁盘名/磁盘分区名
一般将磁盘格式化为ext4和xfs
格式化为ext4格式:mkfs.ext4 /dev/磁盘名
磁盘中还有剩余空间,但是无法存放数据的原因?
磁盘采取ext家族文件格式,磁盘中的inode号耗尽造成无法存储文件
格式化为xfs格式:mkfs.xfs -f /dev/磁盘名
[参数]
-f 强制覆盖(进行xfs格式化时,需要强制覆盖)
磁盘挂载
挂载产生的效果:往挂载点目录下存放数据,实际占用的是挂载设备的空间容量
挂载后打开挂载点目录可以查看挂载文件的内容
临时挂载
mount [参数] 设备名称 挂载点目录
原则上挂载点可自定义
[参数]:
-o 文件系统属性
-a 检测是否挂载成功
-t 文件系统类型(一定要和挂载磁盘的文件格式匹配)
rw 读写
ro 只读
remount 重新挂载
实例:
将sdd磁盘临时挂载在/mnt下:mount /dev/sdd /mnt
以读写的方式重新挂载/sysroot:mount -o rw,remount /sysroot
卸载
umount 挂载点/设备名称
永久挂载(开机挂载)
修改 /etc/fstab 文件,添加相关的参数实现永久挂载
第一列:设备(设备名称;设备UUID标识;......)
查看设备的UUID:blkid 设备名
从左向右依次是:设备名称;设备的UUID;设备的文件类型;
第二列:挂载点目录
第三列:文件系统类型(xfs ext4 nfs swap)
第四列:属性(rw remount defaults)
default : rw, suid, dev, exec, auto, nouser, and async.
第五列 第六列:0 0 不备份 不检查
编辑完挂载文件后重新读取挂载信息:mount -a
挂载生效
永久卸载
①umount手动卸载
②将 /etc/fstab 文件相关挂载内容删除
③mount -a 重新读取挂载文件
卸载后会导致原先存放在挂载目录的文件不可用
交换分区swap
“提升”内存的容量,防止OOM(Out Of Memory)
使用硬盘空间当作内存来用,当物理内存不够用的时,使用swap分区防止物理内存耗尽
swap分区大小设置规则
内存小于4GB时,推荐不少于2GB的swap空间;
内存4GB~16GB,推荐不少于4GB的swap空间;
内存16GB~64GB,推荐不少于8GB的swap空间;
内存64GB~256GB,推荐不少于16GB的swap空间;
创建swap分区
直接把一个磁盘的容量给交换分区用
直接把一个lv的容量给交换分区用
直接把一个分区的容量给交换分区用
实例(以逻辑卷LV为例):
①查看swap分区情况:free -m; swapon -s;
可以看到当前并没有swap分区
②创建一个lv
③对lv进行格式化
swap分区格式化:mkswap /dev/vg1/lv1
④将lv挂载到swap
vim /etc/fstab //编辑挂载配置文件
/dev/vg1/lv1 swap swap defaults 0 0 //在配置文件中添加此行,并保存退出
重新读取挂载配置文件:mount -a
⑤激活swap分区,并查看swap分区情况
激活swap分区:swapon /dev/vg1/lv1
查看swap分区情况:free -m