直接I/O访问架构 (Direct I/O Access Architecture)
通常,消费者访问的是虚拟服务器,这意味着他们需要通过管理程序访问底层硬件。管理程序的角色是向虚拟服务器呈现虚拟机,其中包括虚拟I/O端口。虚拟端口用于防止在一台物理机上运行的多个虚拟服务器相互干扰。然而,有时虚拟服务器需要直接访问由物理服务器实现的I/O端口。这需要一个直接I/O访问架构,使虚拟服务器能够绕过管理程序直接访问I/O端口。
这种架构通常通过允许虚拟服务器安装I/O驱动程序(操作系统的一部分)来实现,以便直接访问底层硬件,而不是通过管理程序呈现的虚拟服务器。
当然,如果一个消费者的虚拟服务器绕过了管理程序,而另一个消费者的虚拟服务器没有绕过,这会带来安全问题。这可以通过确保一个硬件服务器仅分配给一个消费者的虚拟服务器,或将I/O端口专用于一个或多个消费者的虚拟服务器来管理。
在下文的阅读中,直接I/O访问用于访问数据库服务器,以解决由管理程序和云提供商系统中其他资源共享组件引起的数据库性能问题。在这里,数据库不是通过内部数据网络连接,而是通过高速技术(例如光纤通道)直接连接到物理服务器。虚拟服务器通过直接I/O访问连接到数据库的硬件接口。
活动1
虚拟服务器通过直接I/O访问架构直接连接到物理服务器的I/O端口,绕过了管理程序。这种直接连接提高了数据库访问的性能,减少了由管理程序引起的延迟。
什么是I/O端口?如果你以前没有遇到这个术语,可能需要使用互联网。
I/O端口(输入/输出端口)是用于传输数据的物理或虚拟接口。它允许计算机与外部设备(如存储设备、网络设备)进行通信。
直接LUN访问架构 (Direct LUN Access Architecture)
正如我们之前提到的,LUN是次级存储的逻辑单元,相当于磁盘分区。虚拟机通过管理程序提供的虚拟接口访问LUN,将LUN视为独立的逻辑文件系统。LUN在物理存储设备中作为文件实现,这将不同LUN中的数据分开。这引入了一些效率低下的问题,特别是当LUN在虚拟服务器之间共享并可能配置在集群中时。
直接LUN访问架构旨在提高虚拟服务器访问LUN的效率。与其将虚拟LUN作为基于文件的存储中的文件进行管理,不如将其作为基于块的存储进行管理,类似于物理存储设备。此外,物理连接到存储设备是通过主机总线适配器(HBA)实现的。这允许任何虚拟服务器快速访问任何基于块的LUN,前提是它们有权限。这也允许为弹性和性能原因实现集群技术。
这种配置的效率提升是由于虚拟服务器直接访问基于块的存储,就像存储设备物理连接到虚拟服务器一样。HBA接口和次级存储控制器通过直接将虚拟服务器看到的虚拟块映射到次级存储上的物理块来管理LUN。多个虚拟服务器之间共享LUN需要虚拟服务器进行额外的工作,以确保访问同步。
活动2
阅读此文章:https://cloudpatterns.org/design_patterns/direct_lun_access/
管理程序在直接LUN访问架构中的角色是什么?
管理程序在直接LUN访问架构中提供虚拟接口,使虚拟服务器能够高效地访问基于块的存储,同时确保对LUN的访问权限和同步。
为什么虚拟服务器需要协调对共享LUN的访问?你可以用一个服务的例子来回答这个问题。
虚拟服务器需要协调对共享LUN的访问,以防止数据冲突和不一致。例如,在数据库服务中,多个虚拟服务器可能同时访问和修改同一个LUN,如果没有适当的协调,可能导致数据损坏。
动态数据规范化架构 (Dynamic Data Normalisation Architecture)
动态数据规范化架构旨在节省存储空间。如你所见,云存储中由于各种原因会出现冗余数据。此外,冗余数据可能在没有明确的备份或冗余目的情况下出现,例如,一个用户可能在多个虚拟服务器上有相同数据的副本。由于云存储通常按使用量计费,这对云用户有经济影响。动态数据规范化旨在通过只存储一次数据并用指针替换重复数据来消除重复数据。
作为动态数据规范化算法的一个例子,考虑规范化基于块的存储系统。规范化可以通过在写入存储设备之前为每个存储块计算一个唯一的哈希码来执行。保存所有哈希码和对应块号的表格,如果当前的写请求与表格中的一个条目匹配,则不需要写入,并返回现有块号。如果是新块,则写入数据,并用新的哈希码和块位置更新表格。
动态数据规范化也可以在基于文件的存储中进行。事实上,可以在自己的个人电脑上使用数据规范化来消除重复文件。它也用于基于磁带的备份系统。
活动3
在基于块的示例中,哈希表将占用空间并需要时间来更新。为什么这仍然是一个有用的策略?
尽管哈希表占用空间并需要时间更新,但通过消除重复数据,它可以显著节省存储空间,减少存储成本,并提高数据检索效率。
在数据规范化的哈希示例中,哈希表将位于何处?
哈希表通常位于存储控制器或专用的缓存存储中,以便快速访问和更新。
弹性网络容量架构 (Elastic Network Capacity Architecture)
网络容量是一种像其他云IT资源一样的资源。云提供商将有一个相对固定的互联网连接,但云提供商必须将该连接分配给其众多客户。此外,它还将有内部网络物理连接,可能需要对个别客户设置分配限制,以防止其服务相互干扰。
弹性网络容量架构旨在调整个别消费者服务的网络容量。通常,每个客户分配不同的网络端口用于数据通信。弹性网络容量架构可以自动调整特定端口的带宽,或为消费者的服务分配更多端口。
与其他IT资源一样,自动扩展监听器监控每个端口的网络流量。当达到给定阈值时,它可以分配或取消分配带宽。阈值和操作由自动化脚本驱动,考虑消费者的SLA和选择的弹性限制。
负载均衡虚拟交换架构 (Load Balanced Virtual Switches Architecture)
负载均衡虚拟交换架构是一种用于平衡虚拟服务器负载的架构。虚拟服务器通过物理服务器的网络连接与云消费者通信。当一台或多台虚拟服务器在一台物理服务器上增加网络流量时,需要平衡该物理服务器的负载,以便每个虚拟服务器具有适当的网络容量。该架构用于平衡这种负载。
物理服务器通过物理网络连接与云提供商的网络通信。物理服务器通常有多个物理连接到网络。这些连接有时是为了冗余原因安装的,即第二、第三等连接仅在一个链接超载或不正常运行时使用。
该架构中的虚拟交换是配置在管理程序和物理网络交换中的软件/固件,用于管理在管理程序(管理虚拟机)与物理网络交换之间的负载均衡。虚拟交换可以将网络流量从一个虚拟服务器引导到物理服务器的任何网络接口。
请注意,以下阅读对该架构的描述有些模糊。这是因为有许多实现虚拟交换架构的产品,每个产品都有不同的管理网络流量的选项。阅读提供了这些产品重要属性的概述。
活动4
负载均衡虚拟交换架构解决了什么问题?
负载均衡虚拟交换架构解决了当一台物理机上的虚拟服务器网络流量增加时,如何平衡网络负载的问题,以确保每个虚拟服务器都有适当的网络容量。
当虚拟服务器在共享的物理机器上超出网络容量时,你能想到另一个可以帮助的架构吗?
弹性网络容量架构可以帮助调整个别消费者服务的网络容量,通过分配更多的带宽或端口来解决网络容量问题。
虚拟服务器的冗余物理连接架构 (Redundant Physical Connection for Virtual Servers Architecture)
虚拟服务器的冗余物理连接架构用于为物理服务器提供物理网络连接的备份。这是一种故障转移机制,当一个物理端口自动接管失败的物理端口时。备份端口在主端口恢复正常工作时切换回主端口。
备份物理接口接收来自虚拟服务器的网络流量,但在主链路断开之前不会转发任何流量。链路故障可能由于多个原因发生,包括物理端口故障、连接的电缆故障以及电缆另一端的物理设备故障。如果可能的话,将备份电缆连接到与主端口连接的设备不同的网络设备是一个好主意。
你还应该注意到,最近的计算机架构没有单独的NIC用于网络连接。台式电脑现在的网络端口集成在计算机的主电路板上。服务器计算机现在的架构与家用计算机相似,主电路板上有一个或多个网络端口。然而,冗余物理连接仍然是值得的。
虚拟服务器的冗余物理连接架构
阅读文章:https://www.informit.com/articles/article.aspx?p=2357815&seqNum=7
阅读中提到了两个NIC(网络接口卡)用于该架构。为什么两张卡比一张有两个硬件端口的卡更好?一张卡如何知道何时开始转发数据包?
两张卡比一张有两个硬件端口的卡更好,因为如果一张卡完全失效,另一张卡仍然可以工作。而一张卡上的两个端口如果卡失效,则两个端口都不可用。一张卡可以通过监控主端口的状态来确定何时开始转发数据包,当主端口失效时,备份端口开始转发。
这种架构与前面讨论的负载均衡虚拟交换架构有什么不同?
虚拟服务器的冗余物理连接架构主要是为了提供故障转移机制,以确保网络连接的高可用性。而负载均衡虚拟交换架构则是为了平衡网络负载,确保每个虚拟服务器都有适当的网络容量。
持久虚拟网络配置架构 (Persistent Virtual Network Configuration Architecture)
你可能会问,如果我们可以在物理服务器之间移动虚拟服务器,云消费者如何保持与虚拟服务器的网络连接。持久虚拟网络配置架构确保每个虚拟服务器在任何物理服务器上运行时,保持相同的互联网地址和端口号。
这种架构基于一个集中式虚拟交换,它维护当前的内部网络配置信息,以便将传入请求定向到虚拟服务器的正确位置。它将当前的网络状态分发到物理服务器。VIM配置虚拟交换。由于VIM发起物理服务器之间的虚拟服务器移动,它还会在复制操作完成时通知集中式虚拟交换分发最新的网络状态到物理服务器中的管理程序。
活动5
为什么这种架构的名称中有"持久"一词?
"持久"意味着无论虚拟服务器在哪个物理服务器上运行,它都保持相同的互联网地址和端口号,确保网络连接的持续性和一致性。
集中式虚拟交换是否存在问题?
集中式虚拟交换可能成为单点故障,如果集中式虚拟交换失败,整个网络的虚拟服务器可能会失去连接。此外,集中式虚拟交换的性能瓶颈也可能影响整个网络的效率。