HCIA-存储虚拟化

news2024/11/25 11:54:59

1、虚拟化概述

KVM是所有云平台的底座,虚拟化是所有云的基础,虚拟化只提供基础架构,云可以提供服务。
CNA是个定制的欧拉系统EulerOS,基于centos内核只保留和虚拟化相关的代码,CNA默认已经部署好kvm虚拟化的软件。CNA=迷你版欧拉系统EulerOS+kvm
在物理服务器上安装CNA操作系统,这台物理服务器就具备了虚拟化能力,可以将底层的物理资源如存储、计算、网络资源进行虚拟化,然后再提供给上层的业务使用。
在这里插入图片描述
Guest OS 虚拟机操作系统
Guest Machine 虚拟机
Hypervisor 虚拟化软件层/虚拟机监控机(Virtual Machine Monitor,VMM)
(对虚拟机的所有操作都是由这个虚拟化中间层实现,控制虚拟机的创建、删除、开启关闭等等)
Host OS 运行在物理机之上的OS
Host Machine 物理机
在这里插入图片描述

2、虚拟化历史

1964年,IBM就在自己的大型机上去尝试虚拟化
1972年,IBM推出实现了大型机上的虚拟机
1993年,IBM推出可升级的POWER并行系统,这是第一款采用RS/6000技术,基于微处理器的超级计算机。
1998年,著名的x86仿真模拟器Bochs发布。
1998年,VMware成立,1999年推出了可以流畅运行的商业虚拟化软件VMware Workstation。从此虚拟化技术终于走下了大型机的神坛。
1999年,IBM在AS/400上第一次提出了LPAR(Logical Partition,逻辑分区)虚拟化技术。
2000年,Citrix(思杰)桌面虚拟化产品发布。
2002年,Xen正式开源,后被Citrix(思杰)收购。
2004年,IBM发布了虚拟化解决方案APV(Advanced Power Virtualization),支持资源共享。该方案在2008年改名为PowerVM。
2005年,Xen 3.0.0发布,该版本可以在32位服务器上运行,是第一个支持Intel VT-x的虚拟机监控程序。
2006年,以色列的创业公司Qumranet在完成了虚拟化Hypervisor基本功能、动态迁移以及主要的性能优化之后,正式对外宣布了KVM(Kernel-based Virtual Machine,基于内核的虚拟机)的诞生。
2006-至今,云计算与大数据时代。
2007年,德国InnoTek公司开发了VirtualBox虚拟化软件,后被美国甲骨文Oracle收购。
2008年,Linux Container(LXC)发布0.1.0版本,可以提供轻量级的虚拟化。
2010年,红帽发布RHEL 6.0,这个版本将默认安装的Xen虚拟化机制彻底去除,仅提供KVM虚拟化机制。红帽在5.0加入Xen虚拟化,5.4版本xen和kvm虚拟化并行。
2013年,Docker推出(容器技术是内容空间的隔离、进程级别隔离,虚拟化是资源的隔离)
2015年,Kubernetes v1.0发布,进入云原生时代。
xen 和 kvm 区别,xen和kvm 都是开源虚拟化
2001-2002 Xen ,2007年被思杰收购了。
2007年,红帽RHEL5.0 加入xen,红帽刚加入xen同年xen被思杰收购。
2006年的时候,出现了kvm基于内核虚拟化,后被红帽收购。
RHEL5.0-5.4 只有xen
从RHEL5.4-6.0 xen和kvm两个虚拟化产品并行。
RHEL6.0红帽剔除了 xen虚拟化。
为什么红帽选择kvm?
1.xen虚拟化没有给红帽带来更多的收益
2.xen 被思杰收购了
3.最重要的:xen不愿意把源码内置到红帽源码里面。
这就意味着红帽每发布一个产品,都要去维护两套内核。
一套base基础内核,一套带了xen的内核。
内核维护量非常大,非常不方便。

Xen虚拟化(当年还没有硬件辅助的时候),Xen虚拟化需要修改guest os(虚拟机操作系统)内核源码的,以支持它本身的虚拟化特性,意味着xen当年只支持linux(开源),不支持windows(闭源)。
Kvm虚拟化(Kernel-based Virtual Machine)基于内核的虚拟机。Kvm已经作为了红帽内核源码的一部分了,内核的维护很方便。不修改客户机源码,不仅支持linux,而且也支持windows。
VMware虚拟化闭源的,不讨论。xen和kvm 是开源虚拟化。

思杰收购了xen,赞助了一家开源社区 cloudstack
红帽收购了kvm,赞助了一家开源社区 openstack
Hypervisor(VMM)分类
Hypervisor 虚拟化软件层/虚拟机监控机(Virtual Machine Monitor,VMM)
(对虚拟机的所有操作都是由这个虚拟化中间层实现,控制虚拟机的创建、删除、开启关闭等等)
CNA,计算节点代理,安装了CNA.ISO的物理服务器,这台物理服务器就具备了虚拟化能力,它就能创建虚拟机了。
1、裸金属型,VMM跑在物理硬件上(VMM虚拟化层是作为操作系统一部分直接运行在物理硬件上)
2、宿主型,VMM跑在物理服务器操作系统上(在物理硬件上跑的物理服务器操作系统,安装的虚拟化软件充当VMM虚拟化层,VMM虚拟化层是在物理服务器操作系统之上,不直接属于物理服务器操作系统)
在这里插入图片描述
虚拟化技术分类
1、二进制翻译技术VMware率先实现的,本质就是通过VMM来回翻译,里面的虚拟机永远不知道自己是个虚拟机,所以二进制翻译(Binary Translation(BT))性能可能不是很好。BT就是一个软件实现的完全虚拟化。
2、早期(xen)半虚拟化只支持 linux(开源),而不支持windows(闭源)。
3、硬件辅助虚拟化:直接在cpu底层修改cpu架构,cpu会直接捕获那些出现漏洞的指令集,通过cpu硬件辅助执行,效率非常高。Vmware 安装 64位操作系统,如果未开启vt-x或amd-v cpu辅助虚拟化,则是无法创建虚拟机的。VMware支持BT实现的完全虚拟化为什么还要开启硬件辅助虚拟化,因为考虑性能问题,必须开启。
注意:半虚拟化是早期xen的解决方案,但是有了cpu硬件辅助虚拟化之后,xen虚拟化也通过cpu硬件辅助虚拟化,可以实现完全虚拟化。所以现在的XEN:靠自己支持半虚拟化,靠cpu支持全虚拟化。
二进制翻译和cpu硬件辅助:完全虚拟化(软件完全虚拟化/硬件辅助完全虚拟化)
Xen:早期半虚拟化代表
全虚拟化:特权和敏感指令集都是由VMM来传递,来回传递翻译,效率低。不知道自己是个虚拟机。
半虚拟化:guest os 明确自己是虚拟机操作系统,修改内核,要求系统必须开源,指令无需中间虚拟化的封装解码操作,速度相对比较快。性能好一些。
硬件辅助:修改cpu底层架构,cpu直接捕获敏感指令进行执行,硬件执行效率最高(现在计算机默认开启使用硬件辅助虚拟化),主板bios未开启虚拟化报错如下图
在这里插入图片描述

3、存储虚拟化

建议VRM部署在CNA的本地硬盘(本地硬盘做RAID,VRM不会迁移),业务虚拟机一般不安装在本地磁盘而是安装在共享磁盘,其他业务虚拟机比如windows2016, CentOS建议部署在共享存储中,方便未来迁移。CNA本地所有磁盘坏了,只会影响VRM,不会影响业务虚拟机。
在这里插入图片描述
在这里插入图片描述
存储组网(SAN)
在这里插入图片描述
模拟搭建一个存储
华为开发了一个存储仿真器。Ocenstor Dorado V3/V6
V3版本:开发的有 vmware 版本,也有 fusioncompute版本
V6版本:没有开发vmware版本,开发hyper-v版本(注意:如果你在本机win上启用了hyper-v,那么它对cpu虚拟化是独占的,未来是不能在vmware上同时开启cpu虚拟化的。),也开发了fusioncompute版本,还有公有云版本。
V3和v6界面差别非常大,但是流程是一样的。
V6在hyper-v上的搭建:https://blog.51cto.com/cloudcs/5248583

V3仿真器磁盘文件,把仿真器做成了一个磁盘文件,加载这个文件进行仿真器安装,磁盘文件有问题重新解压。
V3仿真器License文件。

先创建两个文件夹storage_disk(保存解压出来的仿真器磁盘文件)和storage_vm(保存虚拟机),再创建虚拟机。
注意:必须是Workstation 10.x版本
在这里插入图片描述
在这里插入图片描述
必须是SUSE Linux Enterprise 11 64位
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
内存至少8G
在这里插入图片描述
我选择的是仅主机(要注意自己的仅主机对应的子网ip是什么。)
在这里插入图片描述
使用现有虚拟磁盘storage_disk
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里的20G是仿真器对应的磁盘,还要再添加一块磁盘40G,用于模拟存储空间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再另外添加5块仅主机网卡。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检查CD/DVD光驱,这里不需要镜像。
在这里插入图片描述
开启storage_vm虚拟机,安装存储。
在这里插入图片描述
这个ip地址段,输入虚拟机仅主机的网段内ip(这里是设置mgmt存储管理口ip)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待加载,根据电脑性能,快的2-5分钟,慢的15-30分钟。
当看到提示 Old Password 输入旧密码的时候,表示安装成功。
开始修改密码
在这里插入图片描述
在这里插入图片描述
可以通过 show port ip 这个命令查看mgmt存储管理口ip。但是v3存储在vmware上配置后,是无法显示的。
登录 https://11.1.1.10:8088/ https并带上8088端口号才能登录。
调整设备时间,因为存储仿真器要导入license,官方提供的这个v3 license时间截止日期 2019年。所以手工把设备时间改一下,改成2019年之前(生产环境不用改)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
导入license
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
它是模拟仿真器,是个虚拟的仿真器,不能对它进行关闭重启只能挂起暂停,一旦关闭重启这个存储就损坏了,得重新安装了,所以建议做快照,后面有问题就恢复快照又是一台新的存储。
存储配置
在这里插入图片描述
1.配置存储业务IP地址,11.1.1.100
2.创建硬盘域
3.创建存储池
4.创建LUN(LUN可理解成盘符,像C盘D盘)
5.创建LUN组(方便映射管理)
6.创建主机(存储里面的逻辑主机)
业务主机通过存储里面的逻辑主机跟lun组映射,业务主机和存储里面的逻辑主机一一关联,把业务主机里面的iqn号加入到存储里面的逻辑主机,存储根据存储里面的逻辑主机的iqn号知道是哪台业务主机(iqn号唯一的)
7.创建主机组
8.创建映射视图(LUN组和主机组的映射)
在这里插入图片描述
在这里插入图片描述
配置存储业务ip
在这里插入图片描述
创建硬盘域(模拟出8块硬盘这是虚拟的,实际只有一块40G的硬盘)
在这里插入图片描述
创建存储池
在这里插入图片描述
创建LUN
注意:存储仿真器,单个LUN最大不得超过5GB
在这里插入图片描述
创建LUN组
把刚才创建的lun加入到这个lun组里面
在这里插入图片描述
创建主机(这里的操作系统只是个备注信息),一直下一步
在这里插入图片描述
创建主机组
把刚才创建的逻辑主机加入到这个主机组
在这里插入图片描述
创建映射视图,是LUN组和主机组的映射(不需要那个创建端口组)
在这里插入图片描述
在这里插入图片描述

Windows访问(搜索iSCSI)

在这里插入图片描述
将上层业务主机的iqn号(类似于身份id),在上层业务主机发起连接的时候加入到逻辑主机(windows001)里面。
在这里插入图片描述
发起连接(业务主机加载LUN组中的LUN)
在这里插入图片描述
在这里插入图片描述
这里就意味着电话打通了,但是存储不知道你是谁,这时候需要把你的iqn号(身份id)加入到逻辑主机里面(windows001)
在这里插入图片描述
在这里插入图片描述
打开Windows的计算机管理
在这里插入图片描述
右键单击,重新扫描
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除,脱机,在存储里把iqn号移除,在重新扫描磁盘。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
问题总结
1.注意:IQN号不可以是中文
2.存储怎么关闭(不可以关闭/不可以重启,但可以挂起暂停)

linux访问存储

和windows流程一样,可以再创建一个lun、lun组、主机、主机组、映射视图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发起连接(向存储业务口ip发起连接) 连接存储业务口先ping下存储业务口11.1.1.100
[root@jumpserver ~]# iscsiadm -m discovery -t st -p 11.1.1.100 向存储业务口ip发起连接
-m mode模式:discovery/node/fw/session等
-t type类型:send target 发送目标st
-p portal ip[:port] ip加端口号(端口号可选)
-l: login 登录
[root@jumpserver ~]# iscsiadm -m node -l 登入
[root@jumpserver ~]# cat /etc/iscsi/initiatorname.iscsi 查看下iqn号
InitiatorName=iqn.1994-05.com.redhat:f341342db1
把业务主机的iqn号(身份id)加入到逻辑主机里面(linux002)
在这里插入图片描述
退出(-u)再登入( -l),刷新下才会识别到刚添加的硬盘/dev/sdb
[root@jumpserver ~]# iscsiadm -m node -u
[root@jumpserver ~]# iscsiadm -m node -l
[root@jumpserver ~]# lsblk 就读取到第二块硬盘/dev/sdb
[root@jumpserver ~]# fdisk /dev/sdb 分区
[root@jumpserver ~]# mkfs.xfs /dev/sdb1 格式化分区成想要的文件系统
[root@jumpserver ~]# mkdir /data
[root@jumpserver ~]# mount /dev/sdb1 /data
[root@jumpserver ~]# df -Th -T显示文件系统类型

4、存储的分类

按照存储组网类型
1、DAS(Direct Attached Storage)直连式存储,一台服务器连接一个存储,且存储无法共享使用。受距离限制。
在这里插入图片描述
2、NAS(Network Attached Storage)网络附加式存储,通过网络共享的方式来访问的。
NAS本身携带文件系统的,然后提供NFS协议(linux/unix)和CIFS协议(windows)。
文件共享平台(不会经常修改,而是经常浏览下载),用NAS,主打共享。
在这里插入图片描述
在这里插入图片描述
3、SAN(Storage Area Networks)存储区域网络,NAS和SAN都是可以通过网络进行共享的,不同的是文件系统所在的地方不同。NAS文件系统所在的地方是服务端(NAS存储本身机头),SAN文件系统所在的地方是客户端(linux/windows),如果你是linux客户端,文件系统应该是ext2/ext3/ext4/xfs ,如果是windows客户端,文件系统应该是 ntfs。
在这里插入图片描述
在这里插入图片描述
NAS主打的是共享(不会经常修改,而是经常浏览下载)。
但是SAN主打的就是大量读写,比如数据库业务场景。
SAN(FC-SAN/IP-SAN)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
按照存储形态
1、集中式
在这里插入图片描述
集中式存储的缺点:
孤立的存储资源,存储通过专用网络连接到有限数量的服务器;
集中式纵向扩容通过增加硬盘框实现,硬件控制器性能(单控制器带盘能力)成为瓶颈;
集中式存储横向扩容需要通过控制器全连接实现,硬件控制器性能成为扩容瓶颈;
集中式存储资源缺乏共享,存储设备和资源往往由不同厂家提供,设备之间无法进行资源共享,数据中心看到的是一个个孤立的存储池;
集中式存储采用集中式元数据管理方式,系统所能提供的并发操作能力将受限于元数据服务的性能,元数据服务也将会成为系统的性能瓶颈;
2、分布式
在这里插入图片描述
在这里插入图片描述
按照业务类型
1、块存储
只要是需要被格式化使用的存储(磁盘、移动硬盘,u盘等)都叫块存储。
发生大量的读写的场景,比如数据库业务场景。
直接访问,开销最小,效率最高。
成本高,扩展困难。
场景:企业数据库,Oracle等。
不管是什么存储,最终数据落脚点就在磁盘上,而磁盘就是块存储。
2、文件存储
更易管理,更易与应用对接。
具备一定扩展性,但限制较多
场景:企业内部应用整合,文件共享等。NAS
3、对象存储
结构扁平,近乎无限的容量扩展。
更加智能的自管理特性。
业界标准互联网协议,跨地域传输能力
场景:面向互联网服务的存储,归档、备份等。
在这里插入图片描述
对象存储是一种新兴存储技术,对象存储系统综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可靠性、跨平台性以及安全的数据共享的存储体系结构。对象存储与块存储、文件存储的对比如下:
1、块存储对存储层直接访问,开销最小,效率最高,速度最快。但成本最高,扩展困难。块存储采用iSCSI/FC协议,很难跨网络传输。适合的应用场景是企业数据库,如运行Oracle等;
2、文件存储是在块存储之上构建了文件系统,采用目录-目录-文件的方式组织数据,更容易管理。因为大多数应用程序都是对文件进行操作,因此文件存储更容易和应用系统对接。文件系统受目录树的限制,扩展性受限,一般最多扩展到几十PB。文件系统适用于企业内部应用整合,文件共享场景;
3、对象存储是在块存储之上构建了对象管理层,与文件系统相比,对象系统层是扁平的,扩展限制少,因此拥有近乎无限的扩展性。对象由唯一的Key,文件,数据(文件),元数据,自定义元数据构成,由于包含了自管理信息,更加智能。对象存储采用兼容标准的互联网协议接口,可以跨地域传输。对象存储适用于面向互联网服务的存储场景,以及企业内部的归档、备份场景。

5、链路冗余多路径

Windows安装多路径,OceanStor_UltraPath_31.2.0_Windows不支持win10,建议虚拟机中安装windows server 2012
在这里插入图片描述
假设H0口为A控的存储业务口(11.1.1.100),H3口为B控的存储业务口(11.1.1.101)。
创建lun、lun组、主机、主机组、映射视图。
业务系统主机多路径软件建议提前安装,因为安装多路径软件之后需要重启。
在这里插入图片描述
发起连接(向存储业务口ip发起连接) 连接存储业务口先ping下存储业务口11.1.1.101
在这里插入图片描述
在这里插入图片描述
把业务主机的iqn号(身份id)加入到逻辑主机里面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加入4条业务链路(4个存储业务口)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装多路径软件,业务系统主机多路径软件建议提前安装,因为安装多路径软件之后需要重启。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Linux安装多路径
发起连接(向存储业务口ip发起连接)
[root@jumpserver ~]# iscsiadm -m discovery -t st -p 11.1.1.100 向存储业务口ip发起连接
[root@jumpserver ~]# iscsiadm -m discovery -t st -p 11.1.1.101 向存储业务口ip发起连接
[root@jumpserver ~]# iscsiadm -m discovery -t st -p 11.1.1.102 向存储业务口ip发起连接
[root@jumpserver ~]# iscsiadm -m discovery -t st -p 11.1.1.103 向存储业务口ip发起连接
-m mode模式:discovery/node/fw/session等
-t type类型:send target 发送目标st
-p portal ip[:port] ip加端口号(端口号可选)
-l: login 登录
[root@jumpserver ~]# iscsiadm -m node -l 登入
[root@jumpserver ~]# cat /etc/iscsi/initiatorname.iscsi 查看下iqn号
InitiatorName=iqn.1994-05.com.redhat:f341342db1
把业务主机的iqn号(身份id)加入到逻辑主机里面
在这里插入图片描述
退出(-u)再登入( -l),刷新下才会识别到刚添加的硬盘/dev/sdb
[root@jumpserver ~]# iscsiadm -m node -u
[root@jumpserver ~]# iscsiadm -m node -l
[root@jumpserver ~]# lsblk 就读取到第二块硬盘/dev/sdb
[root@jumpserver ~]# fdisk /dev/sdb 分区
[root@jumpserver ~]# mkfs.xfs /dev/sdb1 格式化分区成想要的文件系统
[root@jumpserver ~]# mkdir /data
[root@jumpserver ~]# mount /dev/sdb1 /data
[root@jumpserver ~]# df -Th -T显示文件系统类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/774753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visutal Studio2022 如何使用Github copilot

visual studio 2019 升级最新版本的2019也并没有搜索到,直接升级到visual studio 2022,看发布介绍也是2022的copilot Copilot 是一款由 OpenAI 开发的基于 GPT 模型的代码生成工具,可帮助开发者更快地编写代码。如果想在 Visual Studio 中使…

基于大模型的属性操作生成高效训练数据

概述 这篇论文的研究背景是关于利用大型语言模型(LLM)生成高效训练数据的方法。 以往的方法通常是通过LLM生成新的数据,但缺乏对生成数据的控制,这导致了生成数据的信息不足以反映任务要求。本文提出了一种基于LLM的属性操作生成方法,通过精…

如何应对客户报价要求过低的情况?这些方案帮你化解危机!

有个客户在寄样品之前让报价,并且要求承诺价格必须低于15美金,业务员同意了,让客户把样板安排寄到中国,但是收到样品后发现客户的样品在侧面还有一块突出的部分,所以15美金太低了,无论如何也得18美金&#…

计组4——总线Plus IO

(CPU外部的)总线 用于连接computer3大模块(MC/GPUIO) CPU内部的片内总线判优由时序逻辑实现 composition& priority-judging 通信方式 CPU内部的片内总线用于取指、译码、执行、中断的数据通信; IO 总线分为控制线、数据线和地址线,对IO设备的…

Error:Invalid or corrupt jarfile xxx.jar

现象 上传jar包,执行报错:Error:Invalid or corrupt jarfile xxx.jar 解决办法 本地正常执行,上传服务器执行报错。排查发现是因为文件不完整导致,重新上传,比对文件大小,一致后重新执行成功&…

如何在电子设备行业运用IPD?

电子设备是指由集成电路、晶体管、电子管等电子元器件组成,应用电子技术(包括)软件发挥作用的设备,包括电子计算机以及由电子计算机控制的机器人、数控或程控系统等。电子设备基本解释为由微电子器件组成的电器设备。固定资产分类中的电子设备&#xff0…

【重温篇】八大排序——归并排序

思路 归并排序是一种经典的排序算法,采用分治法的思想。它将待排序的数组分成两个较小的子数组,分别对这两个子数组进行排序,然后将排好序的子数组合并成一个有序的数组。 归并排序的主要思路如下: 分解:将待排序的数…

JMETERbeanshell多种姿势获取目标值

beanshell通过vars方式取值 JMETER三种取值方法步骤_securitor的博客-CSDN博客 beanshell通过props方式取值 JMETER取值二_securitor的博客-CSDN博客 beanshell通过source方式取值 JMETER取值三_securitor的博客-CSDN博客 beanshell通过jar包方式取值 JMETER取值四_securitor的…

PHP客服系统-PhpWorkmanChat客服系统修改管理员密码

作为一款流行的开源PHP客服系统,基于thinkphp和workman,跨平台轻量级客服系统源码 管理员表是v2_admin 账户是admin,如果密码忘记了怎么办。可以直接修改数据库表v2_admin ,密码规则是md5(密码 加密盐) , 加密盐可以在…

STL源码刨析_stack _queue

目录 一. 介绍 1. stack 介绍 2. queue 介绍 二. 模拟实现 1. stack 模拟实现 2. queue 模拟实现 三. deque 1. deque 接口 2. 底层 一. 介绍 1. stack 介绍 stack(栈)是一种容器适配器,它提供了一种后进先出(LIFO&#xff0…

如何优化APP应用内的广告点击率?提升变现收益?

对于大部分广告主来说,广告点击率(CTR)越高越好,而点击率又与收益密切相关。如何优化点击率,让应用内的流量售卖收益最大化呢? 说到优化点击率,那么就一定要说说这个名词: 点击率&…

第五章 动态规划(一)——背包问题

文章目录 01背包问题完全背包多重背包分组背包背包练习题2. 01背包问题3. 完全背包问题4. 多重背包问题 I5. 多重背包问题 II9. 分组背包问题 01背包问题 n个物品,每个物品的体积为 v i v_i vi​,价值为 w i w_i wi​,每次只能选择一个物品放…

JavaScript的库——jquery

JavaScript的库——jquery 一、jQuery的hello 将代码写在一个闭包中 二、面试题: jQuery的ready函数和JavaScript的onload事件有什么区别? 是null,因为拿不到box,代码在后面,还没有执行。 所以需要将代码放在后面&am…

ControlNet新玩法!一键生成AI艺术二维码QR

AI绘画又又又又火出圈了!这波来源于AI人所发掘的ControlNet for QR Code 话不多说,看看效果图 这张看着极具个性的图像正是一个可以扫描的二维码,通过使用Stable Diffusion和Controlnet生成。由此定制生成个人艺术二维码,选择不同…

前端学习——JS进阶 (Day4)

深浅拷贝 练习 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…

Antd的Select组件二次封装

提示&#xff1a;Select组件二次封装的目的,是为了在系统里面更方便、简洁地使用Select 这是官方写的使用方法是: import React from react; import { Select } from antd;const handleChange (value: string) > {console.log(selected ${value}); };const App: React.FC …

信息泄露与大数据:隐私安全的挑战与对策

随着大数据时代的到来&#xff0c;我们生活的方方面面都与数据息息相关。然而&#xff0c;随之而来的信息泄露问题也日益严重&#xff0c;给个人隐私和数据安全带来了巨大挑战。本文将围绕信息泄露与大数据展开讨论&#xff0c;探讨其中的问题、原因以及如何应对。 山海鲸大屏 …

langchain +SQLDatabase+Mysql+OpenAI

通过langchain SQLDatabaseMysql来获取数据 参照:https://github.com/hwchase17/langchain/issues/2333 from langchain import OpenAI, SQLDatabase, SQLDatabaseChain from sqlalchemy import create_enginefrom common.keys import OPENAI_API_KEYengine create_engine(m…

Network Dissection 论文阅读笔记

Network Dissection 论文阅读笔记 1. 简介2. 网络刨析2.1 深度视觉表征的可解释性的测量步骤2.2 数据集2.3 可解释神经元评分 3. 实验3.1 对解释的人类评价3.2 Measurement of Axis-Aligned Interpretability3.3 理解层概念3.4 网络架构和监督3.5 训练条件 vs 可解释性3.6 网络…

【二等奖方案】基于人工智能的漏洞数据分类赛题「道可道,非常道」团队解题思路

2022 CCF BDCI 大赛 数字安全公开赛「基于人工智能的漏洞数据分类」赛题二等奖团队「道可道&#xff0c;非常道」战队获奖方案&#xff0c;赛题地址&#xff1a; http://go.datafountain.cn/s57 团队简介 本团队具有丰富的比赛和项目经验。在AI大赛上多次拿到Top成绩&#xf…