zoukankan      html  css  js  c++  java
  • 虚拟化

    • KVM 管理、查看工具分类
    qemu:
    qemu-kvm
    qemu-img
     
    libvirt
    libvirtd 守护进程
    图形化管理程序:virt-manager程序、virt-viewer程序
    命令行管理程序:virt-install程序、virsh程序
    • 在Wmware虚拟机上如何检查是否CPU支持虚拟化 和 加载kvm模块
    # vmx或svm :表示VCPU支持虚拟化
    cat /proc/cpuinfo | grep vmx
     
    # 装载kvm模块
    modprobe kvm
     
    # 查看模块是否已经安装,必须保证安装了kvm_intel模块
    [root@7 ~]# lsmod | grep kvm
    kvm_intel 162153 0
    kvm 525259 1 kvm_intel
     
    # 存在kvm设备文件
    [root@7 ~]# ll /dev/kvm
    crw-------. 1 root root 10, 232 Sep 28 20:40 /dev/kvm
    • 安装libvirt管理套件(C/S架构模式,用户管理kvm虚拟机)
    # 1:安装程序包
    yum install -y libvirt virt-manager virt-viewer virt-install qemu-kvm
     
    # 2:启动libvirtd守护进程
    systemctl start libvirtd.service
    systemctl enable libvirtd.service
     
    # 3:输入ifconfig命令之后可以看到 virbr0,这是一个NAT网络
    [root@7 ~]# ifconfig
    virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
    ether 52:54:00:cf:ae:68 txqueuelen 0 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
     
    # 在图形化界面启动virt-manager
     
    # 如果创建虚拟机不成功,请查看如下配置,查看是否CPU虚拟化嵌套功能开启
    cat /sys/module/kvm_intel/parameters/nested 如果是N,那么需要设置为Y
     
    # 开启CPU虚拟化嵌套功能
    modprobe -r kvm_intel
    modprobe kvm_intel nested=1
     
    # 再次查看是否CPU虚拟化嵌套功能开启
    cat /sys/module/kvm_intel/parameters/nested
    Y
     
    # 由于linux的镜像比较大,如果大于4G是无法使用rz -y 从Windows系统上传的,因此可以选择挂载
     
    # 挂载之前需要下载Windows的ntfs文件系统
    yum install -y fuse-ntfs-3g
     
    # 查看USB的设备文件
    fdisk -l
     
    # 一般是/dev/sdb1为USB的设备文件
     
    # 挂载已经有Centos镜像的USB设备
    mount.ntfs-3g /dev/sdb1 /mnt
    # 此时就可以使用U盘或硬盘中的CentOS镜像了
     
    • 使用命令virsh管理网络设备,创建桥设备 和 使用virt-manager创建虚拟机
     
    # 1:查看网卡接口
    virsh iface-list
    Name State MAC Address
    ---------------------------------------------------
    eno16777736 active 00:0c:29:34:06:15
    lo active 00:00:00:00:00:00
     
    # 2:完毕NetworkManager服务,不让nmtui接口管理网络设备
    systemctl stop NetworkManager.service
    systemctl disable NetworkManager.service
     
    # 3:创建br0桥设备,eno16777736就是交换机,br0就是桥设备,且具有IP地址,也可以认为是虚拟网卡
    virsh iface-bridge eno16777736 br0
     
    # 4:创建虚拟机
    virt-manager
     
     
    # 5:可以使用cobbler引导,或使用光盘镜像,如果使用cobbler需要PXE环境
    • virsh命令创建虚拟机
    # 查看已经创建的虚拟机
    virsh list
     
    # 创建virsh的帮助
    virsh help domain
     
    # 停止虚拟机
    virsh destroy centos6.8
     
    cat /proc/345232/cmdline 查看qemu-kvm的进程的启动命令
     
     
     
     
     
     
    • 使用qemu-img创建虚拟磁盘文件
    # 安装qemu-img
    yum install -y qemu-img
     
    # 获取帮助
    qemu-img --help
     
    # 支持的虚拟磁盘文件格式
    Supported formats: vvfat vpc vmdk(vmware,virtualbox磁盘文件) vhdx vdi ssh sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2(kvm的虚拟磁盘格式) qcow parallels(Mac上的parallels) nbd iscsi gluster dmg tftp ftps ftp https http cloop bochs blkverify blkdebug
     
    # 创建一个稀疏格式的虚拟磁盘文件, -f: 指定格式, -o:指定选项,/root/kvm.qcow2表示指定创建的虚拟磁盘路径, 80G指定磁盘大小
    qemu-img create -f qcow2 -o preallocation=metadata /root/kvm.qcow2 80G
     
    # 查看虚拟磁盘的预定大小
    [root@7 ~]# ls -lh /root/kvm.qcow2
    -rw-r--r--. 1 root root 81G Sep 29 11:30 /root/kvm.qcow2
     
    # 查看虚拟磁盘的实际大小
    [root@7 ~]# du -sh /root/kvm.qcow2
    16M /root/kvm.qcow2
     
    # 需改大小,不能缩小,只能扩大
    qemu-img resize /root/kvm.qcow2 300G
    • 使用 virt-install 创建虚拟机
    virt-install --help
    • 使用 qemu-kvm 创建虚拟机 介绍
    1:命令路径:/usr/libexec/qemu-kvm
     
    2:添加至环境变量PATH中(也可以使用软连接ln -sv /etc/profile.d/kvm.sh /usr/bin)
    编辑 /etc/profile.d/kvm.sh 添加
    export PATH=/usr/libexec:$PATH
    . /etc/profile.d/kvm.sh
    • 使用字符界面 qemu-kvm 创建虚拟机
    qemu-kvm的基本用法:指定系统类型,CPU运行模式,NUMA(Non Uniform Memory Access Architecture), 软驱设备,光驱设备,硬件设备
     
    # 查看qemu-kvm的帮助
     
     
    # 查看支持的系统类型
    qemu-kvm -M ?
     
    # 下载磁盘镜像文件
    wget http://download.cirros-cloud.net/0.3.3/cirros-0.3.3-x86_64-disk.img
     
    # 查看镜像文件的信息
    qemu-img info cirros-0.3.3-x86_64-disk.img
     
    # 创建一个虚拟机实例domain,-name 指明实例的名称,-m指定内存大小,-smp指明CPU的核心数,-drive指明驱动的设备和镜像文件,file=指明磁盘镜像文件,media=指定从地方启动虚拟机实例,if=指定网卡驱动,format=指定虚拟磁盘文件类型 -net指定网络,-nographic指定文本界面启动
    qemu-kvm -name kvm_linux -m 200 -smp 2 -drive file=/root/cirros-0.3.3-x86_64-disk.img,media=disk,if=virtio,format=qcow2 -net none -nographic
     
    # 切换到root用户
    sudo su -
     
    # 可以启动另外一个终端,查看创建虚拟机实例的命令
    cat /proc/2989/cmdline
     
    # 使用Ctrl+a 再按h键,可以查看到帮助
    C-a h print this help
    C-a x exit emulator
    C-a s save disk data back to file (if -snapshot)
    C-a t toggle console timestamps
    C-a b send break (magic sysrq)
    C-a c switch between console and monitor
    C-a C-a sends C-a
     
    # 使用Ctrl+a 再按c键,可以来到虚拟机的管理接口界面
    help 命令可以查看帮助
    system_powerdown 可以关闭计算机
    • 使用vnc客户端连接到 qemu-kvm 创建的虚拟机
    # 使用图形界面可以使用vnc将图形转发,可以指定vnc提供的端口,:1表示监听于5901端口,:2指定监听于5902端口,依次类推
    qemu-kvm -name kvm_linux -m 200 -smp 2 -drive file=/root/cirros-0.3.3-x86_64-disk.img,media=disk,if=virtio,format=qcow2 -net none -vnc 192.168.43.11:1
     
    # 下载vnc客户端
    yum install -y tigervnc
     
    # tigervnc客户端有客户端命令/usr/bin/vncviewer,在图形界面使用vncviewer连接到kvm_linux虚拟节点
    vncviewer 192.168.43.11:1
    • 给新建的kvm虚拟机创建网络接口
    (一)首先必须创建网卡连接桥接口的启动脚本和停止脚本,其中脚本中的 $1:表示为虚拟机的网卡的右边接口,这两个脚本就是讲虚拟机的网卡的右边接口接在网桥上,实现桥接模型
     
     
    # 1:/etc/qemu-ifup脚本,且给脚本一个执行权限
    ###################################### 启动脚本的内容 ########################
     
    #! /bin/bash
     
    bridge=br0
    # 如果$1的值不为空
    if [ -n "$1" ];then
    # 启动网卡接口地址
    ip link set $1 up
    sleep 1
     
    # 将网卡接口连接至物理桥上,此时为桥接模式
    brctl addif $bridge $1
     
    # 确保以上命令执行成功后退出
    [ $? -eq 0 ] && exit 0 || exit 1
     
    else
    echo "Error: RONG interface" && exit 1
     
    fi
     
    ###################################### 启动脚本的内容 ########################
     
    chmod +x /etc/qemu-ifup
     
    # 2:/etc/qemu-ifdown脚本, 且给脚本一个执行权限
     
    ###################################### 停止脚本的内容 ########################
    #! /bin/bash
     
    bridge=br0
    # 如果$1的值不为空
    if [ -n "$1" ];then
    # 停止网卡接口地址
    ip link set $1 down
    sleep 1
     
    # 将网卡接口从物理桥上删除
    brctl delif $bridge $1
     
    # 确保以上命令执行成功后退出
    [ $? -eq 0 ] && exit 0 || exit 1
     
    else
    echo "Error: RONG interface" && exit 1
     
    fi
    ###################################### 停止脚本的内容 ########################
     
    chmod +x /etc/etc/qemu-ifdown
     
     
    (二)创建一个有网络接口的虚拟机实例
    # -net nic指明为网卡接口,model指明virtio虚拟网卡驱动,macaddr为虚拟网卡的Mac地址
    # -net 指定网卡的连接方式,物理机的TAP网络接口连接至vlan中,ifname=virtual_eth0 指定宿主机虚拟网卡名称,默认连接的是br0,桥接模型
    # -daemonize:指明以daemon的方式运行
    qemu-kvm -name kvm_linux -m 200 -smp 2 -drive file=/root/cirros-0.3.3-x86_64-disk.img,media=disk,if=virtio,format=qcow2 -net nic,model=virtio,macaddr=52:54:00:01:01:01 -net tap,ifname=virtual_eth1 -vnc 192.168.43.11:1 -daemonize
     
    (三)通过vnc连接
    vncviewer 192.168.43.11:1
     
    (四)输入用户和密码,登入,看看网卡eth0是否有IP,且ping一下www.baidu.com是否ping通

    (二)再说virsh 命令行管理虚拟机


    • 重用命令和选项
    1:查看运行的虚拟机
    virsh list
     
    2:查看所有的虚拟机(关闭和运行的虚拟机)
    virsh list --all
     
    3:连接虚拟机
    virsh console +域名(虚拟机的名称)
     
    4:退出虚拟机
    ctrl+]
     
    5:关闭虚拟机
     
    5.1 virsh shutdown +域名
     
    5.2 virsh destroy +域名
    这种方式的关闭,是一种删除的方式,只是在virsh list中删除了该虚拟机。
     
    6:挂起虚拟机
    virsh suspend +域名
     
    7:恢复被挂起的虚拟机
    virsh resume +域名
     
    8:子机随宿主主机(母机)启动而启动
    virsh autostart + 域名
     
    9:取消自动启动
    virsh auotstart --disable +域名
     
    10:彻底删除虚拟机
     
    1, 删除虚拟机 virsh destroy +域名
     
    2,解除标记 virsh undefine +域名
     
    3,删除虚拟机文件
     
    11:启动虚拟机并进入该虚拟机
    virsh start 域名 --console
     
     
     
  • 相关阅读:
    背景颜色的渐变设置--实现丰富多彩的背景效果
    CSS-sprit 雪碧图
    背景图片的相关设置
    关于阿里云图标的使用 iconfont
    HTML四种定位-粘滞定位
    HTML四种定位-固定定位
    HTML四种定位-绝对定位
    HTML四种常见的定位-相对定位
    水平居中
    CentOS8更换国内镜像源
  • 原文地址:https://www.cnblogs.com/liu1026/p/7641931.html
Copyright © 2011-2022 走看看