kvm

=============================虚拟化============================

vmware企业版
VMware Workstation Pro 桌面版
kvm(企业级)

桌面版虚拟化:

app
guest os 客户机
hypervisor(vmm)
os        宿主机
硬件

企业级虚拟化:

app
guest os                 客户机

os-hypervisor(vmm)       宿主机
硬件

查看系统?

[root@localhost ~]# lsb_release -a   (redhat-lsb-core)
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.4.1708 (Core) 
Release:    7.4.1708
Codename:   Core

===============================安装kvm=======================
查看系统是否支持虚拟化?

grep -E '(vmx|svm)' /proc/cpuinfo

安装软件:

*最小安装的CentOS安装一些最基本的包
yum install epel-release net-tools vim unzip zip wget ftp -y
*centos6
  yum groupinstall "Virtualization" "Virtualization Client" "Virtualization Platform" "Virtualization Tools" -y
*centos7
  yum install  *qemu* *virt*  *kvm*  -y

启动服务:

/etc/init.d/libvirtd start

查看kvm模块加载:

lsmod | grep kvm
      kvm_intel              53484  3 
      kvm                   316506  1 kvm_intel

图形模式安装guest os

virt-manager

卸载kvm

yum erase `rpm -qa | egrep '(qemu|virt|kvm)'`
rm -rf /var/lib/libvirt /etc/libvirt/

创建连接池

1.创建基于文件夹的存储池(目录)
mkdir -p /data/vmfs
2.定义存储池与其目录
virsh pool-define-as vmdisk --type dir --target /data/vmfs
3.创建已定义的存储池
(1)创建已定义的存储池
virsh pool-build vmdisk
(2)查看已定义的存储池,存储池不激活无法使用。
virsh pool-list --all
4.激活并自动启动已定义的存储池
virsh pool-start vmdisk
virsh pool-autostart vmdisk         
这里vmdisk存储池就已经创建好了,可以直接在这个存储池中创建虚拟磁盘文件了。
5.在存储池中创建虚拟机存储卷
(1)在存储池中创建虚拟机存储卷
virsh vol-create-as vmdisk oeltest03.qcow2 20G --format qcow2
(2)根据创建的虚拟机存储卷安装虚拟机
virt-install --name=oeltest03 --os-variant=RHEL6 \
--ram 1024 --vcpus=1 --disk path=/data/vmfs/oeltest03.qcow2, \
format=qcow2,size=20,bus=virtio  --accelerate --cdrom \
/data/iso/oel63x64.iso --vnc --vncport=5910  \
--vnclisten=0.0.0.0 --network bridge=br0,model=virtio –noautoconsole

===================完全文本方式安装:===================

[root@localhost ~] virt-install --connect qemu:///system -n vm2 -r 2050 \
--disk path=/var/lib/libvirt/images/vm2.img,size=7  \
--os-type=linux --os-variant=centos7.0 --vcpus=1 \
--network network=default --location=ftp://192.168.44.100/centos7/ \
-x console=ttyS0 --nographics

=========================virt-install常用参数=================

-n --name= 客户端虚拟机名称
-r --ram= 客户端虚拟机分配的内存
-u --uuid= 客户端UUID 默认不写时,系统会自动生成
--vcpus= 客户端的vcpu个数
-v --hvm 全虚拟化
-p --paravirt 半虚拟化
-l --location=localdir 安装源,有本地、nfs、http、ftp几种,多用于ks网络安装
--vnc 使用vnc ,另有--vnclient=监听的IP  --vncport =VNC监听的端口
-c --cdrom= 光驱 安装途径
--disk= 使用不同选项作为磁盘使用安装介质
-w NETWORK, --network=NETWORK 连接客户机到主机网络 
-s --file-size= 使用磁盘映像的大小 单位为GB
-f --file= 作为磁盘映像使用的文件
--cpuset=设置哪个物理CPU能够被虚拟机使用
--os-type=OS_TYPE 针对一类操作系统优化虚拟机配置(例如:‘linux’,‘windows’)
--os-variant=OS_VARIANT 针对特定操作系统变体(例如’rhel6’, ’winxp’,'win2k3')进一步优化虚拟机配置
--host-device=HOSTDEV 附加一个物理主机设备到客户机。HOSTDEV是随着libvirt使用的一个节点设备名(具体设备如’virsh nodedev-list’的显示的结果)
--accelerate KVM或KQEMU内核加速,这个选项是推荐最好加上。如果KVM和KQEMU都支持,KVM加速器优先使用。
-x EXTRA, --extra-args=EXTRA 当执行从"--location"选项指定位置的客户机安装时,附加内核命令行参数到安装程序
--nographics "virt-install" 将默认使用--vnc选项,使用nographics指定没有控制台被分配给客户机

================根据配置文件创建虚拟机======================

首先需要有kvm里面创好的vm1
1.需要有磁盘文件
cd /var/lib/libvirt/images
ls
cp vm1.qcow2 vm2.qcow2
2.需要有配置文件:配置文件需要修改必要的东西
cd /etc/libvirt/qemu/
ls
vm1.xml
cp vm1.xml vm2.xml
要改的地方
name          
memory        
vcpu
source
mac
uuid
3.创建虚拟机:
virsh define /etc/libvirt/qemu/vm2.xml
virsh list --all
virsh start vm2
virsh domifinfo vm2

================根据配置文件创建虚拟机======================

1.需要有磁盘文件
cd /var/lib/libvirt/images
ls
cp vm1.qcow2 vm2.qcow2
2.需要有配置文件:配置文件需要修改必要的东西
cd /etc/libvirt/qemu/
ls
vm1.xml
cp vm1.xml vm2.xml
要改的地方
name          
memory        
vcpu
source
mac
uuid
3.创建虚拟机:
virsh define /etc/libvirt/qemu/vm2.xml
virsh list --all
virsh start vm2
virsh domifinfo vm2

=====================虚拟机的基本管理命令==================

虚拟机的组成部分
1.虚拟机配置文件
[root@localhost qemu]# ls /etc/libvirt/qemu
networks  vm1.xml
2.储存虚拟机的介质
[root@localhost qemu]# ls /var/lib/libvirt/images/
vm1.img
虚拟机的基本管理命令:
查看
启动
关闭
重启
重置 

查看:
查看虚拟机:
    # virsh list 
     Id    Name                           State
    ----------------------------------------------------
     2     vm1                            running

    # virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     2     vm1                            running

查看kvm虚拟机配置文件:
virsh dumpxml name

将node4虚拟机的配置文件保存至node6.xml
virsh dumpxml node4 > /etc/libvirt/qemu/node6.xml

修改node6的配置文件:
virsh edit node6      
如果直接用vim编辑器修改配置文件的话,需要重启libvirtd服务

启动:
[root@localhost ~] virsh start vm1
Domain vm1 started

暂停虚拟机: 
  virsh suspend vm_name  

恢复虚拟机:
  virsh resume vm_name    
  
关闭:
    方法1:
     virsh shutdown vm1
    Domain vm1 is being shutdown
    方法2:
    virsh destroy vm1
    Domain vm1 destroyed

重启:
    [root@localhost ~] virsh reboot vm1
    Domain vm1 is being reboote

重置:
    [root@localhost ~] virsh reset vm1
    Domain vm1 was reset

删除虚拟机:
 virsh undefine vm2
Domain vm2 has been undefined

注意:虚拟机在开启的情况下undefine是无法删除的,但是如果再destroy会直接被删除掉

====================================kvm网络=========================


https://blog.csdn.net/hzhsan/article/details/44098537/
分类:
    网络:nat isolate(隔离)

    接口:bridge

虚拟交换机:linux-bridge ovs(open-Vswitch)
    
            vm1
        交换机     
            vm2
[root@localhost system]# brctl show
bridge name bridge id       STP enabled interfaces
virbr0      8000.525400136642   yes     virbr0-nic
                            vnet0
                            vnet1

brctl delif virbr0 vnet0


配置bridge方式:
打开虚拟系统管理器-》编辑-》连接详情-》网络端口-》+ -》桥接-》br1,onboot,现在激活,ens33-》完成
改配置文件
    
    创建桥接器
    cat /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE=br0
    NM_CONTROLLED=no
    TYPE=Bridge
    BOOTPROTO=static
    IPADDR=10.18.44.79
    PREFIX=24
    GATEWAY=10.18.44.1
    DNS1=8.8.8.8
    ONBOOT=yes
    USERCTL=no
    DELAY=0
    
    将物理接口桥接到桥接器
    cat /etc/sysconfig/network-scripts/ifcfg-enp0s25
    DEVICE=eth0
    NM_CONTROLLED=no
    TYPE=Ethernet
    BOOTPROTO=static
    ONBOOT=yes
    USERCTL=no
    BRIDGE=br0
    
    重启加载网络服务
    service network restart
        systemctl restart network
        重启生效
        init 6
    查看当前桥接情况 
             brctl show
配置nat1方式:
打开虚拟系统管理器-》编辑-》连接详情-》虚拟网络-》点+-》nat1-》启用,启用,该IP段
需要说明的是,使用 NAT 的虚机 VM1 可以访问外网,但外网无法直接访问 VM1。
因为 VM1 发出的网络包源地址并不是 192.168.122.6,而是被 NAT 替换为宿主机的 IP 地址了。
配置iso方式:
打开虚拟系统管理器-》编辑-》连接详情-》虚拟网络-》点+-》iso1-》启用,启用,该IP段

================克隆=============================================

2.字符终端,命令克隆
    virt-clone -o vm1 --auto-clone
        WARNING  设置图形设备端口为自动端口,以避免相互冲突。
        正在分配 'vm1-clone.qcow2'            | 6.0 GB  00:00:05     
        成功克隆 'vm1-clone'。
    
    virt-clone -o vm1 -n vm2 --auto-clone
        WARNING  设置图形设备端口为自动端口,以避免相互冲突。
        正在分配 'vm2.qcow2'                                                | 6.0 GB  00:00:06     
        成功克隆 'vm2'。
        
  virt-clone -o vm1 -n vm2 -f /var/lib/libvirt/images/vm2.img
        正在克隆        
        vm1.img              | 8.0 GB     01:03     
        Clone 'vm2' created successfully.

==================快照==========================================

[root@localhost ~]virsh list
 Id    Name                           State
----------------------------------------------------
 1     rhel5u8-1                      running

为虚拟机vm1的类型是raw创建一个快照将会报错
[root@localhost ~]# virsh snapshot-create-as vm1 vm1.snap
error: unsupported configuration: internal snapshot for disk vda unsupported for storage type raw

raw
KVM和XEN默认的格式好像还是这个格式。就是使用文件来模拟实际的硬盘(当然也可以使用一块真实的硬盘或一个分区)。由于原生的裸格式,不支持snapshot也是很正常的。但如果你使用LVM的裸设备,那就另当别论。说到LVM还是十分的犀利的目前来LVM的snapshot、性能、可扩展性方面都还是有相当的效果的。目前来看的话,备份的话也问题不大。就是在虚拟机迁移方面还是有很大的限制。但目前虚拟化的现状来看,真正需要热迁移的情况目前需求还不是是否的强烈。虽然使用LVM做虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理还是不错的选择。

qcow2
现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw裸格式的性能,这个也算是redhat的官方渠道了
对于qcow2的格式,几点还是比较突出的,qcow2的snapshot,可以在镜像上做N多个快照:
    •更小的存储空间
    •Copy-on-write support
    •支持多个snapshot,对历史snapshot进行管理
    •支持zlib的磁盘压缩
    •支持AES的加密
查看镜像文件格式
qemu-img info /var/lib/libvirt/images/vm1.qcow2
把raw格式转换成qcow2格式
qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/vm1.img /var/lib/libvirt/images/rhel5u8-1_qcow2.img

你可能感兴趣的:(kvm)