利用VNC安装kvm虚拟机

avatar
作者
筋斗云
阅读量:0

先将CentOS-7-x86_64-DVD-2009.iso拷贝到/opt下

用virt-install 命令安装虚拟机并设置VNC Viewer连接端口

root@kvm01 ~]# systemctl stop firewalld [root@kvm01 ~]# systemctl disable firewalld  [root@kvm1 ~]# mkdir -p /data_kvm/store [root@kvm01 ~]# virt-install -n test01 -r 1024 --vcpus=1 --disk path=/data_kvm/store/test01.qcow2,size=10 -w bridge:br0 --virt-type=kvm --accelerate --autostart -c /opt/CentOS-7-x86_64-DVD-2009.iso --vnc --vncport=5901 --vnclisten=0.0.0.0   -n:指定虚拟机的名字。  -r:指定内存大小。  --vcpu:指定虚拟 CPU 个数。  --disk:指定磁盘文件放置位置及大小。  -w:制定所使用的网桥。  --autostart:设置虚拟机在宿主机开机时启动。  -c:指定镜像文件。  --vncport:通过 vnc viewer 连接的端口。  --vnclisten:通过 vnc  --accelerate:当安装qemu客户机时,如果支持可用kvm或kqemu内核加速能力,KVM加速器

在windows宿主机上安装VNC Viewer

打开VNC Viewer,新建一个连接,连接上后,安装虚拟机

注意:填写的IP地址(192.168.10.201)是Linux宿主机的IP地址,开放的端口号5901映射到了test01虚拟机。连接成功后,就可以开始安装虚拟机了。

安装后查看

root@kvm01 ~]# virsh list --all

启动虚拟机

[root@kvm01 ~]# virsh start test01

 安装完后虚拟机是关闭状态,在vnc终端上再次连接test01虚拟机并登录系统

静态迁移

查看虚拟机 test01 当前状态

[root@kvm01 ~]# virsh list --all

关闭虚拟机 test01

[root@kvm01 ~]# virsh shutdown test01 [root@kvm01 ~]# virsh list --all 

导出虚拟机 test01 的 xml 配置文件

[root@kvm01 ~]# virsh dumpxml test01 > test01.xml  [root@kvm01 ~]# ll 

定位虚拟机 test01 的磁盘文件

[root@kvm01 ~]# virsh domblklist test01

拷贝配置文件和磁盘文件到目标宿主机 kvm02 上

现在kvm02上创建目录 [root@kvm2 ~]# mkdir -p /data_kvm/store  到kvm01上拷贝文件到kvm02上 [root@kvm01 ~]# scp test01.xml 192.168.10.202:/etc/libvirt/qemu/ [root@kvm01 ~]# scp /data_kvm/store/test01.qcow2 192.168.10.202:/data_kvm/store/

在kvm02上配置和启动目标虚拟机

查看被迁移过来的配置文件和磁盘文件

[root@kvm02 ~]# ls -l /etc/libvirt/qemu [root@kvm02 ~]# ls -l /data_kvm/store/

重新定义虚拟机 test01

[root@kvm02 ~]# virsh list --all [root@kvm02 ~]# virsh define /etc/libvirt/qemu/test01.xml  [root@kvm02 ~]# virsh list --all

启动虚拟机 test01

[root@kvm02 ~]# virsh start test01 [root@kvm02 ~]# virsh list --all

连接虚拟机 test01 ,查看主机名

[root@kvm02 ~]# virt-manager  打开虚拟机管理器,查看虚拟机的运行

基于共享存储的动态迁移

打开一个新的服务器kvmnfs ,在 kvmnfs 服务器上面安装 NFS 服务

[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# hostnamectl set-hostname kvmnfs [root@localhost ~]# bash [root@kvmnfs ~]# yum -y install nfs-utils

配置共享目录

[root@kvmnfs ~]# mkdir /data  [root@kvmnfs ~]# chown -R 777 /data/ [root@kvmnfs ~]# vim /etc/exports /data 192.168.10.0/24(rw,sync,no_root_squash)

启动并查看 NFS 服务

[root@kvmnfs ~]# systemctl enable nfs  [root@kvmnfs ~]# systemctl enable rpcbind  [root@kvmnfs ~]# systemctl start nfs  [root@kvmnfs ~]# systemctl start rpcbind  [root@kvmnfs ~]# showmount -e localhost

挂载 NFS 目录

源宿主机 kvm01 上查看 NFS 共享目录

[root@kvm01 ~]# showmount -e 192.168.10.101

源宿主机 kvm01 和kvm02上创建 kgc 目录

[root@kvm01 ~]# mkdir /data_kvm/kgc [root@kvm02 ~]# mkdir /data_kvm/kgc

源宿主机 kvm01 和kvm02上都挂载共享目录

[root@kvm01 ~]# mount -t nfs 192.168.10.101:/data /data_kvm/kgc  [root@kvm01 ~]# mount  [root@kvm02 ~]# mount -t nfs 192.168.10.101:/data /data_kvm/kgc  [root@kvm02 ~]# mount

源宿主机 kvm01 上设置自动挂载

[root@kvm01 ~]# vim /etc/fstab 192.168.10.101:/data /data_kvm/kgc nfs defaults 0 0

通过现有的磁盘文件生成虚拟机

将实验用到的系统镜像上传到KVM主机的root家目录中。这里直接使用CentOS官方提供的qcow2格式的系统镜像(CentOS-7-x86_64-GenericCloud-2009.qcow2),这个镜像可以直接部署到kvm或openstack的平台中。

[root@kvm01 ~]# cp /opt/CentOS-7-x86_64-GenericCloud-2009.qcow2 /data_kvm/store/test02.qcow2

部署虚拟机

[root@kvm01 ~]# yum -y install libguestfs-tools [root@kvm01 ~]# virt-customize -a /data_kvm/store/test02.qcow2 --root-password password:aptech [root@kvm01 ~]# virt-install \ --name=test02 \ -r 1024 \ --vcpus=1 \ --disk device=disk,bus=virtio,path='/data_kvm/store/test02.qcow2',size=10 \ -w bridge:br0 \ --virt-type=kvm \ --boot hd

登录测试

[root@kvm01 ~]# virt-clone -o test01 -n test02 -f /data_kvm/kgc/test02.qcow2    [root@kvm01 ~]# virsh list --all [root@kvm01 ~]# virsh domblklist test02

动态迁移

查看 kvm01 和 kvm02 两台宿主机上虚拟机的运行状态

[root@kvm01 ~]# virsh list --all  [root@kvm02 ~]# virsh list --all

在源宿主机 kvm01 上执行迁移命令

[root@kvm01 ~]# virsh shutdown test02  [root@kvm01 ~]# virsh edit test02 //添加cache='none' <driver name='qemu' type='qcow2' cache='none'/> 		

查看迁移后虚拟机的状态

[root@kvm01 ~]# virsh list --all  [root@kvm02 ~]# virsh list --all 

生成配置文件

创建虚拟机 test02 配置文件

[root@kvm02 ~]# ls -l /etc/libvirt/qemu [root@kvm02 ~]# virsh dumpxml test02 > /etc/libvirt/qemu/test02.xml  [root@kvm02 ~]# cd /etc/libvirt/qemu/  [root@kvm02 qemu]# ll

定义虚拟机 test02 配置文件

[root@kvm02 qemu]# virsh define /etc/libvirt/qemu/test02.xml

基于数据块的动态迁移

设置好阿里的yum源

[root@kvm02 ~]# yum -y install centos-release-qemu-ev   [root@kvm02 ~]# vim /etc/yum.repos.d/CentOS-QEMU-EV.repo [centos-qemu-ev] name=CentOS-$releasever - QEMU EV #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=virt-kvm-common baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/virt/$basearch/kvm-common/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization   [root@kvm02 ~]# yum -y install qemu-kvm-ev

迁移前准备工作

源宿主机 kvm01 上的准备

[root@kvm01 ~]# vim /etc/hosts 192.168.10.201 kvm01 192.168.10.202 kvm02  [root@kvm01 ~]# virsh list --all  [root@kvm01 ~]# virsh shutdown test01  [root@kvm01 ~]# virt-clone -o test01 -n test03 -f /data_kvm/store/test03.qcow2 

目标宿主机 kvm02 上的准备

[root@kvm02 ~]# vim /etc/hosts 192.168.10.201 kvm01 192.168.10.202 kvm02  备注: 要确保kvm02主机没有同名的虚拟机 以下步骤是为了确保kvm02上没有同名的虚拟机,如果确定没有,就忽略 [root@kvm02 ~]# virsh list --all [root@kvm02 ~]# virsh undefine test01 [root@kvm02 ~]# cd /data_kvm/store/ [root@kvm02 store]# ls [root@kvm02 store]# rm -rf test01.qcow2  [root@kvm02 store]# virsh list --all

在kvm02主机上检查资源池

[root@kvm02 store]# virsh pool-list --all

在kvm02主机上创建同名磁盘文件

[root@kvm02 ~]# mkdir -p /data_kvm/store [root@kvm02 store]# qemu-img create -f qcow2 /data_kvm/store/test03.qcow2 20G

在kvm01主机上执行迁移操作

[root@kvm01 ~]# virsh start test03 [root@kvm01 ~]# virsh migrate test03 qemu+ssh://192.168.10.202/system --live --persistent --undefinesource --copy-storage-all --verbose

验证迁移结果

[root@kvm01 ~]# virsh list --all [root@kvm02 store]# virsh list --all

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!