Запуск виртуальной машины Linux в AzureRun a Linux virtual machine on Azure

Для подготовки к работе виртуальной машины в Azure, помимо самой виртуальной машины, требуются некоторые дополнительные компоненты, такие как сеть и хранилище ресурсов.Provisioning a virtual machine (VM) in Azure requires some additional components besides the VM itself, including networking and storage resources. Эта статья содержит рекомендации по запуску виртуальных машин Linux в Azure.This article shows best practices for running a Linux VM on Azure.

Виртуальная машина Linux в Azure

Группа ресурсовResource group

Группа ресурсов представляет собой логический контейнер, содержащий связанные ресурсы Azure.A resource group is a logical container that holds related Azure resources. Как правило, группы ресурсов создаются в зависимости от времени существования ресурсов и пользователя, который ими управляет.In general, group resources based on their lifetime and who will manage them.

Поместите тесно связанные ресурсы с одинаковым жизненным циклом в одну группу ресурсов.Put closely associated resources that share the same lifecycle into the same resource group. Группы ресурсов позволяют развертывать и отслеживать несколько ресурсов как одну группу, для которой, помимо прочего, можно отслеживать выставляемые счета.Resource groups allow you to deploy and monitor resources as a group and track billing costs by resource group. Можно также удалить ресурсы в виде набора, что очень удобно для тестирования развернутых служб.You can also delete resources as a set, which is useful for test deployments. Присвойте понятные имена ресурсам, чтобы упростить поиск определенного ресурса и получить сведения о его роли.Assign meaningful resource names to simplify locating a specific resource and understanding its role. Дополнительные сведения см. в руководстве по рекомендуемым соглашениям об именовании ресурсов Azure.For more information, see Recommended Naming Conventions for Azure Resources.

Виртуальная машинаVirtual machine

Виртуальную машину можно подготовить на основе списка опубликованных образов, пользовательского управляемого образа или файла виртуального жесткого диска (VHD), передав его в хранилище BLOB-объектов Azure.You can provision a VM from a list of published images, or from a custom managed image or virtual hard disk (VHD) file uploaded to Azure Blob storage. Azure поддерживает ряд популярных дистрибутивов Linux, включая CentOS, Debian, Red Hat Enterprise, Ubuntu и FreeBSD.Azure supports running various popular Linux distributions, including CentOS, Debian, Red Hat Enterprise, Ubuntu, and FreeBSD. См. дополнительные сведения о взаимодействии Azure и Linux.For more information, see Azure and Linux.

В Azure доступны виртуальные машины разных размеров.Azure offers many different virtual machine sizes. Дополнительные сведения см. в статье Размеры виртуальных машин Windows в Azure.For more information, see Sizes for virtual machines in Azure. При перемещении имеющейся рабочей нагрузки в Azure выберите начальный размер виртуальной машины, который точнее всего соответствует характеристикам локальных серверов.If you are moving an existing workload to Azure, start with the VM size that's the closest match to your on-premises servers. Затем измерьте производительность фактической рабочей нагрузки по таким показателям, как потребление ЦП, памяти и дисковых операций ввода-вывода в секунду, и при необходимости измените размер.Then measure the performance of your actual workload in terms of CPU, memory, and disk input/output operations per second (IOPS), and adjust the size as needed.

Обычно следует выбирать регион Azure, расположенный как можно ближе к внутренним пользователям или клиентам.Generally, choose an Azure region that is closest to your internal users or customers. Не во всех регионах доступны виртуальные машины всех размеров.Not all VM sizes are available in all regions. См. дополнительные сведения о доступности служб в разных регионах.For more information, see Services by region. Чтобы получить список размеров виртуальных машин, доступных в определенном регионе, выполните следующую команду из Azure CLI:For a list of the VM sizes available in a specific region, run the following command from the Azure CLI:

az vm list-sizes --location <location>

Дополнительные сведения о том, как выбрать опубликованный образ виртуальной машины, см. в руководстве по поиску образов виртуальных машин Linux.For information about choosing a published VM image, see Find Linux VM images.

ДискиDisks

Чтобы обеспечить оптимальную производительность дисковых операций ввода-вывода, рекомендуем использовать хранилище класса Premium, в котором данные хранятся на твердотельных накопителях (SSD).For best disk I/O performance, we recommend Premium Storage, which stores data on solid-state drives (SSDs). Цена зависит от производительности подготовленного диска.Cost is based on the capacity of the provisioned disk. Скорость выполнения операций ввода-вывода и пропускная способность (т. е. скорость передачи данных) также зависят от размера диска. Поэтому во время подготовки диска следует учитывать все эти факторы.IOPS and throughput (that is, data transfer rate) also depend on disk size, so when you provision a disk, consider all three factors (capacity, IOPS, and throughput).

Мы также рекомендуем использовать Управляемые диски.We also recommend using Managed Disks. Благодаря автоматической обработке хранилища управляемые диски упрощают процесс управления дисками.Managed disks simplify disk management by handling the storage for you. Управляемым дискам не требуется учетная запись хранения.Managed disks do not require a storage account. Просто укажите размер и тип диска, и он будет развернут как высокодоступный ресурс.You simply specify the size and type of disk and it is deployed as a highly available resource

Диск операционной системы — это диск VHD, расположенный в службе хранилища Azure, поэтому он работает, даже если хост-компьютер отключен.The OS disk is a VHD stored in Azure Storage, so it persists even when the host machine is down. Для виртуальных машин Linux диск ОС — это /dev/sda1.For Linux VMs, the OS disk is /dev/sda1. Кроме того, рекомендуем создать один или несколько дисков данных на постоянных виртуальных жестких дисках, которые используются для данных приложений.We also recommend creating one or more data disks, which are persistent VHDs used for application data.

Создаваемый диск VHD не форматируется.When you create a VHD, it is unformatted. Чтобы отформатировать диск, войдите в систему виртуальной машины.Log into the VM to format the disk. В оболочке Linux диски данных отображаются как /dev/sdc, /dev/sdd и т. д.In the Linux shell, data disks are displayed as /dev/sdc, /dev/sdd, and so on. Можно выполнить lsblk , чтобы вывести список блочных устройств, включая диски.You can run lsblk to list the block devices, including the disks. Чтобы использовать диск данных, создайте раздел и файловую систему, а затем подключите этот диск.To use a data disk, create a partition and file system, and mount the disk. Пример:For example:

# Create a partition.
sudo fdisk /dev/sdc     # Enter 'n' to partition, 'w' to write the change.

# Create a file system.
sudo mkfs -t ext3 /dev/sdc1

# Mount the drive.
sudo mkdir /data1
sudo mount /dev/sdc1 /data1

При добавлении диска данных ему назначается логический номер устройства (LUN).When you add a data disk, a logical unit number (LUN) ID is assigned to the disk. При необходимости можно указать идентификатор LUN — например, если при замене диска нужно сохранить тот же идентификатор LUN или если у вас есть приложение, которое ищет определенный идентификатор LUN.Optionally, you can specify the LUN ID — for example, if you're replacing a disk and want to retain the same LUN ID, or you have an application that looks for a specific LUN ID. Однако следует помнить, что идентификаторы LUN для каждого диска должны быть уникальными.However, remember that LUN IDs must be unique for each disk.

Возможно, вам нужно изменить планировщик операций ввода-вывода, чтобы оптимизировать производительность твердотельных накопителей (используемых с учетными записями хранения класса Premium для виртуальных машин).You may want to change the I/O scheduler to optimize for performance on SSDs because the disks for VMs with premium storage accounts are SSDs. Обычно для SSD рекомендуется использовать планировщик NOOP, но для мониторинга производительности дискового ввода-вывода рабочей нагрузки следует использовать такой инструмент, как iostat.A common recommendation is to use the NOOP scheduler for SSDs, but you should use a tool such as iostat to monitor disk I/O performance for your workload.

Виртуальная машина создается с временным диском.The VM is created with a temporary disk. Временный диск хранится на физическом диске хост-компьютера.This disk is stored on a physical drive on the host machine. Он не хранится в службе хранилища Azure и может быть удален во время перезагрузки и других событий жизненного цикла виртуальной машины.It is not saved in Azure Storage and may be deleted during reboots and other VM lifecycle events. Используйте этот диск только для временных данных, таких как данные страниц или файлы подкачки.Use this disk only for temporary data, such as page or swap files. Для виртуальных машин Linux временный диск — это /dev/sdb1. Он подключен как /mnt/resource или /mnt.For Linux VMs, the temporary disk is /dev/sdb1 and is mounted at /mnt/resource or /mnt.

СетьNetwork

Сетевые компоненты включают приведенные ниже ресурсы.The networking components include the following resources:

  • Виртуальная сеть.Virtual network. Каждая виртуальная машина развертывается в виртуальной сети, которую можно разделить на несколько подсетей.Every VM is deployed into a virtual network that can be segmented into multiple subnets.

  • Сетевой интерфейс (сетевой адаптер).Network interface (NIC). Сетевой адаптер обеспечивает взаимодействие виртуальной машины и виртуальной сети.The NIC enables the VM to communicate with the virtual network. Если для виртуальной машины требуется несколько сетевых адаптеров, имейте в виду, что для каждого размера виртуальной машиныопределяется максимальное число сетевых адаптеров.If you need multiple NICs for your VM, be aware that a maximum number of NICs is defined for each VM size.

  • Общедоступный IP-адрес.Public IP address. Общедоступный IP-адрес используется для обмена данными с виртуальной машиной—. Например, через удаленный рабочий стол.A public IP address is needed to communicate with the VM — for example, via remote desktop (RDP). Общедоступный IP-адрес может быть динамическим или статическим.The public IP address can be dynamic or static. По умолчанию используется динамический IP-адрес.The default is dynamic.

  • Зарезервируйте статический IP-адрес , если вам нужен фиксированный IP-адрес, который не изменяется — , например, если необходимо создать запись DNS "a" или добавить IP-адрес в список надежных.Reserve a static IP address if you need a fixed IP address that won't change — for example, if you need to create a DNS 'A' record or add the IP address to a safe list.

  • Можно также создать полное доменное имя для IP-адреса.You can also create a fully qualified domain name (FQDN) for the IP address. Затем вы сможете зарегистрировать в DNS запись CNAME, которая указывает на полное доменное имя.You can then register a CNAME record in DNS that points to the FQDN. Дополнительные сведения см. в руководстве по созданию полного доменного имени на портале Azure.For more information, see Create a fully qualified domain name in the Azure portal.

  • Группа безопасности сети (NSG).Network security group (NSG). Группы безопасности сети используются для разрешения или запрета сетевого трафика для виртуальных машин.Network security groups are used to allow or deny network traffic to VMs. Группы безопасности сети могут быть связаны с подсетями или отдельными экземплярами виртуальных машин.NSGs can be associated either with subnets or with individual VM instances.

Все группы безопасности сети содержат набор правил по умолчанию, включая правило, которое блокирует весь входящий интернет-трафик.All NSGs contain a set of default rules, including a rule that blocks all inbound Internet traffic. Правила по умолчанию нельзя удалить, но их можно переопределить другими правилами.The default rules cannot be deleted, but other rules can override them. Чтобы разрешить интернет-трафик, создайте правила, разрешающие входящий трафик для определенных портов — например, это может быть порт 80 для протокола HTTP.To enable Internet traffic, create rules that allow inbound traffic to specific ports — for example, port 80 for HTTP. Чтобы включить доступ по протоколу SSH, добавьте правило группы безопасности сети, которое разрешает входящий трафик через TCP-порт 22.To enable SSH, add an NSG rule that allows inbound traffic to TCP port 22.

ОперацииOperations

SSH.SSH. Перед созданием виртуальной машины Linux создайте парные 2048-разрядные ключи RSA (открытый и закрытый).Before you create a Linux VM, generate a 2048-bit RSA public-private key pair. При создании виртуальной машины используйте файл открытого ключа.Use the public key file when you create the VM. Дополнительные сведения см. в статье Создание пары из открытого и закрытого ключей SSH для виртуальных машин Linux.For more information, see How to Use SSH with Linux and Mac on Azure.

Диагностика.Diagnostics. Включите мониторинг и диагностику, в том числе базовые метрики работоспособности, а также ведение журналов инфраструктуры диагностики и диагностику загрузки.Enable monitoring and diagnostics, including basic health metrics, diagnostics infrastructure logs, and boot diagnostics. Если виртуальную машину невозможно загрузить, для обнаружения неисправностей можно использовать диагностику загрузки.Boot diagnostics can help you diagnose boot failure if your VM gets into a non-bootable state. Создайте учетную запись службы хранилища Azure для хранения журналов.Create an Azure Storage account to store the logs. Учетной записи локально избыточного хранилища достаточно для хранения журналов диагностики.A standard locally redundant storage (LRS) account is sufficient for diagnostic logs. Дополнительные сведения см. в статье о включении мониторинга и диагностики.For more information, see Enable monitoring and diagnostics.

Доступность.Availability. На виртуальную машину могут влиять действия планового обслуживания и внепланового простоя.Your VM may be affected by planned maintenance or unplanned downtime. Чтобы определить, вызвана ли перезагрузка плановым техническим обслуживанием, изучите журналы перезагрузки виртуальной машины.You can use VM reboot logs to determine whether a VM reboot was caused by planned maintenance. Для повышения доступности разверните несколько виртуальных машин в группе доступности.For higher availability, deploy multiple VMs in an availability set. Эта конфигурация также позволяет использовать лучшее Соглашение об уровне обслуживания.This configuration provides a higher service level agreement (SLA).

Резервные копии Для защиты от случайной потери данных используйте службу Azure Backup, чтобы архивировать виртуальные машины в геоизбыточное хранилище.Backups To protect against accidental data loss, use the Azure Backup service to back up your VMs to geo-redundant storage. Azure Backup предоставляет резервные копии, согласованные с приложениями.Azure Backup provides application-consistent backups.

Остановка виртуальной машины.Stopping a VM. Azure различает состояния "Остановлена" и "Освобождена".Azure makes a distinction between "stopped" and "deallocated" states. Вы оплачиваете использование остановленных виртуальных машин, но не оплачиваете освобожденные виртуальные машины.You are charged when the VM status is stopped, but not when the VM is deallocated. Также это можно сделать с помощью кнопки Прервать на портале Azure.In the Azure portal, the Stop button deallocates the VM. Если вы войдете в виртуальную машину и завершите работу операционной системы, виртуальная машина будет остановлена, а не освобождена, поэтому с вас по-прежнему будет взиматься плата.If you shut down through the OS while logged in, the VM is stopped but not deallocated, so you will still be charged.

Удаление виртуальной машины.Deleting a VM. Если вы удалите виртуальную машину, виртуальные жесткие диски останутся.If you delete a VM, the VHDs are not deleted. Это означает, что вы можете удалить виртуальную машину без потери данных.That means you can safely delete the VM without losing data. Тем не менее плата за хранение по-прежнему будет взиматься.However, you will still be charged for storage. Чтобы удалить виртуальный жесткий диск, удалите соответствующий файл из хранилища BLOB-объектов.To delete the VHD, delete the file from Blob storage. Чтобы предотвратить случайное удаление, используйте блокировку ресурсов. Так вы сможете заблокировать всю группу или отдельные ресурсы (например, виртуальную машину).To prevent accidental deletion, use a resource lock to lock the entire resource group or lock individual resources, such as a VM.

Рекомендации по стоимостиCost considerations

В зависимости от использования и рабочей нагрузки можно использовать различные параметры для размеров виртуальных машин.There are various options for VM sizes depending on the usage and workload. Этот диапазон включает наиболее экономичный вариант серии «BS» с новейшими виртуальными машинами GPU, оптимизированными для машинного обучения.The range includes most economical option of the Bs-series to the newest GPU VMs optimized for machine learning. Сведения о доступных параметрах см. в статье цены на виртуальные машины Linux в Azure.For information about the available options, see Azure Linux VM pricing.

Для рабочих нагрузок без прогнозируемого времени завершения или потребления ресурсов рассмотрите вариант " Оплата по мере использования".For workloads with no predictable time of completion or resource consumption, consider the Pay as you go option.

Используйте резервирование Azure , если вы можете зафиксироваться на использовании виртуальной машины в течение одного или трех лет.Consider using Azure Reservations if you can commit to using a virtual machine over a one-year or three-year term. Резервирование виртуальных машин позволяет сократить затраты до 72% по сравнению с ценами оплаты по мере использования.VM reservations can reduce costs up to 72 % compared to pay-as-you-go prices.

Использование виртуальных машин Azure для запуска рабочих нагрузок может быть прервано и не требует завершения в рамках предварительно определенного периода или соглашения об уровне обслуживания.Use Azure Spot VMs to run workloads the can be interrupted and do not require completion within a predetermined timeframe or an SLA. Azure развертывает плашечные виртуальные машины при наличии доступной емкости и пропуская способность, когда она нуждается в обратном объеме.Azure deploys Spot VMs if there is available capacity and evicts when it needs the capacity back. Затраты, связанные с плашечными виртуальными машинами, значительно ниже.Costs associated with Spot virtual machines are significantly lower. Рассмотрите возможность выявления виртуальных машин для этих рабочих нагрузок:Consider Spot VMs for these workloads:

  • Сценарии высокопроизводительных вычислений, задания пакетной обработки или приложения визуальной визуализации.High-performance computing scenarios, batch processing jobs, or visual rendering applications.
  • Тестовые среды, включая рабочие нагрузки непрерывной интеграции и непрерывной поставки.Test environments, including continuous integration and continuous delivery workloads.
  • Крупномасштабные приложения без отслеживания состояния.Large-scale stateless applications.

Используйте Калькулятор цен Azure для оценки затрат.Use the Azure Pricing Calculator to estimates costs.

См. сведения о затратах на платформу Microsoft Azure с продуманной архитектурой.For more information, see the cost section in Microsoft Azure Well-Architected Framework.

Вопросы безопасностиSecurity considerations

Благодаря центру безопасности Azure можно получить полное представление о состоянии безопасности ваших ресурсов Azure.Use Azure Security Center to get a central view of the security state of your Azure resources. Центр безопасности отслеживает потенциальные проблемы безопасности, а также обеспечивает полное представление о состоянии системы безопасности развертывания.Security Center monitors potential security issues and provides a comprehensive picture of the security health of your deployment. Центр безопасности настраивается на уровне подписки Azure.Security Center is configured per Azure subscription. Включите сбор данных безопасности, как описано в кратком руководстве Переход подписки Azure в ценовую категорию "Стандартный" Центра безопасности Azure.Enable security data collection as described in Onboard your Azure subscription to Security Center Standard. Когда сбор данных включен, центр безопасности автоматически проверяет все виртуальные машины, созданные для этой подписки.When data collection is enabled, Security Center automatically scans any VMs created under that subscription.

Управление исправлениями.Patch management. Если эта функция включена, центр безопасности проверяет наличие необходимых обновлений для системы безопасности и критических обновлений.If enabled, Security Center checks whether any security and critical updates are missing. Установите для виртуальной машины параметры групповой политики, разрешающие автоматическое обновление системы.Use Group Policy settings on the VM to enable automatic system updates.

Защита от вредоносных программ.Antimalware. Если эта функция включена, то Центр безопасности проверяет, установлена ли антивредоносное ПО.If enabled, Security Center checks whether antimalware software is installed. Центр безопасности позволяет также установить антивредоносное ПО с помощью портала Azure.You can also use Security Center to install antimalware software from inside the Azure portal.

Контроль доступа.Access control. Используйте управление доступом на основе ролей (RBAC) для управления доступом к ресурсам Azure.Use role-based access control (RBAC) to control access to Azure resources. RBAC позволяет назначить роли авторизации участникам команды DevOps.RBAC lets you assign authorization roles to members of your DevOps team. Например, роль "Читатель" позволяет просматривать ресурсы Azure, но не позволяет создавать и удалять их или управлять ими.For example, the Reader role can view Azure resources but not create, manage, or delete them. Некоторые разрешения относятся к типу ресурса Azure.Some permissions are specific to an Azure resource type. Например, роль "Участник виртуальных машин" позволяет перезапустить виртуальную машину или отменить ее выделение, сбросить пароль администратора, создать новую виртуальную машину и т. д.For example, the Virtual Machine Contributor role can restart or deallocate a VM, reset the administrator password, create a new VM, and so on. Для этой архитектуры могут оказаться полезными и другие встроенные роли RBAC, например пользователь DevTest Labs и Участник сетей.Other built-in RBAC roles that may be useful for this architecture include DevTest Labs User and Network Contributor.

Примечание

RBAC не ограничивает действия, которые может выполнять пользователь, вошедший в виртуальную машину.RBAC does not limit the actions that a user logged into a VM can perform. Эти разрешения определяются типом учетной записи в гостевой ОС.Those permissions are determined by the account type on the guest OS.

Журналы аудита.Audit logs. Просматривать действия по подготовке и другие события для виртуальной машины можно с помощью журналов аудита.Use audit logs to see provisioning actions and other VM events.

Шифрование данных.Data encryption. При необходимости шифровать диски ОС и диски данных используйте шифрование дисков Azure.Use Azure Disk Encryption if you need to encrypt the OS and data disks.

Рекомендации для DevOpsDevOps considerations

Используйте один шаблон Azure Resource Manager для подготовки ресурсов Azure и его зависимостей.Use a single Azure Resource Manager template for provisioning the Azure resources and its dependencies. Поскольку все ресурсы находятся в одной и той же виртуальной сети, они изолированы в одной базовой рабочей нагрузке, что упрощает связывание ресурсов рабочей нагрузки с группой DevOps, чтобы группа могла независимо управлять всеми аспектами этих ресурсов.Since all the resources are in the same virtual network, they are isolated in the same basic workload, that makes it easier to associate the workload's specific resources to a DevOps team, so that the team can independently manage all aspects of those resources. Эта изоляция позволяет команде DevOps выполнять непрерывную интеграцию и непрерывную доставку (CI/CD).This isolation enables the DevOps Team to perform continuous integration and continuous delivery (CI/CD).

Кроме того, вы можете использовать разные шаблоны Azure Resource Manager и интегрировать их с Azure DevOps Services для подготовки различных сред за несколько минут, например для репликации рабочих сред, таких как сценарии или нагрузочные среды тестирования, только при необходимости, экономя затраты.Also, you can use different Azure Resource Manager templates and integrate them with Azure DevOps Services to provision different environments in minutes, for example to replicate production like scenarios or load testing environments only when needed, saving cost.

Для повышения уровня доступности см. N-уровневое приложение Linux в Azure с помощью Apache Cassandra. Эталонная архитектура включает в себя несколько виртуальных машин, а каждая виртуальная машина входит в группу доступности.For higher availability architecture see Linux N-tier application in Azure with Apache Cassandra, the reference architecture includes more than one VM and each VM is included in an availability set.

Рассмотрите возможность использования Azure Monitor для анализа и оптимизации производительности инфраструктуры, мониторинга и диагностики сетевых проблем без входа на виртуальные машины.Consider using the Azure Monitor to Analyze and optimize the performance of your infrastructure, Monitor and diagnose networking issues without logging into your virtual machines.

Дополнительные сведения см. в разделе, посвященном работе, в Microsoft Azure хорошо спроектированной инфраструктурой.For more information, see the Operationl excellence section in Microsoft Azure Well-Architected Framework.

Дальнейшие действияNext steps