我的需求:
准备红帽考试,这块听课听得稀里糊涂的。
我是这样做的:
请教了公司大佬,书里找了些资料。这里整理笔记加以记忆,不足之处请小伙伴指出来。生活加油。2021.01.08
一,思维导图梳理关系
二,Linux文件存储(未使用LVM)
正常的拿到一块磁盘我们会使用lsblk查看分区,之后会使用fdisk进行分区 ,分区之后会使用mkfs相关指定文件系统进行格式化处理,最后通过mount进行挂载处理,也就是上图物理盘区部分。
识别磁盘 --> 分区 --> 格式化 --> 挂载 --> 访问挂载点: lsblk --> fdisk -l --> fdisk(MSDOS分区表)/gdisk(GPT分区表 >2.2TB磁盘)/parted --> mkfs相关 --> mount
创建流程:
lsblk //查看分区状态fdisk /dev/vdc //使用fdisk分区工具,对/dev/vdc硬盘进行分区p 查询分区状态 q 不保存退出n 新建分区Select (default p): //回车,默认是主分区Partition number (1-4, default 1): //第一个分区默认序号是1First sector : //起始扇区,直接回车Last sector +500M //创建500M分区w //保存退出mkfs.xfs /dev/vdc1 //使用xfs文件系统为vdc1这个分区格式化mount /dev/vdc1 /mnt //将新分区挂载到/mnt目录df -h umount /dev/vdc1 //卸载分区//刷新硬盘分区表:partprobe /dev/vdb 或者 partx -a /dev/vdbreboot三,使用LVM的文件存储
Linux 逻辑卷管理器(logical volume manager,LVM)它可以让你在无需重建整个文件系统的情况下,轻松地管理磁盘空间。用标准分区在硬盘上创建了文件系统,为已有文件系统添加额外的空间多少是一种痛苦的体验。你只能在同一个物理硬盘的可用空间范围内调整分区大小。
通过LVM将 多个物理卷(物理分区)集中在一起可以形成一个卷组(volume group,VG)。逻辑卷管理系统将卷组视 为一个物理硬盘,但事实上卷组可能是由分布在多个物理硬盘上的多个物理分区组成的。卷组提供了一个创建逻辑分区的平台,而这些逻辑分区则包含了文件系统。
逻辑卷(logical volume,LV)。逻辑卷为Linux提供了创建文件系统的分区环境,作用类似于到目前为止我们一直在探讨的Linux中的物理硬盘分区。Linux系统将逻 辑卷视为物理分区。 可以使用任意一种标准Linux文件系统来格式化逻辑卷,然后再将它加入Linux虚拟目录中的某个挂载点。
LVM逻辑卷管理机制的思想 —— 化零(物理卷PV)为整(卷组VG)、动态扩容伸缩,按需(逻辑卷LV)分配。
把零散的分区(PV物理设备(物理卷)) ===》整编的大卷组(VG虚拟磁盘) ===》 根据需要获取空间(虚拟分区LV)
物理卷、逻辑卷、卷组、快照卷之间的联系
- 物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。
- 卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。
- 逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。
可以做这样一个设想来理解以上三者的关系:如果把PV比作地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV。
相互联系:在创建卷组时一定要为逻辑卷进行快照预留出空间,而后快照访问逻辑卷的另一个入口,只要把物理卷加到卷组之后,这个物理卷所提供的物理空间事先就被划分好一个个块,而这个块在没格式化之前叫做PE(Physical Extend)【物理盘区】,是逻辑存储的一个小匣子,卷组的大小是由多个PE组成,而逻辑卷的大小是把卷组中的PE放到逻辑卷中,此时,PE不再叫做PE,而是叫做LE(Logical Extend)【逻辑盘区】,其实,逻辑卷中的LE也叫做PE,只是站在角度不同而已。
如果某个物理卷损坏后,存储在逻辑卷中的LE也就会损坏,想让数据不损坏,可以把物理卷中PE做成镜像
Linux 中的 LVM
1. 快照 最初的Linux LVM 允许你在逻辑卷在线的状态下将其复制到另一个设备。
- LVM1只允许你创建只读快照。一旦创建了快照,就不能再写入东西了。
- LVM2允许你创建在线逻辑卷的可读写快照。有了可读写的快照,就可以删除原先的逻辑卷, 然后将快照作为替代挂载上。这个功能对快速故障转移或涉及修改数据的程序试验(如果失败, 需要恢复修改过的数据)非常有用。
快照在备份由于高可靠性需求而无法锁定的重要数据时,快照功能非常给力。传统的备份方法在将文件复制到备份媒体上时通常要将文件锁定。快照允许你在复制的同时,保证运行关键任务的。
2. 条带化,LVM2提供的另一个引人注目的功能是条带化(striping)。马毓姝
- 条带化可跨多个物理硬盘创建逻辑卷。当Linux LVM将文件写入逻辑卷时,文件中的数据块会被分散到多个硬盘上。每个后继数据块会被写到下一个硬盘上。
- 条带化有助于提高硬盘的性能,因为Linux可以将一个文件的多个数据块同时写入多个硬盘, 而无需等待单个硬盘移动读写磁头到多个不同位置。这个改进同样适用于读取顺序访问的文件, 因为LVM可同时从多个硬盘读取数据。(多路复用)。
LVM条带化不同于RAID条带化。LVM条带化不提供用来创建容错环境的校验信息。事实 上,LVM条带化会增加文件因硬盘故障而丢失的概率。单个硬盘故障可能会造成多个逻 辑卷无法访问。
镜像 LVM镜像。镜像是一个实时更新的逻辑卷的完整副本。当你创 建镜像逻辑卷时,LVM会将原始逻辑卷同步到镜像副本中。根据原始逻辑卷的大小,这可能需要 一些时间才能完成。 一旦原始同步完成,LVM会为文件系统的每次写操作执行两次写入——一次写入到主逻辑 卷,一次写入到镜像副本。可以想到,这个过程会降低系统的写入性能。就算原始逻辑卷因为某 些原因损坏了,你手头也已经有了一个完整的最新副本!
LVM管理工具
- 物理卷操作(不常用):pvscan、pvdisplay、pvcreate
- 卷组操作:vgscan(扫描)、vgdisplay(显示)、vgcreate、vgremove、vgextend(扩容)
- 逻辑卷操作:lvscan、lvdisplay、lvcreate、lvremove、lvextend
PE:分配逻辑卷空间的时候,最小的单位,默认为4M
创建卷组:逻辑卷 化零为整 更自由的使用磁盘空间 创建逻辑卷之前先要创建卷组,然后从卷组中划分空间给逻辑卷
vgcreate [-s PE大小] 卷组名 分区.. ..vgcreate /dev/myvg /dev/vdb2 //正常创建卷组,默认扩展单元是4M(不满足目前题意,目前要求是16M)vgdisplay /dev/myvg //可以在PE一栏中看到扩张单元的大小vgremove /dev/myvg //删除卷组myvgvgcreate -s 16MiB /dev/myvg /dev/vdb2 //创建扩展单元为16MiB的卷组(目前练习题要求),之后可以用vgdisplay查看PE的大小创建逻辑卷:
lvcreate -L 大小 -n 名称 卷组名 lvcreate -l PE个数 -n 名称 卷组名lvcreate -n mylv -L 800M /dev/myvg //正常创建lvcreate -n mylv -l 50 /dev/myvg //按照扩展单元的数量创建(目前练习题要求),之后可以用vgs查看vgs // 查看邏輯卷扩展逻辑卷:
lvcreate -L 大小 -n 名称 卷组名 lvcreate -l PE个数 -n 名称 卷组名lvextend -L 300M /dev/test/vo //将名字叫vo的逻辑卷扩容到300Mblkid /dev/test/vo //查看vo逻辑卷的文件系统lsblk //再查看该逻辑卷的挂载点xfs_growfs /vo //刷新大小,如果是xfs的文件系统resize2fs /vo //刷新大小,如果是ext的文件系统扩展卷组:
vgextend 卷组名 分区.. ..通知内核新的文件系统大小:
resize2fs /dev/卷组名/逻辑卷名 //适用于EXT2/3/4文件系统(blkid检查) xfs_growfs 逻辑卷名的挂载点//适用于XFS文件系统(blkid检查)逻辑卷的设备位置:
/dev/卷组名/逻辑卷名或者/dev/mapper/卷组名-逻辑卷名扫描磁盘LVM信息
[root@blue ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "myvg" using metadata type lvm2 Found volume group "test" using metadata type lvm2 Found volume group "rhel" using metadata type lvm2[root@blue ~]# pvscan PV /dev/vdb2 VG myvg lvm2 [1008.00 MiB / 208.00 MiB free] PV /dev/vdb1 VG test lvm2 [<2.00 GiB / <1.67 GiB free] PV /dev/vda2 VG rhel lvm2 [<29.00 GiB / 0 free] Total: 3 [<31.98 GiB] / in use: 3 [<31.98 GiB] / in no VG: 0 [0 ][root@blue ~]# lvscan ACTIVE '/dev/myvg/mylv' [800.00 MiB] inherit ACTIVE '/dev/test/vo' [336.00 MiB] inherit ACTIVE '/dev/rhel/swap' [<2.17 GiB] inherit ACTIVE '/dev/rhel/root' [<26.83 GiB] inherit[root@blue ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsr0 11:0 1 1024M 0 rom vda 252:0 0 30G 0 disk ├─vda1 252:1 0 1G 0 part /boot└─vda2 252:2 0 29G 0 part ├─rhel-root 253:0 0 26.8G 0 lvm / └─rhel-swap 253:1 0 2.2G 0 lvm [SWAP]vdb 252:16 0 10G 0 disk ├─vdb1 252:17 0 2G 0 part │ └─test-vo 253:2 0 336M 0 lvm /vo└─vdb2 252:18 0 1G 0 part └─myvg-mylv 253:3 0 800M 0 lvm vdc 252:32 0 10G 0 disk └─vdc1 252:33 0 500M 0 part /mnt[root@blue ~]#四,其他逻辑卷,分区概念
VDO卷
虚拟数据优化器,可以对数据进行重删过滤:
- VDO(Virtual Data Optimize)是RHEL8/Centos8上新推出的一个存储相关技术(最早在7.5测试版中开始测试),是Redhat收购的Permabit公司的技术。
- VDO的主要作用是节省磁盘空间,比如让1T的磁盘能装下1.5T的数据,从而降低数据中心的成本。
那vdo是如何实现:关键原理主要是重删和压缩,重删就是硬盘里拷贝来相同的数据,以前要占多份空间,现在只需要1份空间就可以了。类似我们在百度网盘中上传一个大型软件安装包,能实现秒传,其实是之前就有,所以无需再传一遍,也无需再占百度一份空间。另一方面是数据压缩,类似于压缩软件的算法,也可以更加节省磁盘空间。
VDO是一个内核模块,目的是通过重删减少磁盘的空间占用,以及减少复制带宽,VDO是基于块设备层之上的,也就是在原设备基础上映射出mapper虚拟设备,然后直接使用即可,功能的实现主要基于以下技术。
- 1)零区块的排除:在初始化阶段,整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除),把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理。
- 2)重复数据删除:在第二阶段,对于输入的数据会判断是不是冗余数据(在写入之前就判断),这个部分的数据通过UDS内核模块来判断(Universal Deduplication Service),被判断为重复数据的部分不会被写入,然后对元数据进行更新,直接指向原始已经存储的数据块即可。
- 3)压缩:一旦消零和重删完成,LZ4压缩会对每个单独的数据块进行处理,然后压缩好的数据块会以固定大小4KB的数据块存储在介质上,由于一个物理块可以包含很多的压缩块,这个也可以加速读取的性能。
vdo基本操作:
- vdo create --name=VDO卷名称 --device=设备路径 --vdoLogicalSize=逻辑大小
- vdo list
- vdo status -n VDO卷名称
- vdostats [--human-readable] [/dev/mapper/VDO卷名称]
- vdo remove -n VDO卷名称
交换分区
相当于win的虚拟内存,在物理内存不足时借用硬盘空间,硬盘中预先划分一定的空间,然后将把内存中暂时不常 用的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设计目的是为了解决真实物理内存不足的问题。 但由于交换分区毕竟是通过硬盘设备读写数据的, 速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源.
交换分区:虚拟内存,一般设置成物理内存的1~2倍,<16G
- 格式化交换分区
- 启用/停止控制:
- 查看交换分区使用情况:
五,文件系统的挂载方式
1)手动挂载:
mount 设备路径 挂载点目录
2)开机自动挂载:
- 修改 /etc/fstab 配置文件
- 设备路径 挂载点目录 文件系统类型 defaults,_netdev 0 0
3)半自动挂载(已经配置好/etc/fstab):
- mount 设备路径
- mount 挂载点目录
4)触发挂载(按需自动挂载):autofs服务
通过部署autofs服务,可以代替管理员按需、自动完成以下任务:
- 1)当有用户需要使用 /rhome/ 目录下的 ldapuser0 子目录时,提前创建此目录,并将服务器上的 :/rhome/ldapuser0 挂载到本机的 /rhome/ldapuser0
- 2)当用户不再使用 /rhome/ 目录下的 ldapuser0 子目录时,自动卸载此目录上已挂载的资源,并删除此目录
5)Demo
showmount -e server1yum -y install autofs nfs-utils 安装所需软件包vim /etc/auto.master 修改主配置文件/rhome /etc/rhome.rule 在第一行添加,/rhome是在本地什么位置作为远程资源的挂载目录,/etc/rhome.rule是远程资源配置文件所在路径,可以自定义vim /etc/rhome.rule 修改上一步定义的远程资源配置文件,添加以下内容:ldapuser0 -fstype=nfs 172.25.0.254:/rhome/ldapuser0 定义账户、文件系统类型、远程资源路径systemctl restart autofs 重启服务ls /rhome 查看原本没有的/rhome目录,发现已经自动生成ls rhome/ldapuser0 再查看里面的内容,报权限错误 ,正常,已经激活自动挂载ls /rhome 再次查看目录,已经看到远程资源,成功六,实战
调整逻辑卷大小:
将逻辑卷 vo 及其文件系统大小调整到 300MiB。确保文件系统内容保持不变。
[root@blue ~]# lvscan //找出要扩展的逻辑卷 [root@blue ~]# lvextend -L 300MiB /dev/test/vo //扩展逻辑卷 [root@blue ~]# blkid /dev/test/vo //检查文件系统格式 [root@blue ~]# xfs_growfs 逻辑卷对应的挂载点 //适用于 XFS 文件系统 或者 [root@blue ~]# resize2fs 逻辑卷对应的挂载点 //适用于 EXT2/3/4 文件系统分区添加交换分区:
为你的系统额外添加一个 512MiB 的交换分区,此交换分区应在系统启动时自动挂载,不要删 除或以任何方式改动系统上原有的交换分区。
[root@blue ~]# fdisk /dev/vdb //修改磁盘 vdb.. ..Command (m for help): n //添加新分区Partition number (2-128, default 2): //直接回车(默认)First sector (4194304-20971486, default 4194304): //直接回车(默认)Last sector, *sectors or +size{K,M,G,T,P} (4194304-20971486,default 20971486): +512MCreated a new partition 2 of type 'Linux filesystem' and of size 512 MiB.Command (m for help): w //保存分区表,并退出The partition table has been altered.Syncing disks.[root@blue ~]# partprobe /dev/vdb //刷新分区表[root@blue ~]# mkswap /dev/vdb2 //格式化自建分区 vdb2[root@blue ~]# vim /etc/fstab/dev/vdb2 swap swap defaults 0 0[root@blue ~]# swapon -a //启用 fstab 中的交换设备[root@blue ~]# swapon -s //查看交换分区信息分区创建卷组逻辑卷:
根据以下要求,创建新的逻辑卷:
- 1)逻辑卷的名字为 mylv,属于 myvg 卷组,大小为 50 个扩展单元
- 2)卷组 myvg 中的逻辑卷的扩展块大小应当为 16MiB
- 3)使用 vfat 文件系统将逻辑卷 mylv 格式化
- 4)此逻辑卷应当在系统启动时自动挂载到/mnt/mydata 目录下
使用vdo创建 VDO 卷
根据如下要求,创建新的 VDO 卷:
- 1)使用未分区的磁盘(/dev/vdc)
- 2)此 VDO 卷的名称为 myvdo
- 3)此 VDO 卷的逻辑大小为 50G
- 4)此 VDO 卷使用 xfs 文件系统格式化
- 5)此 VDO 卷在系统启动时自动挂载到/vblock 目录下