使⽤virsh⼯具创建虚拟机模板
今天我们介绍使⽤virsh虚拟机管理⼯具组件来创建虚拟机模板
⾸先准备基础环境:
在vmware上安装⼀台Centos7.0的虚拟机
打开CPU的虚拟化功能
安装完操作系统之后验证虚拟化功能是否打开
使⽤ egrep --color=auto "(svm|vmx)" /proc/cpuinfo进⾏查看
dnf强化垫子安装libvirt的⼯具组件
yum install libvirt libvirt-client virt-manager virt-install
因为我们要使⽤libvirt组件去管理kvm,所以在物理机上需要安装qemu-kvm
systemctl start libvirtd 启动服务
libvirt和libvirtd的配置⽂件:
守护进程配置⽂件:/etc/f
/etc/libvirt/qemu/networks/⽬录下⾯有⼀个l的配置⽂件
此⽂件中定义的是qemu系的虚拟机的基本配置信息,例如安装完libvirt之后会⽣成⼀个名为bridge的⽹桥,并⽣成⼀个IP地址,还可以实现dhcp服务的⾃动分配。
下⾯我们使⽤virt-install进⾏虚拟机模板镜像的制作
Centso7.0镜像模板制作
疯狂猜成语一个字
下⾯这个⽰例创建⼀个名为rhel7.0的虚拟机,其hypervisor为kvm,内存⼤⼩为512MB,存储磁盘为20G的映像⽂
经超老婆
件/images/rhel7.0.img,通过iso光盘镜像来引导启动安装过程,虚拟机⽹卡连接物理主机上的名为brnet0的桥接⽹络;虚拟机显卡类型为cirrus。
virt-install --connect qemu:///system --virt-type kvm --name rhel7.0 --vcpus 1,maxvcpus=4 --ram 512 --disk
path=/image/rhel7.0.img,size=20,format=qcow2,bus=virtio,sparse --network bridge=brnet0,model=virtio --graphics vnc --cdrom /tmp/CentOS-7.0-1406-x86_64-DVD.iso --os-variant rhel7 --force --video=cirrus
虚拟机安装完成后,进⼊虚拟机查看驱动信息
在宿主机机上使⽤brctl查看⽹桥信息可以看到虚拟机的⽹卡挂载到virbr下⾯
我们使⽤virsh⼯具组件创建的虚拟机关机之后可以在virt-manager图像化管理⼯具中看到此虚拟机实例。
此时将/image/rhel7.0.img镜像⽂件拷出来上传到云平台即可
virt-install命令有许多选项,这些选项⼤体可以分为下⾯⼏⼤类,同时对每类中的常⽤选选项也做出简单说明;
若白死了⼀般选项:指定虚拟机的名称、内存⼤⼩、VCPU个数及特性等;
-n NAME  -name=NAME    //虚拟机名称,需全局唯⼀;
-r MEMORY  --ram=MEMORY  ,虚拟机内存⼤⼩,单位为MB
--vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cires=#][,threads=#] //VCPU个数及县官配置;
---cpu=CPU    //CPU模式及特性,如coreduo等,可以使⽤qemu-kvm -cpu?来获取⽀持的CPU模式;
安装⽅式:指定光盘安装⽅式、GuestOS类型等;
-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_VARIANT  //操作系统类型,如Linux、unix或windows等;
--os-variant=DISTRO_VARIANT  //某类型操作系统的变体,如rhel5,fedora8等;
-x EXTRA,--extra-args=EXTRA  //根据--location指定的⽅式安装GuestOS时,⽤于传递给内核的额外选项,例如指定kickstart⽂件位置,--extra=args "ks=http            --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:磁盘映像使⽤稀疏格式,即不⽴即分配指定⼤⼩的空间;
--nodisk:不使⽤本地磁盘,在LiveCD模式中常⽤;
⽹络配置:指定⽹路接⼝的⽹络类型及接⼝属性如MAC地址、驱动模式等;
岁月静好什么意思-w NETWORK,--network=NETWORK,opt1=val1,opt2=val2 //将虚拟机连⼊宿主主机的⽹络中,其中NETWORK可以为:
bridge=BRIDGE:连接⾄名为“BRIDEFG"的桥设备;
network=NAME:连接⾄名为“NAME"的⽹络;
常⽤的其它选项还有:
model:GuestOS中看到的⽹络设备号,如e1000,rtl8139或virtio等;
mac:固定的MAC地址;省略此选项时将使⽤随机地址,但⽆论何种⽅式,对于KVM来说,其前三段必须为52:54:00
--nonetworks:虚拟机不适⽤⽹络功能
图形配置:定义虚拟机显⽰功能相关的配置,如VNC相关配置;
--graphics TYPE,opt1=val1,opt2=val2 //指定图形显⽰相关的配置,此选项不会配置任何显⽰硬件(如显卡),⽽是仅指定虚拟机启动后对其进                                                TYPE:指定显⽰类型,可以为vnc,sdl,soice或none,默认问vnc;
port:TYPE为vnc或spice时其监听的端⼝;
listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu
conf定义新的默认值:
password:TYPE为vnc或spice时,为远程访问监听的服务指定认证密码;
windows2008镜像制作
virt-install --connect=qemu:///system -n "windows2008" -r 1024 --vcpus 1 --network bridge=virbr0,model=virtio --disk
path=/image/win08.img,format=qcow2,device=disk,bus=virtio,size=15,sparse --cdrom
/tmp/cn_windows_server_2008_r2_hpc_edition_with_service_pack_1_x64_dvd_700632.iso --disk path=/tmp/virtio-win-
1.7.4.iso,device=cdrom --graphics vnc --os-type windows --boot cdrom,hd
运⾏创建虚拟机命令之后,如果控制台显⽰如下,说明系统没有将windows2008的镜像⽂件作为第⼀启动顺序了,需要设置⼀下引导的启戈伟如金城武
动。
注意哪⼀个cdrom是windows2008的镜像⽂件将其调整到第⼀引导顺序,关闭虚拟机然后启动。
在安装操作系统选择安装磁盘⽬录的时候会提⽰没有驱动程序
这时候需要我们去virtis的镜像⽂件中去加载驱动,选择对应的版本