KVM创建虚拟机镜像
在了解KVM虚拟化技术之后,下面开始掌握虚拟机镜像的整个制作过程。
实训要求:
1) 制作一个名为Cloud_Win7_64bit镜像,C盘大小为50G,配置用户CloudUser,密码为cloudpasswd。
2) 制作一个名为Cloud_Centos6.5_64bit镜像,采用Minimal Desktop方式,root根分区大小为9G,boot分区大小为200M,swap交换分区大小为823M,root用户的密码为cloudpasswd。新建登录用户CloudUser,密码为cloudpasswd)。
虚拟化配置
安装启动虚拟化工具
安装虚拟化工具软件包
# yum install virt-manager libvirt qemu-img virt-viewer kvm |
修改/etc/libvirt/qemu.conf
增加vnc_listen = "0.0.0.0"
# vi /etc/libvirt/qemu.conf vnc_listen = "0.0.0.0" |
重启libvirtd
# service libvirtd restart |
Virsh管理工具
我们采用Virsh工具来进行KVM虚拟机的管理。Virsh提供两种执行模式,直接模式和互动模式。
在直接模式里,你必须在Shell中以参数、自变量的方式来执行virsh。如图所示。
在互动模式中,则virsh会提供一个提示字符串,可以在该提示字符串后,输入要执行的命令。如果执行virsh没有指定任何参数或自变量则默认就是进入互动模式。
Virsh工具常用的管理命令
1) 查看服务列表
virsh list
功能:查看服务列表
格式:
# virsh help list NAME list - list domains DESCRIPTION Returns list of domains. OPTIONS --inactive list inactive domains --all list inactive & active domains --transient list transient domains --persistent list persistent domains --with-snapshot list domains with existing snapshot --without-snapshot list domains without a snapshot --state-running list domains in running state --state-paused list domains in paused state --state-shutoff list domains in shutoff state --state-other list domains in other states --autostart list domains with autostart enabled --no-autostart list domains with autostart disabled --with-managed-save list domains with managed save state --without-managed-save list domains without managed save --uuid list uuid's only --name list domain names only --table list table (default) --managed-save mark inactive domains with managed save state --title show short domain description |
2) 启动虚拟机
virsh start
功能: 启用一台虚拟机
格式:
# virsh help start NAME start - start a (previously defined) inactive domain DESCRIPTION Start a domain, either from the last managedsave state, or via a fresh boot if no managedsave state is present. OPTIONS [--domain] <string> name of the inactive domain --console attach to console after creation --paused leave the guest paused after creation --autodestroy automatically destroy the guest when virsh disconnects --bypass-cache avoid file system cache when loading --force-boot force fresh boot by discarding any managed save |
3) 关机虚拟机
virsh destroy
功能: 将虚拟机关机
格式:
# virsh help destroy NAME destroy - destroy (stop) a domain DESCRIPTION Forcefully stop a given domain, but leave its resources intact. OPTIONS [--domain] <string> domain name, id or uuid --graceful terminate gracefully |
4) 终止虚拟机
virsh undefine
功能: 删除虚拟机
格式:
# virsh help undefine NAME undefine - undefine a domain DESCRIPTION Undefine an inactive domain, or convert persistent to transient. OPTIONS [--domain] <string> domain name or uuid --managed-save remove domain managed state file [--storage] <string> remove associated storage volumes (comma separated list of targets or source paths) (see domblklist) --remove-all-storage remove all associated storage volumes (use with caution) --wipe-storage wipe data on the removed volumes --snapshots-metadata remove all domain snapshot metadata, if inactive |
制作Win7镜像
制作一个名为Cloud_Win7_64bit镜像,C盘大小为50G,配置用户CloudUser,密码为cloudpasswd。
操作步骤:
创建虚拟机
1) 首先要确保cn_windows_7_ultimate_x64_dvd_x15-66043.iso、virtio-win-0.1-52.iso、virtio-win-1.1.16.vfd文件在服务器中,这里将镜像文件放在/opt目录中。
创建虚拟机并联接
# cd /tmp # qemu-img create -f raw Cloud_Win7_64bit.img 50G # virt-install --name Cloud_Win7_64bit --ram 2048 --vcpus 2 --network network=default,model=virtio --disk=Cloud_Win7_64bit.img,format=raw,device=disk,bus=virtio --cdrom=/opt/cn_windows_7_ultimate_x64_dvd_x15-66043.iso --disk=/opt/virtio-win-0.1-52.iso --disk=/opt/virtio-win-1.1.16.vfd,device=floppy --graphics listen=0.0.0.0,port=5901 --video qxl --channel spicevmc --os-type windows --os-variant win7 --force |
打开VNC,输入相应的IP地址加上端口号并连接。
安装操作系统
选择相应的win7参数,开始安装。
选择要安装的驱动程序,这里选择Win7版本的驱动程序。
选择系统安装的磁盘
开始安装
创建用户CloudUser,密码为cloudpasswd
登陆系统,安装完成。
镜像格式转换
关闭虚拟机,开始转换镜像格式
# qemu-img convert -f raw -O qcow2 Cloud_Win7_64bit.img Cloud_Win7_64bit.qcow2 |
制作Centos6.5镜像
制作一个名为Cloud_Centos6.5_64bit镜像,采用Minimal Desktop方式,root根分区大小为9G,boot分区大小为200M,swap交换分区大小为823M,root用户的密码为cloudpasswd,新建登录用户CloudUser,密码为cloudpasswd。
操作步骤:
创建虚拟机
1) 首先要确保CentOS-6.5-x86_64-bin_DVD.iso镜像文件在服务器中,这里我们将该镜像文件放在/opt目录中。
# ll /opt/CentOS-6.5-x86_64-bin_DVD.iso |
切换到/tmp目录中,创建创建一个20G大小的镜像文件。
# cd /tmp # qemu-img create -f raw Cloud_Centos6.5_64bit.img 10G |
启动部署虚拟机
# virt-install --name Cloud_Centos6.5_64bit --ram 1024 --vcpus=1 --disk path=/tmp/Cloud_Centos6.5_64bit.img --network network:default,model=virtio --arch=x86_64 --os-type=linux --os-variant=rhel6 --graphics vnc,port=5910 --cdrom /opt/CentOS-6.5-x86_64-bin_DVD.iso --boot cdrom |
通过VNC Viewer连接到虚拟桌面,安装虚拟机
输入IP:端口号连接
安装操作系统
开始安装操作系统。
选择语言为英文
进行分区
格式化磁盘
安装Minimal Desktop桌面版
开始安装
重启之后,查看虚拟机状态,启动虚拟机,重新通过VNC Viewer连接到虚拟桌面
# virsh list --all # virsh start Cloud_Centos6.5_64bit # virsh list --all |
远程VNC连接
创建用户CloudUser,密码为cloudpasswd
登陆系统
打开终端,配置网络
重启网卡
清除历史记录,关闭虚拟机
# history –c # history –w # shutdown -h now |
安装配置完成
镜像格式转换
# qemu-img convert -f raw -O qcow2 Cloud_Centos6.5_64bit.img Cloud_Centos6.5_64bit.qcow2 |
镜像上传
通过GUI、CLI方式上传镜像到Openstack系统内部,同时镜像为共有形式。
(win7 镜像上传名称为 Cloud_Win7_x64;Centos镜像上传名称为Cloud_Centos6.5_x64)
通过GUI上传Cloud_Win7_x64.qcow2镜像
通过CLI上传Cloud_Centos6.5_64bit.qcow2镜像
# glance image-create --name Cloud_Centos6.5_64 --disk-format qcow2 --container-format bare --is-public true --progress < /tmp/Cloud_Centos6.5_64bit.qcow2 |