zoukankan      html  css  js  c++  java
  • Centos7 搭建KVM并创建Linux Windows虚拟机

    一、安装KVM

     
    查看系统版本
    cat /etc/redhat-release
     
     
    关闭防火墙及selinux
     
    systemctl disable firewalld.service
    查看防火墙状态   
    systemctl status firewalld
    查看开机是否启动防火墙服务
    systemctl is-enabled firewalld
     
    1. 验证CPU是否支持KVM;
    如果结果中有vmx(Intel)或svm(AMD)字样,就说明CPU支持的。
    egrep '(vmx|svm)' /proc/cpuinfo
     
     
    2,关闭SELinux
    将 /etc/selinux/config 中的 SELinux=enforcing 修改为 SELinux=disabled
    3. 最小安装的CentOS安装一些最基本的包
    (可选项,因为我是刚安装好的CentOS,所以为了下面方便点,先把一些必要的工具安装下)
    yum install epel-release net-tools vim unzip zip wget ftp -y
     
    4. 安装KVM及其依赖项
    yum install qemu-kvm libvirt virt-install bridge-utils -y
     
    5. 验证安装结果,下图说明已经成功安装了
    lsmod | grep kvm
     
    6. 开启kvm服务,并且设置其开机自动启动
    systemctl start libvirtd
    开机启动
    systemctl enable libvirtd
    7. 查看状态操作结果
    如下图所示,说明运行情况良好
    systemctl status libvirtd
     
    查看是否开机启动
    systemctl is-enabled libvirtd
     
     
    cp -r /etc/sysconfig/network-scripts/ /data/network/
     
     
    8. 配置网桥模式
    先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份
    a. 创建 netifcfg-br0 文件,(创建的br0文件的IP地址要和物理网卡的IP地址一致,命令 ipconfig查看物理网卡将不会显示IP)内容如下:
    vi /etc/sysconfig/network-scripts/ifcfg-br0
     
     
    [root@bogon ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE=br0
    BOOTPROTO=none
    DEFROUTE=yes
    ONBOOT=yes
    TYPE=Bridge
    IPV4_FAILURE_FATAL=yes
    IPADDR=192.168.1.130
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.254
    DNS1=221.6.4.66
    DELAY=0
    USERCE=no
    修改物理网卡eno1
     
    vi /etc/sysconfig/network-scripts/ifcfg-eno1
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="YES"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"a
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="eno1"
    UUID="bb40d726-8d67-4187-90c3-eb61e1b42d61"
    DEVICE="eno1"
    ONBOOT="yes"
    IPADDR="192.168.1.130"
    NETAMSK=255.255.255.0
    GATEWAY="192.168.1.254"
    DNS1="221.6.4.66"
    IPV6_PRIVACY="no"
    BRIDGE=br0
    c. 重启网络服务
    systemctl restart network
    使用 ifconfig 验证操作结果,多了一块网卡br0,现在访问 think8848-srv02 使用 192.168.1.120就可以了。
    *注释:如果有防火墙的话在防火墙添加虚拟机IP地址策略 允许源地址访问目标地址。
     

    二、安装linux虚拟机

    1. 准备操作系统安装镜像文件
    在本文中将使用和宿主环境一样的CentOS7.2,把该文件放到 /home/iso 目录下
     
    挂载U盘
     
    [root@nkgtsv01 ~]# mount  -o loop /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso /data/iso/
    mount: /dev/loop0 写保护,将以只读方式挂载
     
    2. 创建虚拟机文件存放的目录
    mkdir -p /data/kvm-bak
     
    3.使用 virt-install 创建虚拟机
    [root@bogon data]# virt-install --name njvm01 --boot network,cdrom,menu=on --ram 6411 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso --disk path=/data/kvm-bak/vm01.img,size=200,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5910 --vnclisten=0.0.0.0
    WARNING  无法连接到图形控制台:没有安装 virt-viewer。请安装 'virt-viewer' 软件包。
    WARNING  没有控制台用于启动客户机,默认为 --wait -1
    开始安装......
    正在分配 'vm01.img'                                   | 200 GB  00:00:00
    ERROR    internal error: process exited while connecting to monitor: 2018-01-31T06:20:00.727909Z qemu-kvm: -drive file=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso,format=raw,if=none,id=drive-ide0-0-0,readonly=on: could not open disk image /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso: Could not open '/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso': Permission denied
    正在删除磁盘 'vm01.img'                             |    0 B  00:00:00
    域安装失败,您可以运行下列命令重启您的域:
    'virsh start virsh --connect qemu:///system start njvm05'
    否则请重新开始安装。
     
    不要理会里面提示的错误,接着往下走
    4. 打开防火墙上的5910端口
    防火墙若关闭请忽略
    firewall-cmd --zone=public --add-port=5910/tcp --permanent
     
     
    firewall-cmd --reload
     
    [root@nkgtsv01 ~]# firewall-cmd --zone=public --add-port=5910/tcp --permanent
    FirewallD is not running	
    [root@nkgtsv01 ~]# firewall-cmd    --state
    not running	
    [root@nkgtsv01 ~]# systemctl  start   firewalld.service
    [root@nkgtsv01 ~]# firewall-cmd    --state
    running
    [root@nkgtsv01 ~]# firewall-cmd --zone=public --add-port=5910/tcp --permanent
    Success  
    [root@nkgtsv01 ~]# systemctl  start   firewalld.service
    [root@nkgtsv01 ~]# firewall-cmd --reload
    Success

     

     
    5.Virsh list --all 查看虚拟机状态
     
    6.开启虚拟机 然后打开VNC
    使用VNC输入宿主机IP地址 加上端口号 输入虚拟机名字 打开
     
    7.打开远程工具远程调整下IP
     
    8.Service network restart
    重启网络
     
    使用 virt-clone 克隆njvm01为新的虚拟机(虚拟机需要先关闭)
    virt-clone -o njvm02 -n njvm03 -f /data/kvm-img/njvm03.img
     
     
     
    克隆完查看 所有的虚拟机以及状态
    virsh list --all
     
     
    删除虚拟机njvm01
     
    强制关机断电虚拟机
    virsh destroy njvm01
    删除虚拟机
    virsh undefine njvm01
     
    [root@nkgtsv01 data]# virsh shutdown njvm01
    域 njvm01 被关闭
     
    [root@nkgtsv01 data]# virsh start njvm02
    域 njvm02 已开始
     
    [root@nkgtsv01 data]#
    [root@nkgtsv01 data]# virsh list --all
     Id    名称                         状态
    ----------------------------------------------------
     12    njvm02                         running
     -     njvm01                         关闭
     -     njvm03                         关闭
     -     njvm04                         关闭
     
    克隆完以后因为IP地址还是njvm01的IP地址所以我们要修改IP地址
    开启我们克隆的虚拟机
    远程登陆上去
     
    [root@nkgtsv-vm01 ~]# cd /etc/sysconfig/network-scripts/
    [root@nkgtsv-vm01 network-scripts]# ls
    ifcfg-eth0   ifdown-ppp       ifup-eth     ifup-sit
    ifcfg-lo     ifdown-routes    ifup-ippp    ifup-Team
    ifdown       ifdown-sit       ifup-ipv6    ifup-TeamPort
    ifdown-bnep  ifdown-Team      ifup-isdn    ifup-tunnel
    ifdown-eth   ifdown-TeamPort  ifup-plip    ifup-wireless
    ifdown-ippp  ifdown-tunnel    ifup-plusb   init.ipv6-global
    ifdown-ipv6  ifup             ifup-post    network-functions
    ifdown-isdn  ifup-aliases     ifup-ppp     network-functions-ipv6
    ifdown-post  ifup-bnep        ifup-routes
    [root@nkgtsv-vm01 network-scripts]# vi ifcfg-eth0
     
    IPADDR=192.168.1.121改为我们想要的IP地址
    保存退出
     
    Service network restart
    重启网络
    重新链接
     
     

    三、Kvm-virtio-windows

     
    在kvm中,安装windows需要使用virtio驱动,这个驱动是安装windows中必须要的,否则就会找不到硬盘,我们先下载驱动。
    ***重点***
    wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
     
    ***重点***
     yum install -y virtion-win
     
    执行命令
    virt-install --name=客户机名称 --ram 内存(1024)1G --vcpus= cpu1 --os-type= 客户机系统类型 windows --os-variant= win2k8 --disk path= 客户机文件存放路径 /data/kvm-images/win2k8.img,size=客户机硬盘大小200 --accelerate --cdrom (镜像文件路径) --vnc --vncport=vnc远程端口 5910 --network bridge=网卡桥接 br0,model=virtio --noautoconsole
     
    virt-install --name=win2k12  --ram=8192 --vcpus=2 --os-type=windows --os-variant=win2k12  --disk path=/home/kvm/data/win2k12.img,size=200 --accelerate --cdrom /home/kvm/iso/cn_windows_server_2012_r2_x64_dvd_2707961.iso --vnc --vncport=5901 --vnclisten=0.0.0.0 --network bridge=br0,model=virtio --noautoconsole 
     
    为备注,需删掉
     
     
     
    或 执行命令
    virt-install --name=win2k12  --ram 1024 --vcpus=1 --os-type=windows --os-variant=win2k12 --disk path=/home/data/kvm/win2k12.img,size=100 --accelerate --cdrom  /home/data/iso/cn_windows_server_2012_r2_vl_x64_dvd_3316795.iso --vnc --vncport=5990 --network bridge=br0,model=virtio --noautoconsole
     
    virt-install --virt-type kvm --name=win2k8 --ram=4096 --vcpus=4 --os-type=windows --accelerate --cdrom=/home/kvm_data/iso/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.is.iso --disk path=/usr/share/virtio-win/virtio-win.iso,device=cdrom --disk path=/home/kvm_data/img/win2k8.qcow2,bus=virtio --network bridge=br0 --graphics vnc,listen=0.0.0.0,password=123456,port=5920 --noautoconsole
     
    用vnc链接
    若在安装的时候找不到硬盘
    ###############################################################################
    挂载win镜像
     
    virsh change-media win2k12vm01  hdb /usr/share/virtio-win/virtio-win.iso
     
     
     
    选择这个路径的文件 然后下一步
    然后取消挂载的镜像 吧系统镜像 从新挂载到系统 进行分区 安装系统
    ###############################################################################
     
     
    安装完会重启windows虚拟机
    我们查看状态 然后启动虚拟机
    用vnc从新连接
    等他自动读条
     
    等待安装完成
    启动之后设置密码 我们就进入了新的windows 操作系统
     
    用vnc链接
     
    ***重点***
    挂载软驱 (硬盘驱动 网卡驱动等)注释:网卡驱动要在系统中装好之后挂载 不然装系统的时候会提示找不到光盘镜像
    在宿主机中执行命令
    virsh change-media win2k12  hdb /usr/share/virtio-win/virtio-win.iso 
     
    VMTools工具安装完成后,使用如下命令卸载掉挂载的VMTools工具:
    a.如果是Linux虚拟机,执行如下命令卸载VMTools工具:
    virsh change-media 【虚拟机ID】 --eject 【vmtools-linux.iso文件全路径】
    b.如果是Windows虚拟机,执行如下命令卸载VMTools工具:
    virsh change-media 【虚拟机ID】 --eject 【vmtools-windows.iso文件全路径】
     
    挂载驱镜像文件到win2k12主机上
    用vnc链接
     
     
     
     

  • 相关阅读:
    Docker简单的使用命令
    iPad 3g版完美实现打电话功能(phoneitipad破解)
    提供一个免费的CSDN下载账号
    2011年一次面试的实际记录
    VC皮肤库SkinSharp 1.0.6.6的使用
    oracle 数组
    从网页抓取数据的一般方法
    IJ:Idea 常用代码
    un-公司-Continental AG(大陆集团):百科
    un-公司-维珍集团:百科
  • 原文地址:https://www.cnblogs.com/xuewenlong/p/12881940.html
Copyright © 2011-2022 走看看