Qemu-kvm虚拟机搭建

Qemu-kvm虚拟机搭建

简介:

KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。

但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

一、网络架构——桥接

宿主机与虚拟机之间的网络关系有桥接、NAT、仅主机三种模式。
这里我们用桥接模式安装虚拟机。

1.1


如图1.1为桥接的网络架构,需要在系统中配置一个网桥,相当于一台二层交换机。宿主机与虚拟机通信以及访问internet都通过网桥。
在/etc/sysconfig/network-scripts/下创建ifcfg-br0

1.2


进入ifcfg-br0并修改配置文件如下:

1.3
图1.3配置
//
TYPE="Bridge" 
BOOTPROTO="static" 
IPADDR=192.168.10.104 
NETMASK=255.255.255.0
GATEWAY=192.168.10.5
DEVICE="br0" 
ONBOOT="yes"
//

再进入宿主机的以太网网卡,修改配置文件,将宿主机的以太网网卡桥接到网桥:

1.4


修改完成之后重启网络配置:systemctl restart network
网络重启完成之后运行brctl show:

1.5


如图1.5 ens33已经桥接到了br0。

二、virt-manager图形化界面创建虚拟机

如果你的linux系统带桌面就可以使用virt-manager工具来创建虚拟机。
用yum install 安装工具如下:

//qemu-kvm virt-manager libvirt

下载完成之后打开virt-manager:

2.1


2.2


2.3


2.4


2.5


2.6


2.7


2.8


2.9


2.10


2.11


在这里弹出了安装界面,证明成功了。


三、virt-install命令行安装虚拟机


如果你的linux服务器是桌面版本的,可以使用上述图形化安装kvm虚拟机。但是大部分linux虚拟机并不带可视化桌面,我们只能使用命令行的方式创建虚拟机,这里使用到的工具——virt-install。

用yum install安装工具:


//qemu-kvm virt-install libvirt vnc


这里需要多安装一个vnc服务,因为不是带桌面的版本,所以我们安装完成之后需要通过vnc连接安装好的虚拟机。

Virt-install命令:


//
-n NAME, --name=NAME:虚拟机名称,需全局惟一; 
-r MEMORY, --ram=MEMORY:虚拟机内在大小,单位为MB; 
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU个数及相关配置; 
--cpu=CPU:CPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?来获取支持的CPU模式;
-c CDROM, --cdrom=CDROM:光盘安装介质; 
-l LOCATION, --location=LOCATION:安装源URL,支持FTP、HTTP及NFS等,如ftp://172.16.0.1/pub;
--pxe:基于PXE完成安装; 
--livecd: 把光盘当作LiveCD; 
--os-type=DISTRO_TYPE:操作系统类型,如linux、unix或windows等; 
--os-variant=DISTRO_VARIANT:某类型操作系统的变体,如rhel5、fedora8、debian10等; 
-x EXTRA, --extra-args=EXTRA:根据--location指定的方式安装GuestOS时,用于传递给内核的额外选项,例如指定kickstart文件的位置,--extra-args "ks=http://172.16.0.1/class.cfg" 
--boot=BOOTOPTS:指定安装过程完成后的配置选项,如指定引导设备次序、使用指定的而非安装的kernel/initrd来引导系统启动等 ; 例如: 
 --boot  cdrom,hd,network:指定引导次序; 
 --boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定启动系统的内核及initrd文件
--disk=DISKOPTS:指定存储设备及其属性;格式为--disk /some/storage/path,opt1=val1,opt2=val2等;常用的选项有: 
 device:设备类型,如cdrom、disk或floppy等,默认为disk; 
 bus:磁盘总结类型,其值可以为ide、scsi、usb、virtio或xen; 
 perms:访问权限,如rw、ro或sh(共享的可读写),默认为rw; 
 size:新建磁盘映像的大小,单位为GB; 
 cache:缓存模型,其值有none、writethrouth(缓存读)及writeback(缓存读写); 
 format:磁盘映像格式,如raw、qcow2、vmdk等; 
 sparse:磁盘映像使用稀疏格式,即不立即分配指定大小的空间; 
--nodisks:不使用本地磁盘,在LiveCD模式中常用;
-w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:将虚拟机连入宿主机的网络中,其中NETWORK可以为: 
 bridge=BRIDGE:连接至名为“BRIDEG”的桥设备; 
 network=NAME:连接至名为“NAME”的网络;
model:GuestOS中看到的网络设备型号,如e1000、rtl8139或virtio等; 
 mac:固定的MAC地址;省略此选项时将使用随机地址,但无论何种方式,对于KVM来说,其前三段必须为52:54:00; 
--nonetworks:虚拟机不使用网络功能;
--graphics TYPE,opt1=val1,opt2=val2:指定图形显示相关的配置,此选项不会配置任何显示硬件(如显卡),而是仅指定虚拟机启动后对其进行访问的接口; 
 TYPE:指定显示类型,可以为vnc、sdl、spice或none等,默认为vnc; 
 port:TYPE为vnc或spice时其监听的端口; 
 listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu.conf定义新的默认值; 
 password:TYPE为vnc或spice时,为远程访问监听的服务进指定认证密码; 
--noautoconsole:禁止自动连接至虚拟机的控制台;
--serial=CHAROPTS:附加一个串行设备至当前虚拟机,根据设备类型的不同,可以使用不同的选项,格式为“--serial type,opt1=val1,opt2=val2,...”,例如: 
 --serial pty:创建伪终端; 
 --serial dev,path=HOSTPATH:附加主机设备至此虚拟机; 
--video=VIDEO:指定显卡设备模型,可用取值为cirrus、vga、qxl或vmvga;
-v, --hvm:当物理机同时支持完全虚拟化和半虚拟化时,指定使用完全虚拟化; 
 -p, --paravirt:指定使用半虚拟化; 
 --virt-type:使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令获取;
--autostart:指定虚拟机是否在物理启动后自动启动; 
--print-xml:如果虚拟机不需要安装过程(--import、--boot),则显示生成的XML而不是创建此虚拟机;默认情况下,此选项仍会创建磁盘映像; 
--force:禁止命令进入交互式模式,如果有需要回答yes或no选项,则自动回答为yes; 
--dry-run:执行创建虚拟机的整个过程,但不真正创建虚拟机、改变主机上的设备配置信息及将其创建的需求通知给libvirt; 
-d, --debug:显示debug信息;
//


示例:

3.1


图3.1配置
//
Virt-install \
> --name ct7 \
> --memory 2048 \
> --vcpu 2 \
> --cdrom /mnt/CentOS-7-x86_64-DVD-1908.iso \
> --disk /mnt/ct7.qcow2,size=15 \
> --network bridge=br0 \
> --graphics vnc,password=123,port=5901,listen=0.0.0.0
//


创建完成之后virsh list --all查看:

3.2

我们刚才创建的ct7已经运行起来了。

远程链接查看:

3.3
3.4

输入密码

3.5

链接上了证明成功。


注:如果配置完成之后vnc链接不上则是网桥没有配置正确

发布于 2023-06-10 21:37・IP 属地辽宁