目录

  • 1. 安装 GNOME-Desktop
  • 2. 安装虚拟化软件 libvirt及kvm
  • 3. 网络Bridge方式
  • 4. kvm日常管理
  • 5. GUI 部署虚拟机
  • 准备镜像并新建
  • 添加路径
  • 配置内存及cpu
  • 硬盘大小
  • 网络配置
  • 6. 命令行部署虚拟机
  • 通用参数
  • 创建格式化磁盘文件
  • 转换磁盘格式qcow2
  • 安装


1. 安装 GNOME-Desktop

提前安装开启CPU虚拟化并验证

grep vmx /proc/cpuinfo

安装 X 窗口系统

yum groupinstall "X Window System" -y

#yum groupinstall 'GNOME Desktop' ///

安装图形界面 GNOME

yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

2. 安装虚拟化软件 libvirt及kvm

$ yum -y install epel-release		//EPEL源
$ yum install qemu qemu-img qemu-kvm  libvirt libvirt-python $ libguestfs-tools virt-install
$ yum install virt-manager virt-viewer		//图形化
$ systemctl enable libvirtd		
$ systemctl start libvirtd

ps:

  • qemu-kvm 主要的KVM程序包
  • python-virtinst 创建虚拟机所需要的命令行工具和程序库
  • virt-manager GUI虚拟机管理工具
  • virt-top 虚拟机统计命令
  • virt-viewer GUI连接程序,连接到已配置好的虚拟机
  • libvirt C语言工具包,提供libvirt服务
  • libvirt-client 虚拟客户机提供的C语言工具包
  • virt-install 基于libvirt服务的虚拟机创建命令
  • bridge-utils 创建和管理桥接设备的工具

如果启动服务并没有加载尝试运行

$ modprobe kvm
$ modprobe kvm-intel

Centos7关机卡死 centos7无法关机_kvm


kvm正常启动会导出一个名为/dev/kvm的设备,这个设备将虚拟机的的地址空间独立于内核或者任何应用程序的地址空间。

Centos7关机卡死 centos7无法关机_IPV6_02

3. 网络Bridge方式

类似傻瓜交换机

$ yum -y install bridge-utils
$ cd /etc/sysconfig/network-scripts
$ cp ifcfg-ens33 ifcfg-br0
$ vi ifcfg-br0

TYPE=Bridge									//这一行修改为Bridge
PROXY_METHOD=none			
BROWSER_ONLY=no
BOOTPROTO=none								//禁用DHCP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0									//更名
#UUID=6057342c-204b-4be8-b084-4397c5e61a09	//注释
DEVICE=br0									//配置静态ip
ONBOOT=yes
IPADDR=192.168.3.148
PREFIX=24
GATEWAY=192.168.3.1
DNS1=114.114.114.114

$ vim ifcfg-ens33

TYPE=Ethernet                             
BRIDGE=br0                   				// 添加             
PROXY_METHOD=none                         
BROWSER_ONLY=no                           
#BOOTPROTO=dhcp                           
BOOTPROTO=none                            
DEFROUTE=yes                              
IPV4_FAILURE_FATAL=no                     
IPV6INIT=no                               
IPV6_AUTOCONF=yes                         
IPV6_DEFROUTE=yes                         
IPV6_FAILURE_FATAL=no                     
IPV6_ADDR_GEN_MODE=stable-privacy         
NAME=ens33                                
UUID=6057342c-204b-4be8-b084-4397c5e61a09 
DEVICE=ens33                              
ONBOOT=yes    

$ systemctl restart network

Centos7关机卡死 centos7无法关机_IPV6_03


Centos7关机卡死 centos7无法关机_Centos7关机卡死_04

4. kvm日常管理

  • 查看kvm虚拟机配置文件及状态
    KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/
    autostart目录是配置kvm虚拟机开机自启动目录。
  • 查看kvm虚拟机状态
$ virsh list --all
  • KVM虚拟机开机
$ virsh start kvmname
  • KVM虚拟机关机或断电
    默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
$ chkconfig acpid on
$ service acpid restart
(1) virsh关机
$ virsh shutdown oeltest01
(2) 强制关闭电源
$ virsh destroy kvmname
(3) 通过配置文件启动虚拟机
$ virsh create /etc/libvirt/qemu/kvmname.xml
(4) 配置开机自启动虚拟机
$ virsh autostart oeltest01
  • autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。
(1) 导出KVM虚拟机配置文件
$ virsh dumpxml centos7.0 > /home/back/centos7.0.back.xml
原来路经为: /etc/libvirt/qemu/
  • 克隆虚拟机
    需要关机进行

-o被克隆虚拟机的名字、-n克隆后虚拟机的名字、-f指定磁盘存储位置

$ virt-clone -o centos7.0 -n  centos7_back -f /opt/vm-centos.raw

Centos7关机卡死 centos7无法关机_客户端_05


Centos7关机卡死 centos7无法关机_kvm_06

5. GUI 部署虚拟机

准备镜像并新建

Centos7关机卡死 centos7无法关机_IPV6_07

添加路径

Centos7关机卡死 centos7无法关机_linux_08

配置内存及cpu

Centos7关机卡死 centos7无法关机_客户端_09

硬盘大小

默认情况虚拟机虚拟磁盘 存放在 /var/lib/libvirt/images 目录下

Centos7关机卡死 centos7无法关机_IPV6_10

网络配置

参照之前做的Bridge配置

Centos7关机卡死 centos7无法关机_Centos7关机卡死_11


Centos7关机卡死 centos7无法关机_kvm_12

6. 命令行部署虚拟机

通用参数
通用选项:

    -n NAME, --name=NAME  虚拟机名称

    -r MEMORY, --ram=MEMORY  以MB为单位为客户端事件分配的内存

    --vcpus=VCPUS       配置虚拟机的虚拟CPU(vcpu)数量,如:

                        --vcpus 5

                        --vcpus 5, maxcpus=10

                        --vcpus socket=2,cores=4,threads=2

    --cpuset=CPUSET     Set which physical CPUs domain can use.

    --cpu=CPU           CPU型号及功能,如:--cpu coreduo,+x2apic

    --description=DESCRIPTION  在生成的XML中保存的可读VM描述。

    --security=SECURITY      设定域安全驱动器配置。

    --numatune=NUMATUNE       为域进程调整NUMA策略。

安装方法选项:

    -c CDROM, --cdrom=CDROM   光驱安装介质

    -l LOCATION, --location=LOCATION

             安装源(例如:nfs:host:/path、http://host/path、ftp://host/path)

    --pxe              使用 PXE 协议从网络引导

    --import            在磁盘映像中构建客户机

    --livecd            将光驱介质视为 Live CD

    -x EXTRA, --extra-args=EXTRA

                   附加到使用--location引导的内核的参数

    --os-type=DISTRO_TYPE

                                 操作系统类型,'linux'、'unix'、'windows'

    --os-variant=DISTRO_VARIANT

          操作系统版本,如: 'fedora6','rhel5', 'solaris10', 'win2k'

    --boot=BOOTOPTS     自选配置后安装引导顺序、菜单、永久kernel引导,等等。

存储配置:

    --disk=DISKOPTS     用各种选项指定存储。 Ex.

    --disk path=/my/existing/disk

    --disk path=/my/new/disk,format=qcow2,size=5,sparse (单位GB)

    --disk vol=poolname:volname,device=cdrom,bus=scsi,...

    --nodisks           不要为该客户端设置任何磁盘。

    --filesystem=FILESYSTEMS

      将主机目录传递给虚拟机。例如:

      --filesystem /my/source/dir,/dir/in/guest

       --filesystem template_name,/,type=template

联网配置:

    -w NETWORK, --network=NETWORK

    配置客户网络接口。 Ex:

     --network bridge=mybr0

     --network network=my_libvirt_virtual_net

     --network network=mynet,model=virtio,mac=00:11...

      --nonetworks    不要为该客体创建网络接口。

图形配置:

    --graphics=GRAPHICS

       配置虚拟机显示设置。例如:

   --graphics vnc

   --graphics spice,port=5901,tlsport=5902

   --graphics none

    --graphics vnc,password=foobar,port=5910,keymap=ja

   --noautoconsole     不要自动尝试连接到客户端控制台

设备选项:

    --serial=SERIALS    配置虚拟机串口设备

    --parallel=PARALLELS   配置虚拟机并口设备

    --channel=CHANNELS    配置虚拟机沟通频道

    --console=CONSOLES    配置虚拟机与主机之间的文本控制台连接

    --host-device=HOSTDEVS    配置与客户相连的物理主机设备

    --soundhw=SOUNDHW      配置客户声音设备仿真

    --watchdog=WATCHDOG  配置虚拟机 watchdog 设备

    --video=VIDEO        配置虚拟机视频硬件。

    --smartcard=SMARTCARD   配置虚拟机智能卡设备。

例如:--smartcard mode=passthrough

    --redirdev=REDIRDEV Configure a guest redirection device.

   例如:--redirdev usb,type=tcp,server=192.168.1.1:4000

虚拟化平台选项:

    -v, --hvm          客户端应该是一个全虚拟客户端

    -p, --paravirt        这个客户端是一个半虚拟客户端

    --container         This guest should be a container guest

    --virt-type=HV_TYPE     要使用的管理程序名称(kvm、qemu、xen)

    --arch=ARCH          模拟的 CPU 构架

    --machine=MACHINE   The machine type to emulate

    --noacpi   为全虚拟客户端禁用 ACPI(在 os-type/os-variant db 中覆盖数值)

    -u UUID, --uuid=UUID    客户端 UUID。

其它选项:

    --autostart            引导主机时自动启动域。

    --print-xml          输出所生成域的XML,而不是定义虚拟机。

    --print-step=XMLSTEP       输出具体安装步骤

    --noreboot            完成安装后不要引导虚拟机。

    --wait=WAIT           要等待的时间(以分钟为单位)

    --dry-run         完成安装步骤,但不要创建设备或者定义虚拟机。

    --force        对任意应用程序提示强制回答‘yes’,终止其它提示

    -q, --quiet             禁止无错误输出

    --prompt              要求用户为模糊情况或者需要的选项输入

    -d, --debug             输入故障排除信息
创建格式化磁盘文件

格式:raw或qcow2

qemu-img create /home/root/data/kvm/vfs/ubuntu.raw 20G
转换磁盘格式qcow2
qemu-img convert -f raw -O qcow2 /home/root/data/kvm/vfs/ubuntu.raw /home/root/data/kvm/vfs/ubuntu.qcow2
安装
$ virt-install -n vm-centos1 -r 1024 --vcpus 1 -l /ISO --disk path=/vm-centos1.qcow2,format=qcow2 --nographics -x console=ttyS0

Centos7关机卡死 centos7无法关机_linux_13


Centos7关机卡死 centos7无法关机_IPV6_14