利用VNC安装kvm虚拟机

先将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

<think>好的,我需要帮助用户在CentOS系统上安装KVM虚拟机。首先,我得确认用户的具体需求是什么。用户提到的是CentOS,但CentOS有不同的版本,比如CentOS 7和CentOS 8,安装步骤可能有所不同。不过根据提供的引用内容,引用[1]提到了如何在CentOS 7上安装KVM,而引用[2]则指出CentOS 5.4之前的版本需要从extras仓库安装。因此,用户可能使用的是较新的CentOS版本,比如CentOS 7,所以应该优先参考引用[1]的指南。 接下来,我需要整理安装步骤。通常,安装KVM的流程包括以下几个步骤:检查硬件虚拟化支持、安装必要的软件包、启动并启用libvirtd服务、配置网络桥接(可选)、验证安装等。根据引用[1],可能需要使用特定的命令来安装KVM和相关工具,比如qemu-kvm、libvirt以及virt-install等。此外,用户可能还需要安装图形管理工具,如virt-manager,方便管理虚拟机。 需要注意的是,不同版本的CentOS可能在软件包名称或仓库配置上存在差异。例如,CentOS 7的软件源可能和CentOS 8有所不同。因此,在步骤中需要明确说明针对哪个版本。根据引用[1]中的指南,应该适用于CentOS 7。另外,引用[2]提到CentOS 5.4之前的版本需要从extras仓库安装,但用户可能不太可能还在使用这么旧的版本,所以主要参考CentOS 7的步骤。 另外,关于网络配置部分,默认情况下KVM会使用NAT网络,但如果用户需要桥接网络以获得更好的性能或直接访问物理网络,可能需要额外配置桥接接口。这部分可能需要用户有一定的网络配置知识,但根据用户的需求,可以提供一个基本的桥接配置方法。 最后,验证安装是否成功可以通过运行virsh命令检查libvirtd服务状态,或者使用virt-manager图形界面来创建虚拟机。同时,用户可能需要了解如何下载ISO镜像并安装客户机操作系统,这部分也可以简要提及,或提供相关参考链接。 现在需要将这些步骤结构化,确保每个步骤清晰,命令准确,并且引用正确的来源。同时,注意用户可能需要的是逐步指南,所以每个步骤要详细但不过于复杂。此外,需要检查是否有其他依赖项或常见问题,比如SELinux或防火墙设置,是否需要调整,这些也可以在注意事项中提及。 总结下来,步骤可能包括: 1. 检查CPU虚拟化支持 2. 安装KVM及相关软件包 3. 启动并启用libvirtd服务 4. 配置网络桥接(可选) 5. 验证安装 6. 创建虚拟机(示例命令) 每个步骤都需要对应的命令和说明,确保用户能顺利执行。同时,根据引用[1]和引用[2]的内容,确保命令的正确性。例如,安装KVM软件包时,CentOS 7使用yum安装,而CentOS 8可能使用dnf,但用户问题中提到的是CentOS,所以应统一使用yum命令,或者在适当的时候注明版本差异。 此外,需要注意权限问题,用户可能需要加入libvirt组,或者使用sudo执行命令。这些细节也需要在步骤中说明,避免用户遇到权限错误。 最后,生成相关问题,可能涉及KVM的管理、网络配置优化、性能调优等,帮助用户进一步学习。</think>### 分步指南:在CentOS 7下安装KVM虚拟机 #### 1. **检查硬件虚拟化支持** - 在终端运行以下命令,验证CPU是否支持虚拟化: ```bash egrep -c '(vmx|svm)' /proc/cpuinfo ``` 若输出值大于`0`,表示支持虚拟化[^1]。 - 确保BIOS中已启用虚拟化技术(如Intel VT-x或AMD-V)。 #### 2. **安装KVM及相关软件包** - 更新系统并安装必要组件: ```bash sudo yum update -y sudo yum install -y qemu-kvm libvirt virt-install bridge-utils virt-manager ``` 此命令安装KVM核心组件、虚拟机管理工具(`virt-install`)及图形界面(`virt-manager`)[^2]。 #### 3. **启动并启用libvirtd服务** - 启动服务并设置开机自启: ```bash sudo systemctl start libvirtd sudo systemctl enable libvirtd ``` - 验证服务状态: ```bash sudo systemctl status libvirtd ``` #### 4. **配置网络桥接(可选)** - 默认使用NAT网络,若需桥接网络: 1. 创建桥接配置文件`ifcfg-br0`: ```bash sudo vi /etc/sysconfig/network-scripts/ifcfg-br0 ``` 添加以下内容(假设物理网卡为`eth0`): ```plaintext DEVICE=br0 TYPE=Bridge BOOTPROTO=dhcp ONBOOT=yes DELAY=0 ``` 2. 修改物理网卡配置`ifcfg-eth0`,移除IP配置并绑定到桥接: ```plaintext DEVICE=eth0 ONBOOT=yes BRIDGE=br0 ``` 3. 重启网络服务: ```bash sudo systemctl restart network ``` #### 5. **验证安装** - 运行以下命令检查KVM模块是否加载: ```bash lsmod | grep kvm ``` 若输出包含`kvm_intel`或`kvm_amd`,则加载成功。 - 使用`virt-manager`图形界面创建虚拟机(需图形环境支持)。 #### 6. **通过命令行创建虚拟机示例** - 下载ISO镜像(如CentOS 8)至`/path/to/iso`。 - 执行安装命令: ```bash sudo virt-install \ --name=centos8-vm \ --ram=2048 \ --vcpus=2 \ --disk path=/var/lib/libvirt/images/centos8-vm.qcow2,size=20 \ --cdrom=/path/to/CentOS-8-x86_64.iso \ --os-type=linux \ --network bridge=br0 \ --graphics vnc ``` 此命令创建一个2核CPU、2GB内存、20GB磁盘的虚拟机,并通过VNC连接安装系统。 #### **注意事项** - **权限问题**:普通用户需加入`libvirt`组才能管理虚拟机: ```bash sudo usermod -aG libvirt $USER ``` - **防火墙**:若启用防火墙,需放行相关流量: ```bash sudo firewall-cmd --add-service={http,https,ssh} --permanent sudo firewall-cmd --reload ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值