虚拟服务是负载均衡和代理功能的核心。虚拟服务向外部世界通告 IP 地址和端口,并侦听客户端流量。在虚拟服务收到流量时,可以将其配置为:
代理客户端的网络连接。
执行安全性、加速、负载均衡、收集流量统计信息和其他任务。
将客户端的请求数据转发到目标池以进行负载均衡。
可以将虚拟服务视为 NSX Advanced Load Balancer 侦听的 IP 地址(以准备好接收请求)。在正常的 TCP/HTTP 配置中,在客户端连接到虚拟服务地址时,NSX Advanced Load Balancer 将根据设置、策略和配置文件列表处理客户端连接或请求,然后将有效的客户端流量发送到作为虚拟服务池成员列出的后端服务器。
通常,客户端和 NSX Advanced Load Balancer 之间的连接在 SE 处终止或转发,这会在其自身和服务器之间打开新的 TCP 连接。服务器直接响应 NSX Advanced Load Balancer IP 地址,而不是响应原始客户端地址。NSX Advanced Load Balancer 通过自身和客户端之间的 TCP 连接将响应转发到客户端。
![](images/GUID-E5DB2C49-C93C-4AE8-A304-CF79F67C9D16-high.png)
典型的虚拟服务包含使用单个网络协议的单个 IP 地址和服务端口。NSX Advanced Load Balancer 允许虚拟服务侦听多个服务端口或网络协议。
例如,可以为服务端口 80 (HTTP) 和 443 SSL (HTTPS) 创建虚拟服务。在该示例中,客户端可以使用非安全连接以连接到站点,然后将其重定向到站点的加密版本。这样,管理员就可以管理单个虚拟服务而不是两个虚拟服务。同样,可以使用 UDP 和 TCP 协议访问 DNS、RADIUS 和 Syslog 等协议。
可以创建两个唯一的虚拟服务,一个虚拟服务侦听端口 80,另一个虚拟服务侦听端口 443;不过,它们具有单独的统计信息、日志和报告。它们仍由相同的服务引擎 (SE) 拥有,因为它们具有相同的底层虚拟服务 IP 地址。
要将流量发送到目标服务器,虚拟服务在内部将流量传递到与该虚拟服务对应的池。虚拟服务通常使用单个池,但使用策略或 DataScript 的高级配置可以在多个池之间执行内容切换。也可以使用脚本以替代池,例如,仅执行 HTTP 重定向的虚拟服务。
如果多个虚拟服务具有相同的第 4 层或第 7 层应用程序配置文件,则可以将池与这些虚拟服务相关联。
在创建虚拟服务时,该虚拟服务侦听面向客户端的网络,这很可能是默认网关所在的上游网络。池将连接到服务器网络。
通常,需要使用组合的虚拟服务和池,然后 NSX Advanced Load Balancer 才能将任一对象放置在 SE 上。在进行 SE 放置决策时,NSX Advanced Load Balancer 必须选择具有客户端和服务器网络的最佳可访问性或网络访问的 SE。或者,客户端和服务器可能位于同一 IP 网络上。
如果附加了重定向策略,NSX Advanced Load Balancer 上的虚拟服务始终保持启动状态。如果满足以下条件之一,虚拟服务将保持活动状态:
与虚拟服务关联的至少一个池已启动。
与虚拟服务关联的策略(例如重定向策略)不需要使用池。
将 DataScript 附加到策略。
虚拟服务与发送本地响应的策略相关联。
查看虚拟服务
从 NSX Advanced Load Balancer UI 中,导航到 从该屏幕中,您可以创建新的虚拟服务,搜索现有的虚拟服务以及编辑或删除虚拟服务。
![](images/GUID-7002C92B-FB3B-4E53-9937-969E4D9134C7-low.jpg)
字段 |
描述 |
---|---|
名称 |
列出每个虚拟服务的名称。在单击虚拟服务名称时,将打开相应虚拟服务的分析选项卡。 |
运行状况 |
显示虚拟服务的数字颜色编码运行状况。红色感叹号 (!)表示虚拟服务已关闭。如果虚拟服务已禁用、未部署或处于错误状态,则会显示一个破折号。 可以将鼠标指针悬停在运行状况分数上,以查看虚拟服务的“运行状况分数”弹出窗口。 请单击弹出窗口屏幕底部的查看运行状况按钮,以查看有关运行状况的更多详细信息。 |
地址 |
显示虚拟服务通告的 IP 地址。 |
服务 |
列出为虚拟服务配置的服务端口。为终止 SSL/TLS 连接配置的端口在圆括号中注明。 虚拟服务可能配置了多个端口。例如:
|
池 |
列出分配给每个虚拟服务的池。在单击池名称时,将打开相应池的分析选项卡。 |
服务引擎组 |
显示可以从中将服务引擎分配给虚拟服务的组。 |
服务引擎 |
列出将虚拟服务分配到的服务引擎。在单击服务引擎名称时,将打开相应服务引擎的分析选项卡。 |
总服务引擎数 |
将分配给虚拟服务的 SE 数量显示为时间序列。这对于查看虚拟服务的 SE 数量是增加还是减少非常有用。 |
吞吐量 |
显示每个虚拟服务在选定时间范围的吞吐量缩略图。 如果将鼠标指针悬停在该图表上,将显示突出显示的时间的吞吐量。 在单击一个图表时,将打开虚拟服务的分析选项卡。 |
打开的连接 |
显示平均打开连接数。 |
客户端 RTT |
显示虚拟服务客户端与相应 SE 之间的平均 TCP 延迟。 |
服务器 RTT |
显示虚拟服务的后端服务器与其 SE 之间的平均 TCP 延迟。 |
连接 |
显示每秒总连接数速率。 |
错误连接 |
显示每秒的连接错误数速率。 |
收到的数据包 |
显示每秒收到的数据包数的平均速率。 |
发送的数据包 |
显示每秒发送的数据包数的平均速率。 |
策略丢弃 |
显示每秒由于虚拟服务策略而丢弃的总连接数速率。它包括由于速率限制、安全策略丢弃、连接限制等造成的中断。 |
DoS 攻击 |
显示每秒发生的 DoS 攻击次数。 |
警示 |
显示与虚拟服务、池或服务引擎相关的警示数。 |
虚拟服务详细信息
“虚拟服务”屏幕显示有关选定虚拟服务的大量信息。
要查看特定虚拟服务的详细信息,请导航到
。单击所需的虚拟服务。或者,您也可以导航到
。单击所需的虚拟服务。虚拟服务屏幕具有选定虚拟服务的以下选项卡。
虚拟服务分析
虚拟服务应用程序日志
虚拟服务运行状况
虚拟服务“客户端”页面
查看安全详细信息
虚拟服务“事件”页面
虚拟服务“警示”页面
“虚拟服务快速信息”弹出窗口
您可以从“虚拟服务”屏幕的任何选项卡中查看虚拟服务快速信息弹出窗口。请将鼠标悬停在虚拟服务名称上,或者单击虚拟服务名称。
![](images/GUID-366C9572-B122-439E-B0B7-F9B420DEB4F3-low.png)
虚拟服务快速信息弹出窗口具有以下按钮:
扩展;每单击一次,就会将虚拟服务连接分配给一个额外的 SE,最多为 SE 组属性中定义的最大 SE 数。
缩减;从选定的服务引擎中移除 VIP 地址。如果选择了主服务引擎,某个现有的辅助服务引擎将变为新的主服务引擎。
迁移;将虚拟服务从它当前所在的 SE 移动到同一 SE 组中的另一个 SE。
有关 SE 组设置 min_scaleout_per_vs
和 max_scaleout_per_vs
的信息,请参见更改每个虚拟服务的最小/最大扩展数的影响。
该弹出窗口还会显示虚拟服务的以下信息(如果适用):
字段 |
描述 |
---|---|
服务引擎 |
将该虚拟服务部署到的 SE 的名称或 IP 地址。在单击一个 SE 名称时,将打开该 SE 的“服务引擎详细信息”页面。 |
正常运行时间/停机时间 |
虚拟服务已处于当前启动或关闭状态的持续时间。 |
地址 |
虚拟服务的 IP 地址。 |
应用程序配置文件 |
应用到虚拟服务的应用程序配置文件。 |
服务端口 |
虚拟服务侦听客户端流量时所在的服务端口。 |
TCP/UDP 配置文件 |
该配置文件应用于虚拟服务。 |
SSL 证书 |
应用于虚拟服务的证书。 |
非重要日志 |
如果禁用,虚拟服务默认为记录重要事件或错误。如果启用,将记录所有连接或请求。 |
实时衡量指标 |
如果禁用了该选项,则每 5 分钟收集一次衡量指标,而无论“显示时间”是否设置为“实时”。如果启用了该选项,则每 15 秒收集一次衡量指标。 |
客户端日志筛选器 |
应用于虚拟服务的自定义日志筛选器数。日志筛选器可以有选择地生成非重要日志。 |
客户端详细信息 |
虚拟服务收集的客户端详细信息类型:“主动”、“被动”或“无”。 |