基于CentOS Linux release 7.7.1908 (Core) 环境下命令行方式安装配置KVM。
检测服务器是否支持KVM KVM 是基于 x86 虚拟化扩展(Intel VT 或者 AMD-V) 技术的虚拟机软件,所以查看 CPU 是否支持 VT 技术,就可以判断是否支持KVM。有返回结果,如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU的支持的。
1 2 cat /proc/cpuinfo | egrep 'vmx|svm' flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 popcnt aes lahf_lm ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid dtherm ida arat spec_ctrl intel_stibp flush_l1d
安装 KVM 环境 kvm相关安装包及其作用:
qemu-kvm
主要的KVM程序包
python-virtinst
创建虚拟机所需要的命令行工具和程序库
virt-manager
GUI虚拟机管理工具
virt-top
虚拟机统计命令
virt-viewer
GUI连接程序,连接到已配置好的虚拟机
libvirt
C语言工具包,提供libvirt服务
libvirt-client
为虚拟客户机提供的C语言工具包
virt-install
基于libvirt服务的虚拟机创建命令
bridge-utils
创建和管理桥接设备的工具
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 yum -y install qemu-kvm libvirt virt-install bridge-utils reboot lsmod | grep kvm kvm_intel 188644 0 kvm 621480 1 kvm_intel
开启kvm服务,并且设置其开机自动启动
1 2 systemctl start libvirtd systemctl enable libvirtd
查看状态操作结果,如Active: active (running)
,说明运行正常
1 2 3 4 5 6 systemctl status libvirtd ● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-10 08:25:20 CST; 8s ago Docs: man:libvirtd(8) https://libvirt.org
安装虚拟机 kvm创建虚拟机,特别注意.iso
镜像文件一定放到/home
或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。
1 2 3 4 5 6 7 8 9 10 11 virt-install \ --virt-type=kvm \ --name=vm1 \ --vcpus=4 \ --memory=4096 \ --location=/tmp/CentOS-7-x86_64-Minimal-1908.iso \ --disk path=/opt/vms/vm1.qcow2,size=40,format=qcow2 \ --network bridge=virbr0 \ --graphics none \ --extra-args='console=ttyS0' \ --force
命令行配置系统 上面创建虚拟机命令最终会进入CentOS
安装界面(text),带 [!]
基本都是要配置的,按对应的数字依次进行设置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Installation 1) [x] Language settings 2) [!] Time settings (English (United States)) (Timezone is not set .) 3) [!] Installation source 4) [!] Software selection (Processing...) (Processing...) 5) [!] Installation Destination 6) [x] Kdump (No disks selected) (Kdump is enabled) 7) [ ] Network configuration 8) [!] Root password (Not connected) (Password is not set .) 9) [!] User creation (No user will be created) Please make your choice from above ['q' to quit | 'b' to begin installation | 'r' to refresh]:
连接虚拟机 虚机安装完成重启后,通过 virsh console <虚拟机名称>
命令来连接虚拟机
1 2 3 4 5 6 virsh list virsh list --all Id Name State ---------------------------------------------------- 1 vm1 running
连接虚拟机
配置虚拟机网络,编辑vi /etc/sysconfig/network-scripts/ifcfg-eth0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=119c527f-dea8-4669-976c-582eca49da01 DEVICE=eth0 ONBOOT=yes IPADDR=192.168.122.2 NETMASK=255.255.255.0 GATEWAY=192.168.122.1
添加DNS配置
1 2 echo "nameserver 114.114.114.114" > /etc/resolv.conf
激活网卡
测试网络连接
1 2 3 ping qq.com PING qq.com (61.129.7.47) 56(84) bytes of data. 64 bytes from 61.129.7.47 (61.129.7.47): icmp_seq=1 ttl=53 time=21.4 ms
虚拟机其它管理 1 2 3 4 5 6 7 8 9 virsh start vm1 virsh reboot vm1 virsh shutdown vm1 virsh destroy vm1 virsh suspend vm1 virsh resume vm1 virsh undefine vm1 virsh autostart vm1 virsh autostart --disable vm1
端口转发 以上述VM为例,目前该KVM宿主机的管理IP为10.10.16.182
,可连接公网,VM的IP为192.168.122.2
,现在要求通过访问KVM宿主机的2222端口访问VM的22端口。
宿主机上执行以下命令:
1 2 3 4 5 6 7 echo "1" >/proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -p tcp --dport 2222 -j DNAT --to-destination 192.168.122.2:22 iptables -t nat -A POSTROUTING -p tcp -d 192.168.122.2 --dport 22 -j SNAT --to-source 10.10.16.182 ssh -p 2222 [email protected]
通过iptables
命令来设置转发规则,源SNAT规则,源网络地址转换,SNAT就是重写包的源IP地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 iptables -t nat -A POSTROUTING -s 192.168.122.0/24 -j SNAT --to-source <固定IP>
公网访问虚拟机 通过公网ip 10.10.16.182
端口8080
,转发到虚拟机192.168.122.2:80
上面
1 iptables -t nat -A PREROUTING -d 10.10.16.182 -p tcp --dport 8080 -j DNAT --to-dest 192.168.122.2:80
重启并保存 iptables
配置
1 2 3 4 service iptables save service iptables restart
配置宿主机网络
KVM 虚拟机是基于 NAT 的网络配置;
只有同一宿主机的虚拟键之间可以互相访问,跨宿主机是不能访问;
虚拟机需要和宿主机配置成桥接模式,以便虚拟机可以在局域网内可见;
Bridge模式配置 Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。桥接网络 (也叫 物理设备共享 )被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ┌─────────────────────────┐ ┌─────────────────┐ │ HOST │ │Virtual Machine 1│ │ ┌──────┐ ┌───────┐ │ │ ┌──────┐ │ │ │ br0 │──┬───│ vnet0 │─│─ ─ ─ │ │ br0 │ │ │ └──────┘ │ └───────┘ │ │ └──────┘ │ │ │ │ │ └─────────────────┘ │ │ │ ┌───────┐ │ ┌─────────────────┐ │ ┌──────┐ └───│ vnet1 │─│─ │Virtual Machine 2│ │ │ eno0 │ └───────┘ │ │ │ ┌──────┐ │ │ └──────┘ │ ─ ─ │ │ br0 │ │ │ ┌──────┐ │ │ └──────┘ │ │ │ eno1 │ │ └─────────────────┘ │ └──────┘ │ └─────────────────────────┘
通过ip
命令查看宿主机配置文件的名字
1 2 3 4 5 6 7 ip a 6: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 38:63:bb:44:cf:6c brd ff:ff:ff:ff:ff:ff inet 10.10.16.182/24 brd 192.168.188.255 scope global dynamic eno1 valid_lft 2822sec preferred_lft 2822sec inet6 fe80::3a63:bbff:fe44:cf6c/64 scope link valid_lft forever preferred_lft forever
可以看到上面em1
是有获取到ip地址的,相对应的文件在/etc/sysconfig/network-scripts/
目录中,ifcfg-em1
宿主机的物理网卡配置文件
1 2 3 4 5 6 7 8 9 TYPE=Ethernet BOOTPROTO=static NAME=eno1 DEVICE=eno1 UUID=242b3d4d-37a5-4f46-b072-55554c185ecf ONBOOT=yes BRIDGE="br0"
ifcfg-br0
桥接网卡配置在同一个目录中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 BOOTPROTO=static DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=br0 DEVICE=br0 ONBOOT=yes TYPE=bridge IPADDR=10.10.16.182 PREFIX=22 GATEWAY=10.10.16.254
配置好之后,通过systemctl
命令重启网卡。
1 2 3 4 5 6 7 8 9 10 11 12 ifup eno1 ifup br0 systemctl restart network.service service network restart brctl show bridge name bridge id STP enabled interfaces br0 8000.0026b94213ce no em1 virbr0 8000.5254005d08e8 yes virbr0-nic vnet0
安装Bridge模式的虚拟机 1 2 3 4 5 6 7 8 9 10 11 virt-install \ --virt-type=kvm \ --name=vm-bridge \ --vcpus=4 \ --memory=4096 \ --location=/tmp/CentOS-7-x86_64-Minimal-1908.iso \ --disk path=/opt/vms/vm-bridge.qcow2,size=100,format=qcow2 \ --network bridge=br0 \ --graphics vnc,listen=0.0.0.0 \ --extra-args='console=ttyS0' \ --force
注意这里的参数 –network bridge=br0,网络使用br0网桥
1 2 3 4 5 brctl show bridge name bridge id STP enabled interfaces br0 8000.0026b94213ce no em1 vnet0
安装完后进入虚机
编辑网卡
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 vi /etc/sysconfig/network-scripts/ifcfg-eth0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=eth0 UUID=9ab4ed7f-b9a2-4dd6-900d-878d7f99289f DEVICE=eth0 ONBOOT=yes IPADDR=10.10.16.193 NETMASK=255.255.252.0 GATEWAY=10.10.16.254
启动网卡
NAT模式 NAT(Network Address Translation网络地址翻译),NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。
1 2 3 4 5 6 virsh net-edit default virsh net-list --all Name State Autostart Persistent ---------------------------------------------------------- default active no no
default是宿主机安装虚拟机支持模块的时候自动安装的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ip a l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000 link/ether 00:26:b9:42:13:ce brd ff:ff:ff:ff:ff:ff 3: em2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:26:b9:42:13:d0 brd ff:ff:ff:ff:ff:ff 4: em3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:26:b9:42:13:d2 brd ff:ff:ff:ff:ff:ff 5: em4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:26:b9:42:13:d4 brd ff:ff:ff:ff:ff:ff 6: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:5d:08:e8 brd ff:ff:ff:ff:ff:ff inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever 7: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:5d:08:e8 brd ff:ff:ff:ff:ff:ff 13: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN group default qlen 1000 link/ether fe:54:00:9b:45:fa brd ff:ff:ff:ff:ff:ff inet6 fe80::fc54:ff:fe9b:45fa/64 scope link valid_lft forever preferred_lft forever 14: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:26:b9:42:13:ce brd ff:ff:ff:ff:ff:ff inet 10.10.16.182/22 brd 10.10.19.255 scope global br0 valid_lft forever preferred_lft forever inet6 2001:470:19:8c:226:b9ff:fe42:13ce/64 scope global mngtmpaddr dynamic valid_lft 2591945sec preferred_lft 604745sec inet6 fe80::226:b9ff:fe42:13ce/64 scope link valid_lft forever preferred_lft forever
其中virbr0是由宿主机虚拟机支持模块安装时产生的虚拟网络接口,也是一个switch和bridge,负责把内容分发到各虚拟机。几个虚拟机管理模块产生的接口关系如下图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ┌───────────────────────┐ │ HOST │ │ ┌──────┐ │ ┌─────────────────┐ │ │ br0 │─┬──────┐ │ │Virtual Machine 1│ │ └──────┘ │ │ │ │ ┌──────┐ │ │ │ │ ┌───────┐ │ ─ │ │ br0 │ │ │ │ │ │ vnet0 │─│┘ │ └──────┘ │ │ ┌──────┐ │ └───────┘ │ └─────────────────┘ │ │virbr0│ │ ┌───────┐ │ ┌─────────────────┐ │ │ -nic │ └──│ vnet1 │─│┐ │Virtual Machine 2│ │ └──────┘ └───────┘ │ │ │ │ ┌──────┐ │└ ─│ ┌──────┐ │ │ │ em1 │ │ │ │ br0 │ │ │ └──────┘ │ │ └──────┘ │ │ ┌──────┐ │ └─────────────────┘ │ │ em2 │ │ │ └──────┘ │ └───────────────────────┘
从图上可以看出,虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。
virbr0是一个桥接器,接收所有到网络192.168.122.*的内容。从下面命令可以验证:
1 2 3 4 5 6 7 8 9 10 11 12 13 brctl show ip route
同时,虚拟机支持模块会修改iptables规则,通过命令可以查看:
1 2 iptables -t nat -L -nv iptables -t filter -L -nv
如果没有default的话,或者需要扩展自己的虚拟网络,可以使用命令重新安装NAT。
1 virsh net-define /usr/share/libvirt/networks/default.xml
此命令定义一个虚拟网络,default.xml的内容:
1 2 3 4 5 6 7 8 9 10 <network > <name > default</name > <bridge name ="virbr0" /> <forward /> <ip address ="192.168.122.1" netmask ="255.255.255.0" > <dhcp > <range start ="192.168.122.2" end ="192.168.122.254" /> </dhcp > </ip > </network >
也可以修改xml,创建自己的虚拟网络。
重新加载和激活配置:
1 virsh net-define /etc/libvirt/qemu/networks/default.xml
标记为自动启动:
1 2 3 4 virsh net-autostart default virsh net-start default
启动网络:
1 2 virsh net-start default
网络启动后可以用命令brctl show 查看和验证。
修改vi /etc/sysctl.conf
中参数,允许ip转发,CentOS7是在vi /usr/lib/sysctl.d/00-system.conf
这里面修改
通过 sysctl -p
查看修改结果
自定义NAT网络 创建名为management
的NAT网络,vi /usr/share/libvirt/networks/management.xml
1 2 3 4 5 6 7 8 9 10 <network > <name > management</name > <bridge name ="virbr1" /> <forward /> <ip address ="192.168.123.1" netmask ="255.255.255.0" > <dhcp > <range start ="192.168.123.2" end ="192.168.123.254" /> </dhcp > </ip > </network >
启用新建的NAT网络
1 2 3 virsh net-define /usr/share/libvirt/networks/management.xml virsh net-start management virsh net-autostart management
验证
1 2 3 4 5 6 7 8 9 10 11 12 brctl show vnet0 virsh net-list --all
退出虚拟机
修改虚拟机配置信息 直接通过vim命令修改
1 vim /etc/libvirt/qemu/vm1.xml
通过virsh命令修改
克隆虚拟机 1 2 3 virsh shutdown vm1 virt-clone -o vm1 -n vm2 -f /opt/vms/vm2.qcow2
virt-clone
参数介绍
--version
查看版本。
-h,--help
查看帮助信息。
--connect=URI
连接到虚拟机管理程序 libvirt 的URI。
-o 原始虚拟机名称
原始虚拟机名称,必须为关闭或者暂停状态。
-n 新虚拟机名称
–name 新虚拟机名称。
--auto-clone
从原来的虚拟机配置自动生成克隆名称和存储路径。
-u NEW_UUID, --uuid=NEW_UUID
克隆虚拟机的新的UUID,默认值是一个随机生成的UUID。
-m NEW_MAC, --mac=NEW_MAC
设置一个新的mac地址,默认为随机生成 MAC。
-f NEW_DISKFILE, --file=NEW_DISKFILE
为新客户机使用新的磁盘镜像文件地址。
--force-copy=TARGET
强制复制设备。
--nonsparse
不使用稀疏文件复制磁盘映像。
通过镜像创建虚拟机 创建虚拟机镜像文件
1 2 3 4 5 6 cp /opt/vms/vm1.qcow2 /opt/vms/base.qcow2 cp /opt/vms/base.qcow2 /opt/vms/vm2.qcow2
创建虚拟机配置文件
1 2 3 4 5 6 7 8 virsh dumpxml vm1 > /opt/vms/base.xml cp /opt/vms/base.xml /opt/vms/vm2.xml vi /opt/vms/vm2.xml
主要是修改虚拟机文件名,UUID,镜像地址和网卡地址,其中 UUID 在 Linux 下可以使用 uuidgen
命令生成
1 2 3 4 5 6 7 8 9 10 11 12 <domain type ='kvm' > <name > vm2</name > <uuid > 1e86167a-33a9-4ce8-929e-58013fbf9122</uuid > <devices > <disk type ='file' device ='disk' > <source file ='/opt/vms/vm2.img' /> </disk > <interface type ='bridge' > <mac address ='00:00:00:00:00:04' /> </interface > </devices > </domain >
1 2 virsh define /opt/vms/vm2.xml
动态更改cpu数量和内存大小 动态调整,如果超过给虚拟机分配的最大内存,需要重启虚拟机。
1 2 3 4 5 6 7 8 9 10 11 virsh list --all virsh setvcpus vm2 --maximum 4 --config virsh setmaxmem vm2 1048576 --config virsh dominfo vm2
挂载新磁盘 创建磁盘 1 qemu-img create -f qcow2 /opt/vms/vm-bridge-disk2.img 100G
查看磁盘信息 1 2 3 4 5 6 7 8 9 10 qemu-img info vm-bridge-disk.img image: vm-bridge-disk.img file format: qcow2 virtual size: 100G (107374182400 bytes) disk size: 196K cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false
挂载磁盘 1 virsh attach-disk vm-bridge /opt/vms/vm-bridge-disk.img vdb --subdriver=qcow2
需要使用–subdriver指定磁盘文件格式(默认为raw),否则系统内识别的磁盘空间0
系统里查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type : dos Disk identifier: 0x000ac494 Device Boot Start End Blocks Id System /dev/vda1 * 2048 2099199 1048576 83 Linux /dev/vda2 2099200 83886079 40893440 8e Linux LVM Disk /dev/mapper/centos-root: 37.7 GB, 37706792960 bytes, 73646080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/mapper/centos-swap: 4160 MB, 4160749568 bytes, 8126464 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
扩容磁盘 磁盘信息
查看镜像信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 virt-filesystems --long --parts --blkdevs -h -a vm2.qcow2 qemu-img info vm2.qcow2
给虚拟机镜像添加200G
大小,注意需要停止vm2
虚拟机
1 2 qemu-img resize vm2.qcow2 +200G
首先,我们制作如下所示的磁盘的备份副本。
1 cp vm2.qcow2 vm2-orig.qcow2
然后我们运行下面的命令来增加 /dev/sda
1 virt-resize --expand /dev/sda1 vm2-orig.qcow2 vm2.qcow2
查看镜像信息
1 2 3 4 5 6 7 8 9 qemu-img info vm2.qcow2
进入虚拟机`virsh console vm2查看信息:
卷组大小已增加,下面需要分配容量给逻辑卷
1 lvextend -L +60G /dev/centos/root
还有最后一步,分配好了需要做系统调整
1 2 3 4 resize2fs /dev/centos/root xfs_growfs /dev/centos/root
常用命令说明 virt-install 常用参数说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 –name指定虚拟机名称 –memory分配内存大小。 –vcpus分配CPU核心数,最大与实体机CPU核心数相同 –disk指定虚拟机镜像,size指定分配大小单位为G。 –network网络类型,此处用的是默认,一般用的应该是bridge桥接。 –accelerate加速 –cdrom指定安装镜像iso –vnc启用VNC远程管理,一般安装系统都要启用。 –vncport指定VNC监控端口,默认端口为5900,端口不能重复。 –vnclisten指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。 –os-type=linux,windows –os-variant=rhel6 --name 指定虚拟机名称 --ram 虚拟机内存大小,以 MB 为单位 --vcpus 分配CPU核心数,最大与实体机CPU核心数相同 –-vnc 启用VNC远程管理,一般安装系统都要启用。 –-vncport 指定VNC监控端口,默认端口为5900,端口不能重复。 –-vnclisten 指定VNC绑定IP,默认绑定127.0.0.1,这里改为0.0.0.0。 --network 虚拟机网络配置 –os-type=linux,windows –os-variant=rhel7.2 --disk 指定虚拟机的磁盘存储位置 --location 指定安装介质路径,如光盘镜像的文件路径。 --graphics 图形化显示配置 --extra-args 根据不同的安装方式设置不同的额外选项
virsh 基础命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 virsh list --all virsh list virsh dumpxml vm-name virsh start vm-name virsh shutdown vm-name virsh destroy vm-name virsh undefine vm-name ls /etc/libvirt/qemu virsh define file-name.xml virsh suspend vm-name virsh resumed vm-name virsh autostart vm-name virsh console <虚拟机名称>
参考文章