KVM模板制作

1. 在linux系统上安装KVM

1. 确认系统是否支持虚拟化技术(如果不支持下面操作就不用做了)
egrep "vmx|svm" /proc/cpuinfo 
或 lscpu | egrep "vmx|svm"

2. 安装虚拟化服务KVM / QEMU / LIBVIRTD介绍
a. KVM是linux内核的模块,它需要CPU的支持,采用硬件辅劣虚拟化技术Intel-VT,AMD-V,内存的相关如Intel的EPT 和AMD 的RVI 技术
b. QEMU是一个虚拟化的仿真工具,通过ioctl与内核kvm交互完成对硬件的虚拟化支持
c. Libvirt是一个对虚拟化管理的接口和工具,提供用户端程序virsh,virt-install, virt-manager, virt-view 与用户交互

3. 必备软件
qemu-kvm ---> 为kvm提供底层仿真支持
libvirt-daemon  --->  libvirtd守护进程,管理虚拟机
libvirt-client ---> 用户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu ---> libvirtd连接qemu的驱劢

4. 可选功能
virt-install ---> 系统安装工具
virt-manager ---> 图形管理工具
virt-v2v ---> 虚拟机迁移工具
virt-p2v ---> 物理机迁移工具

5. 安装
yum install -y qemu-kvm libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-manager

6. 启动libvirtd服务
systemctl restart libvirtd
systemctl enable libvirtd

7. 虚拟机组成
内核虚拟化模块(KVM)
系统设备仿真(QEMU)
虚拟机管理程序(LIBVIRT)
一个XML 文件(虚拟机配置声明文件) ---> 位置/etc/libvirt/qemu/
一个磁盘镜像文件(虚拟机的硬盘)---> 位置/var/lib/libvirt/images/

2. 制作一个后端盘

1. 利用virt-manager安装一个系统然后对这个系统进行初始化(安装系统的部分就不介绍了)
    a. 禁用selinux   /etc/selinux/config
    SELINUX=disabled

    b. 卸载防火墙与NetworkManager
    yum remove -y NetworkManager-* firewalld-* python-firewall

    c. 配置yum 源

    d. 安装常用软件
    yum -y install vim bash-completion tree iftop net-tools ...

    e. 删除网络配置里的个性化信息
    /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    ONBOOT="yes"
    IPV6INIT="no"
    TYPE="Ethernet"
    BOOTPROTO="dhcp"

    f. 禁用空路由
    /etc/sysconfig/network
    NOZEROCONF="yes"

    g. 添加Console 配置/etc/default/grub
    GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=ttyS0,115200n8 xxxx"
    GRUB_DISABLE_LINUX_UUID="true"
    GRUB_ENABLE_LINUX_LABEL="true"
    重新生成grub.cfg  
    grub2-mkconfig -o /boot/grub2/grub.cfg

    h. 删除磁盘分区里的个性化信息
    /etc/fstab文件中到UUID 手工修改成系统设备
    blkid查看uuid对应的磁盘设备,修改fstab文件

2. 关闭虚拟机并保存好这个刚刚制作好的模板
cd /var/lib/libvirt/images
这个目录下面的一个*.qcow2结尾的文件就是模板文件了
qemu-img info *.qcow2  查看模板文件的信息

3. demo.xml

<domain type='kvm'>
  <name>demo</name>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <os>
    <type arch='x86_64' machine='pc'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
  </cpu>
  <clock offset='localtime'>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/data/kvm_storage/demo.img'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <interface type='network'>
      <source network='vbr'/>
      <model type='virtio'/>
    </interface>
    <serial type='pty'></serial>
    <console type='pty'>
      <target type='serial'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
    </channel>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' autoport='yes'>
      <listen type='address'/>
      <image compression='off'/>
    </graphics>
    <memballoon model='virtio'>
    </memballoon>
  </devices>
</domain>

4. 通过模板和demo.xml文件快速生成虚拟机

1. xml 文件配置
把我们的xml 模板文件进行复制并修改名称及磁盘文件
cp demo.xml node.xml
sed -i 's/demo/node/g' node.xml

2. img文件创建
以我们刚刚装系统的模板为后端文件创建虚拟机 
qemu-img create –b demo.qcow2 –f qcow2 node.img

3. 完成虚拟机注册和启动虚拟机
virsh define node.xml
virsh start node
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。