Как переименовать гостевую виртуальную машину KVM
Из этого туториала вы узнаете, как переименовать гостевую виртуальную машину KVM из командной строки в Linux. У меня на KVM-сервере работает несколько виртуальных машин с разными версиями Linux. Для удобства я всегда называю каждую виртуальную машину версией ОС или приложением, которое в данный момент работает на этой виртуальной машине. Например, если виртуальная машина работает с минимальной версией CentOS 8, я бы назвал ее «centos8». Если Веб-сервер Apache установлен на виртуальной машине CentOS 8, то имя гостя KVM будет «apache_centos8» и так далее. Сегодня я хотел бы протестировать Nginx на виртуальной машине CentOS 8, поэтому переименовал его в «nginx_centos8», как описано ниже.
Переименование гостевой виртуальной машины KVM в Linux
Мы можем изменить имя виртуальной машины на KVM с помощью утилиты командной строки virsh двумя способами:
- Используя команду «domrename»,
- Изменение XML-файла конфигурации виртуальной машины вручную.
Сначала мы увидим, как переименовать виртуальную машину KVM с помощью команды «virsh domrename».
1. Переименуйте виртуальную машину KVM, используя «virsh domrename».
Команда virsh domrename используется для переименования домена. Эта команда меняет текущее имя домена на новое, не внося никаких изменений в файлы конфигурации.
Типичное использование команды «virsh domrename»:
virsh domrename <old-name> <new-name>
Обратите внимание, что домен должен быть неактивен и не иметь снапшотов и контрольных точек.
Сначала убедитесь, что гостевая виртуальная машина KVM выключена.
virsh list --all
Пример вывода:
Id Name State
-------------------------------
- centos8 shut off
- centos8-uefi shut off
Как видите, у меня есть два гостя KVM, и оба они выключены.
Если виртуальная машина запущена, просто выключите ее с помощью команды:
virsh shutdown centos8
Теперь я собираюсь переименовать гостевую машину «centos8» в «nginx_centos8», используя команду «domrename», как показано ниже:
virsh domrename centos8 nginx_centos8
После успешного переименования вы должны увидеть вывод, подобный приведенному ниже:
Domain successfully renamed
Теперь проверьте, действительно ли имя виртуальной машины было изменено или нет:
virsh list --all
Пример вывода:
Id Name State
--------------------------------
- centos8-uefi shut off
- nginx_centos8 shut off
Вы также можете проверить это из приложения Virt-manager.
Откройте Virt-manager, дважды щелкните виртуальную машину, а затем щелкните значок Показать сведения о виртуальном оборудовании в строке меню. Вы увидите имя виртуальной машины в разделе Обзор.
Вот и все. Мы успешно переименовали виртуальную машину с именем «centos8» в «nginx_centos8». Это всего лишь однострочная команда, которую очень легко запомнить.
Далее мы рассмотрим способ вручную, который требует некоторого редактирования XML-файла конфигурации виртуальной машины.
2. Переименуйте виртуальную машину KVM, изменив ее XML-файл.
Убедитесь, что виртуальная машина, которую вы собираетесь переименовать, выключена.
virsh list --all
Если виртуальная машина в данный момент работает, просто выключите ее с помощью команды:
virsh shutdown centos8
Теперь экспортируйте детали конфигурации старого домена (VM) в новый домен с помощью команды:
virsh dumpxml centos8 > nginx_centos8.xml
Приведенная выше команда скопирует старую конфигурацию в новый файл конфигурации с именем «nginx_centos8.xml» и сохранит его в текущем каталоге.
Отмените определение старого домена, т.е. удалите существующую старую конфигурацию домена:
virsh undefine centos8
Пример вывода:
Domain centos8 has been undefined
Отредактируйте новый файл конфигурации с помощью предпочитаемого вами текстового редактора:
nano nginx_centos8.xml
Перейдите в поле
domain type='kvm'>
<name>nginx_centos8</name>
<uuid>270437c4-8dfb-40d1-a2d1-c497015c0f22</uuid>
<metadata>
[...]
Определите новую виртуальную гостевую машину KVM с помощью нового файла конфигурации XML:
virsh define nginx_centos8.xml
Пример вывода:
Domain nginx_centos8 defined from nginx_centos8.xml
Наконец, запустите новую гостевую машину с новой конфигурацией XML:
virsh start nginx_centos8
Пример вывода:
Domain nginx_centos8 started
Убедитесь, что новая виртуальная машина KVM работает:
virsh list --all
Пример вывода:
Id Name State
--------------------------------
2 nginx_centos8 running
- centos8-uefi shut off
Вы также можете проверить это из графического интерфейса Вирт-менеджера, как описано в предыдущем разделе.
Надеюсь, поможет.