目录
【23】为什么创建的虚拟机,默认的网络是nat,网段会是122呢?
kvm-01 |
10.0.0.31 |
4G |
cpu开启vt虚拟化 |
kvm-02 |
10.0.0.32 |
2G |
cpu开启vt虚拟化 |
【1】kvm-01:安装-KVM管理工具
[root@kvm-01 ~]# lsmod | grep kvm
kvm_intel 170181 0
kvm 554609 1 kvm_intel
irqbypass 13503 1 kvm
[root@kvm-01 ~]# yum -y install libvirt qemu-kvm virt-install.noarch openssl
[root@kvm-01 ~]# systemctl start libvirtd.service
[root@kvm-01 ~]# systemctl enable libvirtd.service
### 把下载的镜像拉到虚拟机 ### 放到opt下
【2】创建新的虚拟机
- 建议创建的虚拟机的宿主机内存不要低于2G。否则会特别慢
- 下面使用命令的方式创建虚拟机,搭配vnc得到图形界面
[root@kvm-01 ~]# virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-test --memory 1024 --vcpus 1 --disk /opt/centos7-test.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-Minimal-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
Starting install...
Allocating 'centos2.raw' | 10 GB 00:00:00
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
# --virt-type kvm :虚拟化类型kvm、qemu
# --os-type=linux :系统类型
# --os-variant rhel7 :系统版本
# --name centos7-test :虚拟机名称(唯一)
# --memory 1024 :虚拟机内存
# --vcpus 1 :CPU核数
# --disk /opt/centos2.raw,format=raw,size=10 :硬盘位置、格式、容量(唯一)
# --cdrom /opt/CentOS-7-x86_64-Minimal-1810.iso :使用的镜像文件
# --network network=default :默认网络
# --graphics vnc,listen=0.0.0.0 :vnc显示输出
# --noautoconsole
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test running
【3】kvm常用管理命令
# 查看运行中的虚拟机
[root@kvm-01 ~]# virsh list
Id Name State
----------------------------------------------------
# 查看所有存在的虚拟机
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test shut off
# 启动虚拟机
[root@kvm-01 ~]# virsh start centos7-test
Domain centos7-test started
[root@kvm-01 ~]# virsh list
Id Name State
----------------------------------------------------
2 centos7-test running
# 关机虚拟机
[root@kvm-01 ~]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
# 拔电源关机
[root@kvm-01 ~]# virsh destroy centos7-test
# 重启
[root@kvm-01 ~]# virsh reboot centos7-test
# 磁盘文件占用空间,创建的时候分配了10G,查看目前已使用
[root@kvm-01 ~]# du -smh /opt/*
1.4G /opt/centos2.raw
918M /opt/CentOS-7-x86_64-Minimal-1810.iso
# 磁盘空间分配的大小
[root@kvm-01 ~]# ll -h /opt/
total 2.3G
-rw------- 1 qemu qemu 10G Jul 14 00:44 centos2.raw
-rw-r--r-- 1 qemu qemu 918M Jul 13 08:42 CentOS-7-x86_64-Minimal-1810.iso
# 备份磁盘文件
[root@kvm-01 ~]# cp /opt/centos2.raw /backup/
# 配置文件备份
[root@kvm-01 ~]# virsh dumpxml centos7-test > kvm_centos7-test.xml
# 删除虚拟机,先关机在删除,删除后磁盘文件是不会被删除的注意
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test running
[root@kvm-01 ~]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
[root@kvm-01 ~]# virsh undefine centos7-test
Domain centos7-test has been undefined
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
# 上面备份的配置文件,根据配置文件导入虚拟机
[root@kvm-01 ~]# ls
anaconda-ks.cfg kvm_centos7-test.xml
[root@kvm-01 ~]# virsh define kvm_centos7-test.xml
Domain centos7-test defined from kvm_centos7-test.xml
[root@kvm-01 ~]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test shut off
# 修改配置文件edit,如果修改了磁盘文件的名称,但是没有修改配置文件,启动虚拟机时他会找不到磁盘文件而报错
[root@kvm-01 ~]# virsh edit centos7-test
[root@kvm-01 opt]# mv centos7-test.raw centos7-test-7-14.raw
[root@kvm-01 opt]# virsh start centos7-test
error: Failed to start domain centos7-test
error: Cannot access storage file '/opt/centos7-test.raw': No such file or directory
[root@kvm-01 opt]# virsh edit centos7-test
<source file='/opt/centos7-test-7-14.raw'/>
[root@kvm-01 opt]# virsh start centos7-test
Domain centos7-test started
# 修改cpu的核数,很多时候修改了配置需要重启生效,reboot不管用
[root@kvm-01 opt]# virsh edit centos7-test
<vcpu placement='static'>2</vcpu>
[root@kvm-01 opt]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
[root@kvm-01 opt]# virsh start centos7-test
Domain centos7-test started
# 重命名,不能处于运行期间修改
[root@kvm-01 opt]# virsh shutdown centos7-test
Domain centos7-test is being shutdown
[root@kvm-01 opt]# virsh domrename centos7-test centos7-test-7-14
Domain successfully renamed
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# virsh start centos7-test-7-14
Domain centos7-test-7-14 started
# 挂起处于运行的虚拟机
[root@kvm-01 opt]# virsh suspend centos7-test-7-14
Domain centos7-test-7-14 suspended
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
8 centos7-test-7-14 paused
# 恢复被挂起的虚拟机,恢复后虚拟机的时间可能会落后
[root@kvm-01 opt]# virsh resume centos7-test-7-14
Domain centos7-test-7-14 resumed
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
8 centos7-test-7-14 running
# 建议虚拟机下载时间同步服务
[root@localhost ~]# yum -y instarll chrony
# 查询vnc端口号
[root@kvm-01 opt]# virsh vncdisplay centos7-test-7-14
:0
# 一个虚拟机相当于一个qemu进程
[root@kvm-01 opt]# ps -ef | grep qemu
# KVM 宿主机开机自动启动虚拟机,宿主机开机时只要启动了libvirtd服务,就会拉起虚拟机
[root@kvm-01 opt]# virsh autostart centos7-test-7-14
Domain centos7-test-7-14 marked as autostarted
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# systemctl restart libvirtd.service
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
# 查看虚拟机是否被设置开机自启,如果我们删除了autostart目录下的软连接就相当与关闭了开机自启
[root@kvm-01 opt]# ll -h /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 39 Jul 14 02:14 centos7-test-7-14.xml -> /etc/libvirt/qemu/centos7-test-7-14.xml
[root@kvm-01 opt]# rm -rf /etc/libvirt/qemu/autostart/centos7-test-7-14.xml
[root@kvm-01 opt]# virsh shutdown centos7-test-7-14
Domain centos7-test-7-14 is being shutdown
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# systemctl restart libvirtd.service
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
- centos7-test-7-14 shut off
[root@kvm-01 opt]# ln -s /etc/libvirt/qemu/centos7-test-7-14.xml /etc/libvirt/qemu/autostart/
[root@kvm-01 opt]# ll /etc/libvirt/qemu/autostart/
total 0
lrwxrwxrwx 1 root root 39 Jul 14 02:23 centos7-test-7-14.xml -> /etc/libvirt/qemu/centos7-test-7-14.xml
[root@kvm-01 opt]# systemctl restart libvirtd.service
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
# 第二种方式查看虚拟机是否被设置开机自启
[root@kvm-01 opt]# virsh list --autostart --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
# 取消开机自启、1:删除软连接 2:命令方式
[root@kvm-01 opt]# virsh autostart --disable centos7-test-7-14
Domain centos7-test-7-14 unmarked as autostarted
[root@kvm-01 opt]# virsh list --autostart --all
Id Name State
----------------------------------------------------
【4】console控制台登录
- console:命令版的控制台
- vnc:图形版的控制台
# 7系统的方式,在虚拟机中配置
[root@kvm-01 opt]# ssh root@192.168.122.75
root@192.168.122.75's password:
Last login: Fri Jul 14 13:57:14 2023 from gateway
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"
[root@localhost ~]# reboot
Connection to 192.168.122.75 closed by remote host.
Connection to 192.168.122.75 closed.
[root@kvm-01 opt]#
[root@kvm-01 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 centos7-test-7-14 running
[root@kvm-01 opt]# virsh console centos7-test-7-14
Connected to domain centos7-test-7-14
Escape character is ^]
ctrl+] 退出 、回车进入
CentOS Linux 7 (Core)
Kernel 3.10.0-957.el7.x86_64 on an x86_64
localhost login: root
Password:
Last login: Fri Jul 14 14:33:14 from gateway
[root@localhost ~]#
[root@localhost ~]# ctrl + ] 退出 ,返回到宿主机界面
[root@kvm-01 opt]#
【5】修改虚拟机的密码
- 虚拟机中需要安装qemu-guest-agent
[root@kvm-01 opt]# ssh root@192.168.122.75
root@192.168.122.75's password:
Last login: Fri Jul 14 14:39:36 2023
[root@localhost ~]# ps -ef | grep qemu.guest_agent
root 3177 3104 0 14:53 pts/0 00:00:00 grep --color=auto qemu.guest_agent
[root@localhost ~]# yum -y install qemu-guest-agent
[root@localhost ~]# systemctl start qemu-guest-agent
[root@localhost ~]# systemctl enable qemu-guest-agent
[root@localhost ~]# ps -ef | grep qemu.guest_agent
root 3185 1 0 14:54 ? 00:00:00 /usr/bin/qemu-ga --method=virtio-serial --path=/dev/vi