CN114253656A - 用于微服务工作负载的覆盖式容器存储驱动器 - Google Patents
用于微服务工作负载的覆盖式容器存储驱动器 Download PDFInfo
- Publication number
- CN114253656A CN114253656A CN202011604825.6A CN202011604825A CN114253656A CN 114253656 A CN114253656 A CN 114253656A CN 202011604825 A CN202011604825 A CN 202011604825A CN 114253656 A CN114253656 A CN 114253656A
- Authority
- CN
- China
- Prior art keywords
- command
- persistent volume
- capacity
- workload
- csi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45566—Nested virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
执行嵌套容器存储接口(CSI)驱动器的主机系统从工作负载接收第一命令,以创建持久卷。嵌套CSI驱动器将由工作负载用于创建持久卷的第一命令转换为由主机系统用于增加被分配给工作负载的先前生成的持久卷的容量的第二命令。将第二命令发送到主机系统的欠集群CSI驱动器,其中,第二命令使欠集群CSI驱动器增加先前生成的持久卷的容量。
Description
技术领域
本公开的各方面涉及微服务架构,并且更具体地涉及用于微服务工作负载的覆盖式容器存储驱动器。
背景技术
微服务架构是计算系统的架构样式,该计算系统的架构样式将应用程序构造为服务集合。该服务可以由不同的团队独立开发、测试和部署。微服务架构使得能够快速部署大型的、复杂的应用程序。
发明内容
根据本公开的一个方面,提供了一种方法,其包括:由执行嵌套容器存储接口(CSI)驱动器的主机系统的处理设备,从工作负载接收第一命令以创建持久卷;由所述嵌套CSI驱动器将由所述工作负载用于创建所述持久卷的所述第一命令转换为由所述主机系统用于增加被分配给所述工作负载的先前生成的持久卷的容量的第二命令;以及将所述第二命令发送到所述主机系统的欠集群CSI驱动器,其中,所述第二命令使所述欠集群CSI驱动器增加所述先前生成的持久卷的所述容量。
根据本公开的另一方面,提供了一种系统,包括:存储器;以及处理设备,所述处理设备可操作地耦合到所述存储器以:将持久卷分配给执行工作负载的执行环境;由欠集群容器存储接口(CSI)驱动器从在所述执行环境内执行的嵌套CSI驱动器接收第一命令,以修改被分配给所述工作负载的所述持久卷的容量;以及依据所述第一命令向卷管理组件发送第二命令以修改所述持久卷的所述容量,其中,所述第二命令使所述卷管理组件修改所述持久卷的所述容量。
根据本公开的又一方面,提供了一种包括指令的非暂时性计算机可读存储介质,所述指令在由主机系统的处理设备执行时使所述处理设备:由所述主机系统的所述处理设备生成用于执行工作负载的执行环境,其中所述执行环境包括嵌套容器存储接口(CSI)驱动器,所述嵌套CSI驱动器将从所述工作负载接收的第一命令转换为由所述主机系统使用的第二命令;以及将所述主机系统上的持久卷分配给所述执行环境,其中,依据由所述主机系统使用的所述第二命令,修改所述持久卷的容量。
附图说明
通过参考以下结合附图取得的描述,可以最好地理解所描述的实施例及其优点。这些附图决不限制本领域技术人员可以在不脱离所描述的实施例的精神和范围的情况下对所描述的实施例进行的形式和细节上的任何改变。
图1是示出了根据一些实施例的示例性计算机架构的框图。
图2是根据本公开的实施例的在微服务架构的主机系统上实例化虚拟机的示例的图示。
图3是根据本公开的实施例的从工作负载接收命令的主机系统的嵌套CSI驱动器的示例的图示。
图4是根据本公开的实施例的将调整大小命令发送到欠集群CSI驱动器的主机系统的嵌套CSI驱动器的示例的图示。
图5是根据本公开的实施例的主机系统的嵌套CSI驱动器的示例的图示,该嵌套CSI驱动器使得持久卷的增加的容量可供工作负载使用。
图6是根据本公开的实施例的响应于从工作负载接收删除持久卷命令而调整持久卷的大小的主机系统的嵌套CSI驱动器的示例的图示。
图7是根据本公开的实施例的主机系统的示例的图示,该主机系统的存储不足以调整被分配给虚拟机的持久卷的大小。
图8是根据本公开的实施例的将用于调整持久卷的大小的命令发送到第二主机系统的微服务架构的第一主机系统的网络存储驱动器的示例的图示。
图9是根据一些实施例的将用于创建持久卷的命令转换为调整大小命令的方法的流程图。
图10是根据一些实施例的修改被分配给执行环境的持久卷的容量的方法的流程图。
图11是根据一些实施例的生成用于工作负载的执行的执行环境的方法的流程图。
图12是根据一些实施例的发送命令以修改另一主机系统上的持久卷的容量的方法的流程图。
图13是根据本公开的一些实施例的可以执行本文描述的一个或多个操作的示例性装置的框图。
具体实施方式
在微服务架构上,应用程序可以由多个服务组成。这些服务及其相关联的工作负载可以在微服务架构的主机系统所支持的执行环境内执行。在实施例中,微服务架构的执行环境可以是虚拟机(VM)或容器。
在常规的微服务架构中,虚拟化技术被部署在主机系统的物理计算资源上,所述虚拟化技术用于生成VM和/或容器以执行不同的工作负载。为了协调各种执行环境对物理计算资源的使用,常规的微服务架构可以利用包括欠集群和过集群的集群管理运营商。欠集群可以对应于在支持执行环境的主机系统的物理计算资源(例如,裸机)上运行的最低协调水平。过集群可以对应于在微服务架构的执行环境内供应的集群管理运营商。例如,可以在主机系统所支持的执行环境中的一个内的容器中供应过集群。欠集群和过集群可以彼此通信,以通过在执行环境内执行的工作负载来协调主机系统的物理计算资源的使用。
在执行环境的实例化之前,欠集群可能具有现有的存储集群,该存储集群可以用于微服务架构的一个或多个主机系统的数据的存储。然而,在常规的微服务架构中,由于争用问题和/或缺少用于访问现有的存储集群所需的证书,因此过集群无法使用这些现有的存储集群。因为过集群无法确定欠集群正在使用哪些存储集群区域,所以过集群和欠集群可能会使用存储集群的相同区域,这可能导致数据丢失或损坏。为了避免这种情况,过集群创建新的存储集群,这会增加开销并降低主机系统和微服务架构的性能。
本公开的各方面通过利用过集群内的嵌套容器存储接口(CSI)驱动器,将从工作负载接收的命令转换为由欠集群和/或主机系统使用的命令,来解决上述和其它缺陷。当由执行环境正在执行的工作负载想要创建或删除持久卷时,嵌套CSI驱动器可以从工作负载接收命令。例如,当工作负载需要附加的容量来存储数据时,工作负载可以将命令发送到嵌套CSI驱动器以为数据存储创建新的持久卷。
然而,嵌套CSI驱动器可以将从工作负载接收的用于创建/删除持久卷的命令转换为由主机系统用于调整先前生成的持久卷的大小的命令,而不是根据接收到的命令来创建或删除持久卷。例如,嵌套CSI驱动器可以将从工作负载接收的用于创建新的持久卷的命令转换为调整大小命令,该调整大小命令增加由欠集群使用的先前生成的持久卷的容量。
在转换命令后,嵌套CSI驱动器可以向欠集群CSI驱动器发送转换后的命令以调整先前生成的持久卷管理器的大小。然后,欠集群CSI驱动器可以将调整大小命令发送到卷管理组件,诸如逻辑卷管理器或网络存储驱动器,该卷管理组件管理物理存储器到主机系统的持久卷的分配。然后,卷管理组件可以基于从欠集群CSI驱动器接收的命令来调整持久卷的容量的大小,以增加或减少可以由工作负载使用的先前生成的持久卷的容量。
通过使嵌套CSI驱动器转换从工作负载接收的命令,先前生成的欠集群的持久卷可由工作负载存取,而无需为该工作负载创建或删除单独的持久卷。通过减少为微服务架构的工作负载创建或删除的持久卷的数量,允许工作负载存取由欠集群使用的先前生成的持久卷减少了微服务架构的开销,从而提高了微服务架构的性能。
图1描绘了根据本公开的一个或多个方面的计算机系统架构100的说明性示例的高级组件图。本领域的技术人员将理解,其它计算机系统架构100是可能的,并且利用本发明的示例的计算机系统的实施方式不必限于由图1描绘的特定架构。
如图1所示,计算机系统架构100包括主机系统110a、b和客户端设备140。主机系统110a、b和客户端设备140包括一个或多个处理设备160、存储器170(该存储器可以包括易失性存储器设备(例如,随机存取存储器(RAM))、非易失性存储器设备(例如,闪速存储器)和/或其它类型的存储器设备、存储设备180(例如,一个或多个硬磁盘驱动器、外围组件互连[PCI]固态驱动器、独立磁盘冗余阵列[RAID]系统、网络附加存储[NAS]阵列等)以及一个或多个设备190(例如,外围组件互连[PCI]设备、网络接口控制器(NIC)、视频卡、I/O设备等)。在某些实施方式中,存储器170可以是不一致存取(NUMA),使得存储器存取时间取决于相对于处理设备160的存储器位置。应当注意,尽管为了简单起见,在图1中描绘了单个处理设备160、存储设备180和设备190,但是主机系统110a、b和客户端设备140的其它实施例可以包括多个处理设备、存储设备和设备。主机系统110a、b和客户端设备140可以是服务器、大型机、工作站、个人计算机(PC)、移动电话、掌上计算设备等。在实施例中,主机系统110a、b和客户端设备140可以是单独的计算设备。在一些实施例中,主机系统110a、b和/或客户端设备140可以由单个计算设备来实施。为了清楚起见,未示出客户端设备140和主机系统110b的一些组件。此外,尽管计算机系统架构100被示出为具有两个主机系统和单个客户端设备,但是本公开的实施例可以利用任何数量的主机系统和任何数量的客户端设备。
主机系统110a、b可以另外包括一个或多个虚拟机(VM)130、一个或多个容器136和主机操作系统(OS)120。VM 130是执行程序的机器的软件实施方式,就好像它是实际的物理机器一样。如前所述,容器136充当用于应用程序的不同功能的隔离执行环境。VM 130和容器136可以用作微服务架构的工作负载的执行环境。主机OS 120管理计算机系统的硬件资源,并且提供诸如进程间通信、调度、存储器管理等功能。在实施例中,虚拟机130和容器136可以分别包括嵌套CSI驱动器132a和嵌套CSI驱动器132b。在下面的图2至13中讨论关于嵌套CSI驱动器132a和嵌套CSI驱动器132的其它细节。
主机OS 120可以包括管理程序125(也可以被称为虚拟机监视器(VMM)),该管理程序为VM 130提供虚拟操作平台并管理其执行。管理程序125可以管理系统资源,包括对物理处理设备(例如,处理器、CPU等)、物理存储器(例如,RAM)、存储设备(例如,HDD、SSD)和/或其它设备(例如,声卡、视频卡等)的存取。尽管管理程序125通常以软件来实施,但是它可以仿真裸机接口并将裸机接口以虚拟处理器和访客存储器的形式导出到更高水平的软件。更高水平的软件可以包括标准或实时OS,可以是具有有限的操作系统功能性的高度分拆式操作环境,和/或可以不包括传统的OS设施等。管理程序125可以向其它软件(即,“访客”软件)呈现一个或多个VM的抽象,该一个或多个VM为各种访客软件(例如,访客操作系统、访客应用程序)提供相同或不同的抽象。应当注意,在一些替代实施方式中,管理程序125可以在主机OS 120的外部,而不是嵌入在主机OS 120内,或者可以代替主机OS 120。
主机系统110a、b和客户端设备140经由网络105彼此耦合(例如,可以可操作地耦合,可通信地耦合,可以彼此进行数据/消息通信)。网络105可以是公共网络(例如,互联网)、专用网络(例如,局域网(LAN)或广域网(WAN))或其组合。在一个实施例中,网络105可以包括有线或无线基础设施,其可以由一个或多个无线通信系统提供,诸如与网络105连接的WiFiTM热点和/或可以使用各种数据处理设备、通信塔(例如,手机信号塔)等实施的无线载波系统。网络105可以承载主机系统110a、b和/或客户端设备140的各个组件之间的通信(例如,数据、消息、分组、帧等)。
在实施例中,处理设备160可以执行欠集群CSI驱动器162和/或卷管理组件164。欠集群CSI驱动器162可以从嵌套CSI驱动器132a和/或嵌套CSI驱动器132b接收用于持久卷的调整大小命令。欠集群CSI驱动器162可以将调整大小命令发送到卷管理组件164以调整持久卷的大小。在实施例中,卷管理组件164可以对应于逻辑卷管理器。在实施例中,卷管理组件164可以对应于网络存储驱动器。将在下面的图2至13中讨论关于欠集群CSI驱动器162和卷管理组件164的更多详细信息。
图2是根据本公开的实施例的在微服务架构的主机系统200上实例化虚拟机的示例的图示。如前所述,在微服务架构中,可以实例化诸如虚拟机130或容器(例如,容器136)之类的执行环境,以执行微服务架构的各种应用程序或服务的工作负载(例如,工作负载202)。主机系统200可以包括持久卷204、逻辑卷管理器206、过集群210和欠集群212。在实施例中,主机系统200可以对应于如先前在图1处所述的主机系统110a或主机系统110b。
持久卷204可以对应于已被供应用于数据存储的主机系统200的一件存储设备。在实施例中,持久卷204可以对应于在图1的存储设备180处用于存储数据的供应空间量。逻辑卷管理器206可以由主机系统200的处理设备(例如,处理设备160)的处理逻辑来执行。逻辑卷管理器206管理主机系统200的物理存储器对持久卷(诸如持久卷204)的供应。逻辑卷管理器206还可以将持久卷分配给微服务架构的不同执行环境和/或工作负载。
过集群210和欠集群212可以对应于集群管理运营商,其通过各种执行环境来协调对主机系统200的物理计算资源的使用。欠集群212可以对应于在支持执行环境的主机系统的处理设备(例如,处理设备160)上运行的最低协调水平。过集群210可以对应于在执行环境内供应的集群管理运营商。例如,可以在主机系统200所支持的执行环境中的一个内的容器中供应过集群210。欠集群212和过集群210可以彼此通信,以通过在执行环境内执行的工作负载来协调主机系统200的物理计算资源的使用。
参考图2,当实例化虚拟机130(或容器)以执行工作负载202时,在虚拟机130内供应包括嵌套CSI驱动器132a的集群210。当虚拟机130被实例化时,嵌套CSI驱动器132a可以被提供有欠集群212的欠集群CSI驱动器162的通信端点,以使能在嵌套CSI驱动器132a与欠集群CSI驱动器162之间的命令的传输。
此外,当虚拟机130被实例化时,逻辑卷管理器206可以将持久卷204分配给虚拟机130和/或工作负载202。在实施例中,逻辑卷管理器206可以对虚拟机130和/或工作负载202的引用来注释持久卷204。该注释可以使得嵌套CSI驱动器132a能够识别被分配给虚拟机130和/或工作负载202的持久卷204,并且启动虚拟机130上的网络存储服务以将持久卷204公开为网络存储设备。在一些实施例中,逻辑卷管理器206可以对由欠集群212和欠集群CSI驱动器162使用的持久卷204的引用来注释持久卷204。在实施例中,嵌套CSI驱动器132a可以被提供有与持久卷204相关联的一个或多个规范,该一个或多个规范可以由嵌套CSI驱动器132a使用以发布可以由欠集群CSI驱动器162和逻辑卷管理器206使用的调整大小命令,以调整持久卷204的大小。
当由逻辑卷管理器206供应持久卷204时,持久卷204可以具有初始容量208。例如,持久卷204可以具有1千兆字节(GB)的初始容量。
图3是根据本公开的实施例的从工作负载接收命令的主机系统300的嵌套CSI驱动器的示例的图示。如前所述,工作负载202可以基于工作负载需要更多或更少的存储容量用于数据存储,而发出命令来创建或删除供工作负载202使用的持久卷。例如,如果工作负载202需要附加的存储容量,则工作负载202可以向嵌套CSI驱动器132a发出命令以创建新的持久卷以供工作负载202使用。
参考图3,工作负载202已将创建持久卷(PV)命令发送到嵌套CSI驱动器132a,所述指令指示要创建以供工作负载202使用的新的持久卷。在实施例中,创建PV命令可以包括要创建的持久卷的容量。例如,创建PV命令可以指示要创建具有10GB的容量的持久卷。
在从工作负载202接收到创建PV命令后,嵌套CSI驱动器132a可以将创建PV命令转换为可以由欠集群CSI驱动器用于修改持久卷204的容量208的调整大小命令。在实施例中,当持久卷204如先前在图2中所述被分配给虚拟机130和/或工作负载202时,嵌套CSI驱动器132a可以通过使用由嵌套CSI驱动器132a接收的与持久卷204相关联的一个或多个规范来转换创建PV命令。
在实施例中,嵌套CSI驱动器132a可以确定持久卷204的容量208的将要调整大小的量。例如,如果持久卷204具有1GB的初始容量,并且创建PV命令指示将创建10GB的持久卷,则嵌套CSI驱动器132a可以确定持久卷的容量208将增加9GB,导致持久卷204的调整大小的容量为10GB。
图4是根据本公开的实施例的将调整大小命令发送到欠集群CSI驱动器的主机系统400的嵌套CSI驱动器的示例的图示。在图4中,嵌套CSI驱动器132a已将从工作负载202接收的创建PV命令转换为调整PV容量大小命令。在实施例中,调整PV容量大小命令可以包括由欠集群CSI驱动器162使用的持久卷204的注释,使得欠集群CSI驱动器162可以识别将被调整大小的正确持久卷。调整PV容量大小命令可以包括持久卷204的容量208的将要增加的量(例如,增加的容量402)。
在接收到调整PV容量大小命令后,欠集群CSI驱动器162可以向逻辑卷管理器206发送新的PV大小命令,指示持久卷204的新大小(例如,容量)。新的PV大小命令使逻辑卷管理器206为持久卷204供应增加的容量402。在实施例中,逻辑卷管理器206可以通过创建新分区来供应增加的容量402,所述新分区定义被供应给持久卷204的存储设备。
图5是根据本公开的实施例的主机系统500的嵌套CSI驱动器的示例的图示,该嵌套CSI驱动器使得持久卷的增加的容量可供工作负载使用。在逻辑卷管理器206为持久卷204供应增加的容量402后,嵌套CSI驱动器132a可以将持久卷204的容量更新为新容量(例如,容量208和增加的容量402)。在实施例中,嵌套CSI驱动器132a可以更新持久卷204的分区以包括由逻辑卷管理器206创建的新分区。
在更新持久卷204的容量后,嵌套CSI驱动器132a可以向工作负载202发送指示:持久卷204已就绪(例如,PV已就绪)供工作量202使用并且包括由先前在图3中描述的创建PV命令请求的容量。在接收到指示后,工作负载202可以开始存取被供应给持久卷204的存储空间。
图6是根据本公开的实施例的响应于从工作负载接收删除持久卷命令而调整持久卷的大小的主机系统600的嵌套CSI驱动器的示例的图示。图6可以包括与在图2至5处描述的操作类似的操作。然而,尽管图2至5示出了用于响应于从工作负载202接收到创建PV命令而调整持久卷204的大小的操作,但是图6示出了用于响应于从工作负载202接收到删除PV命令而调整持久卷204的大小的操作。
在图6中,嵌套CSI驱动器132a从工作负载202接收删除PV命令。在实施例中,删除PV命令可以指示要删除的持久卷204的容量。例如,删除PV命令可以指示要删除的持久卷204是6GB。
在接收到删除PV命令时,嵌套CSI驱动器132a可以将删除PV命令转换为调整PV容量大小命令。在实施例中,如先前所述,嵌套CSI驱动器132a可以使用与持久卷204相关联的一个或多个规范来转换删除PV命令。在一些实施例中,调整PV容量大小命令可以包括基于删除PV命令来调整持久卷204的大小的容量。例如,如果删除PV命令指示要删除的持久卷204为6GB,则调整PV容量大小命令可以指示持久卷204的容量将减少6GB。
如先前在图4中所描述的,在接收到调整PV容量大小命令后,欠集群CSI驱动器162可以向逻辑卷管理器206发送新的PV大小命令。逻辑卷管理器206然后可以依据新的PV大小命令而减少持久卷204的容量(例如,减少的容量602)。例如,逻辑卷管理器206可以减少被供应给持久卷204的存储量。在实施例中,如前所述,逻辑卷管理器206可以通过去除定义持久卷204的存储容量的分区来减少持久卷204的容量。
在逻辑卷管理器206减少持久卷204的容量后,嵌套CSI驱动器132a可以更新PV容量,并且如先前在图5中所述,向工作负载202发送指示:持久卷204已就绪供工作负载202使用。
图7是根据本公开的实施例的主机系统700的示例的图示,该主机系统的存储不足以调整被分配给虚拟机的持久卷的大小。如前所述,持久卷(例如,持久卷204)可以是基础物理存储设备(例如,存储设备180)的供应存储空间。在示例性情形中,当物理存储的利用率高时(例如,当存储在存储设备180处的数据量达到或接近容量时),逻辑卷管理器206可能无法增加持久卷的容量,因为基础存储设备上的可用空间不足以增加容量。因此,如先前在图2至4中所描述的,当嵌套CSI驱动器132a和欠集群CSI驱动器162响应于从工作负载202接收到创建PV命令而尝试调整被分配给虚拟机130的持久卷的大小时,逻辑卷管理器206可以向欠集群CSI驱动器162发送指示:逻辑卷管理器206没有足够的可用存储来增加持久卷的容量。
在一些实施例中,在接收到存储不足的指示后,欠集群CSI驱动器162可以向嵌套CSI驱动器132a发送指示持久卷的大小调整不成功的指示。然后,嵌套CSI驱动器132a可以向工作负载202发送指示创建PV命令不成功的指示。在实施例中,可以将微服务架构的其它主机系统(例如,主机系统110b)上的一个或多个持久卷分配给虚拟机130。在此类实施例中,欠集群CSI驱动器162可以尝试在另一主机系统上调整这些持久卷中的一个的大小,如将在下面进一步详细描述的。
图8是根据本公开的实施例的将用于调整持久卷的大小的命令发送到第二主机系统的微服务架构800的第一主机系统的网络存储驱动器的示例的图示。微服务架构800可以包括经由网络(未示出)可操作地彼此耦合的主机系统110a和主机系统110b,如先前在图1处所描述的。主机系统110b可以包括逻辑卷管理器806,该逻辑卷管理器管理对诸如持久卷804之类的持久卷的存储空间的供应。持久卷804可以具有初始容量808,该初始容量对应于修改之前的持久卷804的容量。主机系统110a包括网络存储驱动器802,该网络存储驱动器促进在微服务架构800的其它主机系统(例如,主机系统110b)的持久卷上的数据存储。
在实施例中,欠集群CSI驱动器162可以将新的PV大小命令发送到网络存储驱动器802,以导致修改主机系统110b处的持久卷804的容量808,如先前在图4处所描述的。在图8中,新的PV尺寸命令可以指示持久卷804的容量808将增加特定量(例如,增加的容量810)。在一些实施例中,响应于从主机系统110a的逻辑卷管理器(未示出)接收到指示没有足够的存储来执行调整大小操作的指示,欠集群CSI驱动器162可以将新的PV大小命令发送到网络存储驱动器802,如先前在图7中所描述的。网络存储驱动器802可以经由微服务架构800的网络,将命令发送到主机系统110b的逻辑卷管理器806。该命令可以使逻辑卷管理器806增加持久卷804的容量,如先前在图4处所述的。在逻辑卷管理器806增加持久卷804的容量后,如先前在图5中所述,嵌套CSI驱动器132a可以更新持久卷804的容量,并且向工作负载202发送指示:持久卷804的增加的容量810已就绪供工作负载202使用。
图9是根据一些实施例的将用于创建持久卷的命令转换为调整大小命令的方法900的流程图。方法900可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法900的至少一部分可以由图1的嵌套CSI驱动器132a和/或嵌套CSI驱动器132b来执行。
参考图9,方法900示出了由各种实施例使用的示例性功能。尽管在方法900中公开了特定的功能框(“框”),但是此类框是示例。即,实施例非常适合于执行方法900中叙述的各种其它框或框的变型。应当理解,可以与所呈现的顺序不同的顺序来执行方法900中的框,并且并非可以执行方法900中的所有框。
方法900开始于框910,其中处理逻辑从工作负载接收第一命令以创建持久卷。
在框920处,处理逻辑将由工作负载用于创建持久卷的第一命令转换为由主机系统用于增加被分配给工作负载的先前生成的持久卷的容量的第二命令。
在框930处,处理逻辑将第二命令发送到主机系统的欠集群CSI驱动器。第二命令可能会导致欠集群CSI驱动器增加先前生成的持久卷的容量。在实施例中,欠集群CSI驱动器可以通过将命令发送到诸如逻辑卷管理器或网络存储驱动器之类的卷管理组件来增加先前生成的持久卷的容量,如前所述。
图10是根据一些实施例的修改被分配给执行环境的持久卷的容量的方法1000的流程图。方法1000可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法1000的至少一部分可以由图1的欠集群CSI驱动器162来执行。
参考图10,方法1000示出了由各种实施例使用的示例性功能。尽管在方法1000中公开了特定的功能框(“框”),但是此类框是示例。即,实施例非常适合于执行方法1000中叙述的各种其它框或框的变型。应当理解,可以与所呈现的顺序不同的顺序来执行方法1000中的框,并且并非可以执行方法1000中的所有框。
方法1000开始于框1010,其中处理逻辑将持久卷分配给执行工作负载的执行环境。在实施例中,执行环境可以是虚拟机。在一些实施例中,执行环境可以是容器。
在框1020处,处理逻辑从嵌套CSI驱动器接收第一命令以修改被分配给工作负载的持久卷的容量。
在框1030处,处理逻辑依据第一命令向卷管理组件发送第二命令以修改持久卷的容量。如前所述,该命令可以使卷管理组件修改持久卷的容量。
图11是根据一些实施例的生成用于执行工作负载的执行环境的方法1100的流程图。方法1100可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法1100的至少一部分可以由图1的处理设备160来执行。
参考图11,方法1100示出了由各种实施例使用的示例性功能。尽管在方法1100中公开了特定的功能框(“框”),但是此类框是示例。即,实施例非常适合于执行方法1100中叙述的各种其它框或框的变型。应当理解,可以与所呈现的顺序不同的顺序来执行方法1100中的框,并且并非可以执行方法1100中的所有框。
方法1100开始于框1110,其中处理逻辑生成用于执行工作负载的执行环境。执行环境包括嵌套CSI驱动器,该嵌套CSI驱动器将从工作负载接收的第一命令转换为由主机系统使用的第二命令。
在框1120处,处理逻辑将主机系统上的持久卷分配给执行环境。如前所述,可以依据由主机系统使用的第二命令来修改持久卷的容量。
图1200是根据一些实施例的发送命令以修改另一主机系统上的持久卷的容量的方法1200的流程图。方法1200可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或其组合。在一些实施例中,方法1200的至少一部分可以由图1的欠集群CSI驱动器162来执行。
参考图12,方法1200示出了由各种实施例使用的示例性功能。尽管在方法1200中公开了特定的功能框(“框”),但是此类框是示例。即,实施例非常适合于执行方法1200中叙述的各种其它框或框的变型。应当理解,可以与所呈现的顺序不同的顺序来执行方法1200中的框,并且并非可以执行方法1200中的所有框。
方法1200开始于框1210,其中处理逻辑从在执行环境内执行的嵌套CSI驱动器接收第一命令,以增加被分配给工作负载的持久卷的容量。
在框1220处,处理逻辑依据第一命令向逻辑卷管理器发送第二命令以增加持久卷的容量。
在框1230处,处理逻辑从逻辑卷管理器接收指示:可用存储不足以增加持久卷的容量。
在框1240处,处理逻辑向网络存储驱动器发送第二命令以修改被分配给工作负载的第二主机系统的第二持久卷的容量。
图13是根据一些实施例的可以执行本文描述的一个或多个操作的示例性计算装置1300的框图。计算设备1300可以连接到LAN、内联网、外联网和/或互联网中的其它计算设备。该计算设备可以在客户端-服务器网络环境中以服务器机器的容量或在对等网络环境中以客户端的容量来操作。该计算设备可以由个人计算机(PC)、机顶盒(STB)、服务器、网络路由器、交换机或桥接器或能够(顺序地或以其它方式)执行指定该机器要采取的动作的指令集的任何机器提供。此外,尽管仅示出了单个计算设备,但是术语“计算设备”也应被认为包括单独地或共同地执行指令集(或多个指令集)以执行本文所讨论的方法的计算设备的任何集合。
示例性计算设备1300可以包括可以经由总线1330彼此通信的处理设备(例如,通用处理器、PLD等)1302、主存储器1304(例如,同步动态随机存取存储器(DRAM)、只读存储器(ROM))、静态存储器1306(例如,闪速存储器和数据存储设备1318)。
处理设备1302可以由一个或多个通用处理设备(诸如微处理器、中央处理单元等)提供。在说明性示例中,处理设备1302可以包括复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器或实施指令集组合的处理器。处理设备1302还可以包括一个或多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。根据本公开的一个或多个方面,处理设备1302可以被配置为执行本文描述的操作,以执行本文讨论的操作和步骤。计算设备1300还可以包括可以与网络1320通信的网络接口设备1308。
根据本公开的一个或多个方面,数据存储设备1318可以包括计算机可读存储介质1328,可以在该计算机可读存储介质上存储一个或多个指令集1325,该一个或多个指令集可以包括用于嵌套CSI驱动器或欠集群CSI驱动器(例如,嵌套CSI驱动器132a、嵌套CSI驱动器132b和/或欠集群CSI驱动器162)的指令,该指令用于执行本文中描述的操作。指令1325还可以在由计算设备1300执行该指令期间完全或至少部分地驻留在主存储器1304内和/或处理设备1302内,主存储器1304和处理设备1302也构成计算机可读介质。指令1325还可以经由网络接口设备1308通过网络1320发送或接收。
尽管计算机可读存储介质1328在说明性示例中被示出为单个介质,但是术语“计算机可读存储介质”应被视为包括存储一个或多个指令集的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“计算机可读存储介质”也应被认为包括能够存储、编码或携带指令集以由机器执行并且使机器执行本文描述的方法的任何介质。因此,术语“计算机可读存储介质”应被视为包括但不限于固态存储器、光学介质和磁介质。
示例1是一种方法,所述方法包括由执行嵌套容器存储接口(CSI)驱动器的主机系统的处理设备,从工作负载接收第一命令以创建持久卷;由所述嵌套CSI驱动器,将由所述工作负载用于创建所述持久卷的所述第一命令转换为由所述主机系统用于增加被分配给所述工作负载的先前生成的持久卷的容量的第二命令;以及将所述第二命令发送到所述主机系统的欠集群CSI驱动器,其中,所述第二命令使所述欠集群CSI驱动器增加所述先前生成的持久卷的所述容量。
示例2是示例1的方法,其还包括:从所述工作负载接收第三命令以删除所述持久卷;将由所述工作负载用于删除所述持久卷的所述第三命令转换为由所述主机系统用于减少被分配给所述工作负载的所述先前生成的持久卷的所述容量的第四命令;以及将所述第四命令发送到所述主机系统的所述欠集群CSI驱动器,其中,所述第四命令使所述欠集群CSI驱动器减少所述先前生成的持久卷的所述容量。
示例3是示例1的方法,其还包括:由所述嵌套CSI驱动器更新可供所述工作负载使用的所述先前生成的持久卷的所述容量。
示例4是示例3的方法,其还包括:向所述工作负载提供所述先前生成的持久卷的所述更新后容量可供所述工作负载使用的指示。
示例5是示例1的方法,其中,在虚拟机内执行所述工作负载和所述嵌套CSI驱动器。
示例6是示例1的方法,其中,在容器内执行所述工作负载和所述嵌套CSI驱动器。
示例7是示例1的方法,其中,所述第二命令包括用于增加所述先前生成的持久卷的容量的量。
示例8是一种系统,其包括:存储器;以及处理设备,所述处理设备可操作地耦合到所述存储器以:将持久卷分配给执行工作负载的执行环境;由欠集群容器存储接口(CSI)驱动器从在所述执行环境内执行的嵌套CSI驱动器接收第一命令,以修改被分配给所述工作负载的所述持久卷的容量;以及依据所述第一命令向卷管理组件发送第二命令以修改所述持久卷的所述容量,其中,所述第二命令使所述卷管理组件修改所述持久卷的所述容量。
示例9是示例8的系统,其中,所述嵌套CSI驱动器响应于所述持久卷的所述容量被修改而更新被分配给所述执行环境的所述持久卷的所述容量。
示例10是示例8的系统,其中,所述卷管理组件包括逻辑卷管理器。
示例11是示例8的系统,其中,所述卷管理组件包括网络存储驱动器。
示例12是示例8的系统,其中,响应于所述工作负载提供第三命令以创建第二持久卷而从所述嵌套CSI驱动器接收用于修改所述容量的所述第一命令。
示例13是示例12的系统,其中,所述嵌套CSI驱动器将所述第三命令转换为所述第一命令以修改所述持久卷的所述容量,并且其中,所述第二命令包括用于增加所述持久卷的所述容量的命令。
示例14是示例8的系统,其中,响应于所述工作负载提供第三命令以删除所述持久卷而从所述嵌套CSI驱动器接收用于修改所述容量的所述第一命令。
示例15是示例14的系统,其中,所述嵌套CSI驱动器将所述第三命令转换为所述第一命令以修改所述持久卷的所述容量,并且其中,所述第二命令包括用于增加所述持久卷的所述容量的命令。
示例16是一种包括指令的非暂时性计算机可读存储介质,所述指令在由主机系统的处理设备执行时使所述处理设备:由所述主机系统的所述处理设备生成用于执行工作负载的执行环境,其中所述执行环境包括嵌套容器存储接口(CSI)驱动器,所述嵌套CSI驱动器将从所述工作负载接收的第一命令转换为由所述主机系统使用的第二命令;以及将所述主机系统上的持久卷分配给所述执行环境,其中,依据由所述主机系统使用的所述第二命令,修改所述持久卷的容量。
示例17是示例16的非暂时性计算机可读存储介质,其中,所述第一命令包括用于为所述工作负载创建持久卷的命令,并且所述第二命令包括用于增加所述持久卷的所述容量的命令。
示例18是示例16的非暂时性计算机可读存储介质,其中,所述第一命令包括用于为所述工作负载删除持久卷的命令,并且所述第二命令包括用于减少所述持久卷的所述容量的命令。
示例19是示例16的非暂时性计算机可读存储介质,其中,生成用于所述工作负载的执行的所述执行环境包括:向所述嵌套CSI驱动器提供与修改所述持久卷的所述容量相关联的一个或多个规范,其中,所述一个或多个规范由所述嵌套CSI驱动器使用以将所述第一命令转换为所述第二命令。
示例20是示例16的非暂时性计算机可读存储介质,其中,将所述主机系统上的所述持久卷分配给所述执行环境包括:使用对所述执行环境的引用来注释所述持久卷,其中,所述嵌套的CSI驱动器将依据所述引用将所述持久卷公开给所述执行环境。
示例21是示例16的非暂时性计算机可读存储介质,其中,所述处理设备还将第二主机系统上的第二持久卷分配给所述执行环境,其中,所述嵌套CSI驱动器将从所述工作负载接收的所述第一命令转换为由所述第二主机系统使用的第三命令。
示例22是示例16的非暂时性计算机可读存储介质,其中,所述第一命令包括由所述工作负载使用的第一存储应用程序编程接口(API),并且所述第二命令包括由所述主机系统使用的第二存储API。
示例23是一种方法,其包括:由执行欠集群容器存储接口(CSI)驱动器的主机系统的处理设备从在执行环境内执行的嵌套CSI驱动器接收第一命令,以修改被分配给工作负载的持久卷的容量;依据所述第一命令向逻辑卷管理器发送第二命令以增加所述持久卷的所述容量;从所述逻辑卷管理器接收指示:可用存储不足以增加所述持久卷的所述容量;以及向网络存储驱动器发送所述第二命令以修改被分配给所述工作负载的第二主机系统的第二持久卷的容量。
示例24是示例23的方法,其中,所述嵌套CSI驱动器转换从所述工作负载接收的用于创建新的持久卷的第三命令,以生成由所述主机系统使用的所述第一命令。
示例25是示例23的方法,其中,所述执行环境包括虚拟机。
示例26是示例23的方法,其中,所述执行环境包括容器。
示例27是示例23的方法,其中,所述第二命令使所述第二主机系统的第二逻辑卷管理器增加所述第二持久卷的所述容量。
示例28是示例27的方法,还包括响应于增加所述第二持久卷的所述容量而由所述嵌套CSI驱动器更新所述第二持久卷的所述容量。
示例29是示例28的方法,还包括向所述嵌套CSI驱动器提供指示:所述第二持久卷的所述容量已增加,其中,所述嵌套CSI驱动器将向所述工作负载通知所述第二持久卷的所述增加的容量可供所述工作负载使用。
示例30是一种装置,其包括:用于从由主机系统执行的工作负载接收第一命令以创建持久卷的部件;用于将由所述工作负载用于创建所述持久卷的所述第一命令转换为由所述主机系统用于增加被分配给所述工作负载的先前生成的持久卷的容量的第二命令的部件;以及用于将所述第二命令发送到所述主机系统的欠集群CSI驱动器的部件,其中,所述第二命令使所述欠集群CSI驱动器增加所述先前生成的持久卷的所述容量。
示例31是示例30的装置,其还包括:用于从所述工作负载接收第三命令以删除所述持久卷的部件;用于将由所述工作负载用于删除所述持久卷的所述第三命令转换为由所述主机系统用于减少被分配给所述工作负载的所述先前生成的持久卷的所述容量的第四命令的部件;以及用于将所述第四命令发送到所述主机系统的所述欠集群CSI驱动器的部件,其中,所述第四命令使所述欠集群CSI驱动器减少所述先前生成的持久卷的所述容量。
示例32是示例30的装置,还包括:用于从卷管理组件接收所述先前生成的持久卷的所述容量已增加的指示的部件:以及用于更新可供所述工作负载使用的所述先前生成的持久卷的所述容量的部件。
示例33是示例30的装置,还包括:用于向所述工作负载提供所述先前生成的持久卷的所述更新后容量可供所述工作负载使用的第二指示的部件。
示例34是示例30的装置,其中,在虚拟机内执行所述工作负载和嵌套CSI驱动器。
示例35是示例30的装置,其中,在容器内执行所述工作负载和嵌套CSI驱动器。
示例36是示例30的装置,其中,所述第二命令包括用于增加所述先前生成的持久卷的容量的量。
除非另有特别说明,否则诸如“接收”、“路由”、“更新”、“提供”等术语是指由计算设备执行或实施的动作和过程,该动作和过程操纵被表示为计算设备的寄存器和存储器内的物理(电子)量的数据并将该数据变换为被类似地表示为计算设备存储器或寄存器或其它此类信息存储、发送或显示设备内的物理量的其它数据。而且,如本文中所使用的术语“第一”、“第二”、“第三”、“第四”等是指用于区分不同元件的标签,但是不一定具有根据它们的数字名称的序数含义。
本文描述的示例还涉及一种用于执行本文描述的操作的装置。这种装置可以被特殊地构造用于所需目的,或者其可以包括由存储在计算设备中的计算机程序选择性地编程的通用计算设备。此计算机程序可以被存储在计算机可读非暂时性存储介质中。
本文所述的方法和说明性示例并非固有地与任何特定计算机或其它装置相关。可以根据本文描述的教导来使用各种通用系统,或者可以证明构造更专用的装置以执行所需的方法步骤是方便的。如上文描述中所阐述的,将出现用于各种这些系统的所需结构。
以上描述旨在作为说明性的而并不是限制性的。尽管已经参考特定的说明性示例描述了本公开,但是将认识到,本公开不限于所描述的示例。本公开的范围应参考所附权利要求书以及权利要求书所赋予的等效物的全部范围来确定。
如本文中所使用,除非背景另有明确指示,否则单数形式“一(a、an)”和“该”旨在还包括复数形式。应进一步理解,本文使用的术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”和/或“包括(including)”指定存在所述特征、整数、步骤、操作、元件和/或组件,但并不排除存在或附加一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合。因此,本文中所使用的术语仅仅用于描述特定实施例的目的,而不旨在限制。
还应当注意,在一些替代的实施方式中,所指出的功能/动作可以按不同于附图中指出的顺序的顺序出现。例如,连续示出的两个特征事实上可以基本上并发地执行,或者有时可以按相反顺序执行,这取决于所涉及的功能性/动作。
尽管以特定顺序描述了方法操作,但是应当理解,可以在所述操作之间执行其它操作,所述操作可以被调整使得它们在稍有不同的时间处发生,或者所述操作可以被分布在允许以与处理相关联的各种间隔发生处理操作的系统中。
各种单元、电路或其它组件可以被描述或被要求保护为“被配置为”或“可配置为”执行一个或多个任务。在此类上下文中,短语“被配置为”或“可配置为”用于通过指示单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。因而,即使指定的单元/电路/组件当前不工作(例如,未开启),也可以认为该单元/电路/组件被配置为执行任务,或者可以配置为执行任务。与“被配置为”或“可配置为”语言一起使用的单元/电路/组件包括硬件-例如,电路、存储可执行以实施操作的程序指令的存储器等。对单元/电路/组件“被配置为”执行一个或多个任务或者“可配置为”执行一个或多个任务的叙述明确地不旨在对该单元/电路/组件调用35U.S.C.112第六段。另外,“配置为”或“可配置为”可以包括由软件和/或固件(例如,执行软件的FPGA或通用处理器)操纵以按照能够执行讨论中的任务的方式进行操作的通用结构(例如,通用电路)。“被配置为”还可以包括使制造工艺(例如,半导体制造设施)适应于制造适于实施或执行一个或多个任务的设备(例如,集成电路)。“可配置为”明确地不旨在适用于空白介质、未编程的处理器或未编程的通用计算机或未编程的可编程逻辑设备、可编程门阵列或其它未编程的设备,除非伴随有赋予未编程设备被配置为执行所公开的功能的能力的已编程介质。
为了解释目的,前面的描述已经参考具体实施例进行了描述。然而,以上说明性讨论不旨在穷举或将本发明限于所公开的精确形式。依据上述教导,许多修改和变化是可能的。选择并描述实施例以便最佳地解释实施例的原理及其实际应用,由此使得本领域的技术人员能够最佳地利用可以适于涵盖所预期的特定用途的实施例和各种修改。因此,本实施例应当被认为是说明性的而不是限制性的,并且本发明不限于本文给出的细节,而是可以在所附权利要求书的范围和等效范围内进行修改。
Claims (20)
1.一种方法,其包括:
由执行嵌套容器存储接口(CSI)驱动器的主机系统的处理设备,从工作负载接收第一命令以创建持久卷;
由所述嵌套CSI驱动器将由所述工作负载用于创建所述持久卷的所述第一命令转换为由所述主机系统用于增加被分配给所述工作负载的先前生成的持久卷的容量的第二命令;以及
将所述第二命令发送到所述主机系统的欠集群CSI驱动器,其中,所述第二命令使所述欠集群CSI驱动器增加所述先前生成的持久卷的所述容量。
2.根据权利要求1所述的方法,还包括:
从所述工作负载接收第三命令以删除所述持久卷;
将由所述工作负载用于删除所述持久卷的所述第三命令转换为由所述主机系统用于减少被分配给所述工作负载的所述先前生成的持久卷的所述容量的第四命令;以及
将所述第四命令发送到所述主机系统的所述欠集群CSI驱动器,其中,所述第四命令使所述欠集群CSI驱动器减少所述先前生成的持久卷的所述容量。
3.根据权利要求1所述的方法,还包括:
由所述嵌套CSI驱动器更新可供所述工作负载使用的所述先前生成的持久卷的所述容量。
4.根据权利要求3所述的方法,其还包括:
向所述工作负载提供所述先前生成的持久卷的更新后容量可供所述工作负载使用的指示。
5.根据权利要求1所述的方法,其中,在虚拟机内执行所述工作负载和所述嵌套CSI驱动器。
6.根据权利要求1所述的方法,其中,在容器内执行所述工作负载和所述嵌套CSI驱动器。
7.根据权利要求1所述的方法,其中,所述第二命令包括用于增加所述先前生成的持久卷的容量的量。
8.一种系统,包括:
存储器;以及
处理设备,所述处理设备可操作地耦合到所述存储器以:
将持久卷分配给执行工作负载的执行环境;
由欠集群容器存储接口(CSI)驱动器从在所述执行环境内执行的嵌套CSI驱动器接收第一命令,以修改被分配给所述工作负载的所述持久卷的容量;以及
依据所述第一命令向卷管理组件发送第二命令以修改所述持久卷的所述容量,其中,所述第二命令使所述卷管理组件修改所述持久卷的所述容量。
9.根据权利要求8所述的系统,其中,所述嵌套CSI驱动器响应于所述持久卷的所述容量被修改而更新被分配给所述执行环境的所述持久卷的所述容量。
10.根据权利要求8所述的系统,其中,所述卷管理组件包括逻辑卷管理器。
11.根据权利要求8所述的系统,其中,所述卷管理组件包括网络存储驱动器。
12.根据权利要求8所述的系统,其中,响应于所述工作负载提供第三命令以创建第二持久卷而从所述嵌套CSI驱动器接收用于修改所述容量的所述第一命令。
13.根据权利要求12所述的系统,其中,所述嵌套CSI驱动器将所述第三命令转换为所述第一命令以修改所述持久卷的所述容量,并且其中,所述第二命令包括用于增加所述持久卷的所述容量的命令。
14.根据权利要求8所述的系统,其中,响应于所述工作负载提供第三命令以删除所述持久卷而从所述嵌套CSI驱动器接收用于修改所述容量的所述第一命令。
15.根据权利要求14所述的系统,其中,所述嵌套CSI驱动器将所述第三命令转换为所述第一命令以修改所述持久卷的所述容量,并且其中,所述第二命令包括用于增加所述持久卷的所述容量的命令。
16.一种包括指令的非暂时性计算机可读存储介质,所述指令在由主机系统的处理设备执行时使所述处理设备:
由所述主机系统的所述处理设备生成用于执行工作负载的执行环境,其中所述执行环境包括嵌套容器存储接口(CSI)驱动器,所述嵌套CSI驱动器将从所述工作负载接收的第一命令转换为由所述主机系统使用的第二命令;以及
将所述主机系统上的持久卷分配给所述执行环境,其中,依据由所述主机系统使用的所述第二命令,修改所述持久卷的容量。
17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述第一命令包括用于为所述工作负载创建持久卷的命令,并且所述第二命令包括用于增加所述持久卷的所述容量的命令。
18.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述第一命令包括用于为所述工作负载删除持久卷的命令,并且所述第二命令包括用于减少所述持久卷的所述容量的命令。
19.根据权利要求16所述的非暂时性计算机可读存储介质,其中,为了生成用于执行所述工作负载的所述执行环境,所述处理设备:
向所述嵌套CSI驱动器提供与修改所述持久卷的所述容量相关联的一个或多个规范,其中,所述一个或多个规范由所述嵌套CSI驱动器使用以将所述第一命令转换为所述第二命令。
20.根据权利要求16所述的非暂时性计算机可读存储介质,其中,为了将所述主机系统上的所述持久卷分配给所述执行环境,所述处理设备:
使用对所述执行环境的引用来注释所述持久卷,其中,所述嵌套的CSI驱动器将依据所述引用将所述持久卷公开给所述执行环境。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/030,747 US11893407B2 (en) | 2020-09-24 | 2020-09-24 | Overlay container storage driver for microservice workloads |
US17/030,747 | 2020-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114253656A true CN114253656A (zh) | 2022-03-29 |
Family
ID=73838954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011604825.6A Pending CN114253656A (zh) | 2020-09-24 | 2020-12-30 | 用于微服务工作负载的覆盖式容器存储驱动器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11893407B2 (zh) |
EP (1) | EP3974978A1 (zh) |
CN (1) | CN114253656A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911421A (zh) * | 2022-05-19 | 2022-08-16 | 江苏安超云软件有限公司 | 基于csi插件的数据存储方法、系统、装置及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024137412A1 (en) * | 2022-12-21 | 2024-06-27 | Pure Storage, Inc. | Container storage interface filter driver for container-based storage system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6279816B2 (ja) * | 2015-07-28 | 2018-02-14 | 株式会社日立製作所 | ストレージ監視システムおよびその監視方法 |
US9967204B2 (en) | 2016-02-29 | 2018-05-08 | Netapp, Inc. | Resource allocation in networked storage systems |
US10908939B2 (en) * | 2017-01-31 | 2021-02-02 | Intel Corporation | Efficient fine grained processing of graphics workloads in a virtualized environment |
US10353714B1 (en) * | 2018-01-12 | 2019-07-16 | EMC IP Holding Company LLC | Non-disruptive upgrade of multipath drivers in information processing system |
US11023128B2 (en) | 2018-03-16 | 2021-06-01 | Portworx, Inc. | On-demand elastic storage infrastructure |
US10802983B2 (en) * | 2018-05-31 | 2020-10-13 | Vmware, Inc. | Programmable block storage addressing using embedded virtual machines |
US10884818B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Increasing processing capacity of virtual machines |
US20190097900A1 (en) * | 2018-11-26 | 2019-03-28 | Bryan J. Rodriguez | Zero-configuration cluster and provisioning pipeline for heterogeneous computing nodes |
US11461469B2 (en) * | 2019-01-22 | 2022-10-04 | Microsoft Technology Licensing, Llc | Container anomaly detection based on crowd sourcing |
TWI767175B (zh) * | 2019-01-31 | 2022-06-11 | 美商萬國商業機器公司 | 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 |
US20200371700A1 (en) * | 2019-05-22 | 2020-11-26 | Kove Ip, Llc | Coordinated allocation of external memory |
US11079944B2 (en) * | 2019-10-04 | 2021-08-03 | Zettaset, Inc. | Dynamic provisioning of container storage |
US11200169B2 (en) * | 2020-01-30 | 2021-12-14 | EMC IP Holding Company LLC | Cache management for sequential IO operations |
-
2020
- 2020-09-24 US US17/030,747 patent/US11893407B2/en active Active
- 2020-12-15 EP EP20214081.0A patent/EP3974978A1/en active Pending
- 2020-12-30 CN CN202011604825.6A patent/CN114253656A/zh active Pending
-
2024
- 2024-01-09 US US18/407,704 patent/US20240143377A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114911421A (zh) * | 2022-05-19 | 2022-08-16 | 江苏安超云软件有限公司 | 基于csi插件的数据存储方法、系统、装置及存储介质 |
CN114911421B (zh) * | 2022-05-19 | 2023-08-04 | 江苏安超云软件有限公司 | 基于csi插件的数据存储方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220091871A1 (en) | 2022-03-24 |
EP3974978A1 (en) | 2022-03-30 |
US11893407B2 (en) | 2024-02-06 |
US20240143377A1 (en) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656775B2 (en) | Virtualizing isolation areas of solid-state storage media | |
US9697024B2 (en) | Interrupt management method, and computer implementing the interrupt management method | |
US9135189B2 (en) | Delivering GPU resources across machine boundaries | |
US20240143377A1 (en) | Overlay container storage driver for microservice workloads | |
US11729218B2 (en) | Implementing a service mesh in the hypervisor | |
US10002016B2 (en) | Configuration of virtual machines in view of response time constraints | |
US11831410B2 (en) | Intelligent serverless function scaling | |
EP3350700B1 (en) | Multi root i/o virtualization system | |
US20230325221A1 (en) | Hot Growing A Cloud Hosted Block Device | |
US20220342730A1 (en) | Seamless access to a common physical disk in an amp system without an external hypervisor | |
US20220358049A1 (en) | Memory access handling for peripheral component interconnect devices | |
WO2017087544A1 (en) | Method and system for shared direct access storage | |
US11954534B2 (en) | Scheduling in a container orchestration system utilizing hardware topology hints | |
EP4261682A1 (en) | Just-in-time packager build system | |
US11868805B2 (en) | Scheduling workloads on partitioned resources of a host system in a container-orchestration system | |
US11775328B2 (en) | Virtual bond for efficient networking of virtual machines | |
JPWO2018173300A1 (ja) | I/o制御方法およびi/o制御システム | |
US11977907B2 (en) | Hybrid push and pull event source broker for serverless function scaling | |
US20230032967A1 (en) | Establishing process connections utilizing an intermediary broker | |
US11368521B1 (en) | Utilizing reinforcement learning for serverless function tuning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |