ZA303学习笔记三虚拟机/ARM

配置VM的大小

  • ·VCPU
  • 内存
  • 数据磁盘数量
  • 最大IOPS
  • 最大NIC数和最大速率
  • GPU
  • 其他类型
    在这里插入图片描述

DCsv2 系列

  • 用于在 Azure 中通过使用安全 enclave 处理数据和代码时保护数据和代码的机密性和完整性。

部署Azure专用主机

Azure专用主机是一种提供物理服务器(能够托管一个或多个虚拟机)的服务,专用于一个Azure订阅。专用主机是数据中心中使用的相同物理服务器,作为资源提供。你可以在区域、可用性区域和容错域中预配专用主机。然后,可以按照最能满足你的需要的配置将VM直接放入预配的主机中。

预留整个主机具有以下优势:

  • 物理服务器级别的硬件隔离。不会在你的主机上放置任何其他VM。专用主机都署在相同的数据中心,与具他非隔离土机共享相同的网络和底层存储基础结构。
  • 控制Azure平台发起的维护事件。尽管大多数维护事件对虚拟机的影响极小甚至没有任何影响,但对于某些敏感工作负荷而言,每暂停一秒都可能会造成影响。在使用专用主机的情况下,可以选择维护时段,以降低对服务的影响。
  • 借助Azure混合权益,你可以在Azure 中使用自己的 Windows和sQL许可证。使用混合权益可以提供更多的优势。
    免费试用版和MSDN订阅没有Azure专用主机的配额。

部署和配置规模集(virtual machine scale set)

  • 使用Azure虚拟机规模集可以创建并管理一组负载均衡的VM。可以根据需求或定义的计划自动增减vM实例的数目。规模集为应用程序提供高可用性,用于集中管理、配置和更新大量VM。可以使用虚拟机规模集为计算、大数据和容器工作负荷等领域构建大规模的服务。
  • 增加操作始终优先于缩放操作。
  • 当横向扩展操作发生冲突时,启动实例数增加最多的规则优先。
  • 当操作规模发生冲突时,启动实例数量减少最小的规则优先。

易于创建和管理多个VM

有多个运行应用程序的VM时,必须在整个环境中维持一致的配置。为了确保应用程序性能可靠,所有VM的vVM大小、磁盘配置和应用程序安装都应匹配。使用规模集时,所有VM/实例都是根据相同的基础os映像和配置来创建的。使用这种方法可以轻松地管理数百个VM,不需执行其他的配置任务或网络管理。
规模集支持使用Aure负载均衡器进行基本的第4层流量分发操作,以及使用Aure应用程序网关进行更高级的第7层流量分发和TlS终止操作。

提供高可用性和应用程序复原能力

规模集用于运行应用程序的多个实例。如果某个VM实例出现问题,客户可以继续通过其他VM实例来访问应用程序,将中断的可能性降至最低。若要提高可用性,可以使用可用性区域,在单个或多个数据中心自动分发规模集中的VM实例。

允许应用程序随资源需求变化自动进行缩放

客户对应用程序的需求可能会在一天或一周内变化。规模集可以遵循客户需求,在应用程序需求增加时自动增加VwM实例数,在需求减少时减少VIM实例数。另外,自动缩放还可以尽量降低在需求较低时运行应用程序的不必要的VWM实例数,并可让客户在需求增加时继续享受可以接受的性能级别,而且会自动添加更多的VM实例。此功能有助于降低成本,并根据需要高效地创建Azure资源。

大规模工作

规模集最多支持1,000个VM实例。如果创建和上传自己的自定义VvM映像,则该限制为600个VM实例。若要尽量提高生产工作负荷的性能,请使用Azure托管磁盘。

可用性集(availability set )高可用虚拟机

导航:资源组">“我的资源组可用性”
在这里插入图片描述

  • 可用性集是一种逻辑分组功能,用于在部署 VM 资源时将它们彼此隔离。 Azure 确保您放置在可用性集中的 VM 跨多个物理服务器、计算机架、存储单元和网络交换机运行。 如果发生硬件或软件故障,则只有一部分 VM 会受到影响,而您的整体解决方案仍可正常运行。 可用性集对于构建可靠的云解决方案至关重要。
  • 适用于Windows 虚拟机
  • 建议在可用性集中创建两个或多个 VM,以提供高度可用的应用程序并满足 99.95% 的 Azure SLA。可用性集本身不收取任何费用,只需为创建的每个 VM 实例付费。

注意点

  • 在某些情况下,同一可用性集中的 2 个 VM 可以共享同一个故障域。这可以通过进入可用性集并检查"容错域"列来确认。这可能是由部署 VM 时发生的以下事件序列引起的:
    1:已部署第一个 VM
    2:第 1 个 VM 已停止/解除分配
    3:第二个 VM 已部署。在这些情况下,第二个 VM 的 OS 磁盘可能会在与第 1 个 VM 相同的容错域上创建,因此第 2 个 VM 也将位于同一个 FaultDomain 上。若要避免此问题,建议不要在部署之间停止/解除分配 VM。

  • 还可以使用 Azure 顾问获取有关如何提高 VM 可用性的详细信息。Azure 顾问会分析配置和使用情况遥测数据,然后推荐可帮助你提高 Azure 资源的成本效益、性能、可用性和安全性的解决方案。

官网:
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/tutorial-availability-sets

故障域 ( fault domain)

  • 故障域是一组逻辑底层硬件,它们共享一个公共电源和网络交换机,类似于本地数据中心内的机架。当您在可用性集中创建 VM 时,Azure 平台会自动将您的 VM 分布在这些故障域中。这种方法可以限制潜在的物理硬件故障、网络中断或电源中断的影响。
Azure VM 上的 SQL Server 上的“始终打开”可用性组availability group

https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-overview?view=azuresql

  • Azure 虚拟机上的“始终打开”可用性组类似于本地的“始终打开”可用性组,并且依赖于基础 Windows 服务器故障转移群集。但是,由于虚拟机托管在 Azure 中,因此还有一些其他注意事项,例如 VM 冗余和在 Azure 网络上路由流量。

  • 下图说明了 Azure VM 上 SQL 服务器的可用性组:
    在这里插入图片描述

  • 若要匹配连接到可用性组侦听器的本地体验,请将 SQL Server VM 部署到同一虚拟网络中的多个子网。拥有多个子网可以消除对 Azure 负载均衡器或分布式网络名称 (DNN) 的额外依赖性,从而将流量路由到侦听器。

  • 如果将 SQL Server VM 部署到单个子网,则可以配置虚拟网络名称 (VNN) 和 Azure 负载均衡器,或配置分布式网络名称 (DNN)以将流量路由到可用性组侦听器。

DNN与VNN不同点
  • 故障转移时间:使用 DNN 侦听器时,故障转移时间更快,因为无需等待网络负载均衡器检测到故障事件并更改其路由。单个数据库需要进行恢复,这可能需要一些时间,具体取决于许多因素,例如重做日志的长度。只有在数据库完全恢复后,侦听器才会路由连接。
  • 现有连接:与故障转移可用性组中的特定数据库建立的连接将关闭,但与主副本的其他连接将保持打开状态,因为 DNN 在故障转移过程中保持联机状态。这与传统的 VNN 环境不同,在传统 VNN 环境中,当可用性组故障转移、侦听器脱机以及主副本转换为辅助角色时,与主副本的所有连接通常会关闭。使用 DNN 侦听器时,可能需要调整应用程序连接字符串,以确保在故障转移时将连接重定向到新的主副本。
  • 打开事务:针对故障转移可用性组中的数据库打开事务将关闭并回滚,并且需要手动重新连接。例如,在 SQL Server 管理工作室中,关闭查询窗口并打开一个新窗口。
  • 在 Azure 中设置 VNN 侦听器需要负载均衡器。Azure 中的负载均衡器有两个主要选项:外部(公共)或内部。外部(公共)负载均衡器面向互联网,并与可通过互联网访问的公共虚拟 IP 相关联。内部负载均衡器仅支持同一虚拟网络中的客户端。对于任一负载平衡器类型,都必须启用直接服务器返回。
  • 您仍可以通过直接连接到服务实例来单独连接到每个可用性副本。此外,由于可用性组与数据库镜像客户端向后兼容,因此只要副本的配置类似于数据库镜像,就可以连接到数据库镜像伙伴等可用性副本:
    1:有一个主副本和一个辅助副本。
    2:辅助副本配置为不可读(“可读辅助”选项设置为“否”)。

更新域(update domain)

更新域是一组可以同时重新启动的虚拟机和底层物理硬件。

配置磁盘加密

Azure 磁盘加密有助于保护数据,使组织能够信守在安全性与合规性方面作出的承诺。Azure Disk Encryption使用AzureKey Vault 来控制和管理磁盘加密密钥和机密。密钥保管库和VM必须位于同一Azure 区域和订阅中。
服务器端加密(SSE)可保护数据,并帮助实现组织安全性和符合性承诺。默认情况下,在将存储在Azure托管磁盘(OS和数据磁盘)上的数据保存到云时,SSE 会自动对其进行加密。
Azure托管磁盘中的数据使用256位AES加密(可用的最强大分组加密之
一)以透明方式加密,且符合FIPS 140-2规
范。
服务器端加密不会对托管磁盘的性能产生影响,并且不会产生额外的费用。
密钥保管库和VM必须位于同一订阅中。另外,为确保加密机密不会跨越区域边界,Azure 磁盘加密需要将Key Vault和VM共置于同一区域中。在要加密的VM所在的同一订阅和区域中创建并使用Key Vault。
默认情况下,托管磁盘使用平台托管的加密密钥。自2017年6月10日起,所有新托管磁盘、快照、图像和写入现有托管磁盘中的新数据都会使用平台托管密钥自动进行静态加密。

资源管理器模板(ARM 模板Azure Resource Manager template)

官网
https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-tutorial-create-templates-with-dependent-resources?tabs=CLI

  • 在 Azure 资源管理器模板(ARM 模板)中,该元素使你能够将一个资源定义为依赖于一个或多个资源。它的值是一个 JavaScript 对象表示法 (JSON) 字符串数组,每个字符串都是一个资源名称或 ID。阵列可以包含有条件部署的资源。未部署条件资源时,Azure 资源管理器会自动将其从所需的依赖项中删除。dependsOn

模板的资源和依赖项信息

在这里插入图片描述
在这里插入图片描述

ARM 模板中的资源迭代

在 Azure 资源管理器模板(ARM 模板)中创建多个资源实例。通过将复制循环添加到模板的资源部分,可以动态设置要部署的资源数。您还可以避免重复模板语法。
将元素添加到模板的resources部分,以部署资源的多个实例。元素具有以下常规格式:复制

"copy": {
  "name": "<name-of-loop>",
  "count": <number-of-iterations>,
  "mode": "serial" <or> "parallel",
  "batchSize": <number-to-deploy-serially>
}
  • name:该属性是标识循环的任何值。
  • count: 该属性指定资源类型所需的迭代次数
  • mode:串行(serial) 还是并行(parallel)顺序部署资源
  • batchSize:要连续部署的编号

存储账户

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {                             #参数
    "storageCount": {
      "type": "int",
      "defaultValue": 3                       #3个存储账户
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2019-04-01",
      "name": "[concat(copyIndex(),'storage', uniqueString(resourceGroup().id))]",  #
      "location": "[resourceGroup().location]",
      "sku": {
        "name": "Standard_LRS"               #冗余类型
      },
      "kind": "Storage",
      "properties": {},
      "copy": {
        "name": "storagecopy",
        "count": "[parameters('storageCount')]"   #引用的参数数量
      }
    }
  ]
}

每个资源的名称从函数提取,该函数返回循环中的当前迭代。 从零开始

"name": "[concat('storage', copyIndex())]",

创建以下名称:存储0 存储1 存储2

"name": "[concat('storage', copyIndex(1))]",

创建以下名称:存储1 存储2 存储3

Azure 虚拟机上 SQL 服务器的性能最佳做法

https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/performance-guidelines-best-practices-storage?view=azuresql

通常在优化成本和优化性能之间进行权衡。此性能最佳做法系列侧重于在 Azure 虚拟机上为 SQL Server 获得最佳性能。如果您的工作负载要求较低,则可能不需要每个建议的优化。在评估这些建议时,请考虑性能需求、成本和工作负荷模式。

  • 将数据、日志和 tempdb 文件放在单独的驱动器上。
  • 将数据文件磁盘的主机缓存设置为只读
  • 将日志文件磁盘的主机缓存设置为 none
    1:不要在包含 SQL Server 数据或日志文件的磁盘上启用读/写缓存。
    2:在更改磁盘的缓存设置之前,请始终停止 SQL Server 服务。
  • 对于开发和测试工作负荷以及长期备份存档,请考虑使用标准存储。不建议将标准 HDD/SDD 用于生产工作负荷
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值