当前位置: 首页 > 工具软件 > Stratis > 使用案例 >

tuend\stratis\vdo总结和案例

潘银龙
2023-12-01

1、tuned 调优系统

系统管理员可以基于多种用例工作负载来调整各种设备设置,以此优化性能。tuned守护进程会利用反映特定工作负载要求的调优配置文件,以静态和动态量子方式应用调优调整。

配置静态调优tuned守护进程会在服务启动时或选择新的调优配置文件时应用系统设置,静态调优会对配置文件中由tuned在运行时应用是预定义kernel参数进行配置,对于静态调优而言,内核参数是针对整体性能预期二设置的,不会随着活跃度的变化而进行调整。

配置动态调优对于动态调优而言,tuned守护进程会监视系统获得,并根据运行时行为的变化来调整设置。从所选调优配置文件中声明的初始设置开始,动态调优会不断进行调优调整以实验当前工作负载。tuned守护进程会监视组件的活动并调整参数设置,以最大限度提升高活动量期间的性能,并在低活动量期间降低设置值。tuned守护进程江实验遇到调优配置文件中提供的性能参数,安装并企业tuned。默认情况下,红帽Linux8 的最小安装中包含并企业了tuned软件包。要收到安装并启用该软件包:

[root@localhost hh]# yum install tuned -y



[root@localhost hh]# tuned-adm active list off profile recommend verify

查看tuned支持配置

选择调优配置文件

tuned应用提供的配置文件分为一下几种类型: 节能型配置文件

性能提升型配置文件

性能提升型配置文中包括侧重于一下方面配置文件: 存储和网络的低延迟

存储和网络的高吞吐量

虚拟机性能

虚拟化主机性能

调优配置文件用途
均衡非常适合需要在节能和性能之间进行折衷的系统
desktop从balanced配置文件衍生而来。加快交互式应用响应速度
throughput-performance调优系统,以获得最大吞吐量
latency-performance非常适合需要牺牲能耗来获取最低延迟的服务器系统
网络延迟从latency-performance配置文件中衍生而来,应用其他网络调优参数,以获得最大网络吞吐量。
网络吞吐量从throughput-performance配置文件衍生而来。应用其他网络调优参数,以获得最大网络吞吐量
节能调优系统,以最大程度实现节能
oracle基于throughput-performance配置文件,针对oracle数据库负载进行优化
virtual-guest当系统在虚拟机上运行时,调优系统以获得最高性能
virtual-host当系统充当虚拟机的主机时,调优系统以获得最高性能感

从命令行管理配置文件

tuned-adm命令可用于更改tuned守护进程的设置,tuned-adm命令可以查询当前设置,列出可用的配置文件,为系统推荐调优配置文件,直接更改配置文件或关闭调优。

系统管理员使用tuned-adm active来确定当前获得的调优配置文件

[root@localhost hh]# tuned-adm active Current active profile: virtual-guest

tuned-adm list命令列出所有可用的调优配置文件,包括内置的配置文件和系统管理员创建的自定义调优配置文件

[root@localhost hh]# tuned-adm list
​
Available profiles:
​
- accelerator-performance     - Throughput performance based tuning with disabled higher latency STOP states
- balanced                    - General non-specialized tuned profile
- desktop                     - Optimize for the desktop use-case
- hpc-compute                 - Optimize for HPC compute workloads
- intel-sst                   - Configure for Intel Speed Select Base Frequency
- latency-performance         - Optimize for deterministic performance at the cost of increased power consumption
- network-latency             - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput          - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- optimize-serial-console     - Optimize for serial console use.
- powersave                   - Optimize for low power consumption
- throughput-performance      - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest               - Optimize for running inside a virtual guest
- virtual-host                - Optimize for running KVM guests
  Current active profile: virtual-guest

更改配置命令

[root@localhost hh]# tuned-adm profile +指令

使用tuned-adm profile profilename可以将活动的配置文件切换为更符合系统当前调优要求的其他配置文件

[root@localhost hh]# tuned-adm profile throughput-performance 
[root@localhost hh]# tuned-adm active 
Current active profile: throughput-performance

tuned-adm命令可以为系统推荐调优配置文件,该机制用于在安装后确定系统的默认配置文件

[root@localhost hh]# tuned-adm recommend 
virtual-guest

注意:

tuned-adm recommend的输出基于各种系统特征,包括系统是否为虚拟机以及在系统安装期间选择的其他预定义列别

要恢复当前配置文件所做的设置更改,可切换到另一个配置文件或停用tuned守护进程。利用

tuned-adm off 关闭tuned调优活动

[root@localhost hh]# tuned-adm off
[root@localhost hh]# tuned-adm active
No current active profile.

2、vdo(Virtual Data Optimize)虚拟数据优化

vdo时一个Linux设备映射器驱动程序,它可以减少块设备上的磁盘空间使用,同时最大限度减少数据重复,从而节省磁盘空间,甚至提高数据吞吐量,vdo包括两个内核模块:kvdo模块用于以透明的方式控制数据压缩,uds则可用于重复数据删除。

vdo层位于现有块存储设备(如RAID设备或本地磁盘设备)的顶部。这些块设备也可以时加密设备。存储层(如LVM逻辑卷和文件系统)位于vdo设备之上

vdo处理数据的三个阶段:

1、零块消除将过滤掉仅包含零(0)的数据块.且仅在元数据中记录这些块的信息,非零数据块髓即被传递到下一一个处理阶段。该阶段将启用VDO设备中的精简配置功能。( 整块为0的会被元数据记录下来,这个可以用水杯里面的水和沙子混合的例子来解释,使用滤纸(零块排除) , 把沙子(非零空间)给过滤出来,然后就是下一个阶段的处理重复数据号。

2、重复数据删除将去除冗余的数据块,在创建相同数据的多个副本时, VDO会检测重复数据决并心元a 据,以便使用这些重复块来引用原始数据块,而不会创建冗余数据块。通用重复数据删除服务(UDS)内核模块将通过其维护的元数据来检查数据的冗余。该内核模块是作为VDO的一部分而提供的。

3、最后-一个阶段是压缩,kvdo 内核模块使用LZ4压缩对块进行压缩,并以4 KB块进行分组。

实施虚拟数据优化器

利用VDO创建的逻辑设备被称为VDO卷。VDO卷与磁盘分区类似:您可以将这些卷格式化为所需的文件系统类型,并像常规文件系统那样进行挂载。此外,您还可以将VDO卷用作VM物理卷.

要创建VDO卷,请指定块设备以及VDO向用户显示的逻辑设备的名称。您可以指定VDo卷的逻辑大小可选), VDO卷的逻辑大小可以大于实际块设备的物理大小。

由于VDO卷采用了精简配置,因此用户只觴到正在使用的逻辑空间.而无法了解实际可用的物理空间。如果在创建卷时未指定逻辑大小。则VDO会将实际物理大小视为卷的逻输大小,这种采用1:1的比率映射逻辑大小与物理大小的方式有利于提高性能,但同时也会降低存储空间的使用效率。应根据您的基础架构要求来确定是优先考虑性能还是空间效率。

假设我们将从重复数据删除中至少得到3:1的减少,对于大多数的数据,这是相当保守的,但如果你的数据没有很多重复的,那么比率应该是不同的。日志文件和其他纯文本文件通常可以很好地进行重复数据删除,可能会得到10:1甚至更的重复数据删除率.但是二进制文件,如枧频、音频威庄缩包。将远远低于3:1 ,甚至在某些情况下1:1.这种情况下不建议使用vdo卷。

当VDO卷的逻辑大小超过实际物理大小时,应使用vdostats --verbose 命令主动监控誊统计信息,以查实际使用情况。

实验

1.安装VDO模块,需要的软件包是kmod-kvdo vdo

[root@localhost hh]# yum install kmod-kvdo vdo

2.创建VDO卷

# vdo create --name=vdo1 --device=/dev/sdd --vdoLogicalSize=20G

3.分析- -个VDO卷( deduplication重复删除数据compression压缩)

# vdo status --name=vdol
# ydo status --name=vdo1 | grep Deduplication
# ydo status --name=vdo1 | grep Compression

4.给vdo1-个xfs文件系统,之后挂载到/mnt/vdo1上

#mkfs xfs -K /dev/mapper/vdo1
##-K选项可防止立即丢弃文件系统中未使用的块,从而使命令返回更快

使用udevadm命令注册新设备节点htps//blog. csdn.net/li wen01/artile/details/89435306

#udevadm settle
#mkdir /mnt/vod1

挂载使用

#mount /dev/mapper/vdo1 /mnt/vdo1/

5.使用vdostats命令查看卷的初始统计信息和状态

# vdostats --human-readable
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 10.0G 4.0G 4.0G 50% 98%

注意VDO创建卷时有3-4G已经使用,它是创建时就会为自己保留3-4G此外Space saveing字段中98%表示您尚未在卷中创建任何内容构成了所有节省的卷空间。

3、Stratis管理分层存储

通过Stratis,便捷的使用精简配置(thin provisioning),快照(snapshots)和基于池(pool-based )的管理和监控等高级存储功能;

Stratis是-一个卷管理文件系统volume-managing filesystem (VME) , 类似于ZES和Btrfs.它使用了存储“池”的核心思想,该思想被各种VMF和形如LVM的独立卷管理器采用。使用一个或多个硬盘(或分区)创建存储池,然后在存储油中创建卷volume.与使用fdisk 或GPared执行的传统硬盘分区不同,存储池中的卷分布无需用户指定。

VMF更进一步与文件系统层结合起来。用户无需在卷上部署选取的文件系统.因为文件系统和卷已经被合并在一起,成为一个概念上的文件树( ZFS称之为数据集dataset . Brtfs称之为子卷subvolume , Stratis称之为文件系统) .文件数据位于存储池中,但文件大小仅受存储池整体容量限制。

换一个角度来看:正如文件系统对其中单个文件的真实存储块的实际位置做了-层抽象abstract .而VMF对存储中单个文件系统的真实存储块的实际位置做了一层抽象。

基于存储池.我们可以启用其它有用的特性。特性中的一一部分理所当然地来自典型的VMF实现implementation,例如文件系统快照,毕寬存储池中的多个文件系统可以共享物理数据块physical data block ;冗余redundancy。分层.完整性integrity等其它特性也很符合逻辑.因为存储池是操作系统中管理所有文件系统上述特性的重要场所。

上述结果表明,相比独立的卷管理器和文件系统层. VMF的搭建和管理更简单,启用高圾存储特性也更容易。

1.将物理磁盘加入到存池中

2.文件系统是通过<情简配置>构建在池中

3.文件系统是构建在池中:那么文件 系统的空间到底有多大?

通过精简配置的方式构建的

对于文件系统大小:使用大小, 就是你存健数据的大小

意义:最开始10M,随着你的数据量的写入,文件系统的使用量越来越大

过程是一个动态的过程,而不再像使用LV- 样(LV大小是固定的,空间不够人为的去扩容)

扩容的过程是动态的,你往文件系统写数据,你写多少就占用多少空间

  1. stratis是通过元数据来管理,不要人为分区和格式化。

5、对于stratis 而言有stratis-c1i,还有相对应的服务stratisd. service

stratis-c11 通过D-BUS和stratisd. services 进行通信

案例:新增两块5G硬盘

1、配置yum源,安装软件包

[root@kongd ~]# tail -1 /etc/fstab
/dev/sr0 /media/cdrom iso9660 defaults 0 0
[root@kongd ~]# mkdir /media/cdrom
[root@kongd ~]# mount -a
[root@kongd ~]# cat /etc/yum.repos.d/rhel8.repo
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
gpgcheck=0
[root@kongd ~]# dnf install -y stratisd stratis-cli

2、启动stratisd服务

[root@kongd ~]# systemctl enable --now stratisd.service
[root@kongd ~]# systemctl is-enabled stratisd.service
enabled

3、创建池

[root@kongd ~]# stratis --version
1.0.0
[root@kongd ~]# stratis --help
usage: stratis [-h] [--version] [--propagate]
{pool,blockdev,filesystem,fs,daemon} ...
Stratis Storage Manager
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--propagate Allow exceptions to propagate
subcommands:
{pool,blockdev,filesystem,fs,daemon}
pool Perform General Pool Actions
blockdev Commands related to block devices that make up the
pool
filesystem (fs) Commands related to filesystems allocated from a pool
daemon Stratis daemon information
[root@kongd ~]# stratis pool --help
usage: stratis pool [-h] {create,list,destroy,rename,add-data,add-cache} ...
optional arguments:
-h, --help show this help message and exit
subcommands:
{create,list,destroy,rename,add-data,add-cache}
create Create a pool 创建一个池
list List pools 列出池
destroy Destroy a pool 销毁一个池
rename Rename a pool 重命名
add-data Add one or more blockdevs to an existing pool for use
as data storage 增加物理设备
add-cache Add one or more blockdevs to an existing pool for use
as cache 增加缓存
[root@kongd ~]# stratis pool create redhat /dev/nvme0n2
# 池的名字redhat /dev/nvme0n2--池中加入的设备
[root@kongd ~]# stratis pool list
Name Total Physical Size Total Physical Used
redhat 5 GiB 52 MiB

4、构建文件系统
对于stratis管理的存储分层而言,文件系统是构建在池中的
 

[root@kongd ~]# stratis filesystem create redhat rhce
[root@kongd ~]# stratis filesystem list
Pool Name Name Used Created Device UUID
redhat rhce 546 MiB Jan 08 2020 00:15 /stratis/redhat/rhce
fe32e43bafa046d8b82210bcd7616ac1

5、挂载
 

[root@kongd ~]# mkdir /mnt/stratis
[root@kongd ~]# mount /stratis/redhat/rhce /mnt/stratis
[root@kongd ~]# df -hT | grep /mnt/stratis
永久挂载
[root@kongd ~]# tail -1 /etc/fstab
/stratis/redhat/rhce /mnt/stratis xfs defaults 0 0

6、扩容
 

[root@kongd ~]# stratis pool add-data redhat /dev/nvme0n3
[root@kongd ~]# stratis pool list
Name Total Physical Size Total Physical Used
redhat 10 GiB 602 MiB
写入数据
[root@kongd ~]# dd if=/dev/zero of=/mnt/stratis/file bs=1G count=5
记录了5+0 的读入
记录了5+0 的写出
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 13.4471 s, 399 MB/s

 类似资料: