KVM :vnc 远程控制kvm创建虚拟机
一、vnc远程控制服务器
前期准备:
1.编辑/etc/hosts
vi /etc/hosts
10.1.16.32 kvm
2.关闭防火墙
service iptables stop
3.关闭selinux
vi /etc/selinxu
安装
1.安装vnc 的服务端
yum install tigervnc-server
yum groupinstall "X Window System" "Desktop" --skip-broken
2.修改 vncserver的配置文件 vi /etc/sysconfig/vncserver
VNCSERVERS="1:root" VNCSERVERARGS[1]="-geometry 800x600 -alwaysshared -depth 24"
3.配置vnc 用户密码 vncserver
输入密码
确认密码
vncpasswd 修改vncpasswd
4.重启vncserver的服务
/etc/init.d/vncserver restart
5.查看vnc的列表
vncserver -list
6客户端连接
客户端下载: tigervnc
7结果
问题:
1.Starting VNC server: 1:root xauth: (stdin):1: bad display name "host144:1" in "add" command
修改/etc/hosts
二、 在kvm中创建虚拟机
安装kvm环境
1.yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer --skip-broken
virtualization 提供虚拟机的环境,主要包含qemu-kvm
virtualization-client 管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer
virtualization-platform 提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client
virtualization-tools 管理离线虚拟机镜像的工具,主要有libguestfs
or
yum groupinstall "Virtualization" "Virtualization Client""Virtualization Platform"
yum install qemu-kvm virt-manager libvirt
2.加载kvm模块
modprobe kvm
modprobe -ls | grep kvm
3.创建虚拟网桥
安装网桥管理工具:
yum install bridge-utils tunctl
创建网桥:
virsh iface-bridge eth0 br0
4.启动libvirt的服务
service libvirtd start
5.制作镜像
qemu-img create -f qcow2 /kvm/test001.img 50G
qemu-img create -f raw /kvm/test001.img 100g
6.创建一个虚拟机
qcow2 格式
virt-install --name test01 --ram 4096 --vcpu=1 --disk path = /kvm/test001.img,farmat=qcow2,bus=virtio --accelerate --cdrom
/kvm-images/*** .iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
raw格式的镜像
virt-install --name test01 --ram 4096 --vcpu=1 --disk path = /kvm/test001.img,bus=virtio --accelerate --cdrom
/kvm-images/*** .iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole
########
--name 虚拟机的名称
--ram 4096 内存大小
--vcpu=1 cpu个数
--disk path = /kvm/test001.img,farmat=qcow2,bus=virtio 硬盘路径 格式qcow2 bus总线
--accelerate --cdrom /kvm-images/*** .iso 光盘安装
--vnc --vncport=5910 vnc 的端口
--vnclisten=0.0.0.0
--network bridge=br0,model=virtio 网络 使用网桥
--noautoconsole
动态添加硬盘:
qemu-img create -f qcow2 /kvm/test001_add.img 50G
virsh attach-disk test001 /kvm/test001_add.img vdb --cache none 动态的添加磁盘
而xml配置文件并没有发生变化,为了防止下次启动添加的磁盘失效,进行如下操作:
virsh dumpxml tomcat_01 > tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中 virsh define tomcat_01.xml 新增的磁盘就不会丢了
7.查看虚拟机
virsh list 显示虚拟机的运行状态
virsh console 使用文本的方式连接虚拟机
virsh start 开启虚拟机
virsh shutdown 关闭虚拟机
virt-manager 虚拟机管理台
virsh console vm01
虚拟机和宿主机之间的切换 ctrl+】 (右方括号)
??? 如果进不去则: 修改虚拟机vm01的配置
添加ttyS0:echo "ttyS0" >> /etc/securetty
修改内核参数: vi /etc/grub.conf ----> console = ttyS0
添加agetty: vi /etc/inittab -------> S0:12345:respawn:/sbin/agetty ttyS0 115200
重启客户机 reboot -----> virsh console vm01
vi /etc/libvrit/qemu/vm01.xml
autostart 自动开始一个域
create 从xml文件创建一个域
define 从一个xml文件定义一个域
edit 编辑某个域的xml配置
shutdown 关闭一个域
start 开始一个(以前定义的)非活跃的域
reboot 重新启动一个域
suspend 挂起一个域
resume 挂起一个域
vncdisplay vnc 显示
8克隆虚拟机
virt-clone -o vm01 -n vm02 -f /data/vm02 //被克隆的那台服务器要关机
virt-install --virt-type=kvm --name=test01 --vcpus=2 --memory=4096 --location=/iso/CentOS-7-x86_64-Everything-1708.iso --disk path=/kvm/test001.img,farmat=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force
virt-install --virt-type=kvm --name=test01 --vcpus=2 --memory=4096 --location=/iso/CentOS-7-x86_64-Everything-1708.iso --disk path=/kvm/test001.img,farmat=qcow2 --network bridge=br0 --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole --force
virt-install --name test01 --mem 4096 --vcpu=1 --disk ^Cth =/kvm/test001.img,farmat=qcow2,bus=virtio --accelerate --cdrom /iso/CentOS-7-x86_64-Everything-1708.iso --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole