Решение проблем в Compute Cloud
-
Не удается подключиться по SSH к вновь созданной ВМ с несколькими сетевыми интерфейсами
-
Дополнительные сетевые интерфейсы не работают после добавления на существующую ВМ
-
Почему перенос в зону завершается ошибкой Relocation to zone is disabled?
В этом разделе описаны типичные проблемы, которые могут возникнуть при работе Compute Cloud, и методы их решения.
Не удается подключиться по SSH к вновь созданной ВМ с несколькими сетевыми интерфейсами
При создании ВМ Linux с несколькими сетевыми интерфейсами может возникнуть проблема с работоспособностью дополнительных сетевых интерфейсов внутри ОС. В некоторых случаях эта проблема может вызвать нарушение сетевой связности и привести к невозможности подключиться к ВМ по SSH.
Внимание
Доступ к содержимому ВМ возможен только через учетные данные пользователя, например с помощью SSH-ключей, поэтому техническая поддержка Yandex Cloud не имеет доступа к операционной системе внутри ВМ из соображений безопасности и конфиденциальности пользовательских данных.
Чтобы устранить проблему, удалите ВМ и создайте новую, передав в метаданных создаваемой ВМ дополнительные параметры cloud-init
Раскройте секцию Метаданные и добавьте ключ user-data со следующей конфигурацией:
Для ОС Ubuntu
В секции конфигурации write_files.content.network.ethernets по аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, создаваемых на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.
#cloud-config
datasource:
Ec2:
strict_id: false
ssh_pwauth: yes
users:
- name: <имя_пользователя>
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
ssh_authorized_keys:
- <публичный_SSH-ключ>
write_files:
- path: "/etc/netplan/01-netcfg.yaml"
permissions: "0644"
content: |
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
eth1:
dhcp4: yes
dhcp4-overrides:
use-dns: false
use-routes: false
dhcp6: no
eth2:
dhcp4: yes
dhcp4-overrides:
use-dns: false
use-routes: false
dhcp6: no
runcmd:
- sleep 1
- sudo -i
- netplan apply
Для ОС Debian
В секциях конфигурации Primary network interface и Other network interfaces по аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, создаваемых на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.
#cloud-config
datasource:
Ec2:
strict_id: false
ssh_pwauth: yes
users:
- name: <имя_пользователя>
sudo: ALL=(ALL) NOPASSWD:ALL
shell: /bin/bash
ssh_authorized_keys:
- <публичный_SSH-ключ>
write_files:
- path: "/etc/network/interfaces"
permissions: "0644"
content: |
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# Loopback network interface
auto lo
iface lo inet loopback
# Primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
# Other network interfaces
auto eth1
allow-hotplug eth1
iface eth1 inet dhcp
auto eth2
allow-hotplug eth2
iface eth2 inet dhcp
post-up ip route del default
runcmd:
- sleep 1
- sudo -i
- systemctl restart networking
Где:
name:— имя пользователя для подключения к ВМ по SSH.ssh_authorized_keys:— список публичных SSH-ключей для подключения пользователя к ВМ по SSH. Укажите как минимум один публичный SSH-ключ.
-
Создайте файл с конфигурацией cloud-init, например
vm-init.tpl:Для ОС Ubuntu
В секции конфигурации
write_files.content.network.ethernetsпо аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, создаваемых на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.#cloud-config datasource: Ec2: strict_id: false ssh_pwauth: yes users: - name: <имя_пользователя> sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash ssh_authorized_keys: - <публичный_SSH-ключ> write_files: - path: "/etc/netplan/01-netcfg.yaml" permissions: "0644" content: | # This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: eth0: dhcp4: yes eth1: dhcp4: yes dhcp4-overrides: use-dns: false use-routes: false dhcp6: no eth2: dhcp4: yes dhcp4-overrides: use-dns: false use-routes: false dhcp6: no runcmd: - sleep 1 - sudo -i - netplan applyДля ОС Debian
В секциях конфигурации
Primary network interfaceиOther network interfacesпо аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, создаваемых на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.#cloud-config datasource: Ec2: strict_id: false ssh_pwauth: yes users: - name: <имя_пользователя> sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash ssh_authorized_keys: - <публичный_SSH-ключ> write_files: - path: "/etc/network/interfaces" permissions: "0644" content: | # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # Loopback network interface auto lo iface lo inet loopback # Primary network interface allow-hotplug eth0 iface eth0 inet dhcp # Other network interfaces auto eth1 allow-hotplug eth1 iface eth1 inet dhcp auto eth2 allow-hotplug eth2 iface eth2 inet dhcp post-up ip route del default runcmd: - sleep 1 - sudo -i - systemctl restart networking -
При создании ВМ передайте в нее созданный файл с конфигурацией в параметре
--metadata-from-file, например:yc compute instance create --name=multi-net-vm --hostname=multi-net-vm \ --zone kz1-a \ --create-boot-disk image-folder-id=standard-images,image-id=fd8bi0vgcf8vco49q3bm \ --cores=2 --memory=4G --core-fraction=100 \ --network-interface subnet-name=subnet1,ipv4-address=auto,nat-ip-version=ipv4 \ --network-interface subnet-name=subnet2,ipv4-address=auto \ --network-interface subnet-name=subnet3,ipv4-address=auto \ --metadata-from-file user-data=vm-init.tplПримечание
Команды
yc compute instance create|create-with-container|update|add-metadataподдерживают подстановку в метаданные ВМ значений переменных окружения. Эти значения, заданные в ключеuser-dataв формате$<имя_переменной>, в момент выполнения команды Yandex Cloud CLI будут подставлены в метаданные ВМ из переменных окружения среды, в которой выполняется команда.Чтобы изменить такое поведение, не подставлять значение переменной из среды выполнения команды CLI и передать в метаданные ВМ имя переменной в формате
$<имя_переменной>, используйте синтаксис с двумя символами доллара. Например:$$<имя_переменной>.Подробнее в разделе Особенности передачи переменных окружения в метаданных через CLI.
-
Создайте файл с конфигурацией cloud-init, например
vm-init.tpl:Для ОС Ubuntu
В секции конфигурации
write_files.content.network.ethernetsпо аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, создаваемых на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.#cloud-config datasource: Ec2: strict_id: false ssh_pwauth: yes users: - name: <имя_пользователя> sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash ssh_authorized_keys: - <публичный_SSH-ключ> write_files: - path: "/etc/netplan/01-netcfg.yaml" permissions: "0644" content: | # This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: eth0: dhcp4: yes eth1: dhcp4: yes dhcp4-overrides: use-dns: false use-routes: false dhcp6: no eth2: dhcp4: yes dhcp4-overrides: use-dns: false use-routes: false dhcp6: no runcmd: - sleep 1 - sudo -i - netplan applyДля ОС Debian
В секциях конфигурации
Primary network interfaceиOther network interfacesпо аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, создаваемых на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.#cloud-config datasource: Ec2: strict_id: false ssh_pwauth: yes users: - name: <имя_пользователя> sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash ssh_authorized_keys: - <публичный_SSH-ключ> write_files: - path: "/etc/network/interfaces" permissions: "0644" content: | # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # Loopback network interface auto lo iface lo inet loopback # Primary network interface allow-hotplug eth0 iface eth0 inet dhcp # Other network interfaces auto eth1 allow-hotplug eth1 iface eth1 inet dhcp auto eth2 allow-hotplug eth2 iface eth2 inet dhcp post-up ip route del default runcmd: - sleep 1 - sudo -i - systemctl restart networking -
При создании ВМ передайте в нее созданный файл с метаданными в блоке
yandex_compute_instance.metadata, например:resource "yandex_compute_instance" "multi-net-vm" { name = "multi-net-vm" platform_id = "standard-v2" zone = "kz1-a" resources { cores = "2" memory = "2" } boot_disk { initialize_params { image_id = "fd8bi0vgcf8vco49q3bm" } } network_interface { subnet_id = "e2lrucutusnd********" nat = true } network_interface { subnet_id = "e2lpp96bvvgp********" nat = false } network_interface { subnet_id = "e2lv9c6aek1d********" nat = false } metadata = { user-data = "${file("./vm-init.tpl")}" } }
Дополнительные сетевые интерфейсы не работают после добавления на существующую ВМ
После добавления на ВМ Linux дополнительных сетевых интерфейсов может возникнуть проблема с их работоспособностью внутри ОС. В некоторых случаях эта проблема может вызвать нарушение сетевой связности и привести к невозможности подключиться к ВМ по SSH.
Чтобы устранить проблему, попробуйте обновить операционную систему ВМ до последней версии.
Если обновление ОС невозможно или не помогает:
-
Подключитесь к ВМ по SSH.
Если подключение по SSH невозможно из-за нарушения сетевой связности, предварительно удалите на ВМ все дополнительные сетевые интерфейсы и перезагрузите ВМ.
-
Внесите изменения в конфигурацию сети ОС:
UbuntuDebian-
Добавьте конфигурацию новых сетевых интерфейсов в файл
/etc/netplan/01-netcfg.yaml:sudo nano /etc/netplan/01-netcfg.yamlВ секции конфигурации
write_files.content.network.ethernetsпо аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, которые есть или будут добавлены на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.# This file describes the network interfaces available on your system # For more information, see netplan(5). network: version: 2 renderer: networkd ethernets: eth0: dhcp4: yes eth1: dhcp4: yes dhcp4-overrides: use-dns: false use-routes: false dhcp6: no eth2: dhcp4: yes dhcp4-overrides: use-dns: false use-routes: false dhcp6: no -
Назначьте файлу
/etc/netplan/01-netcfg.yamlнужные права:sudo chmod 0644 /etc/netplan/01-netcfg.yaml -
Примените изменения в конфигурации сетевых интерфейсов:
sudo netplan apply
-
Добавьте конфигурацию новых сетевых интерфейсов в файл
/etc/network/interfaces:sudo nano /etc/network/interfacesВ секциях конфигурации
Primary network interfaceиOther network interfacesпо аналогии задайте настройки для нужного количества сетевых интерфейсов ВМ, которые есть или будут добавлены на ВМ. Нумерация интерфейсов начинается с нуля. В приведенном примере настройки задаются для трех интерфейсов. На одну ВМ можно добавить не более восьми сетевых интерфейсов.# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # Loopback network interface auto lo iface lo inet loopback # Primary network interface allow-hotplug eth0 iface eth0 inet dhcp # Other network interfaces auto eth1 allow-hotplug eth1 iface eth1 inet dhcp auto eth2 allow-hotplug eth2 iface eth2 inet dhcp post-up ip route del default -
Перезапустите сетевую службу:
sudo systemctl restart networking
-
-
Если ранее вам пришлось удалить дополнительные сетевые интерфейсы, вновь добавьте их.
ВМ недоступна
Если сервисы на ВМ отвечают медленно, а SSH-сессия зависает, проверьте троттлинг дисковых операций. Низкая загрузка CPU не исключает проблему с диском.
На графиках мониторинга диска проверьте задержки Disk read throttler latency (percentiles) и Disk write throttler latency (percentiles). Рост этих показателей означает, что дисковые операции откладываются из-за ограничений производительности. Сопоставьте нагрузку с лимитами дисков и найдите процессы, создающие нагрузку, например, с помощью iotop в Linux.
Если производительности не хватает, увеличьте размер диска до следующего блока размещения или перенесите данные на более быстрый тип диска. В общем случае сетевые HDD медленнее сетевых SSD, а нереплицируемые и высокопроизводительные SSD обеспечивают более высокие лимиты. Конкретные значения зависят от типа и размера диска: Операции чтения и записи.
Для загрузочного диска воспользуйтесь инструкцией Как создать ВМ с другим типом загрузочного диска?.
Что делать, если превышена квота на ресурсы?
Превышение квоты может препятствовать созданию ВМ, дисков, снимков и расписаний. Например:
The limit on maximum number of cores has exceeded— превышена квота на количество vCPU.Limit compute.snapshots.count exceeded— превышена квота на количество снимков.Limit compute.snapshots.size exceeded— превышена квота на общий объем снимков.Limit compute.snapshotSchedules.count exceeded— превышена квота на количество расписаний снимков.
Проверьте потребление квот Compute Cloud, в том числе на память, ВМ и диски. Освободите ненужные ресурсы или запросите увеличение квоты.
Используйте инструкцию Изменить квоты: в ней приведены способы для консоли управления, CLI и API.
Почему перенос в зону завершается ошибкой Relocation to zone is disabled?
Проверьте доступные направления и ограничения в инструкциях Перенести виртуальную машину в другую зону доступности и Перенести диск в другую зону доступности.