目录
一、安装
1.1、先确认CPU是否支持虚拟化
1.2、安装KVM及相关工具包
1.3、启动libvirtd并设置为开机启动
1.4、创建磁盘
1.5、开始安装虚拟机
二、虚拟机操作
2.1 虚拟机启停操作
2.2 虚拟机网卡操作
2.3 虚拟机快照
三、获取帮助
3.1 获取所有命令帮助
3.2 获取子命令帮助
一、安装
1.1、先确认CPU是否支持虚拟化
intel的CPU虚拟化技术是vmx,AMD的CPU是svm:
[root@localhost ~]# grep -E "vmx|svm" /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep
有输出结果,表示你的CPU支持虚拟化
1.2、安装KVM及相关工具包
[root@localhost ~]# yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install
1.3、启动libvirtd并设置为开机启动
libvirtd进程会创建一个桥接的网上virbr0,而且IP地址是192.168.122.1
[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd
[root@localhost ~]# ifconfig virbr0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:cb:ca:b0 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
下面的是为虚拟机分配IP地址的服务:
[root@localhost ~]# ps -aux | grep dns
nobody 2877 0.0 0.0 15552 888 ? S 13:06 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 2878 0.0 0.0 15524 180 ? S 13:06 0:00 /sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 4546 0.0 0.0 112664 980 pts/0 S+ 13:29 0:00 grep --color=auto dns
1.4、创建磁盘
[root@llocalhost ~]# qemu-img create -f qcow2 /opt/CentOS-7-x86_64.qcow2 10G #创建一个格式为qcow2大小为10G的磁盘
Formatting '/opt/CentOS-7-x86_64.raw', fmt=qcow2 size=10737418240
注意:常用的磁盘格式有raw和qcow2。raw是直接从物理磁盘上划一块空间出来,创建磁盘时设定的磁盘是10GB,生成出来的磁盘文件就是10GB,raw格式的磁盘比较占用宿主机的资源,但是它的性能相较于qcow2要好。而qcow2格式,只是设定了一个逻辑大小为10GB,使用磁盘空间最多不能超过10GB,,生成的磁盘文件开始只有100KB,这个文件的大小 ,会随着你的使用增大,但不会超过10GB。
1.5、开始安装虚拟机
[root@LOCALHOST imgs]# virt-install --virt-type=kvm --name=openstack-load_balancing-node1 --ram=4096 --vcpus=1 --cdrom=/system/iso/CentOS-7-x86_64-Minimal-1511.iso --disk path=/system/imgs/openstack-load_balancing-node1.qcow2,size=100,format=qcow2 --network bridge=br1 --graphics vnc,listen=0.0.0.0,port=60000 --noautoconsole
#参数解释
--virt-type=kvm 指定虚拟机类型为KVM
--name=openstack-load_balancing-node1 指定虚拟机名称
--ram=4096 指定内存为4096M,默认单位是M
--vcpus=1 指定虚拟CPU个数为1个
--cdrom=/system/iso/CentOS-7-x86_64-Minimal-1511.iso 指定安装虚拟机用的镜像
--disk path=/system/imgs/openstack-load_balancing-node1.qcow2,size=100,format=qcow2 指定虚拟磁盘,切记要加上size和format,否则安装系统时会出现磁盘仅为194K,不能安装系统的情况
--network bridge=br1 桥接到宿主机的br1网卡
--graphics vnc,listen=0.0.0.0,port=60000 使用VNC远程桌面连接,操作安装系统用,端口为60000;VNC默认的端口为5900,有时可能会被运营商禁用,这时你需要换一个端口试试。
--noautoconsole 不要自动尝试连接到客户端控制台
注意:要想为虚拟机添加多块网卡,就需要指定多个“--network” 参数。
命令执行成功,如下图:
这时就可以用VNC连接图形界面,进行安装了:
进入安装界面,将CentOS 7无规则的网卡命名方式修改为eth0 、eth1这样,需在上述界面中按上方向键选中“Install CentOS Linux 7”,然后按“Tab”键进行编辑,给内核传参,加入“net.ifnames=0 biosdevname=0”。
接下来的系统安装步骤就不再赘述了。
二、虚拟机操作
2.1 虚拟机启停操作
查看: virsh list --all
开启: virsh start openstack-load2
重启:virsh reboot openstack-load2
关机:virsh shutdown openstack-load2
删除:virsh undefine openstack-load2
随宿主机自启动:virsh autostart openstack-load2
恢复:virsh define /etc/libvirtd/qemu/openstack-load2.xml
注意:要想恢复虚拟机,必须保证虚拟机配置文件中
<source file='/system/imgs/openstack-load2.qcow2'/>
定义的虚拟磁盘是存在的。
2.2 虚拟机网卡操作
- 列出指定虚拟机的网卡:
命令:
virsh domiflist openstack-compute1
- 动态添加虚拟机网卡:
命令:
virsh attach-interface --domain openstack-compute1 --type bridge --source br2 --model virtio --persistent --config
注意:
- --domain 后面可以跟虚拟机名称或者虚拟机ID。
- --persistent 实时更改并将修改写入配置文件中
- --config 下一次启动时生效
- 移除虚拟网卡
命令:
virsh detach-interface openstack-load1 --type bridge --mac 52:54:00:0f:0d:df
注意:虚拟机网卡MAC地址可以通过virsh domiflist openstack-load1
命令获取
2.3 虚拟机快照
- 列出指定虚拟的所有快照:
命令:
virsh snapshot-list openstack-load1
- 为指定虚拟机创建快照:
- 命令格式:
virsh snapshot-create-as 虚拟机名 快照别名
- 命令格式:
命令:
virsh snapshot-create-as openstack-load1 openstack-load1-base-180324
- 列出指定虚拟机的快照
命令:
virsh snapshot-list openstack-compute1
- 查看虚拟机当前快照:
命令:
virsh snapshot-current openstack-load1
- 为虚拟机恢复至指定快照
[root@LOCALHOST ~]# virsh snapshot-revert --help
NAME
snapshot-revert - Revert a domain to a snapshot
SYNOPSIS
snapshot-revert <domain> [<snapshotname>] [--current] [--running] [--paused] [--force]
DESCRIPTION
Revert domain to snapshot
OPTIONS
[--domain] <string> domain name, id or uuid
[--snapshotname] <string> snapshot name
--current revert to current snapshot
--running after reverting, change state to running
--paused after reverting, change state to paused
--force try harder on risky reverts
命令:
virsh snapshot-revert openstack-load1 openstack-load1-base-180324 --running
-openstack-load1
:虚拟机名称
-openstack-load1-base-180324
是快照名称,可通过virsh snapshot-list 虚机名
查看
---running
表示恢复快照后,将虚拟机状态改为正在运行
2.4 虚拟机改名
1)终端命令行下查看虚拟机
[root@kvm-server ~]# virsh list
Id Name State
----------------------------------------------------
4 vmserver004 running
5 vmserver003 running
6 vmserver005 running
2)关闭虚拟机
[root@kvm-server ~]# virsh shutdown vmserver003
3)导出xml文件
[root@kvm-server ~]# cd /etc/libvirt/qemu
[root@kvm-server qemu]# ls
networks vmserver003.xml vmserver004.xml vmserver005.xml
[root@kvm-server qemu]# virsh dumpxml vmserver003 > test-huanqiu.xml
[root@kvm-server qemu]# ls
networks test-huanqiu.xml vmserver004.xml vmserver005.xml
4)编辑test-huanqiu.xml文件,将里面的vmserver003全部替换成test-huanqiu
[root@kvm-server qemu]# sed -i 's/vmserver003/test-huanqiu/g' test-huanqiu.xml
- 重定义
[root@kvm-server qemu]# virsh undefine vmserver003
[root@kvm-server qemu]# virsh define test-huanqiu.xml
若有修改img也将文件重命名下如:[root@kvm-server qemu]# vim test-huanqiu.xml
# 将里面使用的img镜像文件名也可以重命名(文件里有镜像文件路径)
6)启动虚拟机
[root@kvm-server qemu]# virsh start test-huanqiu
7) 重命名后查看
[root@kvm-server qemu]# virsh list
Id Name State
----------------------------------------------------
4 vmserver004 running
5 test-huanqiu running
6 vmserver005 running
2.5 KVM虚拟机硬件配置修改、磁盘扩展以及主机迁移
1,KVM虚拟机硬件配置修改
关机,virsh edit host 编译虚拟机配置文件,进行内存 、cpu参数修改。修改以后重启虚拟机加载最新配置。
2,磁盘扩展
由于非专业搞虚拟化,这里只用于测试环境部署使用。更为专业的磁盘扩展请参考其他资料。这里以linux 66主机的qcow2为例扩展。操作步骤:
(1)关机
(2)扩展
qemu-img resize linuxt66.qcow2 +5G
(3)启动并登录服务器扩展磁盘
3,主机迁移
思路:
(1)导出xml文件
(2)转移虚拟机磁盘文件
(3)新服务器重新定义主机 virsh define host
(4)启动
三、获取帮助
3.1 获取所有命令帮助
命令:
virsh --help
3.2 获取子命令帮助
命令:
virsh 子命令 --help